学习UE4动画蓝图:实现双脚贴地

10 篇文章 18 订阅

目标

在上一篇博客《学习UE4动画蓝图:配置脚部IK》中,IK功能解决了“脚部陷入地下”的问题,但是还是有“脚部悬空”的问题。《[UE4蓝图]虚幻4中完整实现脚部IK(二)(完结) - 知乎》这篇文章提出可以将根骨骼向下偏移来解决这个问题,我决定使用这个思路,下面是我的实践。

1.偏移根骨骼

1.1 动画蓝图的 AnimGraph 中添加对根骨骼的偏移

添加一个变换(修改)骨骼节点:
在这里插入图片描述

  • Bone to Modify 选择根骨骼root
  • Translation Mode 选择Add to Existing,这表示将对现有的transform做一个偏移。
  • Translation Space 选择World Space,这表示偏移的变量将采用世界空间。

偏移的变量为Root Offset,将在事件图表中设置

1.2 角色蓝图中添加脚部悬空偏移变量

增加一个变量FootOffset表示脚部的偏移(后续会添加对其计算的逻辑):
在这里插入图片描述
另外,由于模型的根骨骼会发生偏移,那么之前射线的操作会有错误,需要对IK Foot Trace函数做修正:增加一个Height Offset的输入表示高度的偏移,然后在GetActorLocation之后应用上在Z轴上,这才是真正的人物中心点。(图中注释框的标题描述不准确)
在这里插入图片描述
随后在调用这个函数时,记得将FootOffset输入给它。
在这里插入图片描述

1.3 动画蓝图的 事件图表 中获取根骨骼的偏移

在这里插入图片描述

1.4测试根骨骼偏移的效果

为了测试,在角色蓝图中连入一个临时的逻辑:按下Q/E键会升高/降低FootOffset
在这里插入图片描述
效果:
在这里插入图片描述

2. 在角色蓝图中计算根骨骼偏移量

根骨骼的偏移,也是需要对脚部做射线操作。
首先在角色蓝图中添加一个函数FootAirTrace用来获取脚部悬空的高度:
在这里插入图片描述
它的结构和之前的IK Foot Trace很像,但是在射线的起止点以及最后偏移的计算上有很大差别。这次的射线逻辑如图:
在这里插入图片描述
然后,在Tick中随时做双脚的射线计算悬空的偏移,这个值是一个负值,二者更小的值是FootOffset
在这里插入图片描述

3. 平滑由于射线操作导致的动作突变

由于使用了射线的结果来决定骨骼的状态,当射线的表面有突变时(比如台阶),得到的结果也会有突变。为了减少此突变,可以使用FInterp To节点来平滑
在这里插入图片描述
随后在射线操作导致的会突变的变量中都加入FInterp To节点来平滑过渡:
在这里插入图片描述

效果

在这里插入图片描述
在这里插入图片描述

  • 6
    点赞
  • 22
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值