
让眼睑贴合眼球的挑战
让眼睑以逼真的方式闭合和张开是Riggear的一个细节,它将一个好的角色与一个优秀的角色区分开来👁️。最大的挑战是确保动画眼睑的控制点完美地滑过眼球的球形表面,而不会陷入其中或浮动分离。实现这种曲线运动需要智能的约束和空间参考策略,因为没有软件提供针对此特定目的的原生“Surface Constraint”。
中心辅助对象和约束的策略
最常见且有效的解决方案是使用中心锚点。创建一个辅助对象或骨骼,精确位于眼球中心。这个点将充当太阳,眼睑控制点围绕其轨道运行。然后,为每个眼睑控制点应用一个Point Constraint指向这个中心辅助对象。然而,简单的Point Constraint会直接将点拉向中心。魔力在于将其与距离限制结合,通过表达式或脚本保持点与中心固定距离(眼球半径),迫使其沿不可见球体的表面移动。
没有约束的控制点就像没有线的气球,它会飘向任何地方而不是你需要的地方。
使用表达式和脚本的实现
在3ds Max中,你可以使用MaxScript或Wire Parameters来创建此限制。将控制点的位置连接到一个公式,该公式从中心归一化其向量,然后乘以所需的半径。在Maya中,Expression Editor或Utility Nodes如Distance Between和Vector Product是你的最佳朋友。创建一个本质上说:
最终位置 = 眼球中心 + (归一化向量 * 半径)
的表达式。这将在每个帧重新计算点的位臵,将其粘附在球形表面上。
用于艺术控制的样条IK替代方案
对于更直接的艺术控制,Spline IK是一个极好的替代方案。绘制一个圆形样条,其曲率与眼睑移动区域的眼球曲率匹配。然后,应用一个以该样条为目标的Spline IK。眼睑控制点变成这个IK的控制器。通过沿样条动画这些点的位置,它们将自然地滑过曲线,保证始终跟随眼球表面。它不那么技术化,更视觉化,适合喜欢操纵曲线的动画师。
用于稳健rigging的工作流程
遵循这些步骤来创建一个可靠的眼睑系统:
- 准备:将眼球建模为完美球体,并在其中央pivot放置一个辅助对象。
- 创建控制点:将眼睑控制点放置在眼睛周围,在其中性张开位置。
- 点约束:为每个点应用一个指向中心辅助对象的Point Constraint。
- 距离表达式:添加一个表达式或脚本,强制每个点与辅助对象保持精确距离(眼球半径)。
- 运动测试:动画这些点以确保它们在表面上滑动而不脱离或陷入。
- 旋转控制:添加一个Orient Constraint,使点保持相对于眼睛的切向取向,避免奇怪的旋转。
最终调整和处理边缘情况
即使有完美的球形约束,眼睑的末端(内眦和外眦)通常需要手动调整以避免与巩膜或周围皮肤相交。对于这些区域,允许一些手动平移超出球形限制,或创建blendshapes/morph targets校正形状,在极端姿势下激活。目标不是100%物理粘附,而是视觉上令人信服的错觉。
通过掌握这些技术,你的角色将能够眨眼、眯眼并以瞬间与观众连接的真实感表达细微情感。最终,这就是优秀面部rigging的真正力量😉。