用Unity做“吃雞”需要注意什麼

角色動作

玩 3D 遊戲時,經常會看到遊戲中的 3D 角色非常絢麗的動作表現,遊戲中的角色動作主要是通過美術製作完成。

製作方式有如下兩種:

通過動作捕捉,然後再由美術人員根據捕捉到的數據完成美術製作。

美術利用 Max 或者 Maya 工具直接製作完成。

相比前者動作比較逼真,成本也高。我們這裏不討論使用哪種方式,對於動作類遊戲,吃雞遊戲的角色動作是最多的。

它包括:跑,走,跳,翻牆,趴下,駕駛載具,扔手雷,裝備不同的槍械,使用不同的槍械射擊動作,救護,拾取彈藥裝備等等。

我們將其分成兩類:

一類是按照動作要求全部把動作做一遍,工作量是相當大的,因爲你不但要製作還要維護這些動作。

另一種是採用引擎提供的動作融合技術,這需要我們將動作進行分類,目的是減少一部分動作的製作,這種是最優的方案。

動作融合

不論是虛幻引擎、Unity 引擎還是自研引擎,成熟的引擎都會提供動作融合技術。

Unity 爲我們提供了動作狀態機,鑑於吃雞遊戲動作的複雜性,上圖是我們模擬實現了一下,我們在這裏將動作進行了分類,分幾層無所謂關鍵是能解決問題就可以。

我們這麼分的原因是方便對角色動作進行融合,層與層之間的播放可以設置優先級播放,也可以同時播放,這樣我們就可以實現動作的融合了。

我們爲什麼這麼分層?如果使用一層來實現角色動作狀態機,這麼多動作顯得非常臃腫而且動作之間的轉換非常複雜,靈活性不夠,讓開發者很容易深陷其中,邏輯很難理順。

所以我們採用了分層的策略,這樣動作的播放順序,動作的融合在邏輯方面會很清晰。

首先看 Base Layer,它是最核心的層,該層主要實現的是角色基本動作的播放。

我們將 Base Layer 層設爲父類,再看 OnlyArms 層,它繼承於 Base Layer。OnlyArms 層主要是在 Base Layer 層的基礎上做了一個擴展,比如加了一個角色拿不同的武器待機狀態,繼承原理跟 C++,C# 等面嚮對象語言的繼承方式類似。

另外,UpperBody 層主要是針對角色上半身的動作狀態機,便於與 Base Layer 或者 OnlyArms 層做動作融合,UnderBody 跟 UpperBody 類似,它是下半身的動作狀態機。

更多unity2018的功能介紹請到paws3d爪爪學院查找。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章