これを見て欲しいのじゃ!!
このお写真がどうしたの??
カメラ目線にしたかったのじゃ!
じゃぁExMenuを使った瞳制御を使ってカメラ目線を作っちゃおうか!
はい、今回はケーキちゃんがもっとカメラ目線にしたいということで
アバター3.0の機能、ExMenuを使った瞳制御のやり方を書いていこうと思います。
また今回作っていく上でのやり方が瞳を上下左右に動かすシェイプキーが入ったモデルの場合に限ります。
(ボーン制御ではなくシェイプキー制御ということ)
準備するもの
今回はアバター3.0機能のFXとExMenuを使用していきますのでそれらのコントローラーを用意していきます。
VRCSDK3がインポートされたプロジェクトにて、”VRCSDK”→”Exanples3″→”Animation”→”Controllers”へ行き、”vrc_AvatarV3HandsLayer.controller”を複製(Ctrl+D)し任意のフォルダに移動しましょう。
ついでに名前もFXなどにしておくとわかりやすくて良いです。
移動したFXと同じフォルダで右クリックし”Create”→”VRChat”→”Avatars”から”Expression Parameters”と”Expressions Menu”も作成しておきます。
(名前はEx_ParとEx_Menuとしました)
以上3つのファイルを作成したら、アバターの”VRC Avatar Descriptor”の”Platable Layers”と”Expressions”に割り当てます。
次に瞳を動かすためのシェイプキーアニメーションを各5つ用意します。
Idle・・・通常時、真正面向き
Up・・・上向き
Down・・・下向き
Right・・・右向き
Left・・・左向き
アニメーションクリップの中身はこんな感じで、Idleでは上下左右のシェイプキーの値が全部0の状態で入っております。
アニメーションクリップを作る際はVRCAvatarEditorを使うと楽に作れます!
以下の記事を参考にしてみてください♪
“VRC Avatar Editor”
作業手順
値やらアニメーションを設定をしていくよ♪
FXの設定
ここからは実際にVRCでの瞳を制御する状態遷移を作っていきます。
まずは準備編で作ったFXをダブルクリックし”Animator”タブを開きます。
タブが開いたら、Parameterタブを開きリスト上にある”+”ボタンを押してFloatを選択し、”Eye_X”と”Eye_Y”を作りましょう。
Animator内タブを”Layers”に戻してリスト上の”+”を押して”Eye_Motion”を作成します。
作成したら右側の歯車マークを押し”Weight”を1にしましょう。
次にEye_Motion内のどこかで右クリックし、”Create”→”From New Blend Tree”を選択しBlend Treeを作成する。
出来たオレンジ色のBlend TreeをダブルクリックすることでBlend Treeの設定画面に行きます。
設定画面が開いたら、”BlendTree”をクリックしてInspector内を変更していきます。
Blend Typeを”2D Freedom Cartesian”、Parametersに”Eye_X”と”Eye_Y”を入れる。
少し下のリストの”+”から”Add Motion Field”を5項目分作ります。
赤枠のようにPosX,PosYを設定し、Motion欄に準備で作成したアニメーションクリップを入れて完了です。
Ex_Menu・Parametersの設定
準備編で作成したEx_ParをクリックすることでUnity内のInspectorに情報が出てきます。
その中からParametersの”Add”をクリックし画像赤枠のように”Eye_X”,”Eye_Y”をFloatで作成しましょう。
次にEx_Menuをクリックし同じくInspectorを見ましょう。
Inspector内で”Ass Control”を押しCOntrol内容を追加しましょう。
内容は赤枠と同じようにしてください。
作業量は程よいくらいじゃな
あとはアップロードしてアクションメニューから動くか確認だね♪
瞳制御ができたのじゃ
(その内記事にしますんじゃ) pic.twitter.com/wDpITxvdwt— ケーキ🍰メタバース狐JK (@keiki002) February 17, 2022
目は口ほどになんちゃら・・・
意図して外すこともできるから用途は色々あるかもね♪
なお、今回の設定ではトラッキングコントロールなどを入れていないため、VRCアイトラッキングとの干渉が少しあります。
まぁ、おいおいそこらへんも調整できればなぁと思いながら今はこれでご勘弁を・・・
(ボーン制御もいつかやりたい!)