Difference between revisions of "Arcane University:Nifskope Prismatic Constraints"

The Beyond Skyrim Wiki — Hosted by UESP
Jump to: navigation, search
Line 1: Line 1:
{{Trail|3D Art}}
+
{{Underconstruction|2025/01/12}}
  
 
Prismatic constraints allow a rigidbody to slide along a fixed line between two points. They are sometimes called rail constraints in other engines as they are alike a train moving along a rail. The prismatic constraints used by the Creation Engine optionally allow the sliding rigidbody to rotate about as it slides, though it is more common to use a fixed rotation.
 
Prismatic constraints allow a rigidbody to slide along a fixed line between two points. They are sometimes called rail constraints in other engines as they are alike a train moving along a rail. The prismatic constraints used by the Creation Engine optionally allow the sliding rigidbody to rotate about as it slides, though it is more common to use a fixed rotation.
Line 5: Line 5:
  
 
https://i.imgur.com/5zrFQB0.gif (TODO get this uploaded. I don't have permissions I think)
 
https://i.imgur.com/5zrFQB0.gif (TODO get this uploaded. I don't have permissions I think)
 +
 +
== Axis Configuration ==
 +
 +
For A & B each, a prismatic constraint has three properties that control the axis that the target rigidbody moves along:
 +
  
 
[[Category:Arcane University-Animation| ]][[Category:Arcane University-Implementation| ]]
 
[[Category:Arcane University-Animation| ]][[Category:Arcane University-Implementation| ]]
 +
* '''Sliding:''' Controls the axis which the rigidbody slides along.
 +
* '''Rotation:''' Lock or constrain the rotation axes allowed for the rigidbody
 +
* '''Plane:''' Reference plane for rotation
 +
 +
Bethesda rarely (if ever) uses prismatic constraints in their games, so third-party tooling support is similarly minimal. The '''Havok > A -> B''' option usually available to constraints in NifSkope, for instance, does not work, and the B properties must be set manually.
 +
 +
The direction of the prismatic constraint can be inverted by multiplying all properties by -1. This is mostly useful for editor intuition (e.g. make max distance apply to the forward direction instead of backwards) since the constraint position cannot be read in-game without the use of the script extender.
 +
 +
{| class="wikitable"
 +
|+ Common Configurations
 +
|-
 +
! Property !! X Axis Slide !! Y Axis Slide !! Z Axis Slide
 +
|-
 +
| Sliding A & B || (1, 0, 0) || (0, 1, 0) || (0, 0, 1)
 +
|-
 +
| Rotation A & B || (0, 1, 0) || (0, 0, 1) || (1, 0, 0)
 +
|-
 +
| Plane A & B|| (0, 0, 1) || (1, 0, 0) || (0, 1, 0)
 +
|}

Revision as of 02:30, 13 January 2025

Template:Underconstruction

Prismatic constraints allow a rigidbody to slide along a fixed line between two points. They are sometimes called rail constraints in other engines as they are alike a train moving along a rail. The prismatic constraints used by the Creation Engine optionally allow the sliding rigidbody to rotate about as it slides, though it is more common to use a fixed rotation.


https://i.imgur.com/5zrFQB0.gif (TODO get this uploaded. I don't have permissions I think)

Axis Configuration

For A & B each, a prismatic constraint has three properties that control the axis that the target rigidbody moves along:

  • Sliding: Controls the axis which the rigidbody slides along.
  • Rotation: Lock or constrain the rotation axes allowed for the rigidbody
  • Plane: Reference plane for rotation

Bethesda rarely (if ever) uses prismatic constraints in their games, so third-party tooling support is similarly minimal. The Havok > A -> B option usually available to constraints in NifSkope, for instance, does not work, and the B properties must be set manually.

The direction of the prismatic constraint can be inverted by multiplying all properties by -1. This is mostly useful for editor intuition (e.g. make max distance apply to the forward direction instead of backwards) since the constraint position cannot be read in-game without the use of the script extender.

Common Configurations
Property X Axis Slide Y Axis Slide Z Axis Slide
Sliding A & B (1, 0, 0) (0, 1, 0) (0, 0, 1)
Rotation A & B (0, 1, 0) (0, 0, 1) (1, 0, 0)
Plane A & B (0, 0, 1) (1, 0, 0) (0, 1, 0)