制作大摆锤陷阱
新增 /Game/CodeMechanism文件夹。
创建Actor的蓝图,命名为:BP_Sphere。


双击进入,添加静态网格体组件。


选择静态网格体为SM_Sphere。


顶点在原点位置。这样控制左右旋转时就可以简单操作原点的动作。

添加组件球体碰撞体Sphere Collision。


设置球体半径160

将碰撞体往下移动,包裹底部的球体。


事件图表
添加时间轴,输入..搜索即可(两个点)。

创建后,双击时间轴,就可以编辑。
左上角添加轨道——添加
浮点型轨道。
鼠标在时间轴上右键,添加关键帧 0s是-40。

再添加1.2s 是40和添加2.4s为-40;按F可以自通调整预览大小。

三个点鼠标右键点击,选择自动。


回到时间轴图表,准备将时间轴复制给轴的摆动。
添加设置相对旋转节点 ,搜索关键字rela。右键分割引脚。
可以去视口看是旋转哪个轴,可以看到是Y轴。


编译,保存,在主界面拖动到场景中尝试。

空白处添加自定义事件,搜索..(点点)


增加自定义事件,通过这个自定义事件实现循环。

开发碰撞“死亡”,和角色死亡布娃娃效果
思路
- 创建Dead自定义事件
- 拖入角色的网格体
- 添加检查碰撞
- 大摆球也添加碰撞
- 如果碰撞成立,就获取反向力,播放死亡动画。
打开角色蓝图。

输入
..添加自定义事件,重命名Dead。

拖入网格体

拉出线,搜索set simu


- 打勾(√ = True):开启该碰撞组件(StaticMeshComponent/SkeletalMeshComponent 等)物理模拟,物体受重力、碰撞、力、速度影响,会自由掉落、滚动、被撞击。
- 取消勾选(× = False):关闭物理模拟,物体固定在空间中,不受物理引擎驱动,仅做静态碰撞检测。
Set Simulate Physics = True(开启布娃娃物理)
- Set Simulate Physics 只是总开关:告诉引擎 “这个组件要跑物理”;
- Physics Asset 物理资产才是布娃娃的根源:
只有 SkeletalMesh 提前在编辑器里创建了 Physics Asset、给骨头加了胶囊碰撞、关节限制,开启 Simulate Physics 才会变成布娃娃;

回到我们的大摆球陷阱BP_Sphere,选中Sphere1,添加事件组件开始重叠时。


Other Actor:碰到了什么物体就会输出该物体对象。
选择转换成角色,如果转换成功,意味着可以执行后续逻辑。


Cast failed:转换失败执行的引脚。
As BP Challenge Character:输出成功下转换成的该对象实体。
然后调用该自定义事件Dead。


编译保存运行。
发现还是没有触发碰撞效果,可以dug调试。增加调试节点。

shift+F1可以独立出鼠标,可以调试出,已经调用到了“碰撞了”。

这时候需要检查网格体的物理资产,是否设置正确。

双击进入,右下角滚动到
物理。
可以看到没有设置任何物理资产,自然没有任何物理效果。
选择
SK_Adventurer_Physics。这个物理资产,专门用来实现死亡布娃娃 Ragdoll、被击飞肢体晃动、受重力瘫倒效果。

保存,再次运行:

运行发现人物一撞就遁地消失,按wasd还有一个隐形人可以移动。
进入角色蓝图,选中网格体,修改碰撞预设为“Pyhsics Actor”。这个预设意思是和地面、墙体、玩家 Pawn、其他 PhysicsActor 全部**Block(阻挡)**.


再次运行,发现人物倒地上很安详
将摄像机作为网格体的子类,这样

拖入弹簧臂,增加事件
set coll。

这样的意思就是关闭碰撞测试。

这样,撞死也不会被物体碰撞再次生效卡住摄像机。
添加一道保险。拖入角色移动。

拖入并设置
角色移动模式(搜索关键词set move mode)
设置移动模式为无,这样角色,死亡之后,就无法wasd移动了。
