通过 Python 处理约束时,使用 vrConstraintService
以及 vrdConstraintNode
。
我们添加了一个示例文件 SimpleConstraint.vpb
,用于演示如何使用以下 Python 约束函数。要访问示例文件,请选择“文件”>“打开示例...”>“SimpleConstraint.vpb”。
Python 约束视频字幕:在 VRED 2020 中,我们实现了使用脚本语言 Python 创建约束的功能。要处理约束,请使用 Python 文档。在这里,您将找到有关如何创建和使用约束的所有重要信息。简单约束示例显示了不同的约束及其影响。
支持以下对象和函数:
以下是受支持的对象:
以下是 vrConstraintService
函数:
createPositionConstraint
创建位置约束。createOrientationConstraint
创建方向约束以限制和控制受约束对象的旋转。createAimConstraint
创建目标约束以限制和控制受约束对象的旋转和目标。使用目标约束来约束一个对象,以便它始终指向其目标。getConstraints
返回所有约束的列表。findConstrainedNode
返回具有指定约束节点的所有约束的列表。deleteConstraint
删除指定的约束。vrdConstraintNode (base class)
用于将一个对象的位置或方向约束到另一个对象。尝试在对象上施加限制并自动执行动画过程。
以下是 vrdConstraintNode
函数:
setActive
将约束设置为活动或非活动。
isActive
如果约束处于活动状态,则返回结果。
setTargetNodes
设置约束的目标节点。
getTargetNodes
返回目标节点的列表。
clearTargetNodes
清除约束目标节点。
setTargetNodeWeight
设置目标节点的权重。权重控制对象对目标点、方向、比例、矢量等的影响。生成的加权平均将驱动受约束对象的位置、方向等。
如果权重为 0,则目标对受约束对象没有影响。
仅对多个目标对象使用约束权重。当仅用于一个目标对象时,任何大于 0 的权重均将被解释为完全影响。因此,一个目标将对受约束对象产生 100% 的影响。
getTargetNodeWeight
返回目标节点的权重。
setConstrainedNode
设置哪个节点是受约束节点。
getConstrainedNode
返回受约束节点的名称。
clearConstrainedNode
清除受约束节点。
vrdPositionConstraintNode
使对象移动,并跟随另一个对象的位置或几个对象的平均位置。可用于将对象的运动与另一个对象的运动相匹配。
尝试使用位置约束来为某个对象设置动画,使其跟随其他一系列对象。
以下是特定的 vrdPositionConstraintNode
函数:
setMaintainOffset
设置为保留受约束对象的原始状态(约束之前的状态)和相对平移。使用该选项可以保持受约束对象之间的空间关系。getMaintainOffset
如果已设置为保持偏移,则返回结果。vrdOrientationConstraintNode
适用于方向约束。能够将一个对象的方向与一个或多个其他对象的方向相匹配。可同时设置多个对象的方向。例如,使一组对象(例如方向盘、轮胎、车头灯)同时朝同一方向旋转。为方向盘设置动画,然后将轮胎和车头灯约束到已设置动画的方向盘。
vrdAimConstraintNode
适用于目标约束,可约束对象的方向,并将该对象指向其他对象。能够将摄影机或灯光指向一个对象或一组对象。
以下是特定的 vrdAimConstraintNode
函数:
setUpVectorTargetNodes
设置用于定义向上矢量位置的目标节点。getUpVectorTargetNodes
返回向上矢量目标节点。clearUpVectorTargetNodes
清除向上矢量目标节点。setUpVectorTargetNodeWeight
设置向上矢量目标节点的权重。getUpVectorTargetNodeWeight
返回向上矢量目标节点的权重。