GameDesign 板


LINE

網頁版 https://yekdniwue.blogspot.com/2019/06/blueprints-in-depth-part-1.html Unreal 官方公佈了兩個有關blueprint的深度介紹的影片 Blueprints In-depth - Part 1 | Unreal Fest Europe 2019 | Unreal Engine https://www.youtube.com/watch?v=j6mskTgL7kU
Blueprints In-depth - Part 2 | Unreal Fest Europe 2019 | Unreal Engine https://www.youtube.com/watch?v=0YMS2wnykbc
投影片 https://epicgames.ent.box.com/s/hdv4bye3dezabp4duq8pttsha8kjjlde 這篇文章算是摘錄Part 1的一些重點出來~ Author 作者說他自己是artist designer,不是程式出身,所以內容可能有一些是身為程式本來 就知道的事情 https://youtu.be/j6mskTgL7kU?t=88
Introduction Blueprint(BP)是Unreal Engine很重要核心的功能 學習BP是很容易,就像畫流程圖一樣。 BP的UI介面其實跟程式的.h以及.cpp是很類似的,所以也容易理解。 使用BP很簡單,但是重點在於如何"正確"使用 Feature https://youtu.be/j6mskTgL7kU?t=409
Feature就是介紹BP跟各種功能/資料類型/類別的關係與說明 The Big picture 基本上寫程式想法差不多 如何讓BP盡可能的簡潔 如果有人要接手我的工作,怎麼樣才好理解我寫的BP 在作BP的時候有沒有一併考慮記憶體以及效能相關的問題 有沒有考慮到這個BP未來如果會擴張的情況 https://youtu.be/j6mskTgL7kU?t=752
以一個門作為範例 首先一開始一定都是很簡單一個靠近就會開門的BP 之後隨著需求增加了好幾個門的BP,每個功能都有些微的不同。 然後把有相同的部分往上抽了底層,base BP class BP_EnvironmentObject。 隨著複雜度提升,還繼續往C++層抽,把複雜的功能放進C++。 但是可能玩家會去開門,所以玩家會跟門有關,開門的時候會跟動作有關,所以玩家的動 畫BP也會跟門有關。 為了提示門可以開,所以HUD也來跟門參一腳了 可能有開門相關的獎盃,所以獎盃也來攪和。 槍可能可以把門打穿,所以.... 以上就是一個從一個簡單的BP到整個複雜專案的情況。 Run Time Performance 接下來談到執行的效能部分 https://youtu.be/j6mskTgL7kU?t=1088
BP比C++慢,但有的時候效能問題的主因不一定是BP造成的 有很多BP轉C++的目的不一定是為了改善效能 不過錯誤的使用BP有可能造成嚴重的效能問題 BP比C++慢10倍,不過實際上還是要根據不同的情況才能算數。 BP效能不好的幾個原因 https://youtu.be/j6mskTgL7kU?t=1133
1. 太多的節點互相連接 2. 數學運算或是複雜的邏輯運算作在BP是昂貴的。 3. 在BP使用迴圈是昂貴的 4. 在BP巡訪大量的actors/classes是昂貴的 5. 在BP處理Tick的行為是昂貴的,也是BP造成效能不好的主因之一 BP的效能根據不同的執行方式: 編輯器執行(Play In Editor)、Development、Shipping 是有很大的差異的 https://youtu.be/j6mskTgL7kU?t=1303
Tick https://youtu.be/j6mskTgL7kU?t=1412
造成BP效能問題的主因之一就是Tick 這裡的Tick指的是廣泛的Tick,例如BP裡面的Tick,AnimBP的UpdateAnimation,UMG裡面 的binding 大部分的情況你不需要使用Tick,甚至於可以關掉Tick。 例如使用Timer,使用事件控制,或是只在某些條件成立的時候才執行Tick,或是距離近/ 玩家面向此Actor的時候才Tick等等 有些時候也可以透過material來處理BP要做的事情, Profiling and Debugging https://youtu.be/j6mskTgL7kU?t=1869
BP的除錯介面很方便,從圖中就可以知道現在正在執行那些節點,也可以透過Filter功能 只看某一個想關注的actor 透過watch介面也可以即時的看到變數值 Visual Logger https://youtu.be/j6mskTgL7kU?t=1963
Visual Logger功能也是很好的除錯對象,在BP內也可以使用,不管是寫一串文字,畫一 個sphere,capsule,一個區段等等。 在Editor可以直接叫起Visual Logger並且錄製除錯資訊。 Console Command https://youtu.be/j6mskTgL7kU?t=2113
console command stat game可以快速地看到BP的效能資訊 console command dumpticks可以把當下所有有tick的actor資訊寫進outputlog內,可以 仔細的觀察有多少actor在tick。 Others https://youtu.be/j6mskTgL7kU?t=2168
UE4內建的profiller還是最詳細的工具,裡面可以列出哪個Actor的哪個函式占用多少CPU 時間。 BP也可以實作自動化測試,只要繼承FunctionalTest這個class並實作對應的函式,以及 計算結果的正確與否 Memory and Loading https://youtu.be/j6mskTgL7kU?t=2362
BP對記憶體與程式讀取時間的影響是很大的 BP與C++的讀取的行為從本質上就有很大的差別 BP是被視為content,Asset C++ class則是在程式/遊戲啟動的時候就已經載入到記憶體了,BP則是有需要用到的時候 才會觸發讀取。 https://youtu.be/j6mskTgL7kU?t=2429
BP什麼時候會被觸發讀取可以使用Editor內的Reference Viewer來查看。 由左往右連接的意思代表讀取左邊的Asset也會一併讀取右邊的Asset。 BP內的Cast也會建立相依(Reference) Editor內的SizeMap也可以看出這個BP的大小是因為哪些相關連的Assets組成的 避免一個BP reference到許多其他的BP/Asset。 https://youtu.be/j6mskTgL7kU?t=2736
有需要可以透過增加一層C++ 的base class來迴避BP 彼此reference的問題。 BP的Function Libraries使用要很小心,如果libraries連結到很多不同的class,就會造 成災難。 使用Soft reference可以讓BP真的有需要這個asset的時候才作讀取。 Editor與packaged project在讀取時間有很大的差別 --



※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 36.225.149.199 (臺灣)
※ 文章網址: https://webptt.com/m.aspx?n=bbs/GameDesign/M.1559648377.A.F9A.html
1F:推 wangm4a1: 推 06/04 19:52
2F:推 kindamark: 推 06/04 20:37
3F:推 jerryklu: 推 06/04 20:57
4F:推 coolrobin: 這篇讚 06/05 20:49
5F:推 s9city: 太棒了,一直想找這樣的教學,清楚明瞭 06/06 21:50
6F:推 coolrobin: BP一個沒用好,在遊戲啟動時整個遊戲的資源都會載進來 06/06 22:10
7F:推 PathosCross: 受益良多,推一個 06/07 23:40
8F:推 xeniaeo: 推 06/22 21:56
※ 編輯: yekdniw (59.120.146.90 臺灣), 07/15/2020 11:06:17







like.gif 您可能會有興趣的文章
icon.png[問題/行為] 貓晚上進房間會不會有憋尿問題
icon.pngRe: [閒聊] 選了錯誤的女孩成為魔法少女 XDDDDDDDDDD
icon.png[正妹] 瑞典 一張
icon.png[心得] EMS高領長版毛衣.墨小樓MC1002
icon.png[分享] 丹龍隔熱紙GE55+33+22
icon.png[問題] 清洗洗衣機
icon.png[尋物] 窗台下的空間
icon.png[閒聊] 双極の女神1 木魔爵
icon.png[售車] 新竹 1997 march 1297cc 白色 四門
icon.png[討論] 能從照片感受到攝影者心情嗎
icon.png[狂賀] 賀賀賀賀 賀!島村卯月!總選舉NO.1
icon.png[難過] 羨慕白皮膚的女生
icon.png閱讀文章
icon.png[黑特]
icon.png[問題] SBK S1安裝於安全帽位置
icon.png[分享] 舊woo100絕版開箱!!
icon.pngRe: [無言] 關於小包衛生紙
icon.png[開箱] E5-2683V3 RX480Strix 快睿C1 簡單測試
icon.png[心得] 蒼の海賊龍 地獄 執行者16PT
icon.png[售車] 1999年Virage iO 1.8EXi
icon.png[心得] 挑戰33 LV10 獅子座pt solo
icon.png[閒聊] 手把手教你不被桶之新手主購教學
icon.png[分享] Civic Type R 量產版官方照無預警流出
icon.png[售車] Golf 4 2.0 銀色 自排
icon.png[出售] Graco提籃汽座(有底座)2000元誠可議
icon.png[問題] 請問補牙材質掉了還能再補嗎?(台中半年內
icon.png[問題] 44th 單曲 生寫竟然都給重複的啊啊!
icon.png[心得] 華南紅卡/icash 核卡
icon.png[問題] 拔牙矯正這樣正常嗎
icon.png[贈送] 老莫高業 初業 102年版
icon.png[情報] 三大行動支付 本季掀戰火
icon.png[寶寶] 博客來Amos水蠟筆5/1特價五折
icon.pngRe: [心得] 新鮮人一些面試分享
icon.png[心得] 蒼の海賊龍 地獄 麒麟25PT
icon.pngRe: [閒聊] (君の名は。雷慎入) 君名二創漫畫翻譯
icon.pngRe: [閒聊] OGN中場影片:失蹤人口局 (英文字幕)
icon.png[問題] 台灣大哥大4G訊號差
icon.png[出售] [全國]全新千尋侘草LED燈, 水草

請輸入看板名稱,例如:Soft_Job站內搜尋

TOP