2011年10月13日 星期四

Unity 3D裡帶Skin的動態模型操作指南

這篇要介紹各位怎樣在Unity導入帶skinned的模型與循環動畫, 然後在Unity裡面對它的位置設定動畫. 看完了這篇以後你應該就會知道怎樣import skinned mesh, 把它連結到posion node, 對它沿著, 定位點(waypoints)進行位置與旋轉的設定, 編輯動畫, 複製與移動模型, 或是動畫路徑.

輸出(Export)
從您的3D套裝軟體開始, 選取帶動作的模型輸出成FBX格式, 細節請讀這篇"FBX export guide". 如果場景中只有一個東西的話, 你可以存成原始的3D套裝軟體格式(mb或是max), 但是請盡可能地讓事情簡單化, 我會只輸出我需要的東西.
  • 請確認你設定動畫的範圍了, 如果你輸出所有的動畫長度, 記得到Unity裡面要把動畫分段, 或是可以用@的命名格式, 請參考這篇.
  • 如果有需要的話就勾選bake keyframes的動畫
  • 曲線多的, 比較有機一點的動畫, 需要比較少的keyframe. 所以輸出的時候不需要bake動畫; 線性的, Stop animation類型的動畫, 有很多flat curve的, 需要很精確的資料, 可能就需要在輸出的時候bake動畫了!
  • 請注意軸向, 尺度等問題.
  • 確認: 我要再強調一次, 你可以把從3ds max輸出的東西重新再入3ds max一次, 檢查輸出的東西有沒有任何錯誤.

設定
  • 在Unity裡面, 在 Project window選取你剛剛輸出的動態模型資料.
  • 設定尺度, 切割動畫片斷, 這些可以在 Inspector的importer options 裡面設定好.
  • 開啟或是創建場景, 拖拉模型, 比方說把Shark拖拉到場景裡面
  • 創件一個空物件(empty object ): Menu choose > Game Object > Create Empty 命名為 SharkPos . 把SharkPos 移動到Shark的位置, 這樣你就可以利用它的gizmo.
  • 為了要讓兩者個位置完全吻合, 你可以複製posion數值.
  • 把Shark parent到SharkPos, 這樣你就可以維持住Shark原本有的動態, 同時還可以對他的位置設定動態了!

設定動畫
對xPos設定位置與旋轉設定動態
  1. 開啟動畫面板(animation panel)
  2. Create new clip > name 放到assets\animation裡頭
  3. 將SharkPos移動到起始位置, 使用gizmo移動到想要的位置
  4. 用<>+按鈕來設定第一格的keyframe
  5. 移動到下一個frame, 設定keyframe
  6. 移動並旋轉SharkPos
  7. 注意當您旋轉180度 旋轉數值會歸零
想要知道更多動畫面板(animation panel)設定問題請看這影片

編輯
  • 為了要讓路徑能循環, 複製第一個frame的數值到最後一個frame
  • 對旋轉數值, 確認第一個frame與最後一個不是相同數值而且相差360度. 例如:第一個frame是-30 最後一個是330.
  • 要改變你動畫的eases in 或eases out, 在你想要修改的keyframe上面按右鍵, 選擇Tangents, 來操作切線把手, 這裡有更詳細的解說.
  • 編輯動畫節奏: 你可以選取多個keyframe, 在時間軸上移動

最後潤飾
可以再把鯊魚模型連結給(Parent to)另外一個空物件(empty object) 例如Shark01 這個節點可以用來同時移動帶動畫的物件與路徑(path)

詳情請洽奇銳科技 (02)2557-3321

[相關教學]

沒有留言: