UE4_常见动画节点学习_Two Bone IK双骨骼IK

2024-04-19 17:04

本文主要是介绍UE4_常见动画节点学习_Two Bone IK双骨骼IK,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

学习资料,仅供参考!

Two Bone IK 控制器将逆运动(IK)解算器应用于到如角色四肢等3关节链。

变量( HandIKWeight )被用于在角色的 hand_l 和 hand_r 控制器上驱动 关节目标位置(Joint Target Location) 属性。通过对数值进行调整,可决定角色持有武器的方式,而无需根据不同角色手动设置不同姿势的动画。

AnimGraph节点网络显示如下,可复制并粘贴到自己的动画蓝图中。

Two Bone IK属性

可在Two Bone IK节点的 细节 面板中找到以下属性:

属性

说明

IK

IK骨骼

要应用IK解算器的骨骼命名。此应为骨链末端的骨骼,如脚踝或腕骨。

拉伸限制

X

肢体最大长度的比率,用于决定缩放骨骼的时间。

Y

平移组件的最大缩放量。

允许拉伸

如为true,则可拉伸骨骼。

末端执行器

执行器空间骨骼命名

执行器位置空间设为BCSBoneSpace时,用作执行器位置的骨骼命名。

获取执行器空间的旋转

启用时,执行器(组件、父或骨骼)的旋转将应用到IK骨骼。

维持执行器Rel Rot

启用"获取执行器空间的旋转"时,将覆盖此属性。

执行器位置空间

效果器位置的参考帧。

数值

效果

平移

XYZ组件在目标骨骼上的平移。

旋转

XYZ组件在目标骨骼上的旋转。

缩放

XYZ组件在目标骨骼上的缩放。

关节目标

关节目标位置空间

关节目标位置的参考帧。

数值

效果

平移

XYZ组件在目标骨骼上的平移。

旋转

XYZ组件在目标骨骼上的旋转。

缩放

XYZ组件在目标骨骼上的缩放。

关节目标空间骨骼名称

关节目标位置空间设为BCSBoneSpace时,用作关节目标位置的骨骼命名。

Two Bone IK节点上默认公开以下引脚:

引脚

说明

输入引脚

执行器位置

在执行器位置空间中指定位置执行器的向量。

关节目标位置

在关节目标位置空间中指定位置关节目标的向量。

大体计算过程:

joint target location用于保证joint节点在root、effector location和joint target location所构成的平面上。

root为ik骨骼的父节点的父节点,三个关节,两根骨骼。

(root到effector location)的单位向量与(root到joint target location的向量)做点积,得到(effector location到joint target location的向量)。

如果脚伸不直的话,我们需要求出三个关节中中间关节的位置joint,而(root到joint的骨骼长度)、(joint到ik骨骼(即effector location)的长度)和(root到effector location的向量长度)是已知的,知道了三边,我们可以用余弦定理求出(root到joint的骨骼长度)与(root到effector location的向量长度)之间的夹角r。

root到joint的向量求出,那么就知道了joint的位置了。

root到joint的向量正好为另外两个单位向量的和乘以模长,因为r角度已经求出,而r正对着的向量为(effector location到joint target location的向量)的单位向量。

点积意义如下:

余弦定理如下:

源码解析参考:

【UE5】深入理解动画模块7: 双骨骼IK算法与源码解析_哔哩哔哩_bilibili

这篇关于UE4_常见动画节点学习_Two Bone IK双骨骼IK的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/918120

相关文章

SpringBoot项目整合Netty启动失败的常见错误总结

《SpringBoot项目整合Netty启动失败的常见错误总结》本文总结了SpringBoot集成Netty时常见的8类问题及解决方案,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参... 目录一、端口冲突问题1. Tomcat与Netty端口冲突二、主线程被阻塞问题1. Netty启动阻

SpringBoot整合Kafka启动失败的常见错误问题总结(推荐)

《SpringBoot整合Kafka启动失败的常见错误问题总结(推荐)》本文总结了SpringBoot项目整合Kafka启动失败的常见错误,包括Kafka服务器连接问题、序列化配置错误、依赖配置问题、... 目录一、Kafka服务器连接问题1. Kafka服务器无法连接2. 开发环境与生产环境网络不通二、序

在C#中调用Windows防火墙界面的常见方式

《在C#中调用Windows防火墙界面的常见方式》在C#中调用Windows防火墙界面(基础设置或高级安全设置),可以使用进程启动(Process.Start)或Win32API来实现,所以本文给大家... 目录引言1. 直接启动防火墙界面(1) 打开基本防火墙设置(firewall.cpl)(2) 打开高

MySQL中如何求平均值常见实例(AVG函数详解)

《MySQL中如何求平均值常见实例(AVG函数详解)》MySQLavg()是一个聚合函数,用于返回各种记录中表达式的平均值,:本文主要介绍MySQL中用AVG函数如何求平均值的相关资料,文中通过代... 目录前言一、基本语法二、示例讲解1. 计算全表平均分2. 计算某门课程的平均分(例如:Math)三、结合

MyBatis Plus中执行原生SQL语句方法常见方案

《MyBatisPlus中执行原生SQL语句方法常见方案》MyBatisPlus提供了多种执行原生SQL语句的方法,包括使用SqlRunner工具类、@Select注解和XML映射文件,每种方法都有... 目录 如何使用这些方法1. 使用 SqlRunner 工具类2. 使用 @Select 注解3. 使用

Redis高性能Key-Value存储与缓存利器常见解决方案

《Redis高性能Key-Value存储与缓存利器常见解决方案》Redis是高性能内存Key-Value存储系统,支持丰富数据类型与持久化方案(RDB/AOF),本文给大家介绍Redis高性能Key-... 目录Redis:高性能Key-Value存储与缓存利器什么是Redis?为什么选择Redis?Red

深度解析Java @Serial 注解及常见错误案例

《深度解析Java@Serial注解及常见错误案例》Java14引入@Serial注解,用于编译时校验序列化成员,替代传统方式解决运行时错误,适用于Serializable类的方法/字段,需注意签... 目录Java @Serial 注解深度解析1. 注解本质2. 核心作用(1) 主要用途(2) 适用位置3

Unity新手入门学习殿堂级知识详细讲解(图文)

《Unity新手入门学习殿堂级知识详细讲解(图文)》Unity是一款跨平台游戏引擎,支持2D/3D及VR/AR开发,核心功能模块包括图形、音频、物理等,通过可视化编辑器与脚本扩展实现开发,项目结构含A... 目录入门概述什么是 UnityUnity引擎基础认知编辑器核心操作Unity 编辑器项目模式分类工程

Python学习笔记之getattr和hasattr用法示例详解

《Python学习笔记之getattr和hasattr用法示例详解》在Python中,hasattr()、getattr()和setattr()是一组内置函数,用于对对象的属性进行操作和查询,这篇文章... 目录1.getattr用法详解1.1 基本作用1.2 示例1.3 原理2.hasattr用法详解2.

MySQL ORDER BY 语句常见用法、示例详解

《MySQLORDERBY语句常见用法、示例详解》ORDERBY是结构化查询语言(SQL)中的关键字,隶属于SELECT语句的子句结构,用于对查询结果集按指定列进行排序,本文给大家介绍MySQL... 目录mysql ORDER BY 语句详细说明1.基本语法2.排序方向详解3.多列排序4.常见用法示例5.