【UE】混合程序动画

混合程序动画

Part01 头部朝向目标点

1.控制点测试效果

关于aim节点:

  • Primary (Aim)
    • Axis : 指向目标的轴,头部朝向一般是向前
    • Target :目标位置
  • Secondary (Up)
    • Axis : 用来定义"向上"的轴,确保骨骼在旋转时不会发生翻转。
    • Target :向上的方向

2.在Level中头部朝向目标

角色蓝图

tick:

ControlRig

LookAtTarget要设置为public

从世界坐标转换为Rig坐标

动画蓝图

Initial:得到角色蓝图实例

update:从蓝图传递参数

传入参数到ControlRig

效果:

3.利用Level Sequence创建Left-Right look动画

录制教程:

4.加入到动画蓝图

对动画序列的Additive设置如下:局部空间 以中间帧15帧为基准

ControlRig中设置LeftRightLookBlend曲线值映射:-90,90->-0.5,0.5

因为曲线的默认值是0,为了不让默认时刻身体朝向正中间,曲线必须映射为-0.5,0.5

Spring Interpolate 是 Control Rig 中一个**基于物理弹簧模拟的平滑插值节点,离目标越远,逼近速度越快;越近则越慢

**

  • Strength:弹簧的刚度决定了它向目标方向的拉力大小。该数值表示在无阻尼条件下弹簧的振荡频率。
  • CriticalDamping:弹簧的阻尼系数
    • = 1.0 → 临界阻尼:最快回到目标且无振荡(推荐默认)
    • < 1.0 → 欠阻尼:会产生来回振荡(弹性晃动效果)
    • > 1.0 → 过阻尼:更慢但更稳定地逼近

动画蓝图添加叠加层Additive,叠加层动画播放进度用LeftRightLookBlend曲线控制,由于前面曲线映射为-0.5,0.5,因此这里需要加上0.5再传入ExplicitTime

效果:

5.限制头部旋转量在90度以内

头部旋转量 = aim后的Rotation - 头部初始Rotation

注:四元数Quat不能相减,四元数A和B的旋转差 实际上是 A 乘 B 的"逆"

------如果想要四元数的旋转差用"-"来运算,可以考虑重载运算符

Part02 与其他动作混合(抓取、攻击、环境交互)

创建动画

fk和ik的切换

勾上即切换到ik

目标位置偏移

原理:实际抓取的位置 - 动画资产中抓取的位置 = 产生的偏移量

目标位置= 偏移量 × HandGrab曲线值 + 手部自身的位置

控制点

蒙太奇的动画曲线HandGrab

效果:

抓取场景中实际的物体位置

把原来测试用的控制点换成实际要抓取物体位置

效果:

一些潜在问题以及应用场景

1.目标位置距离角色太远

有时候,当目标位置距离角色太远时,角色的身体可能会为了够到目标而发生轻微扭曲或倾斜,看起来会有些不自然,甚至显得有点傻。因此可以通过一些方式解决这个问题。

例如,可以设定一个目标距离范围:如果目标离玩家过远,可以在 Control Rig 中移动角色的骨盆,让身体向前倾,或者仅将身体向前移动,同时保持双脚留在原地。也可以通过第三人称角色蓝图直接让角色走进范围后再拾取。

不过,更合理的方案通常是只允许角色抓取处于可及范围内的物体,而不是让角色尝试抓取明显过远、不适合抓取的目标。角色不应该被允许去够那些距离过远的物体。

最简单的实现方法是在第三人称角色中,在角色前方设置一个碰撞盒(Box Collision)或碰撞球(Sphere Collision),用于检测哪些物体处于角色的抓取范围内。当玩家尝试抓取时,例如按下鼠标左键,可以获取这个碰撞体内所有重叠的 Actor,并检查这些对象是否带有"可拾取(Pickable)"之类的标签,或者是否属于角色能够拾取的对象类型。

除了重叠检测外,还应当进行距离检查。可以检测目标与角色、角色头部,或者角色手臂之间的距离,确认目标确实位于合理的抓取范围内。因为即使某个物体与碰撞体发生了重叠,它也不一定真的处于你期望的可抓取位置。

此外,还可以进行一次射线检测(Line Trace),确认角色能够"看到"想要拾取的物体。理论上,一个物体可能位于角色的可抓取范围内,也可能与碰撞体重叠,但它可能在一面墙的后面。此时角色实际上无法直接接触该物体,因此需要确保角色与目标之间没有墙体或其他障碍物阻挡。

这些都是可以在蓝图中完成的基础判断逻辑。通过距离、碰撞重叠和视线检测,可以避免角色对不合理的位置执行抓取动画。

这类动画本质上是一种动态调整动画。它可以用于拾取物体,也可以用于让角色朝某个目标出拳。无论是抓取还是攻击,基本都可以使用相同的逻辑。

2.目标位置适应角色移动速度

相关推荐
清泓y9 小时前
数值策划之技能数值设计
游戏·游戏策划
微学AI9 小时前
一款童年游戏对超级智能体应用开发的启示 — 从《武林群侠传》看 Agent 架构设计的“江湖智慧“
人工智能·游戏·agent
清泓y10 小时前
数值策划之战斗数值平衡
游戏·游戏策划
云边有个稻草人13 小时前
2026远程游戏横测,暑假用手机接管电脑,ToDesk VS 向日葵怎么选?
游戏·智能手机·电脑
2501_936415691 天前
可变参数&综合练习&斗地主游戏
java·windows·游戏
笨鸟先飞的橘猫1 天前
只会脚本语言的游戏后端自我提升之路——c++学习(开篇)
学习·游戏
笨鸟先飞的橘猫1 天前
游戏后端分布式学习——消息队列在游戏的用法
分布式·学习·游戏
网站优化(SEO)专家1 天前
Pokicon免费游戏入口网站流量稳定增长的核心密码
游戏·游戏网站·网站流量·游戏宣传
沃普天科技1 天前
IF8032芯片TYPE C全功能输出支持C口显示器,支持AR眼镜 显示,支持接扩展坞,采集卡,游戏手柄,支持PD100W 4K240HZ
游戏·计算机外设·ar