LoginSignup
3
2

VRChat VRCFaceTracking5.x完全対応 アイトラッキング 作成方法

Last updated at Posted at 2024-03-05
 

2024Mar09 Write Defaultesに関する記載を追加
 
 
VRChat用のOSCソフトは複数ありますが、ここでは最も寡占してると思われるVRChatFaceTreackingのバージョン5.xの変数に対応したアイトラッキングの実現方法を書いていきます。

VRCFaceTrackingは以下からダウンロードできます。
https://docs.vrcft.io/docs/vrcft-software/vrcft
インストール等については数多の記事があるのでそちらを参考にしてください。
 
VRCFaceTrackingですが、バージョンが4.xから5.xに上がっています。今のところ4.xの変数でも動きますがレガシー扱いされていますのでここでは全て5.xの変数を用います。
 
 
 
 
 
 
#下準備
 
VRChatにはデフォルトで疑似的に目を動かしているように見える機能「EYE Look」が搭載されています。これを無効にします。無効状態では「Enable」と表示されます。
 
次にExpressionのメニューとパラメータを設定します。何も入っていない場合はデフォルトのものを入れて下さい。何か入っている場合はそのままでいいです。
 
図1.png
 
 
 
 
 
 
#目の上下左右
 
上下左右についてはBOOTHで無料公開してますので面倒な方はそっちをダウンロードしてください。
https://nekogahora.booth.pm/items/5493686
BOOTH.png
 
 
EXpressionParameterに以下のように変数を追加します。
 
v2/EyeLeftY:左目上下軸 -1.0(下)~1.0(上)のFloat変数
v2/EyeLeftX:左目左右軸 -1.0(左)~1.0(右)のFloat変数
v2/EyeRightY:右目上下軸 -1.0(下)~1.0(上)のFloat変数
v2/EyeRightX:右目左右軸 -1.0(左)~1.0(右)のFloat変数
になります。登録の順番は自由です。上下軸をどちらかの目の変数1つで共用している例を見ますが、使っている側の目をウインクで瞑ると目が動かなくなるのでお勧めしませんです。
 
図2.png
 
マウス右クリック、Creat-> Animation Controllerを選びAnimation Controllerを作ります。分かりやすいようにここでは、Eye Move Animator Controllerという名前に変えておきます。
 
図3.png
 
 
Eye Move Animator Controllerを以下の2か所に設定します。
図3p5.png
 
 
Animationタブを開きます。
図4.png
 
 
Hierarchyのアバターを選択した状態で、AnimationタブのCreateを押します。
図5.png
 
ここでは5つのAnimationを作成します。
##StraightL (左目まっすぐ)
Add Propertyを押し、AnimatorにあるLeft Eye Down-UpとLeft Eye In-Outを追加します。
図6.png
 
横軸1:00にあるマーカーを削除します。
図7.png
 
 
 
##Horizontal_LeftL(左目を左)
以下図参照
図8.png
ここで4としている数値を大きくするとより大きく目が左へ動きます。どの程度動かすと最適かはアバターの目の形状によるのでAnimationを再生して調整してください。これ以降に出てくるAnimationの数値も同じで個々に調整してみてください。
 
 
 
##Horizontal_RightL(左目を右)
以下図参照
図9.png
 
 
 
##Vertical-down L(左目を下)
以下図参照
図10.png
 
 
 
##Vertical-up L(左目を上)
以下図参照
図11.png
 
 
 
右目も同様にAnimator.Right Eye In-OutとAnimator.Right Eye Down-Upを使って作成します。
 
 
最後に作ったAnimationを選びLoop Timeのチェックを外しておきます。
図12.png
 
 
AnimatorタブでBase Layerにある作ったAnimationの箱を全て削除します。
図13.png
 
Parametersタブで先ほどExpressionParameterに追加したパラメータをFloatで追加します。
図14.png
 
Projectsタブ上でマウスを右クリックしAvator Maskを作成します。
図15.png
名前をAvator Mask Headにします。
InspectorでHumanoidを開き頭だけを緑にします。
図16.png
 
 
AnimatorタブのLayerでEye Movement LとEye Movement Rのレイヤーを追加します。Weight=0.5、Mask=無し、Blending=Overrideにします。
 
Base LayerのMaskに先ほど作成したAvator Mask Headを設定します。
図18.png
 
Eye Movement Lを選びマウス右クリックでFrom New Blend Treeを選びます。
図19.png
 
Blend TreeをクリックするとInspectorが以下のように表示されます。Write Defaultsのチェックを外し、MotionのBlendTreeをダブルクリックします。
追加図1.png

 
以下の画面になるので、これを以下のように設定します。
図21.png
 
 
ここでXとYの値は-1.0~1.0ですが、そこまで大きな値は出ないので目の動きに合わせて小さめに調整してください。左がマイナスで右がプラス、上がプラスで下がマイナスです。
 
 
右目もこれの応用で以下のように設定してください。
図22.png
 
 
最後にアバターのAnimatorに設定したAnimatorを外します。目の上下左右はこれで設定完了です。
図23.png
 
 
 
 
 
 
 
#ウインクと見開き
 
VRCFaceTrackingのv2/EyeLidLeftとv2/EyeLidRightの2つの変数を使います。0.0~1.0に変化する変数ですが、値によって異なったはたらきをします。
 
0.00:目を完全に閉じた状態
0.75:目を完全に開いた状態
0.75以上1.00:目を大きく見開いた状態
になります。
 
まず、ExpressionParameterに変数をFloatで追加します。
図1.png
 
AnimatoinはFXレイヤーに追加していきます。どんなアバターでもすでにFXにAnimatorが設定されていると思われますので、そこへ追加していきます。
 
アバターのAnimatorにFXへ設定されているAnimatorを設定します。
図2.png
 
目の上下左右の時と同じようにAnimationを作成していきます。
 
からっぽのAnimationをEmpty-Animationという名前で作成します。
図3.png
 
アバターの顔のシェイプキーから左目閉じを探し、Eye_Left_BlinkというAnimationの名前で以下のような設定で作成します。
図4.png
 
右目はEye_Right_Blinkという名前で同じように作成します。
 
左右目共に目をクワッ!と見開いた状態を顔のシェイプキーをいろいろブレンドしてEye_Wideという名前でAnimationを作ります。アバターによってシェイプキーが異なるのでご自身でいろいろ研究してみてください。
図5.png

ウインクと見開きで使ったすべてのシェイプキーをリセットするAnimationを作成します。名前はResetとします。これはWrite DefaultsをOFFにするために必要になります。
ここでの例ではこのようになります。
Reset.png

最後に作ったAnimation全てを選びLoop Timeのチェックを外しておきます。
 
 
 
FXに設定されたAnimation ControllerのParameterタブを開きv2/EyeLidRightとv2/EyeLifLeftをFloatで追加します。
図6.png
 
LayerタブでLeft EyeとRight Eyeを追加します。
図7.png
 
Left Eyeレイヤーでマウスを右クリックし、From New Blend Treeを選びます。Inspectorに下図のように表示されるます。
Write Defaultのチェックを外しておきます。赤で囲ったBlend Treeをダブルクリックします。
図8.png

 
Blend Treeの中身が表示されますので、変数を設定し、+を押してMotionを追加し下図のようにします。
図9.png
 
 
Right Eyeレイヤーは同じように以下のようになります。
図10.png
 
 
 
Write Defaultを外しているのでリセット処理が必要になります。先ほど作ったReset Animationを一番最初のLayerのデフォルトステートに設定します。
ここではAllPartsレイヤーを選び、次にデフォルトのステートを選びます。Inspectorに設定されているMotionをResetに変えます。
デフォルトステート.png
リセットに変える.png

Write DefaultsがVRChatで非推奨になってからさほど経っていないので、アバターによってはWrite DefaultsがONとOFFで混在するかもしれませんが全部OFFにしたい場合は各種ツールがBOOTH等に出ていますのでそれを試してみてください。

最後にアバターのAnimatorにセットしたAnimation Controllerを外します。
図11.png

以上でアバターのセットアップは終了です。

3
2
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
3
2