1、軸向偏轉
MAX模型匯入Unity3D後,X軸會自動偏轉-90度。是因為Unity3D採用的是左手座標系,而3DMax採用的是右手座標系。無奈啊,這是很多遊戲引擎跟Max結合後都會產生的問題。相容性問題!!傻X啊MAX。這世界上絕大多數三維軟體都TMD的是左手,你非要右手。。主流啊主流。。。
也就是說MAX進入Unity3D後,Z軸就會向上,而空間座標是Y軸向上。別認為是什麼小問題。。如果用程式控制物體指向時,麻煩就大了。媽逼。。
解決方案:把模型導3DS檔案,再進Unity3D就不會有問題。而不是官方建議的FBX。FBX跟MAX沒差。MAX有什麼問題FBX同樣有那問題。(FBX裡的匯出設定裡的Z up或是Y up都沒有意義)
2、單位問題(縮放因子問題)
Unity3D物理系統的單位是 米(M) 。也就是說Position X為1的話就是X方向移動1米。
情況A,MAX系統單位為米時,建一個長寬高各為5米的Box丟進Unity3D裡變成了5厘米。
情況B,MAX系統單位為厘米時,建一個長寬高各為5厘米的Box丟進Unity3D裡就是5厘米。
情況C,MAX系統單位為厘米時,建一個長寬高各為5米的Box丟進Unity3D裡就是5米。
可以看出MAX單位為厘米時,Unity3D識別正確。。那為什麼米就不對呢,難道做建築用厘米去做?
經過大量的實驗我發現了一個很操蛋的問題。
MAX的系統單位設定對於Unity3D而言一點意義都沒有!!Unity3D根本就不理會MAX的單位,官方文檔裡稱MAX檔案可以使用檔案單位,這是在放屁~~~
重新理解一下情況A、B、C就可以明白了。咱們撇去MAX系統單位不看。
A中,Box為5個單位,進入Unity3D後是0.05個單位,縮小了100倍。
B中,Box為5個單位,進入Unity3D後是0.05個單位,縮小了100倍。
C中,Box為500個單位,進入Unity3D後是5個單位,縮小了100倍。
說白了就是丟進Unity3D裡就會縮小100倍,跟單位沒什麼關係。
為什麼會縮小100倍呢?
因為MAX模型匯入Unity3D時,匯入設定裡的縮放因子(Scale Factor)預設是0.01,縮小100倍。呃。。好吧。。。你贏了。。
既然MAX系統單位毫無意義,那就毫不猶豫的把匯入設定裡的使用檔案單元(Use File Units)選項取消掉。
然後MAX建模裡也不用使用特殊的系統單位了,匯入時用縮放因子控制大小就行了。
例如:
建築建模時,MAX單位視為米。匯入時,縮放因子設為1。
角色建模時,MAX單位視為厘米。匯入時,縮放因子設為0.01。