Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

NDMF Avatar Root コンポーネントを実装する #432

Closed
kaikoga opened this issue Oct 1, 2024 · 1 comment
Closed

NDMF Avatar Root コンポーネントを実装する #432

kaikoga opened this issue Oct 1, 2024 · 1 comment

Comments

@kaikoga
Copy link
Contributor

kaikoga commented Oct 1, 2024

背景

ndmf 1.5.0 では、VRCSDKの入ったプロジェクト(以下、VRChatプロジェクト)で非VRChatアバターを扱うためにはダミーのVRCAvatarDescriptorを刺す必要があるが、より柔軟なAvatarRoot判定を導入したい。

  • Resoniteに対応する際、Resoniteアバターを示すコンポーネントが存在しないため、アバターを判別できるヒントがAnimatorしかない
    • Animatorはアバターではないものに刺さっている可能性があり、これをヒューリスティックで判別するのは難しい
    • RuntimeUtil.FindAvatarRoots() は全てのアバターかもしれないオブジェクトを探すが、これにResoniteアバターを含めるためにはAnimatorで判別するしかなく、false positiveが増えうる
      • (現状実装されている部分的なVRM対応は非VRChatプロジェクトはAnimatorで判別している)
  • VRMやChilloutVRに対応する際、既存のアバターを示すコンポーネントを無視している
    • VRMMeta、Vrm10Instance、CVRAvatar
    • (現状実装されている部分的なVRM対応はVRChatプロジェクトでは動作しない)
  • VRChatプロジェクトではダミーのVRCAvatarDescriptorを刺すこともできるが、これに頼れない
    • 不完全なVRCAvatarDescriptorがプラグインの動作を阻害するかもしれない
    • VRCAvatarDescriptorとVRMMetaが両方刺さってるかもしれない
    • 単一のプレハブから複数のプラットフォームに出力するようなユースケースで、出力先プラットフォームをオーバーライドする手段があると嬉しいかもしれない feat: add an API sketch for a platform-support-declaration system #76

提案

  • NDMF Avatar Rootコンポーネントが刺さったオブジェクトをAvatarRootとする
  • VRCAvatarDescriptorが刺さったオブジェクトもこれと同様に扱えるよう、コンポーネントの型をレジストリに登録できるようにする
  • 対応するプラットフォームSDKがインストールされている場合、VRCAvatarDescriptor、VRMMeta、Vrm10InstanceはNDMFがレジストリに登録する
    • NDMFにChilloutVR対応を追加する場合、このリストにCVRAvatarを加える
  • ResoniteアバターにはNDMF Avatar Rootを追加してもらう
    • この際、NDMF Avatar Rootから出力先プラットフォームを設定できるようにする
    • Generic Animator対応は緩やかに非推奨化する
    • 出力先プラットフォームによって挙動を変えたいプラグインがあるかもしれないので
@bdunderscore
Copy link
Owner

AvatarRootの指定コンポーネントは同感ですが、そのうえでアバターの最低限の設定も考慮する必要があるかなと思います。
たとえば、視点の位置とか、口パク設定とか・・・

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants