骨骼物理模拟
Wallpaper Engine还允许您为人偶变形骨骼配置某些物理模拟。选择骨骼时,点击编辑约束来配置骨骼这些属性。
警告
请记住,物理模拟可能会根据用户的最大FPS设置略微改变其行为。 Wallpaper Engine编辑器将始终以高帧速率渲染。您可以将壁纸应用于桌面,并在Wallpaper Engine设置中将FPS限制设置为10-15,以查看壁纸在更严格的FPS规则下的表现。
骨骼物理学实例
这里将使用武士实例来展示骨骼物理的两种不同类型的实现。 下方连接提供了武士素材的下载地址:https://docs.wallpaperengine.io/samples/samurai_tutorial.zip
绳索物理
在第一个示例中,将向附加到武士角色剑上的绳索添加物理模拟。为了实现这一点,需要打开操控人偶变形动画的骨骼步骤,并选择连接武士手和绳子底部的根骨骼的骨骼:
然后,我们点击右侧的编辑约束按钮,打开骨骼约束菜单。在这种情况下,启用刚体物理模拟选项并按如下方式对其进行配置:
- 物理旋转:启用。我们希望骨骼能够旋转。
- 旋转摩擦:12
- 旋转惯性:20
- 物理平移:不启用,我们不希望骨骼移动。
- 已启用重力:启用,我们希望重力将绳索向下拉。
- 骨骼末端质量:20
- 重力方向:90 - 值为90表示重力向下拉。
- 骨骼末端前倾角:90 - 角度确定重力和移动如何影响骨骼。配置后,检查更改此值后从骨骼上脱落的圆圈结尾的棕色参考线。以验证方向。
- 限定旋转:启用 - 将其设置为-180 和 + 180以确保防止任何过渡旋转。
您会注意到,向前的角度在骨骼预览中变得可见,由末端由圆圈的棕色线显示,确保它指向正确的方向(在本例中为:重力方向)。
这就是启用绳索骨骼的物理特性所需的全部内容。您实际上不需要为骨骼本身设置动画,而是应该为父骨骼(在本例中为手)设置动画。骨骼将动态跟随并模拟物理。对于您的示例,您可能需要调整上面的值,但您可以使用上面的值作为基准,然后根据特定的用例调整它们。
披风物理
接下来,我们将使用物理模拟为一系列骨骼制作动画。这里将以武士的披风为例,因为它跨越多个骨骼,这些骨骼都专门移动披风的布料:
具体来说:我们正在处理沿披风存在的四个骨骼,如下图所示,它们已经完全配置:
披风上的前三个骨骼已配置使用弹簧物理模拟,而左侧的最后一个骨骼已配置使用刚体物理模拟。这不一定是最好的解决方案,但认为在这种情况下,结果看起来不错。您可以尝试将骨骼于刚性和弹簧模拟混合结合在一起,并查看行为如何变化。
提示
请记住,链接多个弹簧模拟骨骼将转移它们的弹性运动,并且更容易导致不稳定的运动。
配置骨骼
所有骨骼在很大程度上都保持默认设置。这里启用了限定旋转,并将其配置为最小值-20和最大值+20,以确保斗篷移动不会太过剧烈。披风的第二个骨骼(右侧)也在默认设置下启用了重力,以模拟一点向下的气流。其他元素的重力已被禁用,因为如果所有运动都来自武士的动画,它看起来会更好。您可以近一步尝试,并将重力方向设置为180(表示向左),例如,您可以使用它来模拟强烈的侧向风。
配置骨骼末端前倾角
在上面的示例中,你可以看到斗篷上的所有骨骼都有一个向前的角度,由末端有圆圈的棕色线条表示。向前的角度指向下一块骨头很重要,你可以看到棕色的圆圈总是围绕这下一块骨头。
然而,有一个重要的例外,那就是斗篷上的最后一块骨头。您可以看到棕色圆圈的末端朝向斗篷的尖端。必须通过更改骨骼末端前倾角直到前向角度指向正确的方向。由于前倾角的工作原理,这可能有点棘手。请务必检查最后一个棕色圆圈是否指向角色或对象的的外侧尖端。输入的值实质上是Wallpaper Engine推断的默认方向的偏移量。
为斗篷制作动画
与绳索示例不同,我们还向所有物理模拟的披风骨骼添加了轻微的运动动画,并且不完全依赖披风的纯物理。来自斗篷动画和物理模拟的运动将被合并。这使得我们能够创建更逼真的斗篷,而无需创建非常精确的动画,因为我们只需依靠动态模拟来为斗篷添加任何逼真的细节。
骨骼约束
当您在人偶变形骨架中选择骨骼时,您可以点击“骨骼约束”来查看特定骨骼的高级选项。
您有两个主要选项,您可以首先在两者之间做出决定:
弹簧物理模拟:启用骨骼的弹性模拟。骨骼将像弹簧一样工作,并始终尝试返回其默认位置。
刚体物理模拟:启用骨骼的拖动模拟,骨骼将充当可以拖动的物体,并且将保持其最后的位置。
骨骼约束选项
物理旋转:启用骨骼旋转的动态模拟。这在大多数情况下都很有用。
旋转刚度(仅限弹簧):骨骼尝试返回其默认旋转的强度。增加此值将使弹簧更坚固且弹性更小,降低此值将使弹簧松散且反应性降低。
旋转摩擦:每帧减少多少旋转运动。您可以增加此值以减少抖动运动。
旋转惯性:这会减少动画移动对骨骼的影响程度。增加此值将使骨骼对快速动画的反应较少。
物理平移:启用骨骼位置的动态模拟。如果动画的目标是对象的扭曲,或者如果对象被分隔到不同的空间,这将非常有用。
平移刚度(仅弹簧):骨骼尝试返回其默认位置的强度。增加此值将使弹簧更坚固且弹性更小,降低此值将使弹簧松散且反应性降低。
平移摩擦:每帧减少多少平移运动。您可以增加此值以减少抖动运动。
平移惯性:这减少了动画移动对骨骼的影响程度。增加此值将使骨骼对快速动画的反应减少。
最大距离:允许骨骼移动的最大举例。
已启用重力:启用此选项将使骨骼对重力做出反应。它会尝试重力方向移动,就像它悬浮在空气中一样。
骨骼末端质量:较高的质量将使骨骼对重力的反应更强烈,而不是对动画的运动做出反应。
重力方向:这是重力的方向。
骨骼末端大小: 这允许您覆盖骨骼的模拟权重与骨骼中心之间的距离。较大的大小将使骨骼对某些动画的反应性降低,而较小的大小将使其更具反应性。 如果将其保留位0并别骨骼只有一个子骨骼,则会动态设置大小以匹配与子骨骼的距离。将此值设置位除0以外的任何值将覆盖大小。您可以通过查看橙色圆圈与刚刚编辑的骨骼的距离来查看编辑器中的大小。
骨骼末端前倾角:这可让您覆盖尖端的角度。默认情况下,末端将朝向子骨骼的方向(如果有),否则它将沿X轴朝向骨骼的默认向前方向。在任一情况下,您都可以使用此选项更改此方向。此选项将偏移应用于当前方向。
限定旋转:使用此选项可以限制骨骼在任一方向上的最大旋转。这对于将骨骼引导到所需方向并防止其旋转180度非常有用。
最小角度:允许旋转的最小角度。默认情况下,此值为-180度。
最大角度:允许旋转的最大角度。默认情况下,这是180度。
限定扭矩:启用此选项可以限制施加到骨骼的最大旋转力。您可以使用此选项来防止骨骼由于非常快的动画而无法不规则地旋转。
最大扭矩:允许地最大力,任何大于此的力都将限制为最大值。
创建形状动画
操控变形动画还允许您更改人物的实际形状,这可用于创建详细的面部动画和其他类型的动画,如果您希望在其中对纹理本身进行详细调整。
创建混合形状
混合变形的总体思路是定义几何体的替代排列,您可以在动画中过渡该排列。例如,您可以调整角色面部的几何图形,使眼睛看起来是闭着的。
首先,转到操控变形动画的"几何"设置。如果您尚未点击锁定几何图形以进行顶点编辑按钮,您首先选哟这样做,因为如果您对几何体进行进一步编辑,混合变形将中断。如果需要,使用编辑拓扑按钮微调自动生成的几何图形。
在编辑混合形状部分中,点击添加按钮以创建新的混合变形。几何体中的每个点现在将都变得可移动,将与形状动画相关的所有点调整到其最终位置。例如:您可以将眼睛上方的几何体向下移动,使眼睛看起来是闭着的。
创建表情
在下一步中,您需要创建一个表情。表达式是多个混合变形的集合。如果只有一个混合变形,只需将其设置为值即可。如果您有多个混合变形,请以您希望稍后再特定动画中控制它们的方式将它们混合在一起。如果希望某个混合变形在表达式期间仅部分显示,也可以设置间歇值,例如:0.5。
为表情制作动画
在最后一步中,转到现有动画或为人偶创建新动画。在动画视图中未选择骨骼时,您可以像使用任何其他属性一样为表情创建时间轴动画。注意不能选中单一骨骼,必须不选择骨骼才能显示。