メインコンテンツまでスキップ

SkinnedMeshRenderer.rootBone

2 つの機能があるようで、可視判定 BoundingBox の中心制御と boneWeight が無いときの transform に影響します。 たぶん、3 種類の挙動があります。

bone weightrootBone
SkinnedMeshRenderer.transform の上に乗る
bone weight に従う
rootBone の上に乗る
bone weight に従う

UniVRM の SkinnedMeshRenderer.root は正しく読み書きできません

UniGLTF では、SkinnedMeshRenderer.rootBone をサポートしません

glTF に対応する項目が無くて、正しく読み書きできないためです。

glTF の skin.skeleton は似て非なる別の機能です

問題が起きやすい例

  • 頭に BoneWeight を付与していない
  • 頭に BlendShape がある
  • SkinnedMeshRenderer が 頭に attach されている => 無問題
  • SkinnedMeshRenderer が root 付近に atttach されていて、rootBone に頭が指定されてい => 該当

対策

DCC での対策

  • 頭に BoneWeight を付与してください

UniVRM での対策

bake してください。

  • vrm-0.x は正規化時に解決されます。
  • glTF は、exportOption freezeMesh を有効にしてください( from 0.121 )
  • vrm-1.0 は、exportOption freezeMesh を有効にしてください( from 0.121 )
export と別に MeshUtility の Mesh 統合で同じ機能を使うことができます

参考