前一篇已經確定神海類游戲原型的目標,首先要做的就是3C‘s(Character, Controls, Camera)的開發。
UE4的3C‘s的程序部分開發主要也就是基於他的GamePlay Framework來進行的,只要在C++里開發完成,通過藍圖類繼承,把參數暴露給藍圖就可以由策划和美術師來直接使用了。
鑒於UE4自帶的Learn Project的示例代碼里還是有相當多參考示例的,一些基礎內容這里就跳過不講了,
具體的功能實現會在面涉及需求時詳細說明。官方的介紹在這里。

角色 Character
因為神秘海域角色一個特點就是各種角色的豐富的動作捕捉動畫,這就對UE4的動畫系統以及動畫藍圖使用有了很高的要求,所以角色的講解從動畫系統講起。這個教程里,我也是准備使用UE4 Marketplace上的動畫資源:
目前暫時是先用這6套動補數據。






把所有資源都導入后,因為每套資源都是綁定的自身項目里的Skeleton,這樣沒法統一調度,我們需要把所有資源指定到一套Skeleta mesh和Skeleton上

UE4 Marketplace上的動畫資源都是使用的Epic Skeleton Template,為
Skeleta mesh 指定 Skeleton。


接下來要通過UE4 Regtarget,來讓綁定一個Skeleton的動畫使用到其他的Skeleton上,即便骨架大小,數量不同也可以復制過去(不過效果不會太好)。細節看文檔就可以了,如果手里有很多其他游戲的資源,稍微做些配置還是可以用的。

使用同樣的Skeleton的資源還是有Pose T-Pos 和 A-Pos的區分的。

比如CoverAnimsetPro 的就是A Pose

這里我們要做的就是把Source的Skeleton的A Pose修改為T Pose,然后再Retarget到一開始確定那個Skeleton上。

如果做動畫資源的Retarget的話,要求Source Target的Pos是一致的,如果圖省事,可以根據使用Source和Target Pos動畫的數量來決定改哪邊的Pose,這里還是以T Pos為准,所以我這里修改了一個部分源動畫的Skeleton的Pose。
Source Pose未修改

Source Pose 修改后

下圖就是同樣一個Idel動作,源Skeleton沒匹配(A Pose)和匹配了(T-Pose)的對比。

Retraget功能不光是對應Animation Sequence,包括Anim BP(動畫藍圖)在內的所有動畫資源都可以轉化,如果直接轉動畫藍圖的話,里面引用的Blendspace,Aimoffset也可以一起轉換,還是非常方便的。
這樣把6套資源都轉化為了T Pose的動畫,暫時夠一款動作冒險類游戲的動畫資源使用了。接下來就是規划玩家和敵人的狀態,創作動畫藍圖了
