Unity 其實可以直接使用 Blender 的 .blend檔案,至於使用各種格式間使用與會不會造成某些差異,我也不甚了解,目前求的是匯入的結果為正向1:1,不旋轉、不放大、不位移。
關於Mesh
以保齡球瓶為例,需要一個顯示用的球瓶Mesh與碰撞用的球瓶Mesh,為什麼不顯示與碰撞共用呢?因為顯示用會比較精緻,點線面會很多,拿來應用在碰撞上,會造成運算的數量太過龐大,所以有一個255點的上限。
綠線為 Mesh collider所引用的 mesh |
匯入到Unity後,須要注意的事
基礎想法就在於,當初在Blender用何種大小比例、擺放方式去設計,在Unity也要一模一樣。
這樣才有辦法依照設計來實作遊戲。
- 大小與Blender下相同
意即,原本設定為 1.5 BU(Blender Unit)大的 cube,進入到 Unity後,也是 1.5 UU(Unity Unit) - 在 asset內,轉向/縮放相同
意即,在 asset內看起來是正向擺放的(與Blender設計時相同,如果在 Blender設計是站著的,進入Unity後,在asset內也是站著的) - 在Unity內實體化後,rotation為 0,0,0 與scale為 1,1,1
各種格式與問題
座標軸定義不同
因座標軸定義不同,在blender正常輸出的,在unity的asset內看起來是倒的,實體化後,可能又是自動轉正(如:x軸會被 -90度自動轉正)
解法:
- 在 Blender下為正向時,x軸轉 -90, Apply Rotation
- x軸轉 90,在 Location 0,0,0, Rotation 90,0,0 Scale 1,1,1的狀態下匯出
.fbx格式被自動縮放
.fbx格式,預設勾選 use file scale,會被縮小100倍(0.01),實體化時,scale自動設定為 100,100,100,所以實體化後為 1倍縮小100倍(0.01) |
實體化時,被放大100倍 |
這個問題,會在使用mesh collider產生奇怪的狀況,因為mesh collider引用 mesh 時,並不會將它實體化,造成mesh collider的大小為原始設計的0.01倍,碰撞定義變成物件裡的非常小的一個點,進而產生奇怪的情況。
右側.fbx因為mesh collider的問題,掉落到平面下 |
註:此問題在 .dae格式不存在,.dae匯入時為 1:1
解法:
- 取消 asset/inspector內的use file scale
- 在instance時手動將 scale 改回 1,1,1
沒有留言:
張貼留言