[游戏] 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