I love the smell of UnrealEd crashing in the morning. – tarquin

UE3:RB_BodyInstance (UDK)

From Unreal Wiki, The Unreal Engine Documentation Site
Jump to: navigation, search
UDK Object >> RB_BodyInstance
Package: 
Engine
This class in other games:
UT3


Properties

Property group 'BoneSpring'

bDisableOnOverextension

Type: bool

If true, bone spring will automatically disable if it ever gets longer than the OverextensionThreshold.

bEnableBoneSpringAngular

Type: bool

Enable angular 'spring' between the physics body for this bone, and the world-space location of the animation bone.

bEnableBoneSpringLinear

Type: bool

Enable linear 'spring' between the physics body for this bone, and the world-space location of the animation bone.

bMakeSpringToBaseCollisionComponent

Type: bool

When using bone springs, connect them to the physics body of the Base's CollisionComponent. When using this option, SetBoneSpringTarget must be given a matrix for this bone relative to the other bone, rather than relative to the world.

bNotifyOwnerOnOverextension

Type: bool

Send notification to Owning Actor when overextended, by calling Actor::OnRigidBody

BoneAngularDamping

Type: float

Modifiers: const

Damping on angular spring to animated bone.

Default value: 0.1

BoneAngularSpring

Type: float

Modifiers: const

Strength of angular spring to animated bone.

Default value: 1.0

BoneLinearDamping

Type: float

Modifiers: const

Damping on linear spring to animated bone.

Default value: 0.1

BoneLinearSpring

Type: float

Modifiers: const

Strength of linear spring to animated bone.

Default value: 10.0

bTeleportOnOverextension

Type: bool

This will teleport the whole PhysicsAssetInstance if this spring gets too long, to reduce to error to zero. Note - having this set on more than one body in a PhysicsAssetInstance will have unpredictable results.

bUseKinActorForBoneSpring

Type: bool

When using bone springs, connect them to a kinematic body and animate that, rather than animating the attachment location on the 'world'. This adds some overhead, but tracks rapidly moving targets better.

OverextensionThreshold

Type: float

If bDisableOnOverextension is on, the bone spring will be disabled if it stretches more than this amount.

Property group 'Physics'

bEnableCollisionResponse

Type: bool

Modifiers: const

Enables physics response for this body (on by default). If FALSE, contacts are still generated and reported. Useful for "sensor" bodies.

Default value: True

bOnlyCollideWithPawns

Type: bool

Modifiers: const

This body should only collide with other bodies with their components marked bConsiderPawnForRBCollision. Useful for flappy bits you do not want to collide with the world.

bPushBody

Type: bool

Modifiers: const

Denotes body as a "push" body. Also disables collision response, by definition.

ContactReportForceThreshold

Type: float

Used for force-based collision filtering. Note: this is NOT an additional filter on top of normal pairwise filtering. It is essentially a new kind of reporting. It can be used in conjuction with pairwise reporting, however. To disable this feature, set the threshold to a negative number.

Default value: -1.0

InstanceDampingScale

Type: float

Per-instance scaling of linear/angular damping

Default value: 1.0

InstanceMassScale

Type: float

Per-instance scaling of mass

Default value: 1.0

PhysMaterialOverride

Type: PhysicalMaterial

Modifiers: const

Allows you to override the PhysicalMaterial to use for this body. Due to the way the BodyInstance pooling works, this MUST BE LAST PROPERTY OF THE CLASS.

Property group 'RB_BodyInstance'

CustomGravityFactor

Type: float

The force applied to the body to address custom gravity for the actor is multiplied CustomGravityFactor, allowing bodies to individually control how custom gravity settings affectthem

Default value: 1.0

Internal variables

bForceUnfixed

Type: bool

Modifiers: private, transient

An override to say whether this body has been forced (by gameplay code) to be unfixed or not. This allows for the existing functionality and not having to change all of the existing code for setting fixed/unfixed on body instances. Useful for chopping off limbs and having Pawn go to ragdoll and back and still be able to play animations.

bInstanceAlwaysFullAnimWeight

Type: bool

Modifiers: private, transient

If this is true that all of the "updatetransform" data should come from the physics and not the anim data. NOTE: If an animation is played on the bones and there is no actual BodyInstance (e.g. ragdolls usually have finger and those indiv finger bones do not have a body instance on them) then the animation will still play as there is no body instance which is being checked for this override.

BodyData

Type: pointer

Modifiers: native, const

Internal use. Physics-engine representation of this body.

BodyIndex

Type: int

Modifiers: const

Index of this BodyInstance within the PhysicsAssetInstance/PhysicsAsset.

BoneSpring

Type: pointer

Modifiers: native, const

Internal use. Physics-engine representation of the spring on this body.

BoneSpringKinActor

Type: pointer

Modifiers: native, const

If bUseKinActorForBoneSpring is true, this is the Physics-engine representation of the kinematic actor the spring is attached to.

LastEffectPlayedTime

Type: float

Modifiers: transient

For per-bodyinstance effects this keeps track of the last time one played. Could be used for items like gib effects.

OwnerComponent

Type: PrimitiveComponent

Modifiers: const, transient

PrimitiveComponent containing this body. Due to the way the BodyInstance pooling works, this MUST BE FIRST PROPERTY OF THE CLASS.

PreviousVelocity

Type: Object.Vector

Previous frame Velocity of this BodyInstance. Only updated if this is the root body of the CollisionComponent of an Actor in PHYS_RigidBody used for collision events since by the time the event is sent, Velocity would have been updated with the post-collision velocity

SceneIndex

Type: int

Modifiers: native, const

Physics scene index.

Velocity

Type: Object.Vector

Current linear velocity of this BodyInstance. Only updated if this is the root body of the CollisionComponent of an Actor in PHYS_RigidBody

Native functions

EnableBoneSpring

final native function EnableBoneSpring (bool bInEnableLinear, bool bInEnableAngular, const out Object.Matrix InBoneTarget)

Used to turn the angular/linear bone spring on and off. InBoneTarget is in world space, unless bMakeSpringToBaseCollisionComponent is TRUE, in which case it is relative to that body.

EnableCollisionResponse

final native function EnableCollisionResponse (bool bEnableResponse)

Enable/disable response to contacts.

GetBodyMass

final native function float GetBodyMass ()

Returns the body's mass

GetPhysicsAssetInstance

final native function PhysicsAssetInstance GetPhysicsAssetInstance ()

Returns the PhysicsAssetInstance that owns this RB_BodyInstance (if there is one)

GetUnrealWorldAngularVelocity

final native function Object.Vector GetUnrealWorldAngularVelocity ()

Get current angular velocity in world space from physics body.

GetUnrealWorldTM

final native function Object.Matrix GetUnrealWorldTM ()

Get current transform in world space from physics body.

GetUnrealWorldVelocity

final native function Object.Vector GetUnrealWorldVelocity ()

Get current velocity in world space from physics body.

GetUnrealWorldVelocityAtPoint

final native function Object.Vector GetUnrealWorldVelocityAtPoint (Object.Vector Point)

Get current velocity of a point on this physics body, in world space. Point is specified in world space.

IsFixed

final native function bool IsFixed ()

Returns TRUE if this body is fixed

IsValidBodyInstance

final native function bool IsValidBodyInstance ()

See if this body is valid.

SetBlockRigidBody

final native function SetBlockRigidBody (bool bNewBlockRigidBody)

Used to disable rigid body collisions for this body. Overrides the bNoCollision flag in the BodySetup for this body.

SetBoneSpringParams

final native function SetBoneSpringParams (float InLinearSpring, float InLinearDamping, float InAngularSpring, float InAngularDamping)

Used to set the spring stiffness and damping parameters for the bone spring.

SetBoneSpringTarget

final native function SetBoneSpringTarget (const out Object.Matrix InBoneTarget, bool bTeleport)

Used to set desired target location of this spring. Usually called by UpdateRBBonesFromSpaceBases. InBoneTarget is in world space, unless bMakeSpringToBaseCollisionComponent is TRUE, in which case it is relative to that body.

SetContactReportForceThreshold

final native function SetContactReportForceThreshold (float Threshold)

Set a new contact report force threhold. Threshold < 0 disables this feature.

SetFixed

final native function SetFixed (bool bNewFixed)

Force this body to be fixed (kinematic) or not. Overrides the BodySetup for this body.

SetPhysMaterialOverride

final native function SetPhysMaterialOverride (PhysicalMaterial NewPhysMaterial)

Set physical material override for this body

UpdateDampingProperties

final native function UpdateDampingProperties ()

Update instance's linear and angular damping

UpdateMassProperties

final native function UpdateMassProperties (RB_BodySetup Setup)

Update instance's mass properties (mass, inertia and center-of-mass offset) based on MassScale, InstanceMassScale and COMNudge.