今天,我們就一起來探討一下,在遊戲中角色如何切換武器的功能。由於該功能相對有一點複雜度,所以我將會連載兩篇文章進行分享:
(1)首篇文章:如何配置切換武器的動畫。
(2)次篇文章:如何編寫武器架的代碼,實現多武器切換功能。大家可以參考《【Unity3D實例-功能-切換武器】切換武器(二)功能實現》
目錄:
1.創建動畫器
2.設置動畫
3.配置Base Layer圖層
4.創建和配置武器圖層
5.測試和運行
代碼、模型和動畫都已經上傳到我的個人博客了,大家可以自行下載。
原創來源於-谷宇博客:https://www.biguyu.top/home
一.創建動畫器
在 Unity 的“Project”面板中,點擊鼠標右鍵,選中“Create”,點擊“Animator Controller”創建動畫器,然後把動畫器綁定到角色上。
二.設置動畫
我這裏已經準備好了動畫,分別有角色普通的跑步動畫和站立動畫。角色手持手槍的拔槍動畫、跑步動畫和站立動畫。最後是角色手持步槍的拔槍動畫、跑步動畫和站立動畫。我們選中所有的動畫,然後點擊右側菜單欄中的“Rig”頁籤,在“Animation Type”選項中,選擇“Humanoid”,然後點擊“Apply”應用。
三.配置Base Layer圖層
1.第一步雙擊打開動畫器,選中“Base Layer”圖層。接着我們點擊鼠標右鍵,在彈出的菜單中,選擇“Create Sub-State Machine”,分別創建三個子動畫機(我這裏分別命名為“Base Movement、Pistol Movement和Rifle Movement”)。
2.第二步我們在左側欄中,創建四個觸發變量,分別為Bool類型的“run”用於觸發角色的移動動畫、Triggle類型的“grab”用於觸發角色的拔槍動畫、Triggle類型的“pistolMove”用於切換成pistol相對應的動畫組(包括手持手槍的站立動畫和移動動畫)、Triggle類型的“rifleMove”用於切換成rifle相對應的動畫組(包括手持步槍的站立動畫和移動動畫)。
3.第三步點擊選中“Any State”和“Pistol Movement”之間的過渡線,設置觸發變量為Triggle類型的“pistolMove”。然後再選中“Any State”和“Rifle Movement”之間的過渡線,設置觸發變量為“rifleMove”。
4.第四步雙擊打開子動畫機“Base Movement”,接着把角色的普通站立動畫和移動動畫拖拉到子動畫機上。為站立和移動動畫創建過渡線,並設置觸發變量“Run”(“站立”過渡到“移動”,變量“Run”為true,反之變量“Run”為false)。最後去掉“Has Exit Time”的勾選,因為移動需要實時進行。
5.第五步同理雙擊打開子動畫機“Pistol Movement”,然後把手槍的站立和移動動畫拖拉到子動畫機中,再創建站立動畫和移動動畫的過渡線,並選中過渡線,在右側欄中,設置觸發變量“Run”(“站立”->“移動”,變量“Run”為true,反之變量“Run”為false),最後去掉“Has Exit Time”的勾選。
6.第六步同理配置步槍子動畫機。如下圖:
四.創建和配置武器圖層
1.點擊動畫器,選擇“Layers”頁籤,點擊頁簽下的“+”號,添加一個手槍的動畫圖層(我這裏命名為“Pistol Layers”)。接着在圖層內點擊鼠標右鍵,選擇“Create”,點擊“Empty”,創建一個空動畫(該空動畫的目的是讓拔槍動畫不是在切換圖層時就播放,並且避免循環播放拔槍)。
2.接着把拔槍動畫拖拉到動畫器上,然後創建過渡線連接“Any State”和“拔槍動畫”。點擊該過渡線,在右側欄中設置觸發變量為Trigger類型的“grab”變量。最後去掉“Has Exit Time”的勾選,隨時可以進行拔槍操作。
3.最後在“拔槍動畫”和“空動畫”之間創建一條過渡線,讓拔槍後回到“空動畫”循環播放,形成閉環。要注意這裏的“Has Exit Time”需要勾上,因為需要等待拔槍動畫完成後,再過渡。然後點擊“Setting”,設置過渡時間為“1”秒,讓拔槍動畫更平滑過渡到空動畫。
4.同理創建步槍的動畫圖層和配置,如下圖:
5.在 Unity 的“Projects”面板中,點擊鼠標右鍵,選擇“Create”,點擊“Avatar Mask”創建一個遮罩(我這邊把Avatar Mask的名稱命名為“UpperBody”)。
6.選中創建完成後的Avatar Mask,在右側的面板中,點擊展開“Humanoid”選項,把“人物”中的下身全部點擊禁用掉。
7.點擊動畫器,選中“Layers”頁籤,點擊手槍圖層右邊的“小齒輪”打開圖層設置,把權重Weight設置為0,把遮罩Avatar Mask添加到圖層中,表示該圖層只對人物上身有效果。再勾選上“IK Pass”,使圖層執行OnAnimatorIK方法。(步槍圖層設置同理,如下圖)
五.測試與運行
親測過程:完成的切換武器效果。