======RBD Packed Object====== **//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// 识别。 ====Point Attributes==== 之所以要提前讨论属性,是因为这些属性初始状态下只存在于 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''。| ===Collision Shape Attributes=== 下列属性可以用于自定义**碰撞形状**。该属性来自于 ''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// 的复杂碰撞外形。| ===Collision Attributes=== 以下属性用于使指定对象忽略与模拟中其他对象的碰撞行为。 |collisionignore|String|如果对象处于**未激活**状态,且''min_activation_impulse '' 的值为正,那么该对象不能通过与任何满足 ''collisionignore'' 中表达式的对象进行碰撞而达到**激活**的效果。| |activationxformgroup|String|| |collisionignore| String |若指定对象满足该属性中的表达式,那么该对象不会与任何其他对象进行碰撞。\\ \\ 该表达式可以使用 DOP 对象的名字,ID、DOP Groups,或 RBD pakced object 中的 ''collisiongroup'' 属性。同时,POP Collision Ignore 节点可以用于生成该属性。以下是语法:\\ \\ * ''*'' 会关闭所有的碰撞,留空会开启所有的碰撞。 * ''* ^object1'' 会导致对象只与名为 ''object1'' 的对象碰撞。 * ''wall*'' 会关闭 Packed primitive 中,所有 ''collisiongroup'' 属性中,以 ''wall'' 开头的对象。 * ''object1/wall*'' 同上,但指定了 Packed primitive 的来源为 ''Object1''。 |