UE4学习日记(八)头部跟随物体动画

这篇博客介绍了如何在游戏开发中通过蓝图接口创建一个角色头部跟随目标物体转动的功能。首先创建一个BasicLookAt蓝图接口,定义了CanLookAt和LookAtLocation参数。接着在角色蓝图中添加相应变量,并实现接口。在角色动画蓝图中设置动画混合,控制腰部以上和头部的查看细节。创建TargetActor对象,当玩家进入其Box碰撞体时,角色会看向静态网格体。博客还提供了参考视频教程。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

这次要实现的功能是人物的头部会锁定一个物体,随着角色的行为而发生旋转,就比如你路上看见美女的那种操作。

先是创建一个蓝图接口。【鼠标右键->蓝图->蓝图接口】,命名为BasicLookAt。
在这里插入图片描述
进入BasicLookAt,将函数改名为【BasicSendLocation】。并设置两个输入 CanLookAt 是否看向物体,LookAtLocation 物体位置。该接口的作用
在这里插入图片描述
在【角色蓝图】添加两个变量bool类型的CanLookAt 以及向量类型的LookAtLocation,【类设置】中添加BasicLookAt接口。
在这里插入图片描述
实现BasicSendLocation接口。
在这里插入图片描述
进入【角色动画蓝图】中,添加两个变量CanLookAt和LookAtLocation。并在蓝图中设置他们的值。
在这里插入图片描述
然后进入AnimGraph,混合动画。
在这里插入图片描述
注:【查看】和【变换(修改)骨骼】比较类似,不过其获取的位置是朝向的位置,即LookAt。
第一个查看(控制腰部以上位置)的细节设置:
在这里插入图片描述

第二个查看(控制头部)的细节设置:
在这里插入图片描述
上面的【查看限制】是在限制头和身体的转向最大角度,否则会出现很诡异的一幕。
【查看位置】打勾,才能输入被查看的位置。

将混合后的动画传输给输出姿势。
在这里插入图片描述

然后创建一个Actor对象,命名【TargetActor】。添加一个静态网格体,和一个Box碰撞体。
在这里插入图片描述
为Box碰撞体,编写触发函数。
在这里插入图片描述
然后将TargetActor拖拽到场景中,当玩家进入碰撞体范围时,就会看向静态网格体。
在这里插入图片描述
(好像没有必要写接口。。。)
参考视频链接:https://www.bilibili.com/video/BV1Y54y1S7cY?t=712

### UE5 物体跟随另一物体动画实现 在 Unreal Engine 5 中,要让一个物体(例如武器)跟随另一个物体(例如角色),可以利用 Skeletal Mesh 组件和 Animation Blueprint 来完成此操作。具体来说,可以通过 Socket 和 IK(逆向运动学)技术使子对象相对于父对象移动。 对于希望实现的角色携带物品的效果,在创建或获取适合的3D模型之后,应该考虑为该物品设定挂载点(Socket),以便能够精确地定位它于角色骨骼网格上[^1]。当涉及到动态调整位置时,比如将枪械背到背后,则可能需要用到IK处理方式来改变手部姿态以适应新的持握方位;而如果只是简单的附着需求,那么直接使用Socket即可满足要求。 下面是一个简化版的例子展示如何编程性地控制一个物件随其他物件一起行动: ```cpp // C++ 示例代码用于绑定两个组件之间的相对关系 void AMyCharacter::BeginPlay() { Super::BeginPlay(); // 假设 MyItem 是你要附加的对象, CharacterMesh 是角色的骨架网格体. USkeletalMeshComponent* ItemMesh = Cast<USkeletalMeshComponent>(GetDefaultSubobjectByName(TEXT("MyItem"))); if(ItemMesh != nullptr && CharacterMesh != nullptr){ // 将物品连接至指定socket名的位置 CharacterMesh->AttachToComponent(CharacterMesh, FAttachmentTransformRules::SnapToTargetIncludingScale, TEXT("Backpack_Socket")); } } ``` 此外,为了更灵活地管理这种关联行为,还可以借助蓝图可视化脚本构建更为复杂的交互逻辑。例如,可以在事件图表中添加条件判断语句,使得只有在玩家按下特定按键后才会执行上述过程中的附件指令。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值