所有约束预设创建具有相同设置的同一类型的辅助对象。不同的约束类型(例如“转枢”与“球和套管”)只需为生成的约束设置一些有用的默认值。          

约束辅助对象可以将两个刚体链接在一起,也可以将单个刚体定位到全局空间中的某个固定位置。约束组成了一个层次关系:子对象必须是动力学刚体,而父对象可以是动力学刚体、运动学刚体或为空(定位到全局空间)。          

默认情况下,约束“不可断开”:无论对它应用了多强的作用力或使它违反其限制的程度多严重,它将保持效果并尝试将其刚体移回所需的范围。但是,可以将约束设置为可使用独立作用力和扭矩限制来将其断开,超过该限制时约束将会禁用且不再应用于模拟。          

父对象和子对象

大多数约束连接两个刚体。约束作为父刚体(随约束一起移动和旋转)的子对象链接,并作为子刚体(约束将父刚体运动传输到的对象)的父对象链接。例如,在模拟中,可以通过转枢约束连接汽车及其门的模型,其中汽车作为父对象,门作为子对象。打开和关闭门的距离限制不会在汽车旋转时发生更改,但是与汽车的方向相关。              

两个动力学刚体间的约束行为类似于现实世界:应用于一个刚体的力可以以任一方向传递到其他刚体。大多数情况下,开车会沿着车拉动车门。但是,如果一些强壮(可能是喝醉了酒)的好兄弟没了汽油,通过打开的门推他们的汽车,如果门未打断,车身也会移动。如果父对象是动态的,可能会像子对象一样将其移动。              

创建约束

要在两个对象之间创建约束,请在场景中选择父对象,然后选择子对象,再从 MassFX 工具栏上的“约束”弹出按钮中选择一个预设。约束将自动放置在父对象的轴点上。然后,在视口中移动鼠标时,系统将跟踪鼠标光标以设置约束的显示大小。将鼠标移动到距离父对象越近,约束变得越小。要确定约束显示大小并完成创建约束,请单击鼠标。

提示如果一个或两个对象不是刚体,MassFX 会在放置约束之前询问您是否要自动应用刚体修改器。                

可以稍后将显示大小更改为约束的特性。它仅会影响约束在视图中绘制的大小,并不会影响约束的模拟效果。

放置约束会影响从应用约束的父对象进行偏移。如果两个刚体相邻(如门连接到门框),通常将约束放置在子对象的轴上。但是,如果两个刚体是独立的(如悬挂在弯钩上的球),约束的完美位置经常位于父对象的轴上。MassFX 约束辅助对象的“高级”卷展栏含有按钮,可以用来为您将约束自动自动移动到这些位置之一。              

创建世界约束              

还可以相对于场景位置约束刚体。可以通过以下方法完成此操作:在“MassFX 约束”辅助对象的“常规”卷展栏上,单击“父对象”按钮旁边的“X”按钮,来将现有约束的父对象设置为空或“未定义”。或者,只需将约束指定给选定的单个刚体;该操作会自动将该刚体设置为子对象并定位空间中的约束。                                  

弹簧和弹性约束

MassFX 约束辅助对象支持三种类型的弹性:    

  • 反弹:受限约束达到限制边缘时,可以选择从限制反弹。例如,如果突然关上房子中的门,通常闭锁会发出咔哒声,不会反弹回来。若要模拟此操作,可以将约束的“反弹”值设置为 0.0。但是,如果删除闭锁,突然关上门会导致从门框反弹回来,并且处于打开状态。为此,您应该使用非零“反弹”值。                          

    弹簧:受限约束达到限制边缘时,可以选择超出限制,并应用力使其返回限制。例如,如果您已连接橡皮绳和桥,然后跳离该桥,您会自由下落,直至橡皮绳的长度到其长度限制,这是达到约束平移方面的限制半径值的结果。此时橡皮绳将开始拉伸,之后它会应用力以恢复到其未拉伸长度。后一个力会使您加速并投掷得比必要时更高(绳子开始增速),但是重新回到限制内后将不再应用力。                  

    • 阻尼属性会随着“弹簧”值来描述对象超过限制时所受的移动阻力。

    弹性:位于辅助对象的“弹簧”卷展栏上,“弹性”值表示您对弹簧的通常认识。“弹到基准位置”将父对象和子对象推回到它们在第一帧上的相对平移偏移,但“弹到基准摆动”和“弹到基准扭曲”会影响其旋转。“弹性”值越大,应用的力越大。      

改进预览性能

约束在视口中具有自定义可视化,用来显示平移、旋转和扭曲的锁定/限制/自由状态以及这些限制的表示。此可视化有助于了解约束的旋转和限制。但是,绘制这些可视化会影响视口性能。

如果您在预览具有多个约束的模拟,可能希望禁用辅助对象的显示以改进视口更新的速度。可以通过启用“按类别隐藏”“辅助对象”,在“显示”面板上执行此操作。

,