Skip to main content

2024-12-08 他のアプリケーションでModular Avatarを動かす方法

warning

このページは主に2024年12月8日に作成されました。以下の情報はすぐに陳腐化する可能性があります。
このページはChatGPTを使用して翻訳されています。翻訳に誤りが生じる可能性があります。

こんにちは。他のアプリケーション(VRChat以外)でModular Avatarを動かそうとする場合に得た知見を共有します。

Modular Avatar V1.xはほぼ他アプリと互換性あり

Modular Avatar V1.xは、VRChat以外のアプリでもほぼ互換性がありますが、一部のVRChat特有の機能は削除されます。

これは、プロジェクト内でVRChat SDKが検出されない場合、Modular AvatarではVRChat特有のコードが既に無効化されるためです。

例えば、MA Merge Armatureは汎用的で動作しますが、MA Menu ItemはVRChat特有であるため動作しません。

以下のセクションは、互換性を確保するために必要な作業について説明しています。

Modular Avatarは一部のリリースでコンパイルエラーが発生することがある

Modular Avatarは公式にはVRChatプラットフォームのみをサポートしているため、一部のリリースではVRChatなしのコードパスが見落とされ、コンパイルエラーが発生することがあります。

この問題を解決するには、#if MA_VRCSDK3_AVATARSおよび#endifを適切な場所に追加し、VRChat特有のインポート、フィールド宣言、またはコードブロック全体をコンパイラが無視するようにする必要があります。

何かがcontext.AvatarDescriptorを必要とする場合、その関数のほとんどの内容をコンパイルから削除できると仮定できます。

このプルリクエストを例として参照してください。

ALCOMやVCCを使用している場合、Modular AvatarをインストールするとVRChat SDKもインストールされる

VCCやALCOMを通じてModular Avatar V1.xをインストールすると、プロジェクトにVRChat SDKもインストールされます。 これは望ましくありません。VRChat以外のプロジェクトにVRChat SDKを含めてはいけません。VRChat SDKはプロジェクト設定やビルドプロセス(レイヤー名、XRプロジェクト設定など)を汚染し、ターゲットアプリの機能に干渉します。

ALCOMパッケージマネージャーを使用している場合、次の手順を実行できます:

  • Unityプロジェクトを閉じる
  • Modular Avatarをインストールする
  • VRChat SDK Avatarsパッケージをアンインストールする
  • VRChat SDK Baseパッケージをアンインストールする

VCCを使用している場合、一度インストールされたVRChat SDKパッケージをアンインストールすることはできません。非VRChatプロジェクトではALCOMに切り替えるか、ソースから手動でModular Avatarをインストールしてください。また、NDMFをインストールする必要があります。

ALCOMもVCCも使用していない場合、ソースから直接インストールできます。この場合もNDMFをインストールする必要があります。

将来的には、Modular Avatar V2.xをインストールしてもVRChat SDKがプロジェクトにインストールされなくなると聞いています。

Modular AvatarはDLLに依存する

Modular Avatarはプロジェクト内にDLLを必要としますが、これらは通常VRChat SDKによって提供されます。

これらのDLLはChilloutVRやBasisなどの他のプロジェクトには欠けていることが多いです。

ChillaxinsをALCOMを通じてインストールするか、Microsoft NuGetから以下のDLLを手動でインストールしてください(System.Collections.ImmutableLib.Harmony)。

必要なDLL:

  • System.Collections.Immutable DLL(NDMFで使用)
  • Lib.Harmony DLL(NDMF 1.5で使用)

Modular AvatarはUnity Burstパッケージに依存する

Modular Avatarはプロジェクト内にUnity Burstパッケージを必要とします。これは通常VRChat SDKによって自動的に含まれます。

ChillaxinsをALCOMを通じてインストールするか、UnityのパッケージマネージャーでBurstをプロジェクトに追加してください。

NDMFをビルドプロセスに接続する

Modular Avatarがアバターをビルド中に動作するようにするには、NDMFをビルドプロセスに接続する必要があります。

ChilloutVRアプリケーションでは、Chillaxins内でこれを実装しました(ALCOMを通じてインストール)。このコードを参照してください。

Basisフレームワークでは、このコードを参照してください。これはBasisのソースコード自体にすでに含まれています。