はじめに
今回はVRChatでFx Layerを使って1つの表情を実装する方法を紹介します。
この記事を見る事でFX Layerとパイメニューからアニメーション再生する方法が学べます。
注意点
またこの記事は既存のVRChatのFx Layerを理解するための記事です。
この記事の方法では1つの表情しか登録できません。
基本的には『表情固定メニューテンプレート』を使う事をおすすめします。
使い方はこちらで紹介しています。
・既存のFx Layerの仕組みを理解したい。
・パイメニューからアニメーションを再生するまでの仕組みを知りたい。
・仕組みを理解してからツールを使いたい。
という方のみご覧ください。
Fx Layerについて
Fxレイヤーは非HumanoidボーンのTransform=ボーンの動き変形を記録出来ません。
しかし、非Humanoidボーンなら動きが記録できます。
そして、gestureレイヤーでは非Humanoidボーンなら動きが記録できません。
これは公式のドキュメントと矛盾します。
何故矛盾するかについてはこちらをご覧ください。
前提条件
下記の3つを使えることを前提に進めます。
・VRC Avator Descriptor
・Playable Layers
・パイメニュー(Expressions Menu)
使い方はこちらをご覧ください。
下記のようなVRC Avator Descriptorとパイメニューが設定された状態で始めます。
VRC Avator Descriptorの設定はこちら
パイメニューの作り方はこちら。
これから作る物について
パイメニューからアニメーションを再生する機構を作ります。
・赤色=ラジアルメニューの表示
・緑と黄色=ラジアルメニューをアバターと同期
・オレンジ=入力をパラメーターに変換
・水色=Animatorによる入力受け皿
・白色=パラメーターによる挙動設定(条件分岐)
・藤色=アニメーションの再生
文字潰れ対策、画像拡大用Twitter。
これでパイメニューからの入力で表情を変えることができます。
VRC Avator Descriptorとパイメニューが設定された状態から始めるのでこの部分だけを作ります。
パラメーターの設定
Hierarchyでアバターを選択。
Inspectorを確認。
Parametersの中のデータをクリック。
Projectでアバターに割り当てたExpression Parameterを選択。
Inspectorを確認。
Addでパラメーターを追加。
名前をFx_Faceに変更(※ここの名前は後々重要になります。)
TypeをBoolに変更。
Defaultのチェックを解除。
Saveのチェックを解除。
Hierarchyでアバターを選択。
Inspectorを確認。
Menuの中のデータをクリック。
Projectでアバターに割り当てたExpression Menuを選択。
パイメニューの記事で設定したFx_のコントロールを開きます。
TypeをToggleに変更。
ParameterをFx_Face, Boolに変更。
これでメニューとパラメーターがつながりました。
Fx Layerの設定
Hierarchyでアバターを選択。
VRC Avatar Descriptor → Playable Layersを開きます。
FXに割り当てたコントローラーをクリック。
Projectで強調表示されたコントローラ―をダブルクリック。
Animatorを開きます。
Layers上で+ボタンを押します。
名前をFx_Faceなどの分かりやすい名前に変更。
右上の歯車ボタンを押します。
Weightを1に変更。
Parametersを押します。
右上の+ボタンを押します。
Boolを選択。
名前をFx_Faceに変更
ここの名前はパラメーターの名前と同じにする必要があります。
これでパラメーターをレイヤー接続+レイヤーに割り当てたコントローラーに接続できました。
Fx Layerの設定が完了です。
表情アニメーションの用意
必要なアニメーションは2つです。
・初期状態の表情
・変更したい表情
今回は幽狐さんのモデルに既にあるアニメーションを使います。
幽狐さんファイルのAnimationを開くと出てきます。
再生ボタンを押します。
Playモードにします。
Hierarchyで幽狐さんのモデルにアニメーションをドラッグ&ドロップ。
表情を確認。
変更したい表情を決めます。(今回はThumbsUpを使います)
Default Faceをドラッグ&ドロップ。
初期状態の表情がDefault Faceな事を確認。
表情確認ができればもう一度再生ボタンを押します。
Playモードを解除します。
製法上できたコントローラーを削除します。
※先ほどHierarchyで割り当てたモデルと同じ名前です。
これで表情アニメーションの用意が完了です。
表情アニメーションの自作したい方はこちらをご覧ください。
表情アニメーションの設定
Hierarchyでアバターを選択。
VRC Avatar Descriptor → Playable Layersを開きます。
FXに割り当てたコントローラーをクリック。
Projectで強調表示されたコントローラ―をダブルクリック。
Animatorを見ます。
LayersがFx_Faceなのを確認。
右側のグリッドがある所にDefault Faceのアニメーションをドラッグ&ドロップ。
追加でThumbsUpのアニメーションもドラッグ&ドロップで追加。
DefaultFaceを右クリック。
Make Transitionを選択。
ThumbsUpをクリック。
すると白い線で繋ぐことができます。
同様の方法でThumbsUpからDefaultFaceに線を繋ぎます。
この線は選択できます。
そしてInspectorに情報を持ってます。
ThumbsUpに向かう線を選択。
Inspectorを確認。
時間軸のバーで切り替わりタイミングを調整。
Conditionsの右下の+ボタンを選択。
左側をFx_Face、右側をtrueに変更。
Has Exit Timeのチェックを解除。
これでFx_Faceの入力がONの時ThumbsUpが実行されます。
DefaultFaceに向かう線を選択。
Inspectorを確認。
Has Exit Timeのチェックを解除。
切り替わるタイミングを調整。
ConditionsでFx_Face、Falseを選択。
これでFx_Faceの入力がOFFの時Default Faceが実行されます。
DefaultFaceの箱を選択。
Write Defaultsのチェックを解除。
ThumbsUpの箱を選択。
Write Defaultsのチェックを解除。
これで条件分岐とアニメーション再生の設定が完了です。
VRChatにアップロード。
すると表情を切り替えることができます。
以上で表情の切り替えが完了です。
2つ以上の表情について
この方法では2つ以上の表情を設定すると干渉するなどの問題が起こります。
複雑な条件分岐の設定などが非常に手間です。
そこでこちらのツールを使う事をおすすめします。
使い方はこちらをご覧ください。
まとめ
今回はFx Layerを使って表情を追加する方法を紹介しました。
またFloatを使って徐々に動作を切り替える方法についてはこちらで解説。
ぜひこちらもご覧ください。
コメント