您当前的位置: 首页 > 

开发游戏的老王

暂无认证

  • 4浏览

    0关注

    803博文

    0收益

  • 0浏览

    0点赞

    0打赏

    0留言

私信
关注
热门博文

虚幻引擎图文笔记:用Two Bone IK实现手扶墙

开发游戏的老王 发布时间:2021-01-12 20:34:37 ,浏览量:4

效果

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

文章目录
    • 效果
    • 原理
    • 步骤
      • 角色蓝图
      • 动画蓝图
        • 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_LocationHand_R_Location:记录射线和墙碰撞的位置
  • HandIK_L_AlphaHandIK_R_Alpha:是Two Bone IK的Alpha,本例中Two Bone IK使用的是世界坐标系,所以这个Alpha值非常重要

在这里插入图片描述

动画蓝图 Event Graph

每一帧读取角色蓝图中的数据

在这里插入图片描述

Amin Graph

在这里插入图片描述

  • 两个Two Bone IK节点的Effector Location Space都要设为World Space 在这里插入图片描述

  • 两个Transform(Modify) Bone的Rotation模式如下设置,Rotation的数值是我实验了几次获得的

在这里插入图片描述

Transform(Modify) Bone的作用是矫正手的朝向角度,如果不添加的话是下面这个样子

在这里插入图片描述

运行一下

在这里插入图片描述

关注
打赏
1656935939
查看更多评论
立即登录/注册

微信扫码登录

0.0355s