Once I get that upgrade to 36-hour days, I will tackle that. – Mychaeel

UE3:SkeletalMeshComponent (UT3)

From Unreal Wiki, The Unreal Engine Documentation Site
Jump to: navigation, search
UT3 Object >> Component >> ActorComponent >> PrimitiveComponent >> MeshComponent >> SkeletalMeshComponent
Package: 
Engine
Direct subclasses:
MaterialEditorSkeletalMeshComponent, ASVSkelComponent, AnimTreeEdSkelComponent, FaceFXStudioSkelComponent, PhATSkeletalMeshComponent, UTGibSkeletalMeshComponent, UTSkeletalMeshComponent
This class in other games:
UDK

Copyright 1998-2007 Epic Games, Inc. All Rights Reserved.

Properties

Property group 'Cloth'

bAttachClothVertsToBaseBody

Type: bool

If true, fixed verts of the cloth are attached in the physics to the physics body that this components actor is attached to.

bAutoFreezeClothWhenNotRendered

Type: bool

If true, cloth will automatically have bClothFrozen set when it is not rendered, and have it turned off when it is seen.

bClothBaseVelClamp

Type: bool

It true, clamp velocity of cloth particles to be within ClothOwnerVelClampRange of Base velocity.

bClothFrozen

Type: bool

Modifiers: const

If true, cloth is 'frozen' and no simulation is taking place for it, though it will keep its shape.

bDisableClothCollision

Type: bool

Modifiers: const

Turns off all cloth collision so not checks are done (improves performance).

bEnableClothSimulation

Type: bool

Modifiers: const

Whether cloth simulation should currently be used on this SkeletalMeshComponent.

See: SetEnableClothSimulation

ClothAttachmentTearFactor

Type: float

Modifiers: const

The cloth tear factor for this SkeletalMeshComponent, negative values take the tear factor from the SkeletalMesh. Note: UpdateClothParams() should be called after modification so that the changes are reflected in the simulation.

Default value: -1.0

ClothBaseVelClampRange

Type: Object.Vector

Amount of variance from base's velocity the cloth is allowed.

ClothBlendWeight

Type: float

How much to blend in results from cloth simulation with results from regular skinning.

Default value: 1.0

ClothExternalForce

Type: Object.Vector

Modifiers: const

Constant force applied to all vertices in the cloth.

ClothForceScale

Type: float

Modifiers: const

How much force to apply to cloth, in relation to the force(from a force field) applied to rigid bodies(zero applies no force to cloth, 1 applies the same)

ClothRBChannel

Type: PrimitiveComponent.ERBCollisionChannel

Modifiers: const

Enum indicating what type of object this cloth should be considered for rigid body collision.

Default value: RBCC_Cloth

ClothRBCollideWithChannels

Type: PrimitiveComponent.RBCollisionChannelContainer

Modifiers: const

Types of objects that this cloth will collide with.

ClothWind

Type: Object.Vector

'Wind' force applied to cloth. Force on each vertex is based on the dot product between the wind vector and the surface normal.

Property group 'SkeletalMeshComponent'

Animations

Type: AnimNode

Modifiers: const, editinline, export

This is the unique instance of the AnimTree used by this SkeletalMeshComponent. THIS SHOULD NEVER POINT TO AN ANIMTREE IN A CONTENT PACKAGE.

AnimSets

Type: array<AnimSet>

The set of AnimSets that will be looked in to find a particular sequence, specified by name in an AnimNodeSequence. Array is search from last to first element, so you can replace a particular sequence but putting a set containing the new version later in the array. You will need to call SetAnim again on nodes that may be affected by any changes you make to this array.

AnimTreeTemplate

Type: AnimTree

Modifiers: const

This should point to the AnimTree in a content package. BeginPlay on this SkeletalMeshComponent will instance (copy) the tree and assign the instance to the Animations pointer.

bDisableFaceFXMaterialInstanceCreation

Type: bool

If true, FaceFX will not automatically create material instances.

bEnableFullAnimWeightBodies

Type: bool

Enables blending in of physics bodies with the bAlwaysFullAnimWeight flag set.

bForceDiscardRootMotion

Type: bool

force root motion to be discarded, no matter what the AnimNodeSequence(s) are set to do

bForceUpdateAttachmentsInTick

Type: bool

If true, attachments will be updated twice a frame - once in Tick and again when UpdateTransform is called. This can resolve some 'frame behind' issues if an attachment need to be in the correct location for it's Tick, but at a cost.

bHasPhysicsAssetInstance

Type: bool

Modifiers: const

Indicates whether this SkeletalMeshComponent should have a physics engine representation of its state.

See: SetHasPhysicsAssetInstance

bPerBoneVolumeEffects

Type: bool

If true, when this skeletal mesh overlaps a physics volume, each body of it will be tested against the volume, so only limbs actually in the volume will be affected. Useful when gibbing bodies.

bSyncActorLocationToRootRigidBody

Type: bool

If true, will move the Actors Location to match the root rigid body location when in PHYS_RigidBody.

Default value: True

bUpdateJointsFromAnimation

Type: bool

If we should pass joint position to joints each frame, so that they can be used by motorized joints to drive the ragdoll based on the animation.

bUpdateKinematicBonesFromAnimation

Type: bool

If we are running physics, should we update bFixed bones based on the animation bone positions.

Default value: True

FaceFXBlendMode

Type: EFaceFXBlendMode

How FaceFX transforms should be blended with skeletal mesh

Default value: FXBM_Additive

ForcedLodModel

Type: int

if 0, auto-select LOD level. if >0, force to (ForcedLodModel-1)

GlobalAnimRateScale

Type: float

Used to scale speed of all animations on this skeletal mesh.

Default value: 1.0

MorphSets

Type: array<MorphTargetSet>

Array of MorphTargetSets that will be looked in to find a particular MorphTarget, specified by name. It is searched in the same way as the AnimSets array above.

ParentAnimComponent

Type: SkeletalMeshComponent

Modifiers: const

If set, this SkeletalMeshComponent will not use its Animations pointer to do its own animation blending, but will use the SpaceBases array in the ParentAnimComponent. This is used when constructing a character using multiple skeletal meshes sharing the same skeleton within the same Actor.

PhysicsAsset

Type: PhysicsAsset

Modifiers: const

Physics and collision information used for this SkeletalMesh, set up in PhAT. This is used for per-bone hit detection, accurate bounding box calculation and ragdoll physics for example.

PhysicsWeight

Type: float

Influence of rigid body physics on the mesh's pose (0.0 == use only animation, 1.0 == use only physics)

RootMotionMode

Type: ERootMotionMode


Default value: RMM_Ignore

RootMotionRotationMode

Type: ERootMotionRotationMode


SkeletalMesh

Type: SkeletalMesh

The skeletal mesh used by this component.

WireframeColor

Type: Object.Color


Default value:

Member Value
A 255
B 28
G 221
R 221

Internal variables

See SkeletalMeshComponent internal variables.

Default values

Property Value
TickGroup TG_PreAsyncWork

Enums

EFaceFXBlendMode

FXBM_Overwrite 
Face FX overwrites relevant bones on skeletal mesh.

Default.

FXBM_Additive 
Face FX transforms are relative to ref skeleton and added

in parent bone space.

EFaceFXRegOp

The valid FaceFX register operations.

FXRO_Add 
Add the register value with the Face Graph node value.
FXRO_Multiply 
Multiply the register value with the Face Graph node value.
FXRO_Replace 
Replace the Face Graph node value with the register value.

ERootMotionMode

RMM_Translate 
move actor with root motion
RMM_Velocity 
extract magnitude from root motion, and limit max Actor velocity with it.
RMM_Ignore 
do nothing
RMM_Accel 
extract velocity from root motion and use it to derive acceleration of the Actor

ERootMotionRotationMode

Root Motion Rotation mode

RMRM_Ignore 
Ignore rotation delta passed from animation.
RMRM_RotateActor 
Apply rotation delta to actor

Structs

ActiveMorph

Struct used to indicate one active morph target that should be applied to this SkeletalMesh when rendered.

MorphTarget Target 
The morph target that we want to apply.
float Weight 
Strength of the morph target, between 0.0 and 1.0

Attachment

ActorComponent Component 
name BoneName 
Object.Vector RelativeLocation 
Object.Rotator RelativeRotation 
Object.Vector RelativeScale 

Default values:

Property Value
RelativeScale
Member Value
X 1.0
Y 1.0
Z 1.0

Functions

Iterator functions

AllAnimNodes

native final iterator function AllAnimNodes (class<AnimNodeBaseClass, out AnimNode Node)

returns all AnimNodes in the animation tree that are the specfied class or a subclass

Parameters:

  • BaseClass - base class to return
  • Node - out) the returned AnimNode for each iteration

AttachedComponents

native final iterator function AttachedComponents (class<ActorComponentBaseClass, out ActorComponent OutComponent)

returns all attached components that are of the specified class or a subclass

Parameters:

  • BaseClass - the base class of ActorComponent to return
  • out - OutComponent the returned ActorComponent for each iteration

Native functions

See SkeletalMeshComponent native functions.

Other instance functions

GetAnimLength

final function float GetAnimLength (name AnimSeqName)

Returns the duration (in seconds) for a named AnimSequence. Returns 0.f if no animation.

GetAnimRateByDuration

final function float GetAnimRateByDuration (name AnimSeqName, float Duration)

Finds play Rate for a named AnimSequence to match a specified Duration in seconds.

Parameters:

  • AnimSeqName - Name of AnimSequence to look for.
  • Duration - in seconds to match

Returns:

play rate of animation, so it plays in <duration> seconds.

PlayAnim

function PlayAnim (name AnimName, optional float Duration, optional bool bLoop, optional bool bRestartIfAlreadyPlaying)

simple generic case animation player requires that the one and only animation node in the AnimTree is an AnimNodeSequence

Parameters:

  • AnimName - name of the animation to play
  • Duration - optional) override duration for the animation
  • bLoop - optional) whether the animation should loop
  • bRestartIfAlreadyPlaying - whether or not to restart the animation if the specified anim is already playing

StopAnim

function StopAnim ()

simple generic case animation stopper requires that the one and only animation node in the AnimTree is an AnimNodeSequence