問題となっているのは、末端ボーンの長さ(テールの位置座標)。縮小をするとこの“長さ”も縮小されるべきだが、変化せず参っている。
ARPによって、FBXとしては一応出力されてるのだから、それをもう一度blenderで読み込んで、おかしいところを直に修正してしまえばいいのではないか?
この作戦でいってみよう。
FBXを編集してから、blender2.83 標準のExporterで、再びFBXとしてExportする。その際のオプションは:
オペレータープリセット
パスモード 自動
バッチモード オフ
オブジェクトタイプ
アーマチュア
メッシュ
トランスフォーム
拡大縮小1.00
全ローカル
-Zが前方
Yが上
単位を適用☑
ジオメトリ
スムージング 法線のみ
モディファイアーを適用☑
アーマチュア
プライマリボーン軸 Y軸
セカンダリボーン軸 X軸
アーマチュアタイプ Null
デフォームボーンのみ☑ ←
リーフボーン追加(をアンチェック)←
※ほとんどデフォルトのまま
リーフボーンとは、末端についたボーンの長さが分かるように付ける参照用のボーンだそうである。FBXをUnity Editorに読み込むと確かに末端のボーンの長さは見えない。
出力した結果……
編集結果が反故になってる…… ダメ元で拡縮を適用しても変わらなかった。
ARPのFBX Exportで縮小を指定した場合、末端ボーンの長さ(テールの位置)がおかしい、という事実が変わることがない……
リーフボーンを追加(上述の矢印)してExportすると、編集結果は生きる(末端ボーンの長さは意図通りである)が、当然、リーフボーンが付く(※2)。ボーン二本でいいところが三本になってしまい、VRMにすると三本目の先にも剛体がつく。
※2 VRMファイルにする過程で確認。以下同。
さらにblenderで読み込んでリーフボーンを削除して(削除すると意図通りになるので)、今度はリーフボーンを付けないオプションでExportしても、やはり変な案配にリーフボーンが付く(※2)。編集して短くなったボーン長を埋めるようにリーフボーンが今度は二本(二段)も付いた(※2)――クローンされたボーンひと組がさらに繋がったような具合。変な挙動である。
どうしても思う通りになってくれない。
別の方法:
等倍でExportしたFBXから作成したVRMをUnity Editorで読み込み、Prefabを開いてScaleを0.42にする。HierarchyにVRMを放り込み、プレイモードにしてSecondaryのルートボーンを確認する。VRM Spring Bone(揺れ物)を設定済みのルートボーンである。
なぜか末端ボーンの長さだけが縮小すらもされずに変わらない。揺れはするものの、この末端ボーンの先端に剛体が付くので意図通りにならない(下図|剛体の大きさは10分の一にしてある)。
註:コマ送りの画面。灰色は直前の剛体の位置を表す。
お手上げである。VRMの身長を変更するにはどうすればいいのか? ――身長は変更できるけれども、ルートボーンを損なわずに行う方法がない。
下図:等倍でExportした時の正常な長さの末端ボーン。身長が高いため、太陽アイコンの高さに届いている。
関連記事
スポンサーサイト