本文将记叙虚幻5中我第一个弄懂的蓝图脚本。
第一步
在关卡中添加一个门的StaticMesh模型,在蓝图类中为其添加一个简单盒体碰撞,在细节面板将其变化下的移动性设置为可移动。
第二步
在放置Actor面板中拖动一个触发框到关卡中并调整成合适的变换,然后打开关卡蓝图。
第三步
在关卡蓝图中创建如图所示的蓝图,这里的On Actor Begin Overlap(TriggerBox)
的创建方法如下:在关卡中选中TriggerBox,回到关卡蓝图右键可以找到创建。End Overlap
也是同理。
这里的
Play
表示动画帧继续播放,Play from Start
表示从最开始重新播放,区别在于如果暂停播放了动画,前者会从暂停处继续进行播放。Reverse
将会反向播放动画,Reverse from End
同理。Set New Time
可以从一个设置的时间开始播放动画。这里播放动画帧的逻辑类似于Godot4中的Animation Player
节点。
然后双击时间轴添加一个浮点数的变化轨迹,方法是点击添加轨道并添加一个浮点数的数值变化轨道,右键中间方格处添加两个帧,分别是时间0,数值0和时间2数值85。结束后为了动画的自然可以右键第一个帧选中自动来使其作为一个平滑的曲线过渡更加自然一些。
蓝图界面中的Target
表示引用的目标对象,可以用之前的方法,在关卡中选中门然后回到蓝图界面鼠标右键添加一个引用,从引用中拉出一条线并添加 Set Actor Rotation
函数,表示设置门的旋转。右键旋转体变量分割成XYZ三个方向上的数值,将动画的更新连接至这个脚本表示每次更新调用这个函数。并将动画中更新的数值赋值给 New Rotation Z
表示每次旋转围绕门的Z轴进行旋转和更新。
这样,Actor 角色靠近门的触发器就会调用开门的动画,本质上就是一个会改变浮点数值并将这个数值赋值给门的旋转参数的动画帧。如果,触发器没有重叠,将会反向调用动画,达到关门的目的。
Unity没什么意思,还是Unreal好玩儿~