效果
文章目录
原理
- 效果
- 原理
- 步骤
- 角色蓝图
- 动画蓝图
- Event Graph
- Amin Graph
- 运行一下
在《虚幻引擎插件:使用Power IK轻松愉快地实现脚底板位置矫正》一文中,我们使用了Power IK插件,老王觉得仅仅实现扶墙这个效果,直接用原生的Two Bone IK
节点更简单一些。
- 使用射线检测墙:从角色的肩膀发出两条大约手臂长短的射线用于检测前方是否有可扶的“墙”
- 检测到墙以后获取射线和墙碰撞的位置,所谓手要放置的位置
- 使用
Two Bone IK
节点把手放在目标位置 - 还要使用
Transform(Modify) Bone
节点矫正一下手部的旋转
本文依旧以第三人称模板为起点实现
角色蓝图首先在角色蓝图中定义一个名为HandIkTrace
的方法用于手部(实际是肩部)的射线检测:
- 这里使用了
GetSocketLocation
来获取肩部骨骼的位置 - Trace Channel中的Pushable是我定义的一个Trace频段
定义了4个成员变量
Hand_L_Location
和Hand_R_Location
:记录射线和墙碰撞的位置HandIK_L_Alpha
和HandIK_R_Alpha
:是Two Bone IK
的Alpha,本例中Two Bone IK
使用的是世界坐标系,所以这个Alpha值非常重要
每一帧读取角色蓝图中的数据
-
两个
Two Bone IK
节点的Effector Location Space
都要设为World Space
-
两个
Transform(Modify) Bone
的Rotation模式如下设置,Rotation的数值是我实验了几次获得的
Transform(Modify) Bone
的作用是矫正手的朝向角度,如果不添加的话是下面这个样子