[游戏] Unreal Engine 4/UE4 使用一年心得杂谈

楼主: akilight (OWeeeeeeeee~)   2015-12-31 17:23:27
会写这篇的主要原因就是最近手痒了想来写点东西
而Unity很多人在用、相关的文章也很多了,所以就挑个没什么人分享的UE4来写一下。
因为是心得杂谈,所以也没什么脉络,就想到什么写什么这样。
内容主要就是根据我这一年多来的UE4使用历程来做心得分享,大致上会聚焦在UE4的使用
和各种小地方细节,而不是语法coding,想看语法的人可以直接上UE4的官方youtube频道
就有许多详细的教学了。
好,那就稍微简略的介绍一下,UE4究竟是个怎么样的东西。
UE4是由EPIC所开发的一套完整的游戏引擎,主要的特色就在于非常强大的次世代绘图能
力,会选择使用UE4的,大多也是冲著这点而去。
UE4的画面有多强大呢?
目前最具代表性的就是这个
Unreal Engine 4 - Kite Trailer Tech Demo
https://youtu.be/Yo2-Pgcmh8U
全程实机运算,photorealistic rendering
当然,像上面那样的场景,需要花费不少功夫去制作美术素材,以及针对效能来做各种调
整。没有$$和人力的人请不要轻易尝试qwq
而下面这边则是我制作的场景:(两三个月前的截图,有些地方其实当时还没调好)


使用的素材有UE官方demo中抓出来的、UE market里面买的一组科幻套件,以及请朋友做
的部分自制素材。
也就是说,只要用了UE4,想要做出漂亮的画面并不是什么困难的事。
(当然啦,需要花时间的场景编辑微调、打光、效能调整等是另外一回事)
接下来就来讲讲,实际上在制作时所会碰到的部分。
首先是最主要的功能制作,UE4在这块主要是使用Blueprint(简称BP)作为场景物件的基
本单位。(类似Unity的Prefab,不过稍有不同)
Blueprint就是蓝图,描述了这个物件的内容,一个BP里面可以放很多component,例如一
个角色就具备了capsule collider、character movement、skeletal mesh等component。
除了component以外,BP最重要的功能就是可以让你在里面编辑事件,也就是图像化的程
式语法。
在绝大部分的情形下,只要使用BP就可以让你做完整款游戏的gameplay功能。
如果有BP不足以cover的部分,或是一些其他的考量,也可以搭配使用C++来撰写。
而BP编辑本身也和UE4整合得相当好,一些在Unity里面需要另外开Editor Script自己扩
充的功能,在UE4里面都有,可以直接在BP的面板上使用(例如把Vector参数暴露成在3D
空间中的可见座标,可以用鼠标直接拉handle来调整数值)。同时UE4也内建支援CSV表,
可以直接转成uasset使用,配合预先定好的资料结构就能直接在BP中读取使用。
也就是说,只要把BP弄懂,基本上UE4你就会了一半。
这边就来做个小整理
BP的优点:
+内建支援版控(perforce、SVN),不过这是UE4整体内建的功能就是,不算BP功能,只
是懒得另外找地方放就先一起写在这XD
+图像化编辑方便
+许多方便使用的功能,特别是在需要时间序的功能上,内建的delay、timeline、
function timer超级无敌好用
+编译时间快
+功能齐全
+支援C++(不过需要开visual studio来编译,加上C++本身compile time有点久所以我不
常用,都是以图像BP编辑为主)
BP的缺点:
-需要花时间学习一下用法和小技巧
-建立专案时,如果选了BP only的专案(无法使用C++编辑),想要转换为C++/BP专案会
很麻烦,所以建议是一开始就选C++/BP
-在专案管理上,由于UE4的特性,在搬移BP档案时需要非常注意
例如场景中存在BP A,这时我想把专案目录里面的BP A档案搬移到其他目录位置,由于
BP A物件正在使用中的关系,UE4会在原地留下BP A的档案,然后在目标位置创立一个新
的BP A的指标档,指向原先的档案
(但是在UE4编辑器中,你只会看到这个新的指标档)
这个动作会造成的主要问题就是SVN管理上会稍微麻烦一些(一个档变两个)
以及要删除、重建BP时没注意到被隐藏的原始档的话,会鬼打墙
-图像化的编辑较难做内容整理,当一个BP(例如玩家主角)中的东西越来越多时,就要
多花一些心思整理,或是考虑切component拆分功能,不然后续会比较难维护
(想要找到这个功能吗?我把所有的node放在node海里面了,去找吧!)
-像code那样find all reference不太方便,不容易跨BP找到这个功能被哪些地方使用
-纯BP不能像C++那样作code merge、difference检视,多人协同编辑要注意冲突问题
由于篇幅的关系,这篇就先写到这样。(怕太长的文章直接被end qq)
接下来几篇我会再继续写其他的UE4内容,例如场景编辑、行为树、美术方面的功能等。
作者: tomnelson   2014-01-01 18:09:00
感谢分享! 最近也开始从Unity转Unreal...
作者: halow (阿痞痞)   2014-01-05 05:35:00
好文推 感谢分享~
作者: Transformers (图学真是深奥)   2014-01-07 00:23:00
分享推哦!
作者: FukadaKyoko (小毛哥)   2015-12-31 18:54:00
推分享~不过BP专案加入C++ code应该没困难吧?目前的专案做过这样的事情~没有遇到困难另推BP不能merge, diff真是他X的鸟严格说可以diff, 但一定要用UE的source control
楼主: akilight (OWeeeeeeeee~)   2015-12-31 18:55:00
是喔,那可能是最近改版的功能,我之前好像4.5还4.6
作者: FukadaKyoko (小毛哥)   2015-12-31 18:55:00
plugin
作者: ym410804 (阿喜)   2015-12-31 21:15:00
感谢分享~

Links booklink

Contact Us: admin [ a t ] ucptt.com