1. 程式人生 > >unity與3DMax的單位問題

unity與3DMax的單位問題

3DMax單位設定

MAX單位設定_zh.jpg

通過以上設定後,3DMax裡製作的1m匯入Unity3D也是1m,繼續分析原因

3DMax“顯示單位”和“系統單位”有什麼關係

顯示單位:決定3DMax主面板顯示時使用的尺寸單位,下面是分別設定為“釐米”和“米”時的情況
MAX顯示單位_cm.jpg
MAX顯示單位_m.jpg
數值暫不用關心,看數值後面的單位cm和m,這就是顯示單位的設定

系統單位:與“顯示單位”一起決定,最終儲存時記錄的單位值(暫且叫“儲存單位”吧)。
儲存單位=顯示單位/系統單位
做個1m的box:顯示單位設定為1m時,系統單位為1m 儲存單位為1,系統單位為1cm 儲存單位為100
做個1cm的box:顯示單位設定為1cm時,系統單位為1cm 儲存單位為1,系統單位為0.1mm 儲存單位為100
做個1m的box:顯示單位設定為1cm時,系統單位為1cm 儲存單位為100,系統單位為0.1mm 儲存單位為10000

“顯示單位”和“系統單位”對Unity3D的匯入有何影響?

上面所說“儲存單位”最終會記錄到模型檔案,Unity3D匯入時將按“1儲存單位=1m”的比例顯示模型,舉兩組資料:

顯示單位1m,系統單位1m,儲存單位1,Unity3D中顯示0.01m
顯示單位1m,系統單位1cm,儲存單位100,Unity3D中顯示1m

不是說“1儲存單位=1m”嗎,怎麼縮小了100倍?
看下Unity3D匯入模型的預設設定
Unity匯入模型Scale值.jpg

縮放因子為0.01,匯入Unity3D的模型預設情況下會被縮小100倍。
要使3DMax匯出的模型在匯入Unity3D時預設1m=1m,關鍵得讓模型中記錄的“儲存單位”=100。
比如這幾種方式都能得到儲存單位為100的模型:

  1. 顯示單位1m,系統單位1cm,製作一個1m的模型
  2. 顯示單位1cm,系統單位0.1mm,製作一個1cm的模型
  3. 顯示單位1cm,系統單位1cm,製作一個1m的模型

只要符合以下公式(模型尺寸/顯示單位)*(顯示單位/系統單位)=100,化簡一下為 模型尺寸/系統單位=100
但要達到“3DMax中建立一個1m的模型匯入Unity3D也是1m”的要求,那麼模型尺寸=1m 已經固定,代入公式得 系統單位=1cm。所以3DMax裡系統單位要設定為cm,顯示單位怎麼設定都無所謂。

結論

要保證“3DMax中建立一個1m的模型匯入Unity3D也是1m”,只需要把3DMax中系統單位設定為cm