Java 버전 특유의 주의점
업데이트: 2023/01/26
5.4 alpha 공개 중! alpha 버전에 대한 자세한 내용은 여기
할당자, 메모리 관련
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)」을 봐 주세요.
이 기사가 도움이 되었나요?
네아니요