Rigid constraint OpenCOLLADA extension
Revision as of 15:34, 29 November 2016 by Jerome-jacob (talk | contribs) (Created page with "{{extension | company = Starbreeze | purpose = rigid_constraint extension for PhysX 3.x | product = OpenCOLLADA | contact_email = [email protected] | last_updat...")
Extension information |
---|
|
This article is part of the COLLADA extensions directory |
Adding to the extensions directory |
<rigid_constraint>/<extra>/<technique profile="PhysX_3.x"> Element
- Specification Version: 1.4.1
- Category: (Physics) Physics Model
Introduction
- COLLADA format allows Physics scene description. However only a small set of parameters are supported. This extension allows to embed full set of parameters supported by PhysX 3.x.
- See PhysX 3.x documentation for further details about each parameter.
Note relative to transforms
- COLLADA does not define any transform for <rigid_body> element and supposes rigid body's initial transform is taken from <instance_rigid_body>’s target. In Maya, a rigid body can have a different transform than its targeted node. Importers can use <global_pose> element to get the actual transform used by PhysX SDK in Maya. Importing and using <global_pose> is optional but if an importer chooses to use <global_pose> then it must use <shape>/<extra>/<technique profile=”PhysX_3.3”>/<local_pose> and <rigid_constraint>/<extra>/<technique profile=”PhysX_3.3”>/<local_pose0>|<local_pose1> and ignore standard COLLADA shape transform and constraint <ref_attachment>/<attachment> transforms.
Related Elements Affected Parent element(s) <rigid_constraint> Extra and/or Technique <extra>/<technique profile=”PhysX_3.x”> Child elements See following section
Child Elements Name Description Default Occurrences <px_d6joint> Extension’s root element. N/A 0 or 1
Child Elements for px_d6joint
- Child elements must appear in the following order if present:
Name Description Default Occurrences <local_pose0 sid=”..”> 7 floating point values: 4 for rotation quaternion and 3 for translation. N/A 1 <local_pose1 sid=”...”> 7 floating point values: 4 for rotation quaternion and 3 for translation. N/A 1 <break_force sid=”...”> Float INF 0 or 1 <break_torque sid=”...”> Float INF 0 or 1 <constraint_flags> List of xs:NCNAME. See PxConstraintFlags documentation. Can be any combination of BROKEN, PROJECT_TO_ACTOR0, PROJECT_TO_ACTOR1, PROJECTION, COLLISION_ENABLED, REPORTING, VISUALIZATION, DRIVE_LIMITS_ARE_FORCES, IMPROVED_SLERP No flag 0 or 1 <inv_mass_scale0 sid=”...”> Float 1 0 or 1 <inv_inertia_scale0 sid=”...”> Float 1 0 or 1 <inv_mass_scale1 sid=”...”> Float 1 0 or 1 <inv_inertia_scale1 sid=”...”> Float 1 0 or 1 <projection_linear_tolerance sid=”...”> Float 1e10f 0 or 1 <projection_angular_tolerance sid=”...”> Float 180 0 or 1 <limits_extra>* 0 or 1 <linear_extra>* 0 or 1 <restitution sid=”...”> Float 0 0 or 1 <bounce_threshold sid=”...”> Float 0 0 or 1 <contact_distance sid=”...”> Float 0 0 or 1 </linear_extra> <swing_cone_and_twist_extra>* 0 or 1 <restitution sid=”...”> Vector2. For swingY/Z and twist. 0 0 0 or 1 <bounce_threshold sid=”...”> Vector2. For swingY/Z and twist. 0 0 0 or 1 <contact_distance sid=”...”> Vector2. For swingY/Z and twist. 0 0 0 or 1 </swing_cone_and_twist_extra> </limits_extra> <spring_extra>* 0 or 1 <angular_extra>* 0 or 1 <stiffness sid=”...”> Float. Additional value for twist. 1 0 or 1 <damping sid=”...”> Float. Additional value for twist. 0 0 or 1 </angular_extra> </spring_extra> <drive> <linear_x> Also accepts <linear_y>, <linear_z>, <swing>, <twist> and <slerp>. 0 or 1 <stiffness sid=”...”> Float 1 0 or 1 <damping sid=”...”> Float 0 0 or 1 <force_limit sid=”...”> Float INF 0 or 1 <drive_flags> List of xs:NCNAME. Only flag is ACCELERATION. No flag 0 or 1 </linear_x> Or </linear_y>, </linear_z>, </swing>, </twist> and </slerp> <translate> Transformation of drive position. Any combination of these elements in any order. 0 0 0 0 or more <rotate> 0 0 0 0 0 or more <linear_velocity sid=”...”> Vector3 0 0 0 0 or 1 <angular_velocity sid=”...”> Vector3 0 0 0 0 or 1 </drive>
Example
<rigid_constraint> ... <technique_common> <enabled>true</enabled> <interpenetrate>true</interpenetrate> <limits> <swing_cone_and_twist> <min>-15.0 -15.0 -INF</min> <max>15.0 15.0 INF</max> </swing_cone_and_twist> <linear> <min>0 0 0</min> <max>0 0 0</max> </linear> </limits> <spring> <linear> <stiffness>5.4544</stiffness> <damping>0.4132</damping> <target_value>3</target_value> </linear> <angular> <stiffness>5.4544</stiffness> <damping>0.4132</damping> <target_value>90</target_value> </angular> </spring> </technique_common> <extra> <technique profile=”PhysX_3.x”> <px_d6joint> <local_pose0>0 0 0 1 0 0 0</local_pose0> <local_pose1>0 0 0 1 0 -2 0</local_pose1> <break_force>INF</break_force> <break_torque>INF</break_torque> <constraint_flags>PROJECT_TO_ACTOR0 PROJECT_TO_ACTOR1 PROJECTION</constraint_flags> <inv_mass_scale0>1</inv_mass_scale0> <inv_inertia_scale0>1</inv_inertia_scale0> <inv_mass_scale1>1</inv_mass_scale1> <inv_inertia_scale1>1</inv_inertia_scale1> <limits_extra> <linear_extra> <restitution>0</restitution> <bounce_threshold>0</bounce_threshold> <contact_distance>0.01</contact_distance> </linear_extra> <swing_cone_and_twist_extra> <restitution>0.4 0</restitution> <bounce_threshold>0.5 0.5</bounce_threshold> <contact_distance>0.0392699 0.1</contact_distance> </swing_cone_and_twist_extra> </limits_extra> <spring_extra> <angular_extra> <stiffness>0</stiffness> <damping>0</damping> </angular_extra> </spring_extra> <drive> <linear_x> <stiffness>0</stiffness> <damping>0.005</damping> <force_limit>INF</force_limit> <drive_flags>ACCELERATION</drive_flags> </linear_x> <linear_y> <stiffness>0</stiffness> <damping>0.005</damping> <force_limit>INF</force_limit> <drive_flags>ACCELERATION</drive_flags> </linear_y> <linear_z> <stiffness>0</stiffness> <damping>0.005</damping> <force_limit>INF</force_limit> <drive_flags>ACCELERATION</drive_flags> </linear_z> <swing> <stiffness>0</stiffness> <damping>5.23599e-5</damping> <force_limit>INF</force_limit> <drive_flags>ACCELERATION</drive_flags> </swing> <twist> <stiffness>0</stiffness> <damping>5.23599e-5</damping> <force_limit>INF</force_limit> <drive_flags>ACCELERATION</drive_flags> </twist> <slerp> <stiffness>0</stiffness> <damping>5.23599e-5</damping> <force_limit>INF</force_limit> </slerp> <translate>0 1 2</translate> <rotate>0 1 0 45</rotate> <linear_velocity>0 0 0</linear_velocity> <angular_velocity>0 0 0</angular_velocity> </drive> <projection_linear_tolerance>1e10</projection_linear_tolerance> <projection_angular_tolerance>180</projection_angular_tolerance> </px_d6joint> </technique> </extra> </rigid_constraint>