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/cn.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灯, 水草

请输入看板名称,例如:WOW站内搜寻

TOP