[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で確認)。
以下、その方法となります

  1. VCCのワールドプロジェクトを開く
    以降、このプロジェクトフォルダを<World>とします。

  2. VCCのアバタープロジェクトを開く
    以降、このプロジェクトフォルダを<Avatar>とします。

  3. 以下のファイルをコピー

    1. <Avatar>\Packages\com.vrchat.avatars\Runtime\VRCSDK\Plugins\VRCSDK3A.dll

      <World>\Assets\<任意のPath>
      にコピー

    2. <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コンポーネントが追加できるようになります。やったね。


この記事が気に入ったらサポートをしてみませんか?