Creates a single DOP object from SOP Geometry that represents a number of RBD Objects.
RBD Packed Object 节点 会在 DOP 中创建一个 DOP 对象,供 DOP 模拟使用。该节点从指定的 SOP 路径获取几何体,并使用一个单独的点和每个具有变换的 primitive 来描述 RBD 对象。这些 primitives 可以是 packed primitives,spheres,tubes。每个 Primitives 都会为刚体提供碰撞几何体;而在 primitives 上的点则会包含属性,用于存储相关的信息,比如方向(orientation),质量,速度等等。
这导致该节点的效率远远高于 RBD Fractured Object、RBD Point Object。该节点现在只能被 Bullet Solver 识别。
之所以要提前讨论属性,是因为这些属性初始状态下只存在于 DOP netowork中(geometry spreadsheet → geometry),但我们可以提前在 SOP 中设置好这些属性供 DOP 使用。而正因为这些都是 point attribute,而 Packed Objects 正是基于点来模拟位移与方向的,因此这些属性可以为每一个实例(instance)添加初始状态。
Bullet Solver 使用如下的点属性(point attributes)来存储 Packed Object 中每一个部分需要的信息。
Name | Type | Description |
---|---|---|
active | Int | 指定对象是否能够与模拟中的其他对象交互。 关联参数: initial Object Type 。 |
animated | Int | 指定是否将 SOP 的变换(也就是自带的动画)更新到 DOP中(以 timestep 为单位)。 该选项只在 active 为 0 的时候使用。关联参数: initial Object Type 。 |
bullet_add_impact | Int | 开启该选项后,任何在模拟中出现的冲击将被存储到 impacts 与 Feedback 数据中。 |
bullet_angular_sleep_threshold | Float | 角速度低于该值(上限)的对象将被视作没有运动。 |
bullet_ignore | Int | 指定对象是否会被 Bullet Solver 忽略。 与 active 设置为 0 不同的是,该值意味着对象不会再与任何其他对象碰撞。 |
bullet_linear_sleep_threshold | Float | 线速度低于该值(上限)的对象将被视作没有运动。 |
bullet_want_deactivate | Int | 被视作为“没有运动”的对象将不再参与到模拟中,直到他们重新开始运动。“没有运动” 由线 / 角 速度的两个上限判定。 |
computecom | Int | 指定是否计算质心。 关联参数: Compute Center of Mass 。 |
computemass | Int | 指定是否通过对象的形状和密度计算质量。 关联参数: Compute Mass 。 |
creationtime | Float | 对象的创建时间($SF ) |
dead | Int | 指定下次解算中哪些对象应该被删除。POP kill 节点可以用于生成该属性。 |
deforming | Int | 指定对象的形状是否在碰撞后进行重建 关联参数: Initial Object Type 。 |
density | Float | 指定对象的密度。 关联参数: Density 。 |
friction | Float | 指定对象的静摩擦力。0 代表光滑。关联参数: Friction 。 |
inertialtensorstiffness | Float | inertial tensor 的缩放参数。越高代表对象旋转的趋势越小。 关联参数: Rotational Stiffness 。 |
inheritvelocity | Int | 如果该值不为 0 ,来自 SOP 几何体上的 v 和 w (线速度和角速度点属性)将覆盖对象自身的初始属性。 |
mass | Float | 对象的质量。受 computemass 的影响。关联参数: Mass 。 |
name | Quaternion | 对象的方向。 |
P | Vector | 对象当前的质心位置。 |
pivot | Vector | 质心的位置。由自动计算或者手动指定生成。 关联参数: Center of Mass 。 |
v | Float | 对象的线速度。 关联参数: Velocity 。 |
w | Float | 对象的角速度。 关联参数: Angular Velocity 。 |
下列属性可以用于自定义碰撞形状。该属性来自于 Bullet Data
节点。
Name | Type | Description |
---|---|---|
bullet_adjust_geometry | Int | 收缩碰撞几何体的范围,防止 collision padding 带来的碰撞几何体增大导致模拟发生变化。该属性可以防止碰撞几何体的交叉,去除 collision padding 带来的几何体缝隙。 |
bullet_autofit | Int | 当碰撞几何体的表现形式为 box、Capsule、Cylinder、Sphere、Plane 的时候,该参数决定是否使用碰撞几何体的 bounds 来作为碰撞外形。 |
bullet_collision_margin | Float | 碰撞外形之间的 padding,用于提升 Bullet 的碰撞检测的稳定性和表现。该属性与场景的比例有关系。 该 padding 会同样增加碰撞外形的大小,因此推荐使用 Shrink Collision Geometry 来防止碰撞外形的变化。该选项不支持 Concave 、Plane 。 |
bullet_georep | String | 碰撞外形的表现形式。比如 Convex Hull。 |
bullet_groupconnected | Int | 当表现形式是 Convex Hull 的时候,指定解算器是否以已连接的 primitives 为单位(Packed Primitives),创建一个包含多个 Convex Hull 的复杂碰撞外形。 |
以下属性用于使指定对象忽略与模拟中其他对象的碰撞行为。
collisionignore | String | 如果对象处于未激活状态,且min_activation_impulse 的值为正,那么该对象不能通过与任何满足 collisionignore 中表达式的对象进行碰撞而达到激活的效果。 |
activationxformgroup | String | |
collisionignore | String | 若指定对象满足该属性中的表达式,那么该对象不会与任何其他对象进行碰撞。 该表达式可以使用 DOP 对象的名字,ID、DOP Groups,或 RBD pakced object 中的 collisiongroup 属性。同时,POP Collision Ignore 节点可以用于生成该属性。以下是语法:
|