[遊戲] Unreal Engine 4/UE4 使用一年心得雜談

看板GameDesign作者 (OWeeeeeeeee~)時間8年前 (2015/12/31 17:23), 編輯推噓4(4014)
留言18則, 6人參與, 最新討論串1/1
會寫這篇的主要原因就是最近手癢了想來寫點東西 而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

12/31 18:54, , 1F
推分享~不過BP專案加入C++ code應該沒困難吧?
12/31 18:54, 1F

12/31 18:54, , 2F
目前的專案做過這樣的事情~沒有遇到困難
12/31 18:54, 2F

12/31 18:54, , 3F
另推BP不能merge, diff真是他X的鳥
12/31 18:54, 3F

12/31 18:55, , 4F
嚴格說可以diff, 但一定要用UE的source control
12/31 18:55, 4F

12/31 18:55, , 5F
是喔,那可能是最近改版的功能,我之前好像4.5還4.6
12/31 18:55, 5F

12/31 18:55, , 6F
plugin
12/31 18:55, 6F

12/31 18:55, , 7F
想要這樣做,發現完全不行qq
12/31 18:55, 7F

12/31 18:55, , 8F
喔! 我們用4.9跟4.10, 沒問題, 就在content browser
12/31 18:55, 8F

12/31 18:55, , 9F
新增class就好了@@
12/31 18:55, 9F

12/31 18:56, , 10F
一開始就開c++專案, 討厭的是會幫你直接把game mode
12/31 18:56, 10F

12/31 18:56, , 11F
player controller, 還有一個啥都變成c++ code
12/31 18:56, 11F

12/31 18:56, , 12F
BP專案這3個class就是BP, 比較好編輯一點 = ="
12/31 18:56, 12F

12/31 18:57, , 13F
BP專案加入c++ code之後還要額外版控新冒出來的dll
12/31 18:57, 13F

12/31 18:57, , 14F
跟pdb就是了
12/31 18:57, 14F

12/31 21:15, , 15F
感謝分享~
12/31 21:15, 15F

01/01 18:09, , 16F
感謝分享! 最近也開始從Unity轉Unreal...
01/01 18:09, 16F

01/05 05:35, , 17F
好文推 感謝分享~
01/05 05:35, 17F

01/07 00:23, , 18F
分享推哦!
01/07 00:23, 18F
文章代碼(AID): #1MXFGIiU (GameDesign)