【UE C++】UEC++中简单的布娃娃系统设置

        布娃娃系统可以通俗地理解为,通过物理引擎来模拟角色的骨骼和关节反应,使得角色能够在没有预设动画的情况下自由运动。这种技术让角色在受到外力作用时(如被击中、摔倒等),能够呈现出更加自然和真实的动作反应。例如,角色死亡时的倒地动作、受到爆炸冲击后的四肢散开动作等。此外,它还可以用于角色与环境的交互,如角色在跳跃或摔倒时与地面或障碍物的碰撞反应。本文意在记录个人学习过程中学习到的如何简单的在C++中实现布娃娃系统。

        首先从描述中可推断几个关键点:

        一、需要有物理相关设置;

        二、需要对碰撞进行设置

        三、需要限制或停止角色的移动等行为的动画。

        因此,在C++中创建RagDoll函数,首先为了在启用布娃娃系统后关闭对其他角色的碰撞,将其胶囊体设置为无碰撞。然后再来到Mesh,首先要模拟物理的效果并且防止其穿模向下掉落,则需要将其CollisionEnable设置为QueryAndPhysics,然后设置ObjectType为ECC_PhysicsBody,并对所有的通道先设置为阻挡,然后为了让其他角色不会被阻挡,则将其对pawn和worlddynamic设置为忽略。最后SetAllBodiesBelowSimulatePhysics,开启骨骼物理模拟,并以pelvis作为起始模拟的骨骼。

        在设置好各类碰撞后,再通过动画实例暂停所有的蒙太奇动画,并设置运动模式为空。

        这里在伤害事件中进行调用,判断是否死亡,死亡则调用布娃娃系统,并通过定时器在五秒后销毁actor。

        可以发现在目标不同运动形态下击杀后会有其对应不同的布娃娃物理模拟效果。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值