この記事では、VRChatのAvatar3.0導入後にINDEXコントローラーでpiece✌時の指の形が「ちょりーっす」や「魔貫光殺砲」になるのを、正常なピース✌サインに直す方法をご紹介します!
記事内容はneu様がご紹介されていたものを、私なりに分かりやすくまとめた内容となっています。個人的にも大変参考にさせて頂きましたのでこの場を借りて感謝を…!
avator3.0ならindexコンでもキレイにピース✌ができるようになったよー♡
Idleを含めた全部のStateにVRCAnimaitorTrackingControlを追加しないとちゃんと動かないのが罠だった。
IdleはTrackingにしておけば従来通りに指をワキワキすることもできるのでindexコンが最強になったぜ。 pic.twitter.com/htDU8EkCWm— neu🍀 (@neu00253) August 15, 2020
この方法では、コントローラーが特定のハンドサイン(今回の場合はpiece)になったときに、設定したアニメーションが再生されるように変更します。
メリットとしては、アニメーションを使用して指の形を指定するシンプルな方法のため、Blender等を通して指のボーンを直接弄ったり変更を加える必要がありません。
またUnity内でも元ファイルを弄らずに済むことから、やり方さえ覚えてしまえば誰でも手軽に導入できます。
デメリットとしては、該当のハンドサイン時にはOculusやVIVEコンのように指ががっちりと固定されるため、INDEXコン特有の指を自由に動かすことが出来なくなります。(設定したハンドサイン時のみ)
以上、メリット・デメリットを理解した上で導入することをおすすめします!
設定方法
Assets>VRCSDK>Examples3>Animation>Controllers の中にある「vrc_AvatarV3HandsLayer.controller」を弄ることで、ハンドサインを固定するようにします。
オリジナルを弄ると問題が起きた際に復元できなくなるため、事前にCtrl+Dなどで複製したものを触るようにしましょう。
Animatorタブを開き、左にあるLayersから「Left Hand」を選択します。
この項目はその名の通り、左手のハンドサイン時にどのような挙動を取るのかを設定する項目です。
画像のように《Idle》~《Thumbs up》までのステートを選び、「Add Behaviour」から「VRC Animator Tracking Control」コンポーネントを追加します。
- Idle
- Fist
- Open
- Point
- Peace
- RockNRoll
- Gun
- Thumbs up
「VRC Animator Tracking Control」が追加できたら、今度は《Peace》ステートを選びコンポーネント内にある Left Fingers のAnimationに☑を入れます。
これで、Peace✌のハンドサイン実行時に設定されたアニメーションが再生されるようになりました。
再生アニメーションの指定は上部の「Motion」から好きなもの選択して入れることができます。
画像ではPeaceを入れていますが、アニメーションが用意できていない人はデフォルトの「proxy_hands_peace」を選んでおけばとりあえずOKです。
続いて、《idle》ステートからLeft Fingers のTrackingに☑を入れます。
ここにチェックを入れないとアイドル時に指をわきわきすることが出来なくなるので、必ずチェックを入れるようにしましょう。
これで左手の設定は完了です。
上記の手順で、右手にも同様のコンポーネントを入れます!
Right Handも同様の手順でコンポーネントを追加していきます。
このとき、《Peace》ステートのAnimationの☑と《Idle》ステートのTrackingの☑は、「Left Fingers」ではなく「Right Fingers」を選びます。
これで右手のハンドサイン設定も完了です。
最後に、複製した「vrc_AvatarV3HandsLayer.controller」をアバターの「VRC Avatar Descriptor」の▼Playable Layers にある「Gesture」に割り当てます。
あとはアバターをアップロードして実際にVRCでの挙動をチェックしましょう。
VRCで挙動を確認する
ハンドサインでピースをしたときにPeaceで設定したアニメーションが再生されていれば正常に動作しています。
デフォルトの「proxy_hands_peace」を指定している場合は、上記の画像のように表示されます。
その他、指をわきわきしてみて全ての指、ハンドサインが正常に動作するかをチェックしてみましょう。
これでINDEXコントローラーでもPeace✌ができるようになりました!
やーったーーね!