CRIWARE Unity Plugin Manual  Last Updated: 2024-04-24
Animatorによる制御方法
本節では、Unity Animator/AnimationClip 連携機能を用いたリップシンク実装方法を解説します。

1.基本的な使い方

1.1 シーンへの Animator の追加

キャラクターに対して Animator をアタッチし、AnimationController を登録します。
既に利用されている Animator/AnimationController に対して 1.2 以降の追加を行う方法でも問題ありません。
exp4u_adxlipsync_animator_component.png
Animatorコンポーネント

1.2 AnimationController へのレイヤーの追加

登録した AnimationController を Animator ウィンドウで表示し、制御対象となる解析結果出力値に対応したレイヤーを追加します。
exp4u_adxlipsync_animator_animationcontroller.png
Animatorウインドウ
各レイヤーに対して歯車マークをクリックし、以下の設定を行います。
  • Weight:1.0
  • Blending:Additive
exp4u_adxlipsync_animator_layer_settings.png
LayerSettingsウインドウ

1.3 Animation の追加

プロジェクトに対して個別の Animation を追加し、各レイヤーにステートとして登録します。
このとき、非制御状態で各リップシンク Animation が再生されてしまうのを防ぐため、Entry からの遷移先は空のステートを用意しておくことをおすすめします。
exp4u_adxlipsync_animator_animationclips.png
exp4u_adxlipsync_animator_animation_state.png
ステート遷移設定

1.4 AnimationClip の編集

各リップシンク Animation に対して、Animation ウィンドウを表示し、制御対象のブレンドシェイプなどをプロパティとして追加します。
0:00時刻での値を閉じ口、1:00時刻での値を最大開き口として、カーブを記述します。
exp4u_adxlipsync_animator_edit_animationclip.png
AnimationClipの編集

1.5 ADX LipSync コンポーネントへの登録

シーンに配置した CriLipsDeformer コンポーネントに対して以下の設定を行います。
  • MorphTargert:
    • Animator によるモーフィングを実装したクラス
  • Target:
    • 追加した Animator
  • (AIUEO) State Hash:
    • (AIUEO)に応じた出力値と AnimationController に追加した各レイヤーとステート名の紐付け
exp4u_adxlipsync_animator_lips_deformer_component.png
CriLipsDeformerコンポーネントへの設定
以上の設定を行えば、解析結果に応じて Animation が再生されます。

2.応用的な使い方

AnimationClip による制御が行えることから、出力結果からブレンドシェイプへ適用する際のスケーリングを行ったり、複数のブレンドシェイプを同時に制御することができます。
例えば、特徴的なしゃべり方なため、「え」が「い」と誤判定されてしまうケースにおいて、画像のように「い」の出力値に対して「い」と「え」のブレンドシェイプを混ぜて表示する、などの柔軟な対応が可能です。
exp4u_adxlipsync_animator_advanced_clip_edit.png
AnimationClipの応用例
また、プロパティとして登録できればブレンドシェイプに限らず制御が可能なため、例えば Live2D モデルのパラメーターを制御する際にも利用できます。