[VCC版] VRChatワールドで全身乗っ取りアニメーションのVRCStationを使う方法
VRChatワールドの全身乗っ取りアニメーションについて
VRChatのダンスワールド等、プレイヤーの全身のトラッキングを無効にしてダンスを躍らせるワールドを見たことがある方も多いかと思います。
あれはVRCStationにダンスモーションを仕込んでおいて、それを再生させているのですが、普通にモーションを仕込んだだけだと頭と手のトラッキングはプレイヤー側が握っており、全身を乗っ取ることは出来ません。
アバターのトラッキングを無効にして、全身を乗っ取るモーションを取らせるには、AnimatorのStateにVRC Animator Tracking Controlというコンポーネントを付与し、トラッキングを無効化する必要があるのですが、このコンポーネントはVRChat SDK - Avatarに含まれているもので、通常のワールドプロジェクト(つまりVRChat SDK - Worldのみをimportしているプロジェクト)では使うことができません。
そこで、VCCが登場する前では、ワールドプロジェクトにAvatar SDKの必要なファイルのみをimportするという方法がありました。
こちらの方法については、黒鳥様のブログが詳しいです。
しかし、VCCでは、ワールドプロジェクトに追加でAvatar SDKをimportしようとするとエラーが出るようになりました。
(本来、AvatarとWorldのSDKは共存できないので、正しいエラーと言えばそうなのですが…)
ではVCCのワールドプロジェクトではどうすればいいかと言うと、別途アバタープロジェクトを開いて、そこから必要なファイルをワールドプロジェクトにコピーするという方法でVRC Animator Tracking Controlが使えるようになります(VRChat SDK 3.1.10で確認)。
以下、その方法となります
VCCのワールドプロジェクトを開く
以降、このプロジェクトフォルダを<World>とします。VCCのアバタープロジェクトを開く
以降、このプロジェクトフォルダを<Avatar>とします。以下のファイルをコピー
<Avatar>\Packages\com.vrchat.avatars\Runtime\VRCSDK\Plugins\VRCSDK3A.dll
を
<World>\Assets\<任意のPath>
にコピー<Avatar>\Packages\com.vrchat.avatars\Editor\VRCSDK\SDK3A\Components3\VRCAnimatorTrackingControlEditor.cs
を
<World>\Assets\<任意のPath>\Editor
にコピー
ここで注意が必要なのは、コピーしたファイルは<World>\Assets 配下のどこに置いてもいいのですが、.csファイル(拡張エディタ)はEditorというディレクトリの直下になければならない、というUnityの仕様があります。
また、元の場所に倣って、<World>\Packages 配下に置いても動作はするのですが、VRChat SDKフォルダ内部にファイルを追加するとVCCでWorld SDKとして認識できなくなり、VCCでのSDK更新などが出来ず、Migrateを求められてしまいます。
その結果、上記の例の通り、<World>\Assets 配下にコピーするのが良いという事になります。
これでAnimatorのStateにVRC Animator Tracking Controlコンポーネントが追加できるようになります。やったね。
この記事が気に入ったらサポートをしてみませんか?