Java 버전 특유의 주의점
업데이트: 2023/01/26
할당자, 메모리 관련
Cubism SDK for Native와는 달리, 불필요해진 변수나 오브젝트는 가비지 콜렉션에 의해 해방되기 때문에, 이들에 대해서 적절히 참조를 끊을 필요가 있습니다.
또한 위와 같은 이유로 CubismFramework.startUp()의 첫 번째 인수에 할당자(ICubismAllocator)를 전달할 필요는 없습니다.
자세한 내용은 「CubismJavaFramework를 직접 이용하는 방법」을 참조하십시오.
텍스쳐 포맷 정보
Android의 BitmapFactory.decodeStream 메서드는 Premultiplied Alpha 방식으로 이미지를 생성하므로 샘플 LAppDefine에 정의된 PREMULTIPLIED_ALPHA_ENABLE을 true로 설정해야 합니다.
if (LAppDefine.PREMULTIPLIED_ALPHA_ENABLE) { this.<CubismRendererAndroid>getRenderer().isPremultipliedAlpha(true); } else { this.<CubismRendererAndroid>getRenderer().isPremultipliedAlpha(false); }
Cubism SDK for Java의 콜백 함수 취급
Cubism SDK for Java에는 Native, Web과 마찬가지로 콜백 함수를 등록할 수 있는 곳이 있지만, Java 사양상 사용 방법에는 차이가 있습니다.
메소드 자체를 오브젝트로서 관리할 수 없기 때문에, 저희가 준비한 인터페이스를 구현한 클래스를 사용자측에서 작성해 주시면 콜백 함수 오브젝트를 취급합니다.
private static class FinishedMotion implements IFinishedMotionCallback { @Override public void execute(ACubismMotion motion) { LAppPal.printLog("Motion Finished: " + motion); } } private static final FinishedMotion finishedMotion = new FinishedMotion();
콜백을 전달할 때는 이 오브젝트를 함수의 인수로서 전달하도록 합니다.
public void onTap(float x, float y) { ... for (LAppModel model : models){ ... model.startRandomMotion(MotionGroup.TAP_BODY.getId(), Priority.NORMAL.getPriority(), finishedMotion); ... } }
보다 구체적인 사용 방법에 대해서는 「모션 재생 종료 콜백(Java)」을 봐 주세요.
이 기사가 도움이 되었나요?
네아니요