// Copyright 2025 https://yuewu.dev/en All Rights Reserved. #include "Locomotions/GMS_AnimState.h" #include "AnimationWarpingLibrary.h" #include "Animation/AnimSequenceBase.h" #include "Animation/AnimSequence.h" #include "Utility/GMS_Constants.h" #include UE_INLINE_GENERATED_CPP_BY_NAME(GMS_AnimState) void FGMS_AnimState_Layering::ApplyValueFromSequence(const UAnimSequence* InSequence, float ExplicitTime) { UAnimationWarpingLibrary::GetCurveValueFromAnimation(InSequence, "LayerHead", ExplicitTime, HeadBlendAmount); UAnimationWarpingLibrary::GetCurveValueFromAnimation(InSequence, "LayerHeadAdditive", ExplicitTime, HeadAdditiveBlendAmount); UAnimationWarpingLibrary::GetCurveValueFromAnimation(InSequence, "LayerHeadSlot", ExplicitTime, HeadSlotBlendAmount); UAnimationWarpingLibrary::GetCurveValueFromAnimation(InSequence, "LayerArmLeft", ExplicitTime, ArmLeftBlendAmount); UAnimationWarpingLibrary::GetCurveValueFromAnimation(InSequence, "LayerArmLeftAdditive", ExplicitTime, ArmLeftAdditiveBlendAmount); UAnimationWarpingLibrary::GetCurveValueFromAnimation(InSequence, "LayerArmLeftSlot", ExplicitTime, ArmLeftSlotBlendAmount); UAnimationWarpingLibrary::GetCurveValueFromAnimation(InSequence, "LayerArmLeftLocalSpace", ExplicitTime, ArmLeftLocalSpaceBlendAmount); ArmLeftMeshSpaceBlendAmount = 1 - ArmLeftLocalSpaceBlendAmount; UAnimationWarpingLibrary::GetCurveValueFromAnimation(InSequence, "LayerArmRight", ExplicitTime, ArmRightBlendAmount); UAnimationWarpingLibrary::GetCurveValueFromAnimation(InSequence, "LayerArmRightAdditive", ExplicitTime, ArmRightAdditiveBlendAmount); UAnimationWarpingLibrary::GetCurveValueFromAnimation(InSequence, "LayerArmRightSlot", ExplicitTime, ArmRightSlotBlendAmount); UAnimationWarpingLibrary::GetCurveValueFromAnimation(InSequence, "LayerArmRightLocalSpace", ExplicitTime, ArmRightLocalSpaceBlendAmount); ArmRightMeshSpaceBlendAmount = 1 - ArmRightLocalSpaceBlendAmount; UAnimationWarpingLibrary::GetCurveValueFromAnimation(InSequence, "LayerHandLeft", ExplicitTime, HandLeftBlendAmount); UAnimationWarpingLibrary::GetCurveValueFromAnimation(InSequence, "LayerHandRight", ExplicitTime, HandRightBlendAmount); UAnimationWarpingLibrary::GetCurveValueFromAnimation(InSequence, "LayerSpine", ExplicitTime, SpineBlendAmount); UAnimationWarpingLibrary::GetCurveValueFromAnimation(InSequence, "LayerSpineAdditive", ExplicitTime, SpineAdditiveBlendAmount); UAnimationWarpingLibrary::GetCurveValueFromAnimation(InSequence, "LayerSpineSlot", ExplicitTime, SpineSlotBlendAmount); UAnimationWarpingLibrary::GetCurveValueFromAnimation(InSequence, "LayerPelvis", ExplicitTime, PelvisBlendAmount); UAnimationWarpingLibrary::GetCurveValueFromAnimation(InSequence, "LayerPelvisSlot", ExplicitTime, PelvisSlotBlendAmount); UAnimationWarpingLibrary::GetCurveValueFromAnimation(InSequence, "LayerLegs", ExplicitTime, LegsBlendAmount); UAnimationWarpingLibrary::GetCurveValueFromAnimation(InSequence, "LayerLegsSlot", ExplicitTime, LegsSlotBlendAmount); } void FGMS_AnimState_Layering::ZeroOut() { HeadBlendAmount = 0.0f; HeadAdditiveBlendAmount = 0.0f; HeadSlotBlendAmount = 0.0f; ArmLeftBlendAmount = 0.0f; ArmLeftAdditiveBlendAmount = 0.0f; ArmLeftSlotBlendAmount = 0.0f; ArmLeftLocalSpaceBlendAmount = 0.0f; ArmLeftMeshSpaceBlendAmount = 0.0f; ArmRightBlendAmount = 0.0f; ArmRightAdditiveBlendAmount = 0.0f; ArmRightSlotBlendAmount = 0.0f; ArmRightLocalSpaceBlendAmount = 0.0f; ArmRightMeshSpaceBlendAmount = 0.0f; HandLeftBlendAmount = 0.0f; HandRightBlendAmount = 0.0f; SpineBlendAmount = 0.0f; SpineAdditiveBlendAmount = 0.0f; SpineSlotBlendAmount = 0.0f; PelvisBlendAmount = 0.0f; PelvisSlotBlendAmount = 0.0f; LegsBlendAmount = 0.0f; LegsSlotBlendAmount = 0.0f; }