看板 GameDesign 關於我們 聯絡資訊
會寫這篇的主要原因就是最近手癢了想來寫點東西 而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內容,例如場景編輯、行為樹、美術方面的功能等。 -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 114.34.12.120 ※ 文章網址: https://www.ptt.cc/bbs/GameDesign/M.1451553810.A.B1E.html
FukadaKyoko: 推分享~不過BP專案加入C++ code應該沒困難吧? 12/31 18:54
FukadaKyoko: 目前的專案做過這樣的事情~沒有遇到困難 12/31 18:54
FukadaKyoko: 另推BP不能merge, diff真是他X的鳥 12/31 18:54
FukadaKyoko: 嚴格說可以diff, 但一定要用UE的source control 12/31 18:55
akilight: 是喔,那可能是最近改版的功能,我之前好像4.5還4.6 12/31 18:55
FukadaKyoko: plugin 12/31 18:55
akilight: 想要這樣做,發現完全不行qq 12/31 18:55
FukadaKyoko: 喔! 我們用4.9跟4.10, 沒問題, 就在content browser 12/31 18:55
FukadaKyoko: 新增class就好了@@ 12/31 18:55
FukadaKyoko: 一開始就開c++專案, 討厭的是會幫你直接把game mode 12/31 18:56
FukadaKyoko: player controller, 還有一個啥都變成c++ code 12/31 18:56
FukadaKyoko: BP專案這3個class就是BP, 比較好編輯一點 = =" 12/31 18:56
FukadaKyoko: BP專案加入c++ code之後還要額外版控新冒出來的dll 12/31 18:57
FukadaKyoko: 跟pdb就是了 12/31 18:57
ym410804: 感謝分享~ 12/31 21:15
tomnelson: 感謝分享! 最近也開始從Unity轉Unreal... 01/01 18:09
halow: 好文推 感謝分享~ 01/05 05:35
Transformers: 分享推哦! 01/07 00:23