VRChat 日本wiki - アイトラキングの作成

アイトラッキングとは

VRChatアバターのアイトラッキングは自分のアバターの目線が相手の方向を向いてくれる設定のことです。
トラッキングと聞くと自動で追跡してくれるように思えますがそこまで高性能な機能ではなく、
自動的に目線が合う仕組みとります。

設定方法

各自モデリングソフトで設定を行います。

・メッシュの名前を「Body」にし、瞬き用のシェイプーを4つ用意する
・決まったボーン構造、名前にする

メッシュの設定

アイトラッキングさせたいメッシュ(主に顔)を「Body」という名前にします。
大文字小文字も区別されるので注意してください。
顔だから「Face」と名前をつけているとアイトラッキングできないので注意してください。

アイトラッキングを設定すると必然的に瞬きのシェイプキーが必要なので用意してください。
「Basis」を除いた上から4つのシェイプキーが瞬きとして使われます。
このシェイプキーは名前の指定はありません。

必要なシェイプキー
・blink_left(左側瞬き)
・blink_right(右側瞬き)
・lowerlid_left(下左側瞬き)
・lowerlid_right(下右側瞬き)

よく使われる手法(販売アバター等)として左右の瞬き2つを作り、下側2つの瞬きはダミーにします。
ダミーとは0.01とわからないくらい微量に頂点を動かすことです。
ダミーを作る理由は頂点を動かさないシェイプキーを作成するとFBXでエクスポートした際、
シェイプキーが消えてしまい、瞬きと同時に口(リップシンク用のシェイプキー)が動いてしまうことになるからです。

ボーンの設定

メッシュの設定同様、大文字小文字が区別されます。
次のようにボーンを設定します。
脚や腕のボーンの名前は適宜決めて問題はありません。

Armature
 ┗Hips
  ┗Spine
   ┗Chest
    ┗Neck
     ┗Head
      ┣ LeftEye
      ┗ RightEye

(参考:Blender上で設定されたアバター例)

ウエイトの設定

LeftEye、RightEyeにウエイトをべた塗りすると目が飛び出したり、白目をむいてしまうことがあります。
ボーンと目の位置関係にもよりますが、0.2〜0.5くらいウエイトを塗り、あとはHeadのウエイトを塗ることで目の動きを制御できます。

Unityでの設定

上記で作成したアバターをUnity上でHumanoid設定を行います。


シェイプキーが入った「Body」メッシュをFace Meshに設定します。



アバターをアップロードし調整を行い完成です。