bdunderscore / modular-avatar

Other
476 stars 61 forks source link

要望:アーキテクチャからVRCSDKへの依存を取り除く #379

Closed kaikoga closed 11 months ago

kaikoga commented 1 year ago

背景

現状、Modular Avatarを利用するためにはVCCの利用が推奨されていますが、VCCをインストールするには VRChatのアカウント登録を行った上でVRChatにログインする 必要があります。

もっとも、VPM CLIなど、VCC以外のソフトウェアを利用してVPMをResolveすることは可能なので、 unitypackageを使わずに Modular Avatarをプロジェクトに追加する手段は残されています。しかし、Modular AvatarはVRCSDKのAvatarsパッケージに依存している一方で、VRCSDKのパッケージやVPM CLIを利用するには VRCSDKの利用規約 に従う必要があります。(例えば、利用者は13歳以上である必要があります。) また、VRCSDKのパッケージを利用しているため、 VRCSDKの対応Unityバージョンに依存しています。非対応のバージョンのUnityにVRCSDKをインポートすることは不可能ではありませんが、動作保証はありません(Unity 2021ではそのままではコンパイルが通らず、VRCSDKのソースコードの改変が必要でした)。

いずれにせよ、これらの点はModular Avatarを利用してVRMなど非VRChat向けアバターの非破壊編集を行いたいユーザーにとって大きな障壁となっています。特にUniVRMは対応Unityバージョンの下限が v0.112.0現在でUnity 2021.3 なので、VRCSDKと共存ができません = Modular Avatarと共存ができません。

考えるべきこと

仮に自分がModular Avatarに手を入れるのであれば、(大変ですが)以下のような改修を行う気がします。

何か見落としはありますしょうか?

bdunderscore commented 1 year ago

要望ありがとうございます。個人的にはVRChat以外は使っていないので、満足のいくテスト環境がなく今後の安定保証が難しいと思っているからまだ手を入れてないが、別のプラットフォームを積極的にテストしたり、プラットフォーム独自のインテグレーション部分を提供する方がいるなら他プラットホームへの対応も視野に入れてもいいでしょう。

現在、MAと高い互換性を持ちながら、外部の処理モジュールが作れる基盤を整えてるところなので、この要望を参考にその気分がVRCSDKに依存しないように設計したいと考えています。そのあと、MA自体も処理パスを細分化してやれば、VRC独自機能と汎用機能を別パッケージとして提供できるでしょう。

bdunderscore commented 1 year ago

ちなみにモジュール基盤はこちらです→https://github.com/bdunderscore/avatar-build-plugin-framework (まだいろいろと模索中なので悪しからず)

kaikoga commented 1 year ago

コメントありがとうございます!

MAの普及にあたりMAを利用した際のアバターの相互運用性を確保することは重要だと思っており、また自分も今後MAを利用したアバターをVRChatとVRMの双方に出力する機会が増えてきます(例えば、同一のアバターを使って配信を行ったりする際に、VRMを簡単に出力できると便利です)ので、個人的にもそのようなユースケースでもMAを活用できるとありがたいです!

どうやら自分が何かをするのであれば、モジュール基盤部分を抽出したプロジェクトが始動しているのであれば、まずはそちらに協力をするのが良さそうですね。 とはいえ、(ここでの思考実験の結果、VRCSDKへの依存を後から外すことはわりとなんとかなりそうな見通しもあり)まずはVRChat向けに安定して使えることが重要なので、しばらくはモジュール基盤の開発状況を注視させていただこうと思います。

kaikoga commented 1 year ago

kaikoga/modular-avatar#1 でPoCをやってみました。

VRCSDKを抜いたプロジェクトからUPMで改変版Modular Avatarをインストールして、MA Merge Armatureを入れたセットアップのApply on PlayとManual Bake Avatarが動いたように見えました。

やったこと:

まとめると、いきなり本家に取り込むにはコードベースへのインパクトが強いので、どう進めるかを考えたい気持ちです。

kaikoga commented 11 months ago

ndmf ができたので、改めて進め方を考えたほうが良さそうに思います(いったんcloseします)