モーション再生終了のコールバック(Java)

[最終更新日:2022/10/06]

Cubism SDK for Javaは現在alpha版となっています。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.