前言:

前段時間沉迷只狼無法自拔,無奈被卡在了義父哪裡打不過去了,含恨被勸退!不管怎麼樣,眾所周知,只狼沒有第二週目(手動滑稽)。

言歸正傳吧還是繼續玩楚留香吧。

我們把角色的操作行為分為前置行為和後置行為,前置行為是指的,我剛才通過什麼行為進入到現在這個行為,就比方說我要跳舞,那麼我要跳舞這個行為的上一個行為就應該是站著,站著就是跳舞的前置行為。而後置行為是指的我下一個行為是什麼,我跳完舞需要蹲下休息,那麼蹲下休息就是跳舞的後置行為。

站立→跳舞→下蹲休息,這就是一個基本動作的連貫。

同樣的,先待機,再奔跑,再衝刺,再挑飛敵人也是同樣的邏輯。

1、我們先把共性和簡單的東西理清楚,然後在更高難度且比較抽象的東西進行組合,把這些元素都按照我們的行為規則編組成行為樹,利用變數來控制他們之間的狀態轉換。

2、所有的複雜動作都是在基礎動作的狀態下根據變數的變化切換的,那麼我們只要先把基礎邏輯搞清楚,然後在對付進階的邏輯就會得心應手。

我們會舉一個樣例,找一個模型和已有的動作來還原楚留香的設計,從無到有的按照楚留香的戰鬥進行設計。當然在大型的商業遊戲中肯定會更抽象更模塊化,通用性更高,但是需要的時間成本也會更多,我們在時間有限的情況下,只將基本的邏輯陳述即可。

而模型動作需求的設計、通用性的擴展方法、欄位的設計等我們會放在後面的分享當中做進階分享內容。

所用引擎版本:Unity 2017.4.15f

角色模型來源:6m5m遊戲素材網

一、行為的三個重要條件

任何一個角色的行為都包含三個必要的組成條件,分別是:觸發條件、前置過度條件以及具體的行為邏輯,觸發條件是指的通過何種操作開始過度到這個行為;前置過度條件是指的它的上一個行為是什麼行為,比方說三段跳的前置行為是跳躍,那麼跳躍就是它的前置過度條件;而具體的行為邏輯則是指的在這個行為之內的變化,例如:位移、動畫效果、特效等,具體會根據不同行為的需求進行配置。例如我們舉一個默認的待機狀態例子:

如圖所示:

進入遊戲時,會先判斷該行為的前置過度條件,然後根據玩家的觸發條件來改變當前的行為狀態,如果玩家的觸髮狀態成立則會進入具體的行為邏輯內。因此,一個行為的組成以及一個行為的切換,主要就是通過這三個重要的環節或者參數進行配置的。

二、行走和旋轉:

這裡需要說一個關於動畫強制中斷的概念:Has Exit Time,這是個bool型的參數,這個參數的意思是:當我從Idle→Walk的觸發條件成立時,我是否需要等待Idle動畫播放完畢才能播放Walk動畫。Has Exit Time是一個很關鍵的參數。

舉個例子:在楚留香中,我們釋放技能釋放到了一半,突然暗香突進貼身,我們這個時候需要立即中斷當前的技能,馬上釋放一個護盾,這個時候就需要強制中斷技能,而不是一定要等到我當前的技能釋放完畢才能釋放護盾,因此這種情況下,Has Exit Time就必須設計為false。反之,在楚留香中,絕學的釋放時不允許中斷的,我釋放絕學的時候不允許其他行為,必須等待絕學釋放完畢才能做下一個動作,那麼這個時候Has Exit Time就必須為設計為true。

更多知識點可以在Unity的Mecaime動畫系統中詳細查詢,這裡僅做一個小的科普。

1、位移邏輯:

遊戲物體在世界坐標中的位移是通過三維向量來進行計算的。

我們的設計方案是:當什麼都不按下時,角色保持Idle行為,當我們按下方向鍵時,則會根據方向鍵的方向進行位移,同時會根據行為播放動畫。根據我們的設計我們需要那些參數來完成呢。

角色的物理位移邏輯如圖所示:

2、轉向邏輯

楚留香中,當我按下W鍵,此時突然再按下S鍵時,角色並不是立即把方向轉到背後,而是會有一個轉向的過程,從左邊或者右邊繞到背後。

視頻封面

00:12楚留香的轉向邏輯

這裡面的邏輯其實是,當我按下方向鍵後。會執行如下的邏輯:

1、檢測方向鍵的向量,計算它的模是否大於0,如果大於0說明角色的位置產生了參數的變化。

2、如果模大於0,則播放跑步動作;否則播放待機動作。

3、如果模大於0,且正在播放跑步動作,則獲取角色的目標朝向,用四元數進行計算求出差值,每幀賦給角色的旋轉參數。

4、如果模大於0,且正在播放跑步動作,則角色朝著其Z軸每幀進行位移。

它的實際效果是,當我進行不同方向的移動時,我會將我當前的方向跟我的目標方向進行一個四元數的差值計算,求出一個差值,然後每幀將這個差值賦值給角色的rotation參數。讓其旋轉有一個過度的轉向效果,這樣的效果會比直接硬切更具有真實感。

如下將按下反方向鍵硬切的轉向,跟按下反方向鍵有差值旋轉的轉向進行對比:

視頻封面

00:19按下反方向鍵硬切的轉向視頻封面

00:32按下反方向鍵有差值旋轉的轉向
角色位移及轉向邏輯1
角色位移及轉向邏輯2

本章節告一段落,後面的第三章將介紹基礎攻擊行為的邏輯

1、普攻的釋放時機

2、普攻的動作

3、普攻的冷卻邏輯

4、普攻的分段邏輯:

5、普攻是如何造成傷害的


推薦閱讀:
相關文章