모션 재생 종료 콜백(Java)

[마지막 갱신일: 2022/10/06]

Cubism SDK for Java는 현재 알파 버전입니다. beta판이나 정식판으로 사양이 바뀌는 경우도 있습니다.

 

개요

Cubism SDK for Java(alpha판)에서는, 모션의 재생 종료시에 콜백에 의한 이벤트의 취득을 행할 수 있습니다.
샘플에서는, 콜백 함수로 재생 종료를 통지하는 로그 텍스트를 출력하고 있습니다.

 

콜백 구현

이번은 모션의 재생 종료시에 콜백에 의한 처리를 행하기 위해, 모션을 관리하는 추상 클래스이다
Framework/src/motion/ACubismMotion에서 콜백을 처리할 수 있도록 구현합니다.

Java(alpha판)에서는 콜백용으로 정의된 인터페이스를 implements한 객체를 사용해 콜백의 구조를 재현합니다.

Tips

샘플에서는, 이하의 상태라면 콜백을 호출할 수 없으므로 주의해 주세요.

  • 재생 중인 모션이 「루프」로 설정된 경우
  • 콜백에 null이 등록되어 있을 때

 

콜백 함수 사용

콜백 함수로 실제로 처리하고 싶은 내용을 구현합니다.

샘플에서는, 모션 재생 종료를 통지하는 로그 텍스트를 LAppPal.printLog 메소드를 사용해 출력하도록(듯이) 구현하고 있습니다.
모션 재생 종료시의 처리를 변경하고 싶은 경우는, 하기 함수의 구현을 변경해 주세요.

 

또, 콜백 메소드의 등록은 모션 데이터를 읽어들이는 Framework 계층의 CubismUserMotion.loadMotion 메소드 사용시에 모션의 생성과 동시에 콜백 메소드를 건네주고 있습니다.
이미 모션이 있을 때는 「콜백의 구현」에서 소개한 setFinishedMotionHandler() 를 사용하고 있습니다.

샘플에서는, 탭 이벤트를 취득하는 onTap() 실행시에 호출되는 startRandomMotion() 로부터 콜백 함수를 건네주고 있습니다.
또, 실제로 모션을 재생하고 있는 것은 CubismMotion.doUpdateParameters() 이므로, CubismMotion 에 콜백 함수를 건네줄 수 있도록 구현을 행하고 있습니다.

 

 

구현의 발전에 대해서

샘플에서는 모션의 재생 종료만의 구현입니다만, 이러한 구현을 발전시킴으로써, 모션의 재생 종료 후에 콜백 함수로 비동기 처리등을 이용할 수 있게 되거나,
콜백을 적용하고자 하는 실제 처리에서 함수를 역방향으로 함으로써 모션 재생 종료 이외의 부분에도 콜백의 구현이 가능하게 됩니다.

© 2010 - 2022 Live2D Inc.