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

相关文章

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.

MySQL 索引简介及常见的索引类型有哪些

《MySQL索引简介及常见的索引类型有哪些》MySQL索引是加速数据检索的特殊结构,用于存储列值与位置信息,常见的索引类型包括:主键索引、唯一索引、普通索引、复合索引、全文索引和空间索引等,本文介绍... 目录什么是 mysql 的索引?常见的索引类型有哪些?总结性回答详细解释1. MySQL 索引的概念2

MySQL深分页进行性能优化的常见方法

《MySQL深分页进行性能优化的常见方法》在Web应用中,分页查询是数据库操作中的常见需求,然而,在面对大型数据集时,深分页(deeppagination)却成为了性能优化的一个挑战,在本文中,我们将... 目录引言:深分页,真的只是“翻页慢”那么简单吗?一、背景介绍二、深分页的性能问题三、业务场景分析四、

Java 方法重载Overload常见误区及注意事项

《Java方法重载Overload常见误区及注意事项》Java方法重载允许同一类中同名方法通过参数类型、数量、顺序差异实现功能扩展,提升代码灵活性,核心条件为参数列表不同,不涉及返回类型、访问修饰符... 目录Java 方法重载(Overload)详解一、方法重载的核心条件二、构成方法重载的具体情况三、不构

SQL中如何添加数据(常见方法及示例)

《SQL中如何添加数据(常见方法及示例)》SQL全称为StructuredQueryLanguage,是一种用于管理关系数据库的标准编程语言,下面给大家介绍SQL中如何添加数据,感兴趣的朋友一起看看吧... 目录在mysql中,有多种方法可以添加数据。以下是一些常见的方法及其示例。1. 使用INSERT I

Python中反转字符串的常见方法小结

《Python中反转字符串的常见方法小结》在Python中,字符串对象没有内置的反转方法,然而,在实际开发中,我们经常会遇到需要反转字符串的场景,比如处理回文字符串、文本加密等,因此,掌握如何在Pyt... 目录python中反转字符串的方法技术背景实现步骤1. 使用切片2. 使用 reversed() 函