大家好,我叫伍岚珊(Coffee Wu),是一个音频设计师,同时也是一个游戏开发爱好者。近期在业余时间中一直研究UE4引擎的蓝图功能。为了更有效的做练习,我设计了一款小游戏,并定下目标:用纯蓝图做出来。在几个晚上不断的探索中,终于成功完成了demo。在此想跟大家分享一下该游戏的设计思路和心得。(译注:UE4 为 Unreal Engine 4/虚幻引擎4,蓝图为Unreal Blueprint)。
这是游戏《My Show》当前已研发完毕的部分:
国内观赏视频渠道
整个游戏共用了1个Level Blueprint + 11个Widget Blueprint,蓝图总览如下:
UE4的优势—蓝图
蓝图是针对游戏添加的可视化脚本系统,美术/音频设计师可以使用程序员的概念和工具,通过连线把各种用途的节点、事件、函数、变量按编程逻辑连接到一起,从而创建元素在一定的程度下实现各种功能。
跟Unity相比,虚幻引擎存在“加载时间相对久,实时处理相对差,低配置硬件吃不消,初级开发者难以上手C++”等问题,但UE4蓝图的加入无疑成了初级开发者和设计师们一个很大的优势。
开发过程中我使用的蓝图
《My Show》当前功能不算复杂,用到的蓝图节点较基础。
Post Event
UE4与Wwise结合最基础的节点,在特定情况下,Actor将触发选中的Wwise Event。(节点前面需连接相关的触发条件)
Set Switch
设置Wwise Switch,将Actor设置成指定Switch。
Switch是《My Show》里面用得最多的功能,为了实现多个乐器的“键位通用”以及“参数切换”,多个Switch嵌套已成为工程的主体结构:
Wwise工程中有“大小和弦”、“力度”、“乐器”、“是否七和弦”、“是否高八度”、“演奏模式”共6个SwitchGroup。
A-Z中每一个键位都会实时经过精确的层层筛选,最终确定触发的音频。
Get Player Controller
获得玩家控制器。通常与AK组件相关联时作用于将Game Object定位至后续行为中,与“Get Player Pawn”作用相似,互相相对独立,但Pawn在游戏中受Controller管制。
Set RTPCValue
设置一个指定RTPC的X轴数值。
下图为最常用情况,将需要赋予的数值写在Value里即可完成设置。示例:RTPC“Reverb”的X值设为50。
我在《My Show》里让Slider(滑动条)与RTPC产生了联动系统。即当混响Slider的数值改变时,混响RTPC的数值也将实时变动。另外Volume、MusicSpeed、Color等也使用了同样的原理,从而构成游戏中的所有设置系统。
PS:UE4 Slider数值范围默认为0-1,RTPC值也要设置为0-1,否则需加算法节点(后面会介绍到)。
Callback、Custom Event、FlipFlop、Set Render
这几个节点通常我会结合起来用,下图为《My Show》选择了“Music Track”并开始播放一首音乐时运行的蓝图(文中只截取前面较关键的部分来依次介绍)。
Callback Mask:将AK信息回调。Callback可选的内容如下图所示。
Post Event Callback:指定一个Cutstom Event(自定义事件),当上述信息被成功回调后,将触发此事件,可视回调次数进行无限次触发。
Set Render:这系列节点有很多属性可选,我用了Set Render Angle(设置角度)/Set Render Scale(设置大小)/Set Color and Opacity(设置颜色和可见度)等来创建UI按钮动效和卡通人物动效。
UI动效应用如下:
卡通动效应用如下:
FlipFlop:翻转切换函数。将需要触发的动作分为A和B两条路线之后,每一次回调将以轮流方式触发ABABABA...这里的设计是重拍和次重拍(A)时卡通人物变大0.1s后还原, 弱拍(B)时旋转30度0.1s后还原;每个小节开始时切换舞台灯光颜色(切得不明显,因为感觉要被闪瞎了,美术表现尚需加强..)
目前我只需要两条路线,FlipFlop就满足需求了。但如果大家需要更多的,可以用这个MultiGate,我当做是高级的FlipFlop去用,Add pin可以添加无数个序列,还可以选择循环和随机触发序列。
PS:有个sequence节点长得很像的但用法千差万别,小心别用错了~
我的Callback机制“设计草图”:
在《My Show》中分别用了Music Sync Beat(每个拍子起点)与Music Sync Bar(每个小节起点)来分别控制了9个卡通人物的节奏点和背景灯光的颜色变换点。
PS:如果能做出每个卡通人物的骨骼和Animation动作的话效果会更好,奈何做不出相关素材,只能用纸片人素材临时做个样子。(简而言之目前是想得美,做的丑..)
评论
江 山
January 06, 2020 at 11:10 pm
非常棒的启发和教程
江 山
January 06, 2020 at 11:10 pm
非常棒的启发和教程
江 山
January 06, 2020 at 11:10 pm
非常棒的启发和教程!!!!
江 山
January 06, 2020 at 11:11 pm
非常棒的启发和教程!!!!
江 山
January 06, 2020 at 11:13 pm
非常棒的启发和教程!!!!
江 山
January 06, 2020 at 11:13 pm
非常棒的启发和教程!!!!
江 山
January 06, 2020 at 11:13 pm
非常棒的启发和教程!!!!
江 山
January 06, 2020 at 11:13 pm
非常棒的启发和教程!!!!
江 山
January 06, 2020 at 11:13 pm
非常棒的启发和教程!!!!
江 山
January 06, 2020 at 11:13 pm
非常棒的启发和教程!!!!
江 山
January 06, 2020 at 11:13 pm
非常棒的启发和教程!!!!
江 山
January 06, 2020 at 11:14 pm
非常棒的启发和教程!!!!
江 山
January 06, 2020 at 11:14 pm
非常棒的启发和教程
LIUXIN Liuxin
January 31, 2020 at 09:33 pm
请问大神~我是初学者,Wwise的初始界面被我弄乱了,在哪里能恢复啊?我找了好久都没有找到。谢谢
LIUXIN Liuxin
January 31, 2020 at 09:33 pm
请问大神~我是初学者,Wwise的初始界面被我弄乱了,在哪里能恢复啊?我找了好久都没有找到。谢谢
LIUXIN Liuxin
January 31, 2020 at 09:33 pm
请问大神~我是初学者,Wwise的初始界面被我弄乱了,在哪里能恢复啊?我找了好久都没有找到。谢谢.
LIUXIN Liuxin
January 31, 2020 at 09:34 pm
请问大神~我是初学者,Wwise的初始界面被我弄乱了,在哪里能恢复啊?我找了好久都没有找到。谢谢
Chirs Pei
April 01, 2020 at 10:37 pm
Layouts-Reset Factory Layouts
kai luo
April 20, 2020 at 03:40 am
删了从新下
kai luo
April 20, 2020 at 03:41 am
删了从新下
kai luo
April 20, 2020 at 03:41 am
删了从新下