ExpressionsMenuから表情の切り替え
完成イメージ
動画ではExMenuを利用して、Fistのハンドサインに任意の表情をセットしています。
実装方法の解説記事になりますが、以下に注意してください。
・Unity及びアニメーションコントローラーの知識はゼロのため、なんとなく動いた感じの実装になっています。
・結論から言うと、めんどくさいだけであまりおすすめはできません。表情ごとの細かいアニメーション表現もできませんし…。
プロパティの用意
ExpressionParametersに各ハンドサイン分のパラメータを追加します。
〇〇FaceType…
実行する表情を管理するパラメータです。初期値については後述するためとりあえず0で作成で良いです。Savedのチェックは入れておきましょう。
〇〇FaceSet…
ExMenu表示中のプレビュー表示の管理フラグとして利用します。
ExpressionsMenuの作成
新しくExpressionsMenuを作成します。
今回はLitteちゃんの表情コントロールのため[LitteFaceControlMenu]としました。
ハンドサイン7個分のメニューを追加し、すべてに同等の設定を行っていきます。
今回は、Fistのみ例として記載します。
名前…Menuに表示される表示名を任意で設定します。
アイコン…特に設定の必要はありません。
タイプ…Radial Puppet を選択します。
Parameter…パラメータに追加した〇〇FaceSetを選択します。
Paramater Rotation…パラメータに追加した〇〇FaceTypeを選択します。
作成した[LitteFaceControlMenu]をサブメニューとしてメインのExMenuに追加しておきます。
Animationの作成
作成するアニメーションファイルは2つです。
1つ目は、Idle時の表情アニメーション。
2つ目は、設定したいすべての表情を並べたアニメーション。
こちらは0:00~4:00に1つ目の表情、5:00~9:00に2つ目の表情という感じで、20個の表情を設定しています。
サンプルは20個入れていますが、好きに増減させて実装してください。個数に決まりはないです。
このときExMenuのFistを選択した場合、0%~4%が1つ目の表情、5~9%が2つ目の表情といったイメージになります。
ここでパラメータの初期値の話に戻ります。
20個の表情を設定しているため5%刻みで表情が切り替わります、今回はFistには4つ目の表情を初期設定したいため0.15を初期値として入力します。
(0→1つ目の表情, 0.05→2つ目の表情, 0.1→3つ目の表情)
AnimationControllerの設定
Fxレイヤーの用意については、一般的なハンドサインの設定で作成されるため、ここでは在るものとして記載します。
パラメータの追加
AnimationControllerのパラメータに作成したパラメータを追加します。
レイヤーの設定
レイヤーはデスクトップ時にも表情を切り替えれるようにLeft Handを変更していきます。
変更前の状態
Idle状態の設定
Idleを選択し、アニメーションの設定をします。
Motionにはidle時用に作成したリセット用の表情を設定します。
ビヘイビアの追加からVRC Animator Traking Controlを追加し、目と口をトラッキングに戻すように設定します。
Write DefaultsのチェックはOFFに設定しましょう。
各ハンドサインの設定
残りの7個のハンドサインはほぼ同じ設定になりますので、Fistのみ例として記載します。
Motionに表情を20個設定したアニメーションを追加します。
Motion Timeには各ハンドサインに対応する〇〇FaceTypeを設定し、パラメータのチェックをONにします。
ビヘイビアの追加からVRC Animator Traking Controlを追加し、目と口をアニメーション優先になるように設定します。
Write DefaultsのチェックはOFFに設定しましょう。
Idel状態への遷移
遷移間隔や繊維オフセットは画像の通りです。
遷移パラメータは、ハンドサインがIdleであることと各表情設定のExMenuが開いていないことを条件とするために、すべての〇〇FaceSetをFalseで設定します。
各ハンドサインへの遷移
こちらも7個のハンドサインでほぼ同じ設定となるため、Fistのみ例として記載します。
遷移を2つ用意します。
1つ目
遷移間隔や繊維オフセットは画像の通りです。
遷移パラメータは、ハンドサインがFistであることと各表情設定のExMenuが開いていないことを条件とするために、すべての〇〇FaceSetをFalseで設定します。
2つ目
ExMenuが開いている場合に遷移するように、FistであればFistFaceSetのパラメータを追加しtrueを設定します。
完成
以上ですべての設定は完了です。
おわりに
私自身が両手でのハンドサイン制御は複雑で覚えられないため、片手でたくさん表情を出せるように実装してみました。
パーソナルミラーも実装されたため、どこでも好きな表情の設定ができるようになり、使いやすくなったと思います。
冒頭で紹介したサンプルのアバター(リッテ)はパブリックアバターとしてだれでも入手することが可能となっています。リッテちゃんでいろいろなワールドをめぐっていただけると嬉しいです。
この記事が気に入ったらサポートをしてみませんか?