2017-10-20 02:00:49 +00:00
|
|
|
Class VSFPZedHands extends Actor
|
|
|
|
transient;
|
|
|
|
|
|
|
|
var SkeletalMeshComponent Mesh;
|
|
|
|
var AnimNodeSlot HandsAnimNode,BodyNode;
|
|
|
|
var name IdleAnimName;
|
|
|
|
|
2020-11-28 20:04:55 +00:00
|
|
|
simulated function InitHands(SkeletalMeshComponent C)
|
2017-10-20 02:00:49 +00:00
|
|
|
{
|
|
|
|
Mesh.SetSkeletalMesh(C.SkeletalMesh);
|
|
|
|
Mesh.AnimSets = C.AnimSets;
|
|
|
|
HandsAnimNode = AnimNodeSlot(Mesh.FindAnimNode('ArmsSlot'));
|
|
|
|
BodyNode = AnimNodeSlot(Mesh.FindAnimNode('BodySlot'));
|
|
|
|
}
|
2020-11-28 20:04:55 +00:00
|
|
|
simulated final function SetIdleAnim(name N)
|
2017-10-20 02:00:49 +00:00
|
|
|
{
|
|
|
|
IdleAnimName = N;
|
|
|
|
Timer();
|
|
|
|
}
|
|
|
|
simulated function Timer()
|
|
|
|
{
|
|
|
|
HandsAnimNode.PlayCustomAnim(IdleAnimName,1.f,0.15,,true);
|
|
|
|
}
|
2020-11-28 20:04:55 +00:00
|
|
|
simulated final function PlayHandsAnim(name N, optional float Rate=1.f)
|
2017-10-20 02:00:49 +00:00
|
|
|
{
|
|
|
|
SetTimer(HandsAnimNode.PlayCustomAnim(N,Rate,0.05,,,true),false);
|
|
|
|
}
|
|
|
|
|
|
|
|
defaultproperties
|
|
|
|
{
|
|
|
|
Begin Object Class=AnimTree Name=FPZEDAnimTree
|
|
|
|
Begin Object Class=SkelControlSingleBone Name=ArmStretcher
|
|
|
|
bApplyTranslation=True
|
|
|
|
bAddTranslation=True
|
|
|
|
BoneTranslation=(X=50.000000,Y=0.000000,Z=0.000000)
|
|
|
|
BoneTranslationSpace=BCS_ActorSpace
|
|
|
|
End Object
|
|
|
|
Begin Object Class=AnimNodeSlot Name=ArmSlotter
|
|
|
|
TickArrayIndex=2
|
|
|
|
NodeName="ArmsSlot"
|
|
|
|
End Object
|
|
|
|
Begin Object Class=AnimNodeBlendPerBone Name=AnimBoneBlender
|
|
|
|
BranchStartBoneName(0)="RightArm"
|
|
|
|
BranchStartBoneName(1)="LeftArm"
|
|
|
|
Child2Weight=1.000000
|
|
|
|
Child2WeightTarget=1.000000
|
|
|
|
Children(1)=(Anim=AnimNodeSlot'ArmSlotter')
|
|
|
|
TickArrayIndex=1
|
|
|
|
NodeTotalWeight=1.000000
|
|
|
|
End Object
|
|
|
|
SkelControlLists(0)=(BoneName="RightArm",ControlHead=SkelControlSingleBone'ArmStretcher')
|
|
|
|
SkelControlLists(1)=(BoneName="LeftArm",ControlHead=SkelControlSingleBone'ArmStretcher')
|
|
|
|
AnimTickArray(0)=AnimTree'FPZEDAnimTree'
|
|
|
|
AnimTickArray(1)=AnimNodeBlendPerBone'AnimBoneBlender'
|
|
|
|
AnimTickArray(2)=AnimNodeSlot'ArmSlotter'
|
|
|
|
Children(0)=(Anim=AnimNodeBlendPerBone'AnimBoneBlender')
|
|
|
|
End Object
|
|
|
|
|
|
|
|
Begin Object Class=SkeletalMeshComponent Name=FPHandSkeletalMesh
|
|
|
|
MinDistFactorForKinematicUpdate=0.200000
|
|
|
|
bSkipAllUpdateWhenPhysicsAsleep=True
|
|
|
|
bIgnoreControllersWhenNotRendered=True
|
|
|
|
bHasPhysicsAssetInstance=True
|
|
|
|
bUpdateKinematicBonesFromAnimation=False
|
|
|
|
bPerBoneMotionBlur=True
|
|
|
|
bOverrideAttachmentOwnerVisibility=True
|
|
|
|
bChartDistanceFactor=True
|
|
|
|
RBChannel=RBCC_Pawn
|
|
|
|
RBDominanceGroup=20
|
|
|
|
bAcceptsDynamicDecals=True
|
|
|
|
bUseOnePassLightingOnTranslucency=True
|
|
|
|
CollideActors=false
|
|
|
|
BlockZeroExtent=false
|
|
|
|
BlockRigidBody=false
|
|
|
|
Translation=(X=0.000000,Y=0.000000,Z=-86.000000)
|
|
|
|
ScriptRigidBodyCollisionThreshold=200.000000
|
|
|
|
PerObjectShadowCullDistance=4000.000000
|
|
|
|
bAllowPerObjectShadows=True
|
|
|
|
bAllowPerObjectShadowBatching=True
|
|
|
|
AnimTreeTemplate=AnimTree'FPZEDAnimTree'
|
|
|
|
CastShadow=false
|
|
|
|
bCastDynamicShadow=false
|
|
|
|
bCastStaticShadow=false
|
|
|
|
End Object
|
|
|
|
Mesh=FPHandSkeletalMesh
|
|
|
|
Components.Add(FPHandSkeletalMesh)
|
|
|
|
}
|