【VRChat】座り時の高さを自由に調整する VRCSDK3の2021.01.28版

こちらの記事の内容を、SDK 2021.01.28.19.08で試したところ
いくつか挙動が変わってしまっていたようなので、
その相違点と解決策についてまとめてみました。

・vrc_AvatarV3SittingLayerの構造が変わっている

元記事の「6.アニメーションコントローラの編集」ではvrc_AvatarV3SittingLayer.Controller
を複製したコントローラーを使用しているのですが、
元記事の画像ではノードの内容が
→SittingPose→RestoreTracking→
という繋がりになっていますが「SDK 2020.01.28.19.08」では
DisableTracking→PoseSpace→UpperBodyTracked→RestoreTracking

画像1というつながりになっています。

元記事の「SittingPose」に該当するノードは
「UpperBodyTracked」で代用できそうなので、
「UpperBodyTracked」を選択して「Inspector」タブの「Motion」に、1で作成したアニメーションファイルをセットして、そのまま記事の内容通りの対応で問題なかったです。

・調整中の口パクを許可しておくと良い

元記事ではSittingPose EditのVRC Animator Tracking Controlの設定は全てをアニメーションに設定していますが、「Eyes & Eyelids」と「Mouth & Jaw」はトラッキンのままでも問題なさそうです。(必須ではないかも

画像2

・そのままだと頭の高さが追従しない

元記事の設定では、2021.01.28のSDKに付属したコントローラー構成では、頭の位置が正しく追従しませんでした。
そのため、頭の位置を変更した値にリセットする設定が必要でした。
アニメーションコントローラーの「UpperBodyTracked」ノードに対して、「Add Behavior」から「Animator Temporary Pose Space」コンポーネントを追加します。Pose Spaceの設定を「Enter」にしておきます。

合わせて、口パク、目パチがアニメーションになってしまっていることがあるので、Trackingにしておきます。

画像3

・再び座ったときに頭の位置が追従していない

座高調整値を変更したあと、立ち上がって、再び座ると値が追従しておらず、頭が体に埋まった状態になります。
座高調整値をちょっと変更すれば治るのですが、値を保持しているのだから、そのまま座ったときに反映する形に変更します。
「PoseSpace→UpperBodyTracked」のTransitionラインは削除して、「PoseSpace→SittingPose Edit」のTransitionラインを追加します。
これで、再び座ったときに、「SittingPose Edit」に一旦入るため、頭の位置が正しくなります。

画像4

おつかれさまでした。
SDKのバージョンが上がるとサンプルとして入っていたコントローラーの構造が変わってしまい、元記事通りにいかなく、悩んでしまう人が発生していそうだったため、こちらの記事を書かせていただきました。
元記事の、みみりんさんの記事をとても参考にさせていただきました、この場を借りて、お礼申し上げます。

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