文档 骨骼绑定

骨骼动力学

让一根骨骼自己跟进、自己安定下来,而不是把每一下最后的晃动都手工打上关键帧。

动力学给一根骨骼的角度、位置或缩放加上弹簧物理,三者各是一条通道、在骨骼的属性里各有自己的开关。一根带动力学的骨骼仍旧跟着你在它父级上设的每一个关键帧走:动力学只是在此之上添了那份滞后和过冲,也就是一条尾巴或一束马尾辫才有、而一次刚性旋转没有的那种运动。

三条通道

角度、位置和缩放动力学彼此独立:只给某根骨骼真正需要的那些打开。角度动力学是大多数绑定用得上的那一条,用于一条肢体或一串垂下来的东西的甩动;位置和缩放动力学是给那些平移或大小本身就该带弹性和滞后的骨骼准备的。

通道参数默认值范围
角度刚度10.00.1 到 100
角度阻尼0.800 到 1
角度柔韧度100%0 到 100%
角度重力0-200 到 200
角度风敏感度100%0 到 200%
角度扭矩0.0-200 到 200
角度权重1.000.01 到 20
位置弹簧10.00.1 到 100
位置阻尼0.800 到 1
位置扭矩0-500 到 500
位置权重1.000.01 到 20
缩放弹簧10.00.1 到 100
缩放阻尼0.800 到 1
缩放扭矩0-100 到 100
缩放权重1.000.01 到 20
属性面板的骨骼动力学一节,角度通道启用着,它的刚度和阻尼字段露在外面。
时间轴上,这些参数坐在这根骨骼自己的分组里,标题是角度动力学、位置动力学和缩放动力学。这些更长的名字把它们和正上方那些骨骼的角度、拉伸和位置通道行分开,那几行是姿势本身,而不是驱动它的那根弹簧。

什么让一根骨骼安定下来,什么让它过冲

刚度(在位置和缩放通道上叫弹簧)是这根骨骼往它被打了关键帧的姿势上拉得多用力:把它抬高得到干脆、抽动式的反应,压低则是缓慢沉重的摇摆。阻尼,0 到 1,是那股拉力多快失掉能量:接近 0 时骨骼会荡过目标、来回摆一阵才安定下来;接近 1 时它平缓地进去,完全没有过冲。

权重代表质量:更重的骨骼(权重更高)在追上之前落在驱动它的运动后面更远,更轻的几乎立刻就跟上。扭矩不管什么在推这根骨骼,都加上一份恒定的旋转(或者位置、或者缩放)推力,用来做一份稳定的倾倒而不是对运动的反应很合适。重力只在角度通道上有,它任何时候都以同样的方式把骨骼往下拉。柔韧度缩放的是整条通道到底被允许动多少。把它压低,可以把一根骨骼钉得更靠近它被打了关键帧的姿势,同时仍旧漏一点动力学出来。

风敏感度决定这一根骨骼对那个共用的风场反应有多强,0 到 200%,默认 100%。风本身(到底开没开、有多大)是在物理面板里为整个场景设一次的;见「物理与风」。一根动力学关着的骨骼从不对风起反应,不管它的敏感度设得多高。

IK 下的骨骼也不受风,解算器写入的那条链上从效应器到根的每一根骨骼都不受。否则两者会同时拽同一个关节:解算器把骨骼按在目标要求的角度上,而风的弹簧还在推,于是在一根明显静止的骨骼底下,绑在它身上的画面仍旧在晃。重力、刚度、阻尼和扭矩对那些骨骼照样起作用,所以一条 IK 下的链仍旧会安定下来,也仍旧会抵抗。

确定性,以及播放头为什么必须走过去

动力学是一套真的模拟,不是随机的抖动:它从骨骼的静止姿势出发,一帧一帧往前推,而每一帧的结果都取决于它前面那一帧。不管你怎么到达某一帧(播过去还是直接拖过去),Celas Studio 都会把那一串帧解算出来,所以同样一次甩动每次都以完全一样的方式安定下来,而一个暂停住的帧也绝不会自己继续飘。

因为每一帧都依赖它前面那一帧,直接跳到很远的一帧并不会跳过这套模拟。Celas Studio 仍旧会把路上每一帧都解算出来,然后才把结果显示给你。