以前Vroidのモデルをブレンダーに持ってきてから、さらにFBXでエクスポート。
Mayaに読み込んで編集、再度(警告が出でもそのまま)FBXに書き出して、ブレンダーなりUnityで読み込んだときにモデルが消えていたので、その対応方法。
【Blender】Vroidのデータ(VRM)を読み込む方法
https://cg-method.com/blender-import-vrm/
https://cg-method.com/blender-import-vrm/
目次
デフォーマー以外のヒストリーを消せと警告がでる場合
The plug-in has detected mesh nodes with unsupported operators that affect the vertex and/or face count. To correct this, delete the Non-deformer history before exporting. The following nodes will not be processed:
BodyFBXASC046baked0
この状態でFBXを保存すると、別のソフトで読み込んだ時にメッシュが消滅します。
対応方法
警告の内容どおり、デフォーマー以外のヒストリーを消してやります。
- 対象のオブジェクトを選択
-
上部のメニューからEdit > Delete by Type > Non-Deformer History
(編集>種類ごとに削除>デフォーマー以外のヒストリ)
以上でFBX出力すると警告が消え、別のソフトで正常に読み込まれるようになります。
[card2 id=”3191″ target=”_blank”]
[おまけ]UnityでMayaで作成したデータ(Fbx)のモデルの形状が壊れているのを解決する方法
Unityで開いた時にデータが壊れた時の対処法です。
モデルの形状が壊れる原因について
はじめはMayaで発生したゴミノードのせいかと思いましたが、
File>Optimize Scene Sizeをかけます。 ごみノードが邪魔をして、モデルの形状が壊れてしまうので余計なノードを消します。
そうではなく、ジョインとのセグメントスケールにチェックが入っていることが原因でした。
ImportFBX Warnings:
File contains 58 (out of 66) nodes with Scale Compensation. Scale Compensation is not supported by Unity (because it works differently in 3dsMax and Maya). This might result in scale imported incorrectly, if this happens try disabling Scale Compensation in your file. The list of nodes that could be affected:
解決方法
- リグの最上部を選択
- Windows > General Edhitors > Script Editorを開き、下記のコード(mel)をコピペ
{
string $selected[] = `ls -type joint`;
select -r $selected;
}
string $sel[] = `ls -sl`;
string $singleJnt;
for ($singleJnt in $sel)
{
setAttr ($singleJnt + ".segmentScaleCompensate") 0;
}
コードをすべて選択した状態で、テンキーのENTERを押して実行すれば、すべての骨のSegment Scale Compensateのチェックが外れます。
この状態でFile>Send To Unity>AllでUnityのAssetへ出力すれば、モデルの形状が正しく表示されているはずです。