2013年9月8日 星期日

Unity3D 教學 ﹥09 匯入 3D 模型檔案

http://www.cg.com.tw/Unity/htm/Unity_009.asp

Unity 只提供了建立基本幾何物件的建模工具,不過您可以透過 3D 軟體(例如 3ds Max、Maya、XSI、Cinema 4D、Lightwave、Blender、Carara、Cheetah 3D 等)製作遊戲角色或場景模型,設定材質、貼圖、動畫後,再匯入到 Unity 的專案中使用。
Unity 支援的 3D 格式包括 *.3ds、*.dxf、*.dae ( Collada )、*.obj、*.fbx 等。此外,若您的電腦安裝 3ds Max 與 Maya 軟體,Unity 也支援 3ds Max ( *.max ) 格式與 Maya ( *.mb ) 格式。不過 FBX 仍是最為建議使用的檔案格式。

使用 3ds Max 製作模型
使用 3ds Max 製作的模型,可直接將 .max 儲存於 Unity 專案資料夾,並選擇匯出 Autodesk .FBX 格式到 Unity 程式使用。
若出現 3ds Max couldn't conver the max file to an fbx file 訊息,請檢查是否已安裝 3ds Max 軟體,並且軟體的授權是否失效。
在 3ds Max 匯出 FBX 檔案,請點選功能表 [ File > Export ] 或 [ File > Export Selected ] 開啟匯出設定對話框。
若製作的模型包含動畫,轉存 FBX 檔案時請勾選「Animation」,並可設定動畫的開始與結束範圍。
若製作的 3D 模型已設定材質貼圖時,請務必開啟「Embed Media」,這個選項在預設的情況並不是啟用的。
檢查 Axis Conversion 轉換座標軸,確認為「Y-up」座標系統(3ds Max 的預設座標系統為 Z 軸向上)。
當您回到 Unity 時,FBX 檔案將會自動匯入,請將檔案從 Project 專案視窗拖曳到 Scene 場景視窗或 Hierarchy 階層視窗。
匯入 3D 模型時,Unity 會將所有的多邊形轉換成三角形 ( Polygon triangles ) 。在預設的情況,匯入的模型放到場景時尺寸非常小,這是因為預設的縮放比例 0.01 ,請將數值改為 1.0 並按下 Apply 按鈕套用。
提示:使用 3ds Max 建立的燈光與攝影機,在匯入 Unity 時並未具有照明與攝影的功能,您必須分別套用燈光元件與攝影機元件。

關於 Unity 的動畫設定
若您需要將 3D 模型動畫,匯出 FBX 檔時若是忘了勾選 「Animation 」,匯入 Unity 時就無法存取動畫,並且在 Inspector 屬性編輯器會出現 No animation data available in this model. (這個模型沒有動畫資料)的訊息。
至於匯入後動畫無法正常播放的問題,從 Inspector 屬性編輯器切換到 Rig 標籤,將 Animation Type 動畫類型從預設的 Generic 改為 Legacy,按下播放測試,動畫只會播放一次,可改為循環播放。


使用 Maya 製作模型
若您使用 Maya 製作 3D 物件,選擇匯出 FBX 格式到 Unity 程式使用。
使用 Maya 匯出檔案時若無法選擇 FBX 格式,請開啟 Plug-in Manager 並勾選 fbxmaya.mll 再重新匯出。

FBX Plug-ins 的下載與安裝
若使用 3ds Max 或 Maya 匯出 FBX 檔案遇到問題,請前往 Autodesk 網站下載最新版本的 FBX Plug-ins 安裝。

選擇對應的軟體版本。
開始安裝。
選擇 I accept 後按 Next 按鈕下一步。
選擇 Autodesk FBX Plug-in 安裝的資料夾。
複製 Autodesk FBX Plug-in 說明文件。

FBX Importer 設定
Meshes 網格設定
Generate Colliders 勾選時 Unity 會自動在整個模型加網格碰撞器,若是整個物件皆需進行碰撞偵測,即可使用此功能。
Calculate Normals 計算法線,開啟此功能即讓 Unity 處理所有的模型表面,使該物件在遊戲中能夠正確的呈現。
Smoothing Angle 當開啟前一項計算法線的功能後,此參數允許您指定平滑的角度,設定值以下的角度將產生硬邊 ( Hard edge ) 的效果。
Animation 動畫設定
Generation 設定產生動畫的方式
  • Don't Import 不匯入動畫。
  • Store in Original Roots 儲存於根物件 ( Root object ),可能與 Unity 的根物件不同。
  • Store in Nodes 儲存於節點,若需要進行複雜的設定或使用腳本控制,請使用此選項。
  • Store in Root 動畫儲存於場景中的變形根物件 ( Transform root object )。
Animation Wrap Mode 動畫模式
  • Default 預設
  • Once 動畫僅播放一次
  • Loop 動畫循環播放
  • Ping Pong 動畫來回播放
  • Clamp Forever
設定後請用滑鼠點一下 Scene 場景檢視面板,出現 Unapplied import settings 訊息對話框時,按下 Apply 按鈕套用設定,否則遊戲執行時可能無法呈現正確的動畫效果。
Bake Animations 使用 IK ( Inverse Kinematics ) 骨架動畫。
Reduce Keyframes 從匯入的檔案移除用不到的動畫關鍵影格,若沒有特殊的考量,此選項應該保持開啟以提升執行效能。

Ragdoll 物件
Ragdoll 是 Unity 內建的布偶系統,點選功能表 [ GameObject > Create Other > Ragdoll ] 開啟 Create Ragdoll 對話框。
Root。
Left Hips 左臀部。
Left Knee 左膝。
Left Foot 左腳。
Right Hips 右臀部。
Right Knee 右膝。
Right Foot 右腳。
Left Arm 左手臂。
Left Elbow 左手肘。
Right Arm。
Right Elbow 右手肘。
Middle Spine。
Head 頭部。
Total Mass 總質量。
Strength。
Flip Forward 。
按下「Create」按鈕,即可建立 Ragdoll 物件。
為角色的模型套用 Ragdoll 布偶模組