表情・ポーズを切り替える

ここでは、UnityのMecanimを用いて表情変化・服装変化を行うための説明ページとなっています。

概要

2.1では表情を変えるためにexpression.json、Pose.jsonがありましたが、3.0では廃止されました。
3.0ではUnityの機能であるMecanimを用い、それに代わる実装が可能になっています。
表情と服装のどちらも、Animatorに作成したBlendTreeの値をスクリプトから操作することで表現します。

詳細

2.1ではexpression.json、Pose.jsonがありましたが、3.0では廃止されたためありません。
そのため、表情・服装の変化はUnityの機能であるMecanimを用いて行います。

今回は、モデルにアニメーションを適用させた状態から表情の切り替えを行います。
モデルにアニメーションさせるまでは記事:アニメーションの再生をご覧ください。

 

ここでは、AnimatorControllerのレイヤーの名前を“Motion”に変更しています。

この状態で、AnimatorウィンドウのLayersに新規レイヤーを作ります。
赤枠内の+ボタンを押し、新規レイヤーを作成し、名前を“Expression”にします。

 

その後、Expressionレイヤーを選択した状態で“右クリック”→“Create State”→“From New Blend Tree”を選択し、新規BlendTreeを追加します。

 

追加後、BlendTreeをダブルクリックし、BlendTreeの編集画面へ移動します。

 

BlendTreeクリック後、InspectorウィンドウのMotionの+ボタンを押し、“Add Motion Field”を押します。
そうするとブレンドするためのモーションを追加する項目が現れます。
今回は2つの表情をブレンドするのでもう一度“Add Motion Field”を押し、モーションの項目を増やします。

 

その後、以下のように2つの表情を適用させます。

 

このExpressionレイヤーのWeightと内部のBlendをスクリプト上から変更します。
新規でC#スクリプトを作成し、名前を“BlendExpression.cs”とします。

 

コードを記述後、koharuを選択し、“Add Component”から“BlendExpression”と検索し、スクリプトを追加します。
これでスクリプト上から表情の切り替えが行えるようになりました。

 

また、同様にBlendTreeのWeightを取得し、スクリプト上から数値を変更することで、服装を変更することができます。

Copyright © 2018 Live2D Inc.