表情モーションについて

最終更新[2018/05/02]

 

表情モーションとは

表情もモーションの一種として扱われます。

ACubismMotionクラスを継承しているので、通常のモーションと同様にCubismMotionManagerクラスで管理できます。
表情データ(.exp3.jsonファイル)の作成は、.motion3.jsonファイルをCubism3 Viewer (for OW)に表情用モーションとして読み込ませ、変換して出力する必要があります。
.motion3.jsonファイルを読み込ませたときはモーションの初期値が表情の目標値として設定されます。
「Animatorで表情を作成」
「表情の設定と書き出し」

 

表情は、モーションと比較すると以下の違いがあります。

  • 時間経過に基づく値の変化がありません。
  • パーツに対して影響することができません。
  • 計算方法(加算、乗算、上書き)の指定ができます。

 

インスタンスの作成(.exp3.jsonの読み込み)

表情はACubismMotionクラスから派生したCubismExpressionMotionクラスを使用して再生させます。
CubismExpressionMotionインスタンスを生成するには、CubismExpressionMotion::Create関数を使用します。

 

 

表情の管理クラスの作成

表情の適用は、CubismMotionManagerクラスを使用します。
しかし、通常のモーションと効果を併用させるため、別のインスタンスとして作成する必要があります。

 

 

表情の再生とその仕組み

モーションの再生と同様に、表情の再生には管理クラスに対して再生命令をだします。

 

表情の各パラメータの指定には計算方法の指定が可能です。
加算、乗算、上書きの三つの計算方法があります。

 

加算

計算方法の指定が”Add”と示されたとき、または計算方法の指定がない場合この方法が選ばれます。
適用時のパラメータの値にそのまま.exp3.jsonファイルに示された値が加算されます。
モーションではあまり操作されないパラメータに対してや、
そのままスライドさせて影響させたいときに使用します。
Cubism3 Viewer (for OW)で値を書き出すときにはパラメータの初期値から設定値への差分が設定されます。

乗算

計算方法が”Multiply”と示されたときに選ばれます。
適用時のパラメータの値にそのまま.exp3.jsonファイルに示された値が乗算されます。
適用後の加算、上書きにはこの乗算が影響しないことに注意してください。
モーションの動きをそのまま増幅したり、縮小させたりするときに便利です。
Cubism3 Viewer (for OW)で値を書き出すときには設定値がそのまま設定されます。
-30~30のモーションに30を掛けると-900~900のモーションになってしまうので、
モーションと表情の値の組み合わせには注意して設定をおこなってください。

上書き

Cubism3 Viewer (for OW)では設定できませんが、計算方法を”Overwrite”と指定することで利用が可能となります。
適用時のパラメータの値を無視し、そのまま値が上書きされます。
モーションなどの動きを無視したい場合に有効です。

 

演算方式の違いによる表現の違い

両目の開閉を設定値は0.4にして、それぞれAdd、Multiply、Overwriteの表情を適用した例です。
Addでは毎描画ごとに-0.6されるため、すぐに開閉の下限に達するので、しばらく目が閉じたままになります。
Multiplyでは波形全体に値が乗算されるため、まばたきがきれいに動作しています。
Overwriteではまばたきが無視されまばたきしていません。

モーションなどと組み合わせたとき、表情の計算一つでニュアンスを変えることができます。

 

表情の適用

モデルへの適用は管理クラスのCubismMotionManager::UpdateMotion関数やMotionQueueManager::DoUpdateMotion関数で行います。

モーションや表情、他のパラメータ操作要素の計算順は表現に大きく影響します。

「パラメータについて:パラメータの計算順序の重要性」

適用の順番には十分注意してください。

Copyright © 2018 Live2D Inc.