[遊戲] Unreal Engine 4/UE4 行為樹&場景編輯

作者: akilight (OWeeeeeeeee~)   2015-12-31 18:10:03
上一篇談了一下BP,這邊就來講一下UE4一個很棒的內建功能:
Behavior Tree(BT,行為樹)
一個簡單的行為樹長這樣:
http://i.imgur.com/qhQz7Zo.png
在ue4裡面,行為樹由幾個部分組成
behavior Tree:行為樹本體,就是上面看到的那張圖
blackboard:儲存資料用
node:行為樹的節點,節點可以是流程控制(例如selector、sequence),或是action(
behavior task,執行動作)
節點上面還可以掛上decoactor來控制是否執行
在Unity裡面,想要使用BT的話,就必須花錢買套件,或是自己花時間寫。
UE4則是都幫你準備好了,無論是BT本身,配套的元件,圖像化編輯器。
只要搭配自訂的BT task、BT decorator,可以很輕鬆的寫出一套好用、好維護、好擴充
的AI行為,或是拿來當作流程控制使用也是可以的。
BT的優點:
+彈性高、可自定義task、decorator內容
+功能齊全
BT的缺點:
-沒用過的人會需要花一些時間學習
-需要特別注意各種條件下的update、開始、結束時機的事件設計(其實也不太算缺點,
只是在設計上需要多花一些心思去考慮)
在場景的部分,UE4提供了同步的場景讀取,以及非同步的串流讀取。後者必須先將需要
串流的場景掛在主場景之下。這個部分的好處是可以將大場景切分成小塊,對於協作編輯
來說會比較方便,以及可以透過串流來調整遊戲的負載、效能。
不過不管是串流、切換讀取,多多少少都還是會因為IO而造成卡頓的現象。在一般遊戲中
這個影響是不太大,不過假如有需要做VR的就需要特別注意這點。因為卡頓的時候會造成
畫面停頓,這時玩家移動頭部的話就會因為畫面跟不上、跳動等而造成嚴重的暈眩現象。
至於要如何解決這問題,只能說目前沒有好的解法,需要在設計上直接去避免讀取過多,
比較常見的方法就是直接把整塊畫面弄黑,等讀取完以後再恢復,避免玩家看到卡頓的畫
面而頭暈。
UE4場景編輯的優點:
+方便拆分
+操作上較為直覺,可以透過alt+滑鼠拖曳直接複製場景物件(unity需要手動ctrl+d,然
後再拉開),以及其他零碎的方便小功能
+顯示模式多樣
UE4場景編輯的缺點:
-lightmap彈性低
-讀取問題需要注意
-需要大量搬移物件時不太好操作
-無法像Unity那樣在場景中隨性的堆階層式的Gameobject,UE4這方面限制較多
-靜態光源最多只能重疊四盞,超過就會被強制切成動態光
(效能問題,shadow map只能存四個光源,所以場景編輯上要注意)
這篇就先講到這。
剩下的就是美術相關功能的心得,會在下一篇講完。
作者: ADF (............￾ ￾NN￾)   2014-01-01 01:07:00
loading會卡的原因 是因為你background load 的時候static load 由於UE4的奇怪機制 會把main thread lock住等BGload完

Links booklink

Contact Us: admin [ a t ] ucptt.com