论IK RIG之引擎应用

点击上方蓝字CG世界关注我们

“ 感知技术 · 感触CG · 感受艺术 · 感悟心灵 ”
中国很有影响力影视特效CG动画领域自媒体

最近有一位技术动画小伙伴CarlosDong董锦超向我们发来投稿!我满怀期待的看了他的投稿内容,不由得感叹一句!大家的知识面太广泛了,真的好有才华论IK RIG之引擎应用
论IK RIG之引擎应用
投稿的内容是关于IK Rig,本来对于这方面的内容我也就是略知道一点点皮毛,但是经过这次小伙伴的详细介绍和应用,让我真的大开眼界!顿时觉得自己又多学了一项技能!
这么好的知识,咱们是不可以独享滴!通通给我分享起来!(以下为投稿内容)


简单认知IK Rig




IK RIG解决的问题便是,让不同骨骼(层级,数量,体型)绑定间能通用动画,从而达到传统骨骼重定向不能实现的动画通用性。

GDC这段关于Ik rig的演示不再赘述,本文只演示其在实际开发的作用以及与前文的骨骼绑定流程的接口。

https://www.youtube.com/watch?v=KLjTU0yKS00 

事实上,UE5已经能够支持IK RIG, 引擎内的任意 retargeting 复用动画资产 已成为现实。但,本章着重探讨IK RIG 在绑定前期的应用价值。那么有没有办法在DCC中就打通IK关节,从而实现任意角色,任意骨骼的动画重定向呢?

论IK RIG之引擎应用

论IK RIG之引擎应用

IK RIG 在前期环节发挥的最大作用是统一不同骨骼层级数量的RIG。笔者在开源空间有幸找到相关插件的maya源码。至此IKRIG 实现了骨骼重定向中根据相对位置递归,而非根据骨骼位移/旋转递归,通过调整匹配中介IK RIG, 输入与输出的参数使得不同骨骼层级的绑定能重复完全相同的动作。但是,其匹配算法的核心还是在于深度学习。才能让其pose编码更准确。

论IK RIG之引擎应用



与Human Ik的异同




提到DCC的IK 控制器,传统通用的其实是Human IK系统。Human Ik其实可以实现对于基础人性骨骼的锚定式动画匹配(Match Source), 面向目标的动作匹配(Action Space Comp:User), 动作补偿(用于弥补错位)对于典型二足类人型角色,Human IK 可以通过指认重要关节控制器,实现11个IK 触点的控制。在迁移动画中,角色的体型适配做了如下定义:Ik T Blend (手臂的Ik 位置同步)   Action SpaceCompensation (动作空间弥补,用于匹配步距)   Ankel Height Compensation (同步脚高度)  FootSpacing (足间距) 匹配以上参数可获得更好的位移匹配效果。

论IK RIG之引擎应用

论IK RIG之引擎应用

直接迁移原始动画数据的问题:脚步穿模地面+滑步▲


论IK RIG之引擎应用Stride matching 避免滑步 + Mirror Animation 调整移动方向▲


论IK RIG之引擎应用

FootSpacing 调整▲


对于一般性异构人形骨架的重定向Human Ik 完全能够满足需求。但是,对于异构骨架重定向,最大的痛点是打破传统人形结构,从而使游戏商业化皮肤中能对角色设计和骨骼建设做更多样化的尝试的同时能够通用基础动画。比如,经典美式卡通中常用的“橡皮管动画”(rubberhose animation)就需要在制作动画时对于骨骼进行夸张的软化形变。因此动画对于软性骨骼的适配也就显得尤为重要。

除此以外,在游戏流程中,项目会需要不增加资源量的情况下通用基础骨骼动画。

论IK RIG之引擎应用

在动画历史上留下过深刻烙印的rubberhose animation 形式:代表作《Skeleton Dance》▲
论IK RIG之引擎应用

多关节腿部角色:机甲类角色外装▲



IK Rig 工作原理详解




论IK RIG之引擎应用

从左到右:
*Animation Skeleton
*从 Skeleton 计算出的 IK RIG
*从 IK RIG 映射到新 Skeleton 的 IK RIG
*从新的 IK RIG 计算出新的 Skeleton Animation
*新的模型动画
第一步:移动控制归一化(normalize),  并记录rest pose
第二步:记录来源骨骼长度,方向,世界坐标矩阵
第三步:Ik Rig Encoding (编码以上所有信息*86个)
第四部:IK Rig Decoding (解码输出到目标Ik Rig)
第五步:匹配目标骨骼,反向算出动画数据csv,输出新的骨骼动画或直接加载到引擎角色中。


IK Rig 组成结构与变体




论IK RIG之引擎应用

常规的人形 Skeleton 拆分成不同的大类
COG / Pelvis / Hip (Skeleton 常用的 Root Joint,包含位移和旋转)
Spine (脊椎部分,主要控制躯干的旋转)
Head (脖子和头,控制头部旋转)
Shoulder (肩膀,通常左右各一个 Joint 与 Spine 的末端相连,表达肩部的旋转)
Arms and Legs (胳膊和腿,四个 2 Bone IK 控制旋转)
Foot (脚踝和脚趾的旋转,常用的 IK 方式是局部逆 FK 控制腿部 2 Bone IK 的端点)

针对不同的类考虑使用怎样的 IK RIG 方式
COG – FK ,控制人体跨部的旋转和整体的位移
Spine – IK Chains,只保留 Root 和 Tip 的旋转,中间根据曲线插值
Head – Look At IK,脖子和头可以控制旋转的权重
Shoulder – Look At IK,可以做一个肩膀的朝向 IK,同时影响胳膊 IK 的 Root
Arms and Legs,2 Bone IK
Foot ,Reverse FK,从 Toe – Ball – Feet 反转原有的 FK,影响腿部的 IK Tip

实现不同类型的 IK Rig
定义 IK Rig 的数据结构:不同的尺寸,在本案例中有86个
从原有的 Animation 和 Skeleton 计算出 IK Rig 的参数
映射到新骨骼的 IK Rig 参数
通过 IK Rig 计算出 Joints 的 Transform


Maya IK Rig 具体操作解析




论IK RIG之引擎应用

*Reference Rig获取到原始骨骼的矩阵信息。(基本信息如左下图,可以手动获取也可以脚本获取), pole vector,    position,orientation, length等信息

*将骨骼信息获取到encoder归一化

*Encoder 发送到decoder, 在Attribute里人工匹配输出绑定的尺寸

论IK RIG之引擎应用

论IK RIG之引擎应用

*在此过程中,IK RIG encoder 会记录原始骨骼过来的所有归一化数据。例如:effector  根据其IK链长度归一化,其他locator位置都是相对于Hip 位置的归一化。因此,加载到不同骨骼的同样动画,其数值都是相同的。

*对于Normalize Global Xfo, 点选可匹配位移,减少滑步。

* IK Rig Locator 中记录了effector 信息,pole vector, 长度。把自己建的骨骼父子约束到相应位置的locator即可。

论IK RIG之引擎应用

论IK RIG之引擎应用

左侧为输出骨骼▲


*针对UE, CSV文件可以对归一化的IK数据存储,输出86个数组的float. 这些数据通过蓝图(有python插件)返回给相应输出rig上,校准其对应的高度位置(如Hip Height, Length 等) 
论IK RIG之引擎应用

CSV记录▲


论IK RIG之引擎应用

CSV动画文件到decode rig▲


论IK RIG之引擎应用

CSV驱动decode骨骼▲


*引擎内每帧Tick, 根据CSV解码每帧对应的IK POSE, 并输出必要的IK 朝向信息

* 适配角色尺寸(手调),并根据IK 信息驱动引擎内的IK动画系统。

论IK RIG之引擎应用

Get Pose▲


论IK RIG之引擎应用

Set Limb Orientation▲


论IK RIG之引擎应用

Ik Rig Base Setup: 用拿到的数据驱动躯干的FABRIK 以及肢体的2BONEIK▲


 最终,从CMU动捕库获取的自定义骨骼动画数据就被IK RIG成功重定向到了UE的小白人骨骼上。

论IK RIG之引擎应用

最终效果

方案总结: 

优势:局外IK Rig将UE5的IK RIG原生功能带到了MAYA(DCC)+ UE4(或其他引擎) 环节。能够让同一段动画在差异化的绑定骨骼上流通,并输出引擎,不增加资源量。

劣势:目前手动定义的环节比较多,自动性有待提升。另外IK RIG普遍问题还在于性能消耗,依附于引擎IK结构每帧Tick,让局内大范围实现受到限制 。


看完之后有没有觉得自己都变得博学了!论IK RIG之引擎应用后续有小伙伴想和大家分享一些关于CG的知识和趣事也可以投稿分享哦!好东西当然要大家一起学才有意思!论IK RIG之引擎应用

end



论IK RIG之引擎应用

卷死了!高水准学生动画作品Show


论IK RIG之引擎应用

这不是后浪,是海啸!UE5学生作品点评及解析


论IK RIG之引擎应用

又是自学!用UE5重制《塞尔达传说:时之笛》的大佬玩出UE5三渲二漫画风!


论IK RIG之引擎应用

《艾尔登法环》的关卡与环境艺术设计


原创文章,作者:CG世界,如若转载,请注明出处:https://www.cgworld.wiki/48410.html

(0)
上一篇 2022年6月26日 上午2:33
下一篇 2022年7月22日 下午12:05

相关推荐

发表回复

登录后才能评论
网站老用户的积分将会在5.5日起开始按比例兑换【CG搜模网】积分,请在5.5日后到【CGSOMO】公众号点击联系客服,回复【积分兑换】进行操作。感谢大家的支持!