読者です 読者をやめる 読者になる 読者になる

CGメソッド

CG制作に関してのヒント

MENU

【Unity】Mayaで作成したデータ(Fbx)のモデルの形状が壊れているのを解決する方法

Unity Unity-Animation Maya

follow us in feedly

f:id:min0124:20160828115925p:plain

年初に作成したデータを、久しぶりにUnityで読み込んだら、モデルの形状が壊れていました。

min.hatenablog.jp

その対応について

モデルの形状が壊れる原因について

f:id:min0124:20161002161528p:plain

はじめは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: 

f:id:min0124:20161002161350j:plain

whomor.com

解決方法

  • リグの最上部を選択

  • 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のチェックが外れます。

f:id:min0124:20161002161422j:plain

この状態でFile>Send To Unity>AllでUnityのAssetへ出力すれば、モデルの形状が正しく表示されているはずです。