Editing Arcane University:Nifskope Hinge Constraints

Jump to: navigation, search

Warning: You are not logged in. Your IP address will be publicly visible if you make any edits. If you log in or create an account, your edits will be attributed to your username, along with other benefits.

The edit can be undone. Please check the comparison below to verify that this is what you want to do, and then save the changes below to finish undoing the edit.
Latest revision Your text
Line 39: Line 39:
 
In the screenshot above, the coordinate system is rotated relatively to the main model’s coordinate system. This is due to the accumulated Translations and Rotations of all the parent NiNoded indicated in the nif architecture.
 
In the screenshot above, the coordinate system is rotated relatively to the main model’s coordinate system. This is due to the accumulated Translations and Rotations of all the parent NiNoded indicated in the nif architecture.
  
The axis of rotation for the constraint can be set in '''Axle A'''. The X Y Z W coordinates are a common way of defining vectors in Nif format: X, Y and Z should form a unit vector (i.e. length of 1) and "W" is the "weight", i.e. the length of the defined vector. For the purpose of a simple axis, the weight does not really matter, so it can be set to 1.
+
The axis of rotation for the constraint can be set in '''Axis A'''. The X Y Z W coordinates are a common way of defining vectors in Nif format: X, Y and Z should form a unit vector (i.e. length of 1) and "W" is the "weight", i.e. the length of the defined vector. For the purpose of a simple axis, the weight does not really matter, so it can be set to 1.
  
Then with the same considerations as above, fill in the '''Perp Axle in A1''', '''Perp Axle in A2''', and '''Pivot A''' properties.
+
Then with the same considerations as above, fill in the '''Perp Axis in A1''', '''Perp Axis in A2''', and '''Pivot A''' properties.
* '''Perp Axle in A1''' should be orthogonal to Axis A, and will define the angle 0.
+
* '''Perp Axis in A1''' should be orthogonal to Axis A, and will define the angle 0.
* '''Perp Axle in A2''' is simply the cross product of Axle A and Perp Axle in A1. This is likely put into the model, rather than calculated, so that the engine does not have to compute it each time.
+
* '''Perp Axis in A2''' is simply the dot product of Axis A and Perp Axis in A1. This is likely put into the model, rather than calculated, so that the engine does not have to compute it each time.
 
* '''Pivot A''' is the coordinates of the pivot point. Here, W needs to be ignored, and only X, Y and Z need to be set.
 
* '''Pivot A''' is the coordinates of the pivot point. Here, W needs to be ignored, and only X, Y and Z need to be set.
  
Then, the same will need to be done for '''Axle B''' properties in semi-automated ways. These are the same as their Axle A counterparts except '''expressed in the coordinate system of the second entity'''. On your hinge constraint, right click, then Havok, then A -> B will translate the values of Axle A, Pivot A etc in B's coordinate system.
+
Then, the same will need to be done for '''Axis B''' properties in semi-automated ways. These are the same as their Axis A counterparts except '''expressed in the coordinate system of the second entity'''.
This works fine for Axle B and Perp Axle in B1 and B2. Note: In NifSkope 2.0 Dev7 (or before) the A -> B spell gives incorrect result for Pivot B: the result given is 10 times too big. To correct it, divide the Pivot B values by 10. This issue is fixed in dev8 or later.
 
  
 
Finally, set '''Min Angle''' and '''Max Angle''' to limit the range of the constraint (in radians, not degrees), and the '''Max Friction''', which will define how strong the constraint will slow/resist the movement.  
 
Finally, set '''Min Angle''' and '''Max Angle''' to limit the range of the constraint (in radians, not degrees), and the '''Max Friction''', which will define how strong the constraint will slow/resist the movement.  
Line 57: Line 56:
 
If your bhkRigidBodies and the rest of your Nif architecture is properly setup, your constraint should now work in-game.
 
If your bhkRigidBodies and the rest of your Nif architecture is properly setup, your constraint should now work in-game.
  
As further reference, check https://wiki.beyondskyrim.org/wiki/Arcane_University:Nif_Implementation.
+
[[Category:Arcane University-Animation| ]]
 
 
==specific topics tutorials==
 
 
 
===volume physics===
 
 
 
* Nif data formate and its structure: https://wiki.beyondskyrim.org/wiki/Arcane_University:NIF_Data_Format
 
* making a simple mesh rotation animation with Nifskope https://www.youtube.com/watch?v=YmGVknCC_a8
 
* adjusting size, scale and position of nitrishapes in nifskope: https://www.youtube.com/watch?v=C9rlBDrfSP8
 
* Animate Static Objects: https://www.youtube.com/watch?v=1lkrX3HYSDc
 
* Animate Static Objects via NiTransformController: https://www.youtube.com/watch?v=pYcAA09yygI
 
* copy animations to custom nif: https://www.youtube.com/watch?v=SodgAvvEjwQ
 
* Shader implementation (Fire on a hut): https://www.youtube.com/watch?v=nGO0gwFwnLs
 
 
 
===surface rendering===
 
 
 
* DDS texture formate https://wiki.beyondskyrim.org/wiki/Arcane_University:DDS_Data_Format
 
* editing the UV map https://www.youtube.com/watch?v=1u51yDEGzmQ
 
* making a simple rotation animation with a texture via UV map in Nifskope https://www.youtube.com/watch?v=CBlaY5keZRg
 
* placing textures on a nitrishape via nifskope including UV map adjustments: https://www.youtube.com/watch?v=kbnE5MZhdOE
 
 
 
[[Category:Arcane University-Animation| ]][[Category:Arcane University-Implementation| ]]
 

Please note that all contributions to Beyond Skyrim are considered to be released under the Creative Commons Attribution-ShareAlike (see Beyond Skyrim Wiki:Copyrights for details). If you do not want your writing to be edited mercilessly and redistributed at will, then do not submit it here.
You are also promising us that you wrote this yourself, or copied it from a public domain or similar free resource. Do not submit copyrighted work without permission!

To edit this page, please answer the question that appears below (more info):

Cancel | Editing help (opens in new window)

Template used on this page: