RIFLE Basic - Mocap Animation Pack 教學RIFLE Basic - Mocap Animation Pack 是一套 Unity 步槍動作資源,收錄超過 123 個動作捕捉的角色動作。 這些動作提供 Root Motion (RM) 與 In-Place (IPC) 版本,而步槍附加於 "RightHandMiddle1" 手指骨骼。 首先從資源商店搜尋 RIFLE Basic - Mocap Animation Pack 下載到專案並匯入專案。 匯入後出現錯誤 Component GUI Layer in Main Camera for Scene Assets ... is no longer available. 可以不理會。 開啟 [ Rifle_27A2_Basic > MotusMan ] 資料夾的 Demo 場景,按下 Play 測試遊戲。
場景的 MotusMan_v55 角色展示 RIFLE Basic - Mocap Animation Pack 部份的動作。 將此場景的 MotusMan_v55 複製到剪貼簿,建立新場景,將角色貼上在原點位置。 按下 Play 測試遊戲,角色的動作與 Demo 場景相同,可將玩家角色重新命名為 "Player" 。 取消勾選 Apply Root Motion 選項,增加 Character Controller 元件並調整膠囊位置與大小,用於控制玩家角色的移動。
稍後的操作將此角色修改為可提供玩家操作,包括 移動、跳躍、射擊等。接著檢視玩家角色的武器。 武器是 RightHandMiddle1 骨骼的子物件,相對位置與角度參考官方提供的文件,進行適當調整。
建立動作控制器建立動畫控制器,命名為 Player Animator Controller 用於管理此角色動作。 將 Player Animator Controller 動畫控制器套用到玩家角色,由於目前沒有放入動作,測試時將會看到角色出現以下姿勢。 滑鼠雙擊 Player Animator Controller 動畫控制器開啟編輯視窗。 滑鼠右鍵 Create State > From New Blend Tree 建立動作混合樹。 剛建立的混合樹用於控制角色的移動。 滑鼠點擊 Parameters 設定動畫參數,先將預設的 Blend 使用滑鼠雙擊改為 Speed 用於移動速度。 按下 + 可新增參數。 ☆ 新增 Turn (Float) 參數,用於控制轉向的動作。 ☆ 動畫控制器將包含 Speed, Turn, Jump, Aim 參數與 RelaxedMovement, AimMovement 混合樹。 進入 RelaxedMovement 混合樹,將預設的 1D 改為 2D Freeform Directional 混合型態,讓角色可以前後左右移動。
修改參數 Parameters = Turn / Speed 然後在下方 Motion 按 + 新增動作欄位。
開啟 [ Rifle_27A2_Basic > Animation ] 資料夾,將待機動作拖曳到動作欄位,然後測試遊戲。 增加動作欄位,並調整對應參數的位置。
[ Animation > Root_Motion ] 資料夾的是 Root Motion 版的走路、跑步、衝刺動作,包含移動資訊。 [ Animation > IPC ] 資料夾的是原地動作,包括走路、跑步、跳躍… 等,這些動作不包移動資訊。 本教學使用的 Relaxed 動作,指定給剛建立的 RelaxedMovemen 混合樹,拖曳到對應的動作欄位。 待機與前後移動的部份完成後,再設定左右移動部份。
選取混合樹,然後透過 Inspector 的紅點控制角色(類似搖桿)。此時玩家向左走與向右走的動作出現跳動不連續,需要修正。
本教學使用的第二部份 Aim 瞄準動作,指定給第二個 AimMovemen 混合樹,拖曳到對應的動作欄位。
建立 PlayerController.cs 腳本控制角色的動作,套用到 Player 玩家角色,程式碼如下:
測試遊戲時,將會發現使用類比搖桿沒問題,但使用鍵盤操作時,玩家角色似乎只能跑步,修改程式碼:
跳躍動作的判斷需要判斷玩家角色是否在地面,以避免角色跳躍後尚未落地可以重複跳躍的問題。 W2_Stand_Relaxed_Jump_Start_IPC 開始跳躍 W2_Stand_Relaxed_Jump_Air_IPC 跳躍後在空中 W2_Stand_Relaxed_Jump_End_IPC 跳躍落地 連結跳躍的動作 選取從 移動 混合樹到 Jump 動作的箭頭,將 Has Exit TIme 取消勾選,然後設定條件 Jump 觸發動作轉換。 開啟專案設定的 Input Manager 將可看到預設的跳躍使用鍵盤 space 空白鍵與 joystick button 3 搖桿按鈕。
|