見出し画像

【VRChat】【Avatar3.0】杖とかのアイテムを持つ時にハンドサインを固定にするやりかた


前提

  • Playable LayersのFXとGestureが別のアニメーターであること。
    (最近のアバターは別なものが多いよね

改変手順

  1. FXとGestureのアニメーターのパラメーターに、ハンドサイン固定状態を示すパラメーターとして「FixGestureRight」「FixGestureLeft」を追加する。
    1つのパラメーターで複数のハンドサインに対応させるため、型はInt、初期値は0にする。
    ハンドサイン固定状態の値は、基本的にはVRChatのハンドサイン識別に倣う。
    (0:固定なし,1:Fist, 2:Open,3:Point,4:Peace,5:RockNRoll,6:Gun,7:Thumbs up,8:Idle,9~:独自のハンドサイン用)
     ↑0と8はハンドサイン識別と違うので注意。

    (※ここから右手の例。左手についてはRightをLeftに読み替えること)

  2. FXのアイテムを持っていない状態のステートにVRC Avatar Parameter Driverビヘイビアを追加して、タイプ「Set」、Destination「FixGestureRight」、Value「0」を設定する。

  3. FXのアイテムを持たせるためのステートにVRC Avatar Parameter Driverビヘイビアを追加して、タイプ「Set」、Destination「FixGestureRight」、Valueは固定するハンドサインの値(手順1参照)を設定する。

  4. Gestureのレイヤー「Right Hand」の各ステートへの遷移条件に、「FixGestureRight」「Equals」「0」を追加する。

  5. Gestureのレイヤー「Right Hand」の「Fist」への遷移を複製(2つを繋いでる矢印を選択してCtrl+CしてすぐCtrl+VでOK)する。

  6. 手順5で複製した遷移の名前を「Fix Fist」に変更して、「GestureRight」の遷移条件を削除して、「FixGestureRight」の遷移条件を「Equals」「1」に変更する。

図解

(以下は全てミュリシアちゃん改変の例。ミュリシアちゃんはいいぞ)

手順1. アニメーターにパラメーターを追加する。FXもGestureも両方やろう。
手順2. アイテムなし状態のステートではFixGestureを0にする。ここでは拙作のアイテム切り替えメニューテンプレートを使っているので、Radial Inventory Systemを使用している場合は…アニメーター解析頑張って!
手順3. アイテムを持たせた状態のステートではFixGestureを適切な値にする。この例では01は魔法の杖を持たせるステートなので、Fistに固定するために1を設定している。
手順4. アイテムを持っていない場合にはハンドサインを固定しないようにするための設定。これを忘れると想定通りに動かないので数が多いけど頑張って設定しよう。
手順5. 遷移の複製。矢印をクリックするとこの状態(灰色から水色になる)になるので、コピー&ペーストでOK。
手順6. ハンドサイン固定時の遷移を設定する。遷移の名前は別に変えなくてもOK(処理に影響はないので)。また、基本ハンドサイン状態の遷移については、まずFixGestureRightの遷移条件を削除して、GestureRightの条件の左辺をFixGestureRightに変更して条件をEqualsにした方が右辺の設定ミスがないかもしれない(Idleの場合は右辺は8になるので注意)。

実際にやってみた


ハンドサインはRockNRollだが手はしっかりと杖を握っているのがお分かりいただけるだろうか。ミュリシアちゃんのような、GestureがAny Stateから遷移しないパターンの場合、アイテムを持ち替えた後で一度ハンドサインを変更する必要がある(ハンドサインに変化があった時にEntryからの遷移が開始されるらしい)ので注意。

いいなと思ったら応援しよう!