06. 表情モーション

表情モーションとは
表情もモーションの一種として扱われます。
Live2D ライブラリの AMotion を継承しているので、通常のモーションと同様に MotionQueueManager で管理できます。
通常のモーションは値を setParamFloat でセットしますが、表情モーションでは値を足すことで相対的な変化を設定します。

例えば、パラメータAが0から1まで変化する通常のモーションがあるとして、表情モーションとして0.5が設定されているとします。
その場合、通常モーションと表情モーションが同時再生されることでパラメータAは0.5から1.5まで変化することになります。
( パラメータが最大値を超える値の場合は最大値に調整されます。 )


仕組み

パラメータのIDと値をセットすることでAnimatorでつけた絵を再現できますが、それは通常のモーションでもできます。
表情モーションはあくまで差分をとって相対的な変化をつけるモーションになります。
JSONファイルから読み取ったパラメータ値をそのまま設定するのはなく、デフォルト値を引いた値を現在のパラメータに足しあわせます。

例えば特定の表情の時のパラメータは以下の計算で設定されることになります。

パラメータの値    = 通常モーション値 + 表情値
                  = 通常モーション値 + ( 表情パラメータ値 - 表情デフォルト値 )


JSON設定ファイルについて

設定ファイルは JSON ( JavaScript のオブジェクト記述法を元にしたデータ記述言語)で記述されています。
そのため、テキストエディタでの確認や仕様の拡張が容易になっています。

仕様


SDKバージョン0.9以前と1.0以降との違い

表情の設定は、Live2D SDK のバージョン0.9以前と1.0以降とでやり方を変更しています。
0.9以前では、表情一つに対して一つの表情用JSONファイルを用意していましたが、
1.0以降では、必要な表情を一つの表情用JSONファイルに入れてあるものを使用します。

0.9以前のバージョンのSDKを、1.0からの設定方法に修正するには こちら を参照してください。