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

ops/2024/9/23 14:23:18/

学习资料,仅供参考!

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


http://www.ppmy.cn/ops/11414.html

相关文章

2024-04-22(AJAX)

1.什么是Ajax 使用浏览器的XMLHttpRequest对象和服务器进行通信 浏览器网页中,使用Ajax技术(XMLHttpRequest对象)发起获取服务器数据的请求,服务器将数据给前端,前端拿到数据后,展示到网页。 2.为什么学…

milvus服务安装bash脚本指令理解

下拉镜像:docker pull milvusdb/milvus:v2.4.0-rc.1下载文件:https://hub.yzuu.cf/milvus-io/milvus/blob/master/scripts/standalone_embed.sh安装启动:bash standalone_embed.sh start详细解释下这段代码:wait_for_milvus_runni…

Yonbuilder参考

发布移动插件 https://developer.yonyou.com/cloud/moduleStore/publishPlugin Android自定义插件打包 社区问答 https://community.yonyou.com/forum.php?modviewthread&tid232830&searchLogId605932 MarkDown指令使用 https://blog.csdn.net/qq_25821067/article/de…

Xilinx FPGA BGA推荐设计规则和策略(二)

引言:上一篇介绍了BGA封装PCB层数估计、BGA焊盘设计、过孔设计、信号走线等内容,本文我们介绍下FPGA BGA封装电源管脚布线。 1. 概述 工程师必须在设计阶段早期评估功率需求,以确保有足够的层和面积为需要功率的BGA焊盘提供足够的功率。因为…

open-webui与ollama的部署最后完整之命令

docker run -d --networkhost -v open-webui:/app/backend/data -e HF_ENDPOINThttps://hf-mirror.com -e OLLAMA_BASE_URLhttp://127.0.0.1:11434 --name open-webui --restart always ghcr.io/open-webui/open-webui:main -e HF_ENDPOINThttps://hf-mirror.com 一定要加上&a…

FreeRTOS时间管理

FreeRTOS时间管理 主要要了解延时函数: 相对延时:指每次延时都是从执行函数vTaskDelay()开始,直到延时指定的时间结束。 绝对延时:指将整个任务的运行周期看成一个整体,适用于需要按照一定频率运行的任务。 函数 vTa…

canvas 学习

最近的项目涉及到 canvas 相关的知识,就在网站上找资源先大概了解一下,然后再细细研究。 看到了一篇 “canvas详细教程” 的资源,感觉十分不错,就分享给大家: canvas详细教程! ( 近1万字吐血总结)这期是潘潘整理的万…

探索Java设计模式:装饰器模式

探索Java设计模式:深入理解与实践装饰器模式 装饰器模式(Decorator Pattern)是一种结构型设计模式,它允许在运行时动态地给对象添加新的责任(行为)或修改其现有行为,同时保持对象的结构不变。在…