[遊戲] 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
而下面這邊則是我製作的場景:(兩三個月前的截圖,有些地方其實當時還沒調好)
http://imgur.com/a/4hN7k
http://imgur.com/a/Pdvja
使用的素材有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