UE4_动画基础_FootIK

        角色由于胶囊体的阻挡,双脚与地面平行,不会与斜坡、台阶等贴合,有一条腿会处于悬空状态,通过双骨骼IK节点使一只脚太高,让后胶囊体下降,修正双脚的角度。这就是逆向运动IK的方法。

一、新建第三人称模板游戏,打开小白人动画蓝图的动画图表进行以下操作:

右键搜索two bone ik。

双骨骼IK(Two Bone IK)将把逆向运动学解算器应用到一个3关节链上(例如角色的四肢)。

左脚的IK骨骼应该为foot_l,细节面板设置为下图:

另一个右脚也照此设置,连接节点,效果图如下:

通过视图中小白人脚部拖动,观察双骨骼IK节点数据的变化,理解此节点的作用。把参数提升为变量用于控制,但是为了怕出错不用组件空间,而是用骨骼空间,为了便于理解我们用组件空间来观察参数效果。

在人物状态机的后面加入姿势调整双骨骼ik,并改变mesh网格体的位置及盆骨的Z方向的值,连接总图如下:

注意:双骨骼ik采用的是骨骼空间,如下图:

Effector location的x分量改变的是脚的抬起和落下,大于0抬起,小于0落下。数值为50时抬起,如下图:

数值为0时,与站立时姿势一致,如下图:

二、进入动画蓝图的事件图表部分:

1、完成蓝图初始化动画重载,保存小白人角色变量Character,方便使用,如图:

2、制作射线监测函数Track:如下图:

蓝图更新动画时输出下骨架网格体mesh的场景位置看看是什么?明白Track函数返回的是什么?如下图:

骨架网格体的场景位置是根骨骼的场景位置,处于两脚中间位置,每一个脚探测出的距离都是脚的脚踝离地面的距离。注意得数是负数,越小说明越远。

3、创建函数SetFootIK,先要对左右脚的Track函数的射线监测的Start和End进行设置。得到的Track函数的返回值分别设置为变量Leftfootresult和Rightfootresult。

射线监测的X和Y轴向数据来自于脚上foot_l和foot_r两块骨骼的插槽:

射线监测的Z轴向数据初始点Z来自于胶囊体场景位置Z数值(大约228,含地板高度)-胶囊体半高96➗2,射线监测的Z轴向数据结束点为胶囊体场景位置Z数值(大约228含地板高度)-(胶囊体半高96➗2+胶囊体半高,实际相当于胶囊体3/4的距离,也就是说脚不能抬得太高了),实际上因为x和y确定了,z只要是自上而下的射线检测就可以。

为了理解这里,可以用以下节点进行数据输出,也可以看细节面板来观察数值,下图:

测试运行结果如图:

得到的Track函数的返回值分别提升为变量Leftfootresult和Rightfootresult。这样我们就可以得出小白人骨架网格体(左右脚位置处)离地面的距离Z轴向距离。

下面先让骨架网格体落下悬空距离大的距离:

由于多落下了一点距离,就是脚踝到脚底的距离,所以说我们需要对两脚都要太高:

另一个脚同样操作:

事件蓝图运行就可以了!

运行效果如下图:

<think>好的,用户想了解如何在UE4中制作人物动画。我需要先理清UE4动画系统的基本概念和流程,然后分步骤解释。首先,UE4动画系统主要涉及动画蓝图、状态机、混合空间等。可能还需要提到动画导入、骨骼重定向、Root Motion这些关键点。 用户可能是刚接触UE4的开发者或动画师,需要从基础开始讲解。他们可能想知道如何将外部制作的动画导入到UE4,并让人物正确播放动画。此外,可能还需要涉及如何通过蓝图控制动画状态,比如行走、奔跑之间的切换。 需要确保回答覆盖以下几个步骤:1. 准备资源(FBX动画、骨骼绑定);2. 导入动画UE4;3. 创建动画蓝图和状态机;4. 设置混合空间处理不同速度的移动;5. Root Motion的应用;6. 调试和优化。同时,要注意术语的准确性,比如“骨骼重定向”和“动画蒙太奇”这些UE4特有的概念。 可能用户会遇到的问题包括动画不播放、骨骼不匹配或动画过渡不自然,需要给出常见问题的解决方法。例如,使用Retargeting工具解决骨骼不一致的问题,或者在动画蓝图中正确连接状态转换规则。 另外,需要提醒用户注意动画的帧率和导出设置,确保导入UE4时不会出现错位或延迟。最后,可以建议查看官方文档或社区教程来进一步学习,比如Epic的官方教程或Unreal Engine学习平台上的资源。</think>在UE4中制作人物动画需要结合动画资源、动画蓝图、状态机等多个模块。以下是分步指南: ### 一、准备工作 1. **资源准备** - 使用3D软件(如Maya/Blender)制作: - 骨骼绑定(Skeleton Rig) - 动画序列(Idle/Walk/Run等) - 导出要求: - FBX格式 - 骨骼命名规范统一 2. **导入资源** ```python # 示例导入设置(非代码,仅说明) 勾选"Import Mesh"和"Import Animations" 设置骨骼映射(Retargeting) ``` ### 二、核心系统搭建 #### 1. 动画蓝图(Animation Blueprint) $$ \text{动画逻辑} = \begin{cases} 状态机 & \text{动作切换} \\ 混合空间 & \text{运动过渡} \\ 曲线控制 & \text{特殊效果} \end{cases} $$ - **创建流程**: 1. 右键创建 > Animation > Animation Blueprint 2. 选择目标骨骼 3. 构建事件图表(Event Graph) #### 2. 状态机(State Machine) ```mermaid graph LR A[Entry] --> B(Idle) B -->|移动输入| C(Walk) C -->|速度>300| D(Run) D -->|速度<=300| C ``` - **参数控制**: - 使用`Velocity Vector Length`控制移动速度 - 通过`IsMoving`布尔值切换状态 #### 3. 混合空间(Blend Space) - 创建1D混合空间: - X轴:移动速度(0-600) - 添加动画:Idle(0), Walk(200), Run(600) ### 三、关键技术实现 1. **Root Motion** - 在动画序列中启用: ```cpp // 动画属性设置 bEnableRootMotion = true RootMotionSource = ERootMotionSourceStatusType::RootMotionFromEverything ``` 2. **骨骼重定向** - 使用`Retarget Manager`工具 - 要求源/目标骨骼具有相同层级结构 ### 四、调试优化 1. **常见问题排查**: - 动画不播放:检查动画蓝图是否绑定到角色 - 动作卡顿:调整过渡规则中的混合时间 - 脚步滑动:启用`Enable Foot IK`或调整Root Motion 2. **性能优化**: - 使用动画压缩(Anim Compression) - 设置LOD系统 ### 五、进阶功能 1. **动画蒙太奇(Montage)** - 用于攻击/受击等复合动画 - 通过插槽系统实现动画叠加 2. **物理资产(Physics Asset)** - 创建碰撞体 - 实现布娃娃效果 建议配合官方工具使用: - **Live Link Face**(面部捕捉) - **Control Rig**(程序化动画) - **IK Retargeter**(跨角色动画复用) 完整学习路径推荐: 1. 官方文档《动画系统概述》 2. 学习课程《Unreal Engine动画系统深度解析》 3. 社区案例《Paragon角色动画资源分析》
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Growthofnotes

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值