diff --git a/nif.xml b/nif.xml index 34bb87e2cb86f38fdecba7816a7892831133f7e4..790551f1e042bfc006147940d026008003a59ac1 100644 --- a/nif.xml +++ b/nif.xml @@ -1,6 +1,6 @@ <?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE niftoolsxml> -<niftoolsxml version="0.8.2.0"> +<niftoolsxml version="0.8.3.0"> <!--These are the version numbers marked as supported by NifSkope. The num argument is the numeric representation created by storing each part of the version in a byte. For example, 4.0.0.2 is @@ -1635,14 +1635,45 @@ <add name="Material" type="HavokMaterial">The material of the subshape.</add> </compound> + <compound name="bhkPositionConstraintMotor"> + <add name="Min Force" type="float" default="-1000000.0">Minimum motor force</add> + <add name="Max Force" type="float" default="1000000.0">Maximum motor force</add> + <add name="Tau" type="float" default="0.8">Relative stiffness</add> + <add name="Damping" type="float" default="1.0">Motor damping value</add> + <add name="Proportional Recovery Velocity" type="float" default="2.0">A factor of the current error to calculate the recovery velocity</add> + <add name="Constant Recovery Velocity" type="float" default="1.0">A constant velocity which is used to recover from errors</add> + <add name="Motor Enabled" type="bool" default="0">Is Motor enabled</add> + </compound> + + <compound name="bhkVelocityConstraintMotor"> + <add name="Min Force" type="float" default="-1000000.0">Minimum motor force</add> + <add name="Max Force" type="float" default="1000000.0">Maximum motor force</add> + <add name="Tau" type="float" default="0">Relative stiffness</add> + <add name="Target Velocity" type="float" default="0">Unknown</add> + <add name="Use Velocity Target" type="bool" default="0">Unknown</add> + <add name="Motor Enabled" type="bool" default="0">Is Motor enabled</add> + </compound> + + <compound name="bhkSpringDamperConstraintMotor"> + <add name="Min Force" type="float" default="-1000000.0">Minimum motor force</add> + <add name="Max Force" type="float" default="1000000.0">Maximum motor force</add> + <add name="Spring Constant" type="float" default="0">The spring constant in N/m</add> + <add name="Spring Damping" type="float" default="0">The spring damping in Nsec/m</add> + <add name="Motor Enabled" type="bool" default="0">Is Motor enabled</add> + </compound> + + <enum name="MotorType" storage="byte"> + <option value="0" name="MOTOR_NONE" /> + <option value="1" name="MOTOR_POSITION" /> + <option value="2" name="MOTOR_VELOCITY" /> + <option value="3" name="MOTOR_SPRING" /> + </enum> + <compound name="MotorDescriptor"> - <add name="Unknown Float 1" type="float" default="-1000000.0">Unknown</add> - <add name="Unknown Float 2" type="float" default="1000000.0">Unknown</add> - <add name="Unknown Float 3" type="float" default="0.8">Unknown</add> - <add name="Unknown Float 4" type="float" default="1.0">Unknown</add> - <add name="Unknown Float 5" type="float" default="2.0">Unknown</add> - <add name="Unknown Float 6" type="float" default="1.0">Unknown</add> - <add name="Unknown Byte 1" type="byte" default="0">Unknown</add> + <add name="Type" type="MotorType" default="MOTOR_NONE" /> + <add name="Position Motor" type="bhkPositionConstraintMotor" cond="Type == 1" /> + <add name="Velocity Motor" type="bhkVelocityConstraintMotor" cond="Type == 2" /> + <add name="Spring Damper Motor" type="bhkSpringDamperConstraintMotor" cond="Type == 3" /> </compound> <compound name="RagdollDescriptor"> @@ -1680,8 +1711,7 @@ <add name="Twist Max Angle" type="float">Maximum angle the object can rotate around Twist A, relative to Plane A.</add> <add name="Max Friction" type="float">Maximum friction, typically 0 or 10. In Fallout 3, typically 100.</add> - <add name="Enable Motor" type="bool" ver1="20.2.0.7" vercond="User Version 2 > 16">Unknown</add> - <add name="Motor" type="MotorDescriptor" cond="Enable Motor" ver1="20.2.0.7" vercond="User Version 2 > 16" /> + <add name="Motor" type="MotorDescriptor" ver1="20.2.0.7" vercond="User Version 2 > 16" /> </compound> <compound name="LimitedHingeDescriptor"> @@ -1719,8 +1749,7 @@ <add name="Max Angle" type="float">Maximum rotation angle.</add> <add name="Max Friction" type="float">Maximum friction, typically either 0 or 10. In Fallout 3, typically 100.</add> - <add name="Enable Motor" type="bool" ver1="20.2.0.7" vercond="User Version 2 > 16">Unknown</add> - <add name="Motor" type="MotorDescriptor" cond="Enable Motor" ver1="20.2.0.7" vercond="User Version 2 > 16" /> + <add name="Motor" type="MotorDescriptor" ver1="20.2.0.7" vercond="User Version 2 > 16" /> </compound> <compound name="HingeDescriptor"> @@ -1776,7 +1805,7 @@ <add name="Max Distance" type="float">Describe the max distance the object is able to travel.</add> <add name="Friction" type="float" >Friction.</add> - <add name="Unknown Byte 1" type="byte" ver1="20.2.0.7" default="0">Unknown. Do not set this to anything over 0 as it will crash the game.</add> + <add name="Motor" type="MotorDescriptor" ver1="20.2.0.7" vercond="User Version 2 > 16" /> </compound> <compound name="StiffSpringDescriptor">