【Gamystery】EP15: Unreal Engine 技術分享05
- 彥澤 廖
- 2024年9月13日
- 讀畢需時 3 分鐘
已更新:2024年9月16日
近期協助的專案, 近期終於在中正紀念展出。過程中有蠻多獨特的體驗,也學習到許多。
同時利用其他時間,開發其他的Project。作為工程團隊的一個角色,如何與非工程類型的其他夥伴溝通、協調是門深奧的學問。對我來說,此次的經驗,相比於過去的團隊,大家的Domain Knowlege之間的差異又更巨大。促使我產生了有關未來運作團隊的模式、開發流程的想法。
本期搜集這兩個禮拜學習到的內容,與讀者分享。原先, 有嘗試讓分享的內容維持在特定主題上。執行後,為此需要付出比較多額外的成本。因此,未來會朝向分享,我覺得值得分享、有啟發的內容。多源自於開發上的遇到的貧頸、新知的成長。
最後,如果你喜歡本期的內容歡迎到FB粉絲專頁/IG 按個讚,鼓勵我持續分享UE上學習的大小事。
互動的過程中,物件的效果經常難以單依靠動畫完成、需要透過藍圖( Blueprint )的輔助。
最近發現特別好用的功能,在『序列中(LevelSequence)觸發事件』,能夠達到再「指定的時間觸發對應的事件」,事件可能是木門打開、皮球落下、爆炸....等等。
實際在專案中使用後,這樣做的好處有:
增加協作的效率
清晰化所有需求
降低修改成本
團隊可以透過建立事件,全面盤點完成動畫所需要的任務,並討論該如何完成。
有的只需要純動畫、有的則有邏輯的交戶、此時就能清晰地被看見。
最後只要實作定義好的事件就能完成整個動畫。
這是一場2023年Unreal Fest的分享。起初引起我的觀看的動機是,我同樣對藍圖與C++的使用情境或時機感到困惑。儘管接觸UE將近兩年,有些開發經驗,也有過開發經驗,依舊對此問題沒有篤定的見解。
「執行效率」是我在不具備任何開發經驗,最先理解兩者差異的重要因素。其次是「開發的速度」,藍圖在面對實驗型的邏輯時,能展現極高的彈性和變化,C++寫起來則反鎖許多,降低了迭代的速度。
「維護成本」則是影片帶給我新的理解。藍圖是二進制檔案,造成版控與協作上的難度提高、經常性需要事前討論避免同時修改,難以將前後版本的差異性做可視化; C++則能有更好管理、面對衝突時可以完美的融合兩個並進的開發。分享者同時提到,整合外部模組的議題,
當藍圖依賴於多個外部模組時,會造成專案肥大( 重複的資源過多、部署也不容易),夠過C++的整合則能帶來瘦身不少,模組之間的關係也更加清晰。


常玩魂系的玩家對Boss死去後化作灰燼的畫面一定不陌生。對於沒有任何特效概念的人來說看起來也特別複雜。實際上透過粒子系統就能達到類似的效果,僅僅半天以內的時間就能完成。
純粒子使用算是入,影片中結合到與材質球的應用,對入門來說有點難度。但粒子的系統不同於邏輯面的開發,每個步驟的能看到明顯的變化,為製作增添不少樂趣。
自己玩遊戲時,經常選擇全螢幕外加無邊匡模式。最近開發的專案,想內營造出於桌面高度融合的視覺效果,所以搜尋了該如何讓應用進入無邊匡模式。原來官方已經將其變為專案的設定之一,讓開發者可以非常輕鬆的設定。
同場加應:改變視窗的解析度調整視窗大小
方法建立在運用.USD的檔案類型上, 通用場景描述(Universal Scene Description, USD)。
自身最早聽聞是應用在Oniverse上,沒想到一查才發現最早由 Autodesk、Foundry 和 SideFX 三個創始重要夥伴的支持。
不得不說,接觸到的資訊鮮少看到USD的身影,個人觀點可能的原因是:
1.協作類教學非廣大學習受眾
2.非展示理想
就我所知,每個平台都有各自獨特的功能,例如Blender的Modifier, Unreal PCG...等等。
USD雖主打通用, 但某些情境下無法完美轉移, 或是仰賴另一種流程。
雖然知道功能普遍存在缺陷是相當正常, 但學習一項新技術的同時總會保持得較高的期待。
若無法有效改善,採用的機會就不高。
影片展示的案例還不算複雜,不知道最常提到的Material問題能否被完美解決。