CG 數位學習網 > Unity 教學



Unity 提供的 Mecanim 角色動畫系統,早期版本製作遊戲的角色動畫時,需要先透過 3D 軟體建模與套骨架,然後分別製作不同動作的動畫,完成後匯出 FBX 檔案到 Unity 遊戲引擎。可是 A 角色的動作無法給 B 角色使用,透過 Mecanim 可以讓一個動作給不同的角色使用,而且提供了不同動作之間的混合效果,讓遊戲角色的動作更接近真實。這次的 Mecanim 教學將使用資源商店提供的免費資源。

進入 Asset Store 資源商店,搜尋 Space Robot Kyle 匯入目前的專案,此資源包內含一個帶骨架的機器人模型。

 

從 Project 專案視窗選取 [ Robot Kyle > Model > Robot Kyle ] ,透過 Inspector 屬性編輯器 Animations 可確認此模型沒有包含任何動作。

將 Inspector 切換到 Rig 標籤,並將 Animation Type 動畫類型從原本的 Legacy 改為 Humanoid 動畫類型。

先選取 Robot Kyle 機器人角色,從 Inspector 屬性編輯器為此角色套用 Rigidbody 剛體元件。

 

設定 Rigidbody 剛體元件的 Mass(質量)= 100 ,為了避免行走時摔倒,勾選 Constraints(約束)下方的 Freeze Rotation(凍結旋轉)。

套用膠囊碰撞器,調整高度 Height = 1.8、中心點 Center Y = 0.9,這是適用於 Robot Kyle 模型的設定,如果使用其他角色請自行調整。

執行 [ Assets > Create > Animator Controller ] 建立一個新的動畫控制器,使用 Animator Controller 可以管理角色的動作、設定流程、控制參數。

遊戲專案有多個遊戲角色時,將可能需要使用多個動畫控制器,建議設定適當的名稱,並且建立資料夾存放動畫控制器。

將動畫控制器重新命名為「Robot Controller」,稍後從檔案名稱可立即瞭解動畫控制器的使用對象。

選取 Robot Kyle 機器人,然後將剛才建立的動畫控制器拖曳到 Animator 元件下的 Controller 欄位。

滑鼠雙擊 Robot Controller 動畫控制器,將會進入動作控制器的編輯模式。因為目前沒有任何動作,可以從 Asset Store 資源商店下載。

將遊戲角色拖曳到預覽區 ( Preview Area ) 可以檢視動作。

將一個 Idle 待機的動作拖曳到 Animator 視窗,因為是第一個動作,待機將會自動成為預設的動作。

玩家角色移動的地面、燈光,調整攝影機的位置。

按下 Play 測試遊戲,機器人將會呈現待機的動作,但是目前無法做出其他的動作。

Float 新增一個變數,選擇 Float 浮點數,因為稍後的數值可能包含小數,變數的預設名稱為「New Float」,需要修改一下。

 

將變數名稱改為 Direction(走路方向),使用相同步驟再建立一個變數 Speed(走路速度)。

 

混合樹的功能是可以將多個動作混合,透過腳本進行控制,例如移動可以從「待機」到「走路」到「跑步」。

建立混合樹的方法是在 Animator 視窗空白處按滑鼠右鍵,執行 [ Create State > From New Blend Tree ] 指令。

 

重新命名 Locomotion

雙擊剛才建立的 Blend Tree 混合樹。

 

並且命名為「Run」。

選擇 Walk 節點,目前的 Motion 下方顯示 List is Empty 表示清單內沒有任何動作,按 + 按鈕並選擇 Add Motion Field 增加動作欄位。

 

按下圓形按鈕,然後從 Select Motion 對話框選取動作。

按下 Play 測試遊戲,遊戲角色可以做出走路動作,稍後將在混合樹加入更多的動作,做出更逼真與多樣化的動作

 

~ CG 數位學習網版權所有 ~