bhkRigidBody and bhkRigidBodyT are NIF blocks that control how collision and physics act in various different ways.
Settings
- Layer: The Collision layer used which can have various different effects.
- Flags and Part Number: Used for actors, should be 0 for most meshes.
Body Part |
Part Number
|
Other
|
0
|
Head
|
1
|
Body
|
2
|
Spine1
|
3
|
Spine2
|
4
|
LUpperArm
|
5
|
LForeArm
|
6
|
LHand
|
7
|
LThigh
|
8
|
LCalf
|
9
|
LFoot
|
10
|
RUpperArm
|
11
|
RForeArm
|
12
|
RHand
|
13
|
RThigh
|
14
|
RCalf
|
15
|
RFoot
|
16
|
Tail
|
17
|
Shield
|
18
|
Quiver
|
19
|
Weapon
|
20
|
PonyTail
|
21
|
Wing
|
22
|
Pack
|
23
|
Chain
|
24
|
AddonHead
|
25
|
AddonChest
|
26
|
AddonArm
|
27
|
AddonLeg
|
28
|
Null
|
29 - 31
|
Type |
Description
|
BROAD_PHASE_INVALID
|
|
BROAD_PHASE_ENTITY
|
Used by most NIFs.
|
BROAD_PHASE_PHANTOM
|
|
BROAD_PHASE_BORDER
|
|
Type |
Description
|
RESPONSE_INVALID
|
|
RESPONSE_SIMPLE_CONTACT
|
Used by most NIFs.
|
RESPONSE_REPORTING
|
|
RESPONSE_NONE
|
|
- Process Contact Callback Delay: (65535 for most NIFs)
- Havok Filter Copy:
- Layer: Should usually be set to the same layer as the other.
- Flags and Part Number: Used for actors, should usually be set to same setting as the other.
- Translation: XYZ translation of the collision body, value is only used on RigidBodyT blocks.
- Rotation:
- Linear Velocity:
- Angular Velocity:
- Inertia Tensor: Multiple values that determine how hard it is for the object to turn on a given axis. Used for physics. All values should be 0s on statics.
- Center: XYZ values that set the center of mass. Used for physics.
- Mass: How heavy the object is, the higher the value the heavier the object is. A value of 0 means the object has infinite mass which is normally used for statics. A value over 100 will prevent the player from Havok grabbing the object which is defined by the Grab Max Weight Settings.
- Linear Damping: (0.100000 on most NIFs)
- Angular Damping: (0.050000 on most NIFs)
- Friction: (0.400000 on most NIFs)
- Restitution: (0.400000 on most NIFs)
- Max Linear Velocity: (1068.000000 on most NIFs)
- Max Angular Velocity: (31.570000 on most NIFs)
- Penetration Depth: (0.150000 on most NIFs) Serves as general guideline for havok for how much is allows penetration on the object. Lower values decrease clipping and decrease performance when the object is moving, higher values increase performance but allow more penetration to occur. The Motion Quality type increases the effect this setting has. This setting also works on statics, useful for preventing the player or other actors from getting stuck in an object.
- Motion System: The motion system used for Havok physics.
Type |
Description
|
MO_SYS_INVALID
|
Behaves as a immovable static, shouldn't be used.
|
MO_SYS_DYNAMIC
|
|
MO_SYS_SPHERE_INERTIA
|
Used for most spherical physics objects.
|
MO_SYS_SPHERE_STABILIZED
|
|
MO_SYS_BOX_INERTIA
|
Used for the vast majority of physics objects of most collision shapes.
|
MO_SYS_BOX_STABILIZED
|
|
MO_SYS_KEYFRAMED
|
Used for most actors and animated statics like doors.
|
MO_SYS_FIXED
|
Object will not move. Should be used for immovable objects like statics.
|
MO_SYS_THIN_BOX
|
Increases physics stability for objects that have thin collision at the cost of the object being unable to receive impact force from projectiles.
|
MO_SYS_CHARACTER
|
|
- Deactivator Type: Controls whether or not the physics object gets put into an inactive "rest" state after some time on the ground.
Type |
Description
|
DEACTIVATOR_INVALID
|
|
DEACTIVATOR_NEVER
|
Used by statics or physics objects you want to never stop moving.
|
DEACTIVATOR_SPATIAL
|
Used by most physics objects.
|
- Solver Deactivation: Controls how aggressively the engine will stop an object from moving while on the ground. The higher the setting the quicker the object will stop moving. More aggressive values can stop an object that is clipping into the ground or another object from moving.
Type |
Description
|
SOLVER_DEACTIVATION_INVALID
|
|
SOLVER_DEACTIVATION_OFF
|
Object won't stop moving until either friction or damping causes it to lose all speed. Also the setting commonly set on statics.
|
SOLVER_DEACTIVATION_LOW
|
Used by most physics objects.
|
SOLVER_DEACTIVATION_MEDIUM
|
|
SOLVER_DEACTIVATION_HIGH
|
|
SOLVER_DEACTIVATION_MAX
|
|
Type |
Description
|
MO_QUAL_INVALID
|
|
MO_QUAL_FIXED
|
Should be used for immovable objects.
|
MO_QUAL_KEYFRAMED
|
Used for most actors and animated statics like doors.
|
MO_QUAL_DEBRIS
|
Used for most physics objects.
|
MO_QUAL_MOVING
|
Better at keeping the object from clipping into geometry. Increased Penetration Depth effect.
|
MO_QUAL_CRITICAL
|
Aggressively tries to prevent the object from clipping or leaving the world. Maximum Penetration Depth effect.
|
MO_QUAL_BULLET
|
Use this for very fast objects.
|
MO_QUAL_USER
|
|
MO_QUAL_CHARACTER
|
|
MO_QUAL_KEYFRAMED_REPORT
|
|
- Body Flags: Set to 1 if you want the collision to be affected by wind from weather.
See Also