FABRIK
2023年8月18日 2025年5月20日
概览
- 问题描述
- FABRIK
- 在动画蓝图中使用FABRIK
问题描述
调整游戏角色Camera组件位置, 使之拍摄游戏角色正面
BP_STUBaseCharacter
-
在SpringArm组件细节面板设置Camera组件的Socket Offset
-
之前
-
SpringArm > Details > Camera > Socket Offset > X = 600 Y = 0
-
-
设置Camera组件变换属性
-
之前
-
Camera > Details > Transform > Rotation > Yaw = 180
-
-
效果图
操控游戏角色运动时, 左手和枪管之间未固定, 二者会有错开的情况
在动画蓝图添加FABRIK, 将左手固定在枪管合适位置
FABRIK
文档
说明
Forward and Backward Reaching Inverse Kinematics
逆运动学
Inverse Kinematics
给出子骨骼的位置, 反求推导出其所在骨骼链上n级父骨骼位置, 从而确定整条骨骼链的方法
末端执行器
End Effector
位于机械臂末端、与外界环境进行物理交互的工具, 也称作臂端工具 End-of-Arm Tooling
, 缩写为EOAT
FABRIK的设置, 就是给出骨骼链和末端执行器的描述, 计算骨骼链各关节变换
在动画蓝图中使用FABRIK
AnimGraph
末端执行器变换默认作为针脚
切换末端执行器变换在细节面板设置
-
Details > End Effector > Effector Transform > 左键Pin, 取消Expose As Pin的勾选
-
FABRIK
-
Effector Transform
配置末端执行器
- | |
---|---|
Effector Target | 在动画蓝图绑定的骨骼树中选取目标 |
Effector Transform Space | 与Target类型有关, 默认Component Space, 骨骼对应Bone Space |
Effector Transform | 相对于Target的变换 |
配置Solver
设置骨骼链
- | |
---|---|
Tip Bone | 机械臂末端骨骼 |
Root Bone | 机械臂根骨骼 |
在动画蓝图添加FABRIK
ABP_BaseCharacter > AnimGraph
在动画蓝图添加FABRIK, 切换末端执行器变换在细节面板设置
确定骨骼链
-
在导航栏选择骨骼
-
左臂的起点为b_LeftArm, 终点为b_LeftWeapon
-
配置FABRIK > Solver
- Tip Bone b_LeftWeapon Root Bone b_LeftArm
游戏角色移动时, 左手和右手都在武器上, 以右手为参照, 固定左手位置
- 设置末端执行器Target
- 设置相对Target的变换
- | |
---|---|
Effector Target | b_RightHand |
Effector Transform Space | Bone Space |
Effector Transform | X=-50 Y=-11 Z=4 |
将FABRIK加入到输出
- 将AO_BaseCharacter作为FABRIK的输入
Component Pose
自动添加转换座标系的节点LocalToComponent
- 将输出作为Slot的输入
- 自动添加转换座标系的节点
ComponentToLocal
- 播放死亡动画时, 左手不需要扶在枪管上
- 自动添加转换座标系的节点
查看
操控游戏角色运动时, 左手固定在枪管合适位置