【Unity3D實例-功能-拔槍】角色拔槍(二)分割上身和下身_遊戲開發

今天是“角色拔槍”的第二篇文章,我將會告訴大家,如何實現角色的“上身動畫”和“下身動畫”分開,也就説上身執行拔槍、射擊和換彈等動作,而下身則獨立進行移動動畫。這種分離式動畫控制不僅增強了動畫的靈活性,還為玩家帶來更好的遊戲體驗。完整的拔槍功能:

(1)首篇文章:如何實現動態創建武器和角色拔槍的動畫,大家可以參考《【Unity3D實例-功能-拔槍】角色拔槍(一)動態創建武器》。

(2)末篇文章:如何使用IK來讓角色持槍的雙手更加貼合武器,顯得更加平滑而真實,大家可以參考《【Unity3D實例-功能-拔槍】角色拔槍(三)IK的使用-緊握武器》


目錄:

1.創建動畫器

2.配置拔槍動畫

3.創建和設置Avatar Mask

4.Avatar Mask掛載到圖層

5.測試和運行



一.創建動畫器

在 Unity 的“項目”面板中,點擊鼠標右鍵,在彈出的菜單中,接着選中“Create”,點擊“Animator Controller”創建動畫器,然後把動畫器拖拉到角色上進行綁定。

【Unity3D實例-功能-拔槍】角色拔槍(二)分割上身和下身_遊戲_02


二.配置拔槍動畫

1.(可選)第一步如果大家是按照我上一篇文章《【Unity3D實例-功能-拔槍】角色拔槍(一)動態創建武器》來配置拔槍動畫的話,點擊打開動畫器,把拔槍的動畫和過渡線刪掉,我們重新設置動畫。

【Unity3D實例-功能-拔槍】角色拔槍(二)分割上身和下身_c#_03

2.第二步打開動畫器,點擊選擇“Layers”面板。在面板中,點擊“+”添加一個新的動畫圖層,我這裏它命名為“Weapon Layer”,然後把“RifleIdle”(站立動畫)和“GrabRifleFromBehind”(拔槍動畫)拖拉到動畫器的“Weapon Layer”的動畫圖層中。

【Unity3D實例-功能-拔槍】角色拔槍(二)分割上身和下身_遊戲開發_04

3.第三步我們選中“Weapon Layer”圖層,我們點擊“Any State”(任何狀態下),右鍵選擇“Make Transition”創建過渡線,我們需要把“Any State”的節點與“GrabGun”(拔槍動畫)的節點通過過渡線連接起來,然後再把“GrabGun”(拔槍動畫)和“Idle”(站立動畫)也連接起來。

【Unity3D實例-功能-拔槍】角色拔槍(二)分割上身和下身_unity_05

4.第四步在《【Unity3D實例-功能-拔槍】角色拔槍(一)動態創建武器》文章中,已經創建好了觸發變量“grab”,如果沒有創建的小夥伴。可以選擇動畫器中“Parameters”面板,點擊“+”,添加一個Trigger的觸發變量。

【Unity3D實例-功能-拔槍】角色拔槍(二)分割上身和下身_unity3d_06

5.第五步選中“Any State”(站立動畫)與“GrabGun”(拔槍動畫)之間的過渡線,然後在右側面板中,點擊“Conditions”列表旁邊的“+”按鈕,在觸發變量下拉框中選擇“grab”變量,用於激活拔槍動畫。記得取消勾選“Has Exit Time”,因為拔槍操作可以根據玩家輸入隨時觸發。

【Unity3D實例-功能-拔槍】角色拔槍(二)分割上身和下身_遊戲_07

6.第六步選中“GrabGun”(拔槍動畫)和“Idle”(站立動畫)之間的過渡線,這裏需要保持“Has Exit Time”的勾選狀態是選中的,因為我們希望在拔槍動畫完全播放結束後才進行過渡。接着點擊“Settings”,將“Transition Duration”的過渡時長設置為1秒,使得拔槍動畫結束後,角色能更平滑地切換到Idle站立狀態。

【Unity3D實例-功能-拔槍】角色拔槍(二)分割上身和下身_c#_08

三.創建和設置Avatar Mask

1.在 Unity 的“Projects”面板中,點擊鼠標右鍵,在呼出的菜單中選擇“Create”,點擊“Avatar Mask”創建一個頭像面具(我這邊把Avatar Mask的名稱命名為“UpperBody”)。

【Unity3D實例-功能-拔槍】角色拔槍(二)分割上身和下身_遊戲開發_09

2.選中創建完成後的Avatar Mask,在右側的面板中,點擊展開“Humanoid”選項,把“人物”中的下身全部點擊禁用掉。

【Unity3D實例-功能-拔槍】角色拔槍(二)分割上身和下身_c#_10

四.Avatar Mask掛載到圖層

打開動畫控制器,選擇動畫器的“Layers”面板,點擊“Weapon Layer”動畫面板旁邊的“齒輪”按鈕,打開Mask設置。接着需要把“Weight”權重調到1。再點擊“Mask”選項,選擇剛剛我們創建的Avatar Mask。

【Unity3D實例-功能-拔槍】角色拔槍(二)分割上身和下身_unity_11

五.測試與運行

親測過程:進入 Play Mode 進行測試。當玩家按下拔槍鍵(我這裏設置為“空格”鍵)觸發拔槍動畫時,同時按下WSAD角色移動按鍵,角色上身成功播放拔槍動畫,下身仍然保持奔跑的動畫。這時角色的手部位置還不能緊貼武器,沒關係。在末篇文章《【Unity3D實例-功能-拔槍】角色拔槍(三)IK的使用-緊握武器》中,我將會分享給大家IK的使用。

【Unity3D實例-功能-拔槍】角色拔槍(二)分割上身和下身_unity_12