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

[最終更新日 : 2020/01/30]

 

概要

Cubism SDK for Webでは、モーションの再生終了時にコールバックによるイベントの取得がおこなえるようになりました。

サンプルでは、コールバック関数で再生終了を通知するログテキストを出力しています。

 

コールバックの実装

今回はモーションの再生終了時にコールバックによる処理をおこなうため、モーションを管理する抽象クラスである
Framework/src/motion/acubismmotion でコールバックを扱えるように実装をおこなっています。

Tips

サンプルでは、以下の状態だとコールバックが呼び出せませんのでご注意ください。

  • 再生中のモーションが「ループ」として設定されているとき
  • コールバックにnullが登録されているとき

 

コールバック関数の利用

コールバック関数で実際に処理させたい内容を実装します。

サンプルでは、モーション再生終了を通知するログテキストを LAppPal.printMessage() を使用して出力するように実装しています。
モーション再生終了時の処理を変更したい場合は、下記関数の実装を変更してください。

 

 

また、コールバック関数の登録はモーションデータを読み込むFramework層の CubismUserModel.loadMotion() 使用時にモーションの生成と同時にコールバック関数を渡しています。
既にモーションがある際は 「コールバックの実装」で紹介した setFinishedMotionHandler() を使用しております。

サンプルでは、タップイベントを取得する OnTap() 実行時に呼び出される startRandomMotion() からコールバック関数を渡しています。

 

また、実際にモーションを再生しているのは CubismMotion.doUpdateParameters() となるので、CubismMotion にコールバック関数を渡せるように実装をおこなっています。

 

 

実装の発展について

サンプルではモーションの再生終了のみの実装ですが、これらの実装を発展させることにより、モーションの再生終了後にコールバック関数で非同期処理などが利用できるようになったり、
コールバックを適用したい実際の処理から関数を逆引きすることによって、モーション再生終了以外の箇所にもコールバックの実装が可能になります。

© 2010 - 2020 Live2D Inc.