Final IK详解

  • [Ⅰ] Limb IK
  • [Ⅱ] Arm IK

Final IK是 Uinty3D中的一个付费插件,它提供了多种反向动力学解决方案。
———————————————————————————————————————————

[Ⅰ] Limb IK

Limb IK 基于 Trigonometric IK,主要用于解决三段式手或腿类型的肢体上的反向动力学问题。
(其中 Trigonometric IK 是最基本的IK解算器,基于余弦定理解决了三段式骨骼结构。)

Limb IK扩展Trigonometric IK只是为了添加一些额外的参数,比如多种弯曲修改器,即上图中的
Bend Modifier
(1)动画:用于动画时,尝试保持弯曲方向;这个在用于胳膊三段式IK时会造成弯曲方向错误(用于腿部和躯干暂时没发现问题),但是它的好处是不穿模,保证外层蒙皮的完整。
(2)目标:旋转弯曲方向与目标 IKRotation一致;用于胳膊三段式IK时,动作角度大,不一定存在弯曲方向错误,且会破坏蒙皮
(3)父级:旋转弯曲方向与父变换组件(骨盆或锁骨)一致;用于胳膊三段式IK时,弯曲方向错误。
(4)胳膊:保持胳膊以生物自然的放松方式弯曲;保证胳膊三段式IK正确,但是会破坏蒙皮,这个是最适合胳膊三段式IK的,尽管有些姿态不准确。
(5)目标:使胳膊朝着弯曲目标组件的方向弯曲;用于胳膊三段式IK时,弯曲方向错误。
(注意:只有当弯曲修改器权重Bend Modifier Weight大于0时,才应用弯曲修改器)

Maintain Rotation:允许末端固定骨在求解完成之前保持在空间坐标中的旋转,这个主要用于脚向地面落下,需要重新放置脚但要脚旋转自如的时候。

Fix Transforms:当勾选时,则将在求解的所有Transforms 修复成每帧的初始状态。这样可以以较小的性能防止一些潜在问题出现

Bone1:第一根骨头(一般是大腿或者上臂)

Bone2:第二根骨头(前臂或者小腿)

Bone3:末端骨(手或脚)

Target:目标对象的变换组件,如果分配了,求解器会将 IKPosition 和 IKRotation 自动设置为目标位置

Position Weight:求解到目标位置的权重(IKPosition)

Rotation Weight:解算到目标旋转的权重(IKRotation)

Bend Normal:由骨骼位置定义的平面的法线。 当四肢弯曲时,第二根骨头将始终位于该平面上的某个位置。其实也是就是选择一个弯曲面。比如,利用IK我们可以知道膝盖的弯曲角度,但是膝盖的位置我们还是不知道。

比如上图中,膝盖的弯曲角度都是90度,脚踝、大腿根的位置也都一样。膝盖的位置却不一样。所以虽然确定了弯曲角度后位置的解仍然有无数个。这个时候就要选择一个“弯曲面”了。因为人体的特殊性,在站着的时候大腿的朝向和脚的朝向一样。所以而我们选择脚所在的平面为弯曲面,就可以确定膝盖的空间位置了。当你添加完三块骨骼时,求解器会自动求解你可能选择的弯曲面。

Avatar IK Goal: 仅由“手臂”弯曲修改器使用。
———————————————————————————————————————————

[Ⅱ] Arm IK

Arm IK是 VRIK 四关节两足动物的手臂求解器。
Arm IK比 Limb IK更适合于胳膊的反向动力学,但是它多需要一根父级的脊椎骨,总共四根骨头。它的可调参数更多,通过调整参数,可以避免像Limb IK出现肘关节位置角度不对的情况。不怕麻烦的话,推荐使用Arm IK。

  • 组件变量:

Fix Transforms:当勾选时,则将在求解的所有Transforms 修复成每帧的初始状态。这样可以以较小的性能防止一些潜在问题出现。

  • 包装变量:

Chest:最后一块脊椎骨,必须作为胳膊骨的父级;

Shoulder:肩胛骨;

UpperArm:上臂骨;

ForeArm:前臂骨;

Hand:手腕骨。

IK Position Weight:手目标的位置权重,如果没有目标,且权重值不为0时,手仍将被拉到目标的最后位置。手腕会随着目标的位置而移动。

IK Rotation Weight:手目标的旋转权重,如果没有目标,且权重值不为0时,手仍将被旋转到目标的最后旋转角度。手腕会随着目标的旋转而旋转,如果权重值为0,手腕不会转动。

  • 求解变量:

Target:手目标。不能设置为控制器本身,可以设置控制器的子物体,因此可以调整子物体的位置和方向来匹配手骨的方位。

Bend Goal:如果Bend Goal Weight不为0,肘部将会朝着目标方向弯曲。

Bend Goal Weight:如果权重值不为0,肘部将向弯曲目标移动。如果Bend Goal没有目标,将权重值设为0.5比较符合人体胳膊的弯曲方式。

Shoulder Rotation Mode:肩胛骨旋转的不同方法。

Shoulder Rotation Weight:肩部旋转的权重。

Shoulder Twist Weight:肩部扭转权重。

swivel Offset:肘部弯曲方向的角度偏移。

Wrist To Palm Axis(从手腕指向手掌的手骨局部坐标轴):用于定义手骨的方向。

Palm To Thumb Axis(从手掌指向拇指的手骨局部坐标轴):用于定义手骨的方向。

Arm Length Mlp:使胳膊更短或更长,通过前臂和手的局部坐标的位移来实现。模型胳膊不够长的时候,可以拉长模型的胳膊。

Stretch Curve:拉伸曲线。
———————————————————————————————————————————

Final IK详解相关推荐

  1. 《Java 核心技术卷1 第10版》学习笔记------ final 关键字详解

    可以将实例域定义为 final. 构建对象时必须初始化这样的域.也就是说, 必须确保在每 一个构造器执行之后, 这个域的值被设置, 并且在后面的操作中, 不能够再对它进行修改. 例如, 可以将 Emp ...

  2. Java关键字final使用详解

    2019独角兽企业重金招聘Python工程师标准>>> http://docs.oracle.com/javase/tutorial/java/IandI/final.html Wr ...

  3. Java之final关键字详解

    1.修饰类当用final去修饰一个类的时候,表示这个类不能被继承.注意:a. 被final修饰的类,final类中的成员变量可以根据自己的实际需要设计为fianl.b. final类中的成员方法都会被 ...

  4. final关键字详解

      final变量,如果是基本数据类型,则其数值一旦初始化后就不能被改变.如果是引用类型的变量,则对其初始化后,便不能再指向另一个对象,但是其里面的值是可以改变的.引用变量所指向的对象中的内容是可以改 ...

  5. c++11 类中关于default、explict、implicit、noexcept、final的详解

    default default是c++11的标准,它的作用是告诉编译器声明一个无参的默认构造函数. 最初的时候我们声明类是这样的: class test{public:int add(){} }; 由 ...

  6. final 使用详解

    下面三条是关于final的用法比较笼统的说法,即使背到脑子里,看的只是带着面纱的final.我希望下面的内容可以解开这层面纱. final可以修饰变量,被final修饰的变量被赋值之后,不能对它重新赋 ...

  7. 【Java编程】Java关键字final使用详解

    根据程序上下文环境,Java关键字final有"这是无法改变的"或者"终态的"含义,它可以修饰非抽象类.非抽象类成员方法和变量.你可能出于两种理解而需要阻止改变 ...

  8. Java final类详解

    1.什么是final类? Java中有一些类,如String,Math等,就是final类的典型例子. 虽然在Java编程中并不经常使用final类和final方法,但它们有着与众不同的特点,即fin ...

  9. [专栏精选]Unity动画系统的IK详解

    本文节选自洪流学堂公众号专栏<郑洪智的Unity2018课>,未经允许不可转载. 洪流学堂公众号回复专栏,查看更多专栏文章. "大智,昨天你说要给我讲讲IK,趁现在有空,你给我讲 ...

  10. Java 中 final 关键字详解

    在 Java 中,final 关键字可以修饰的东西比较多,很容易混淆,在这里记录一下.主要从功能上说明一下,不做过多的代码演示. final 关键字用途 1. final 变量 凡是对成员变量或者本地 ...

最新文章

  1. 漫谈 ClickHouse 在实时分析系统中的定位与作用
  2. GE数字化重塑的启示:调整阵型,再战工业互联网!
  3. mysql 从裤3523_MySQL出现3523错误分析
  4. java数组有跨类建立对象_Java性能优化的45个细节(珍藏版)
  5. C语言中的编译,链接,运行简单复习
  6. ubuntu创建wifi热点(android可识别)亲测可用
  7. 蒟蒻的网络流24题解题记
  8. WEB开发(2) Servlet
  9. 字节跳动 文林福_AI实力赋能,让汽车营销玩出抖音范
  10. kubernetes pod一直是ContainerCreating,READY是0/1
  11. 清华AMiner团队推出AI订阅:实时追踪科研动态,定制个人科研信息流 | 专访唐杰教授团队
  12. C语言输出领结婚证纪念日,领证比较有纪念意义的日子
  13. pr基本图形模板无法使用_Pr基本图形模板安装教程
  14. 《全球通史》读书笔记2
  15. 1354:括弧匹配检验(C C++)
  16. NER综述 | 命名实体识别的过去和现在
  17. COLA之架构演变(一)
  18. Settings学习
  19. Xray的安装与使用(超详细)
  20. 《HyVulDect: A hybrid semantic vulnerability mining system based ongraph neural network》阅读笔记

热门文章

  1. AutoCAD三维建模图——汽车车轮
  2. 61-70作业关系符运算
  3. unity3d 地面印花_unity冬季场景地面地形白雪纹理材质贴图游戏素材Winter Ground Pack v1.1...
  4. 2021年起重机械指挥考试题库及起重机械指挥最新解析
  5. mysql spatial索引_空间索引Spatial Indexing
  6. mysql删除通用日志_删除MySQL log bin 日志操作记录
  7. 基于C#的网站地图制作
  8. C++ 递归求数组的平均数
  9. python冒号_python数组冒号取值操作
  10. shader 获取法线_Unity Shader教程 三、法线方向