I search for solutions in this order: Past Code, Unreal Source, Wiki, BUF, groups.yahoo, google, screaming at monitor. – RegularX
UE3:AnimNode_MultiBlendPerBone (UDK)
Object >> AnimObject >> AnimNode >> AnimNodeBlendBase >> AnimNode_MultiBlendPerBone |
Contents
- Package:
- Engine
This is an auto-generated page and may need human attention. Please remove the {{autogenerated}} tag if the page seems reasonably complete or replace it with the {{expand}} tag if the page is not yet complete. |
Properties[edit]
Property group 'AnimNode_MultiBlendPerBone'[edit]
MaskList[edit]
Type: array<PerBoneMaskInfo>
Modifiers: editfixedsize, editinline
List of Masks. Matches size of Children array - 1
RotationBlendType[edit]
Type: EBlendType
How rotation should be blended
Internal variables[edit]
PawnOwner[edit]
Type: Pawn
Modifiers: const, transient
Internal cached pointer to Pawn Owner
Default values[edit]
Property | Value | ||||||
---|---|---|---|---|---|---|---|
bSkipTickWhenZeroWeight | True | ||||||
CategoryDesc | "Filter" | ||||||
Children[0] |
|
Enums[edit]
EBlendType[edit]
Describes how a blend should be performed.
- EBT_ParentBoneSpace
- EBT_MeshSpace
EWeightCheck[edit]
Enum specifying how the weight should be checked
- EWC_AnimNodeSlotNotPlaying
- If AnimNodeSlot is not playing an animation, pass through
- EWC_ChildIndexFullWeight
- Weight must be >= 1.f - ZERO_ANIMWEIGHT_THRESH
- EWC_ChildIndexNotFullWeight
- Weight must be < 1.f - ZERO_ANIMWEIGHT_THRESH
- EWC_ChildIndexRelevant
- Weight must be > ZERO_ANIMWEIGHT_THRESH
- EWC_ChildIndexNotRelevant
- Weight must be <= ZERO_ANIMWEIGHT_THRESH
Structs[edit]
BranchInfo[edit]
Modifiers: native
- name BoneName
- Name of bone branch is starting from
- float PerBoneWeightIncrease
- Used to set up smooth blending
Default values:
Property | Value |
---|---|
PerBoneWeightIncrease | 1.0 |
PerBoneMaskInfo[edit]
Modifiers: native
Per bone masking definition
- array<BranchInfo> BranchList
- float DesiredWeight
- Desired weight for this Mask
- float BlendTimeToGo
- array<WeightRule> WeightRuleList
- Rules for turning off Mask.
This system allows to turn off a mask based on a set of rules. Most of the time BlendPerBone is associated with a AnimNodeSlot to play cutsom animations. So with this system, it's possible to make the BlendPerBone a pass through node when no custom animation is played on the AnimNodeSlot. Hence optimizing significantly the tree.
Example: - NodeName = Name of AnimNodeSlot - ChildIndex = 0 (source of AnimNodeSlot, when no custom animation is playing) - WeightCheck = EWC_ChildIndexFullWeight So this reads, if the Source children of the AnimNodeSlot is full weight (ie no custom animation is playing), then turn off this mask and make this BlendPerBone a pass through node.
Note: When setting up multiple rules, ALL of them must be true in order to turn off the mask. if one fails, then the mask will NOT be disabled.
- bool bWeightBasedOnNodeRules
- bool bDisableForNonLocalHumanPlayers
- If the owner is not a local human player, then ignore this branch.
(ie AI, other players in network...)
- bool bPendingBlend
- Set when there is a blend pending, and it's being delayed by CanBlendTo()/CanBlendOutFrom()
- array<float> PerBoneWeights
- Weight scaling for each bone of the skeleton. Must be same size as RefSkeleton of SkeletalMesh. If all 0.0, no animation can ever be drawn from Child2.
- array<byte> TransformReqBone
- Bones required to be transformed to mesh space.
When doing a MeshSpace blending, this array defines which bones need to be blended that way as an optimization. As it is expensive to convert from Parent Bone Space -> Mesh Space and back. So this ensures that the conversion is only performed on the critical bones. These are the bones which have a different mask weight than their parents (so they will be blended) and their parents (needed to build the mesh space skeleton, as we are converting from PARENT bone space. The other bones can be done with the faster parent bone space blend.
- int TransformReqBoneIndex
- Index to navigate above array
WeightNodeRule[edit]
Modifiers: native
Rule put on a node.
- name NodeName
- Name of node
- AnimNodeBlendBase CachedNode
- Reference to node
- AnimNodeSlot CachedSlotNode
- Reference to cached slot node
- EWeightCheck WeightCheck
- How the weight should be checked.
- int ChildIndex
- Child index of node to check weight for
Default values:
Property | Value |
---|---|
WeightCheck | EWC_AnimNodeSlotNotPlaying |
WeightRule[edit]
Modifiers: native
Definition of a mask rule.
- WeightNodeRule FirstNode
- WeightNodeRule SecondNode
Native functions[edit]
SetMaskWeight[edit]
Control the weight of a given Mask.