第一次提交

This commit is contained in:
不明不惑
2026-03-03 01:23:02 +08:00
commit 3e434877e8
1053 changed files with 102411 additions and 0 deletions

View File

@@ -0,0 +1,976 @@
// Copyright 2025 https://yuewu.dev/en All Rights Reserved.
#pragma once
#include "CoreMinimal.h"
#include "GMS_LocomotionEnumLibrary.h"
#include "Animation/TrajectoryTypes.h"
#include "BoneControllers/AnimNode_OffsetRootBone.h"
#include "UObject/Object.h"
#include "GMS_AnimState.generated.h"
class UAnimSequenceBase;
class UAnimSequence;
/**
* Stores locomotion-related animation state data.
* 存储与运动相关的动画状态数据。
*/
USTRUCT(BlueprintType)
struct GENERICMOVEMENTSYSTEM_API FGMS_AnimState_Locomotion
{
GENERATED_BODY()
/**
* World-space location of the character.
* 角色的世界空间位置。
*/
UPROPERTY(EditAnywhere, BlueprintReadWrite, Category="GMS")
FVector Location{ForceInit};
/**
* Displacement from the previous frame.
* 上一帧的位移。
*/
UPROPERTY(EditAnywhere, BlueprintReadWrite, Category="GMS")
float PreviousDisplacement{0.0f};
/**
* Speed of displacement (cm/s).
* 位移速度(厘米/秒)。
*/
UPROPERTY(EditAnywhere, BlueprintReadWrite, Category="GMS")
float DisplacementSpeed{0.0f};
/**
* World-space rotation of the character.
* 角色的世界空间旋转。
*/
UPROPERTY(EditAnywhere, BlueprintReadWrite, Category="GMS")
FRotator Rotation{ForceInit};
/**
* Quaternion representation of the rotation.
* 旋转的四元数表示。
*/
UPROPERTY()
FQuat RotationQuaternion{ForceInit};
/**
* Current velocity vector.
* 当前速度向量。
*/
UPROPERTY(EditAnywhere, BlueprintReadWrite, Category="GMS")
FVector Velocity{ForceInit};
/**
* 2D local-space velocity vector.
* 2D本地空间速度向量。
*/
UPROPERTY(EditAnywhere, BlueprintReadWrite, Category="GMS")
FVector LocalVelocity2D{ForceInit};
/**
* Indicates if the character has velocity.
* 指示角色是否有速度。
*/
UPROPERTY(EditAnywhere, BlueprintReadWrite, Category="GMS")
bool bHasVelocity = false;
/**
* Current speed of the character (cm/s).
* 角色的当前速度(厘米/秒)。
*/
UPROPERTY(EditAnywhere, BlueprintReadWrite, Category="GMS", Meta = (ClampMin = 0, ForceUnits = "cm/s"))
float Speed{0.0f};
/**
* Yaw angle of the local velocity (degrees).
* 本地速度的偏航角(度)。
*/
UPROPERTY(EditAnywhere, BlueprintReadWrite, Category="GMS", Meta = (ClampMin = -180, ClampMax = 180, ForceUnits = "deg"))
float LocalVelocityYawAngle{0.0f};
/**
* Yaw angle of the local velocity with offset (degrees).
* 带偏移的本地速度偏航角(度)。
*/
UPROPERTY(EditAnywhere, BlueprintReadWrite, Category="GMS", Meta = (ClampMin = -180, ClampMax = 180, ForceUnits = "deg"))
float LocalVelocityYawAngleWithOffset{0.0f};
/**
* Cardinal direction of the local velocity.
* 本地速度的主要方向。
*/
UPROPERTY(EditAnywhere, BlueprintReadWrite, Category="GMS")
EGMS_MovementDirection LocalVelocityDirection{EGMS_MovementDirection::Forward};
/**
* Cardinal direction of the local velocity without offset.
* 无偏移的本地速度主要方向。
*/
UPROPERTY(EditAnywhere, BlueprintReadWrite, Category="GMS")
EGMS_MovementDirection LocalVelocityDirectionNoOffset{EGMS_MovementDirection::Forward};
/**
* Octagonal direction of the local velocity.
* 本地速度的八方向。
*/
UPROPERTY(EditAnywhere, BlueprintReadWrite, Category="GMS")
EGMS_MovementDirection_8Way LocalVelocityOctagonalDirection{EGMS_MovementDirection_8Way::Forward};
/**
* Indicates if there is active input.
* 指示是否有活跃输入。
*/
UPROPERTY(EditAnywhere, BlueprintReadWrite, Category="GMS")
bool bHasInput{false};
/**
* Velocity acceleration vector.
* 速度加速度向量。
*/
UPROPERTY(EditAnywhere, BlueprintReadWrite, Category="GMS")
FVector VelocityAcceleration{ForceInit};
/**
* 2D local-space acceleration vector.
* 2D本地空间加速度向量。
*/
UPROPERTY(EditAnywhere, BlueprintReadWrite, Category="GMS")
FVector LocalAcceleration2D{ForceInit};
/**
* Indicates if the character is moving.
* 指示角色是否在移动。
*/
UPROPERTY(EditAnywhere, BlueprintReadWrite, Category="GMS")
bool bMoving{false};
/**
* Actor's rotation yaw speed.
* Actor的旋转偏航角变化速度。
*/
UPROPERTY(EditAnywhere, BlueprintReadWrite, Category="GMS", Meta = (ClampMin = -180, ClampMax = 180, ForceUnits = "deg"))
float YawVelocity{0.0f};
/**
* Scale factor for animations.
* 动画的缩放因子。
*/
float Scale{1.0f};
/**
* Radius of the character's capsule.
* 角色胶囊体的半径。
*/
float CapsuleRadius{0.0f};
/**
* Half-height of the character's capsule.
* 角色胶囊体的一半高度。
*/
float CapsuleHalfHeight{0.0f};
/**
* Maximum acceleration of the character.
* 角色的最大加速度。
*/
float MaxAcceleration{0.0f};
/**
* Maximum braking deceleration of the character.
* 角色的最大制动减速度。
*/
float MaxBrakingDeceleration{0.0f};
/**
* Z value for walkable floor detection.
* 可行走地板检测的Z值。
*/
float WalkableFloorZ{0.0f};
};
USTRUCT(BlueprintType)
struct GENERICMOVEMENTSYSTEM_API FGMS_AnimState_Trajectory
{
GENERATED_BODY()
UPROPERTY(EditAnywhere, BlueprintReadWrite, Category="GMS")
FTransformTrajectory Trajectory;
UPROPERTY(EditAnywhere, BlueprintReadWrite, Category="GMS")
FVector PastVelocity{FVector::ZeroVector};
UPROPERTY(EditAnywhere, BlueprintReadWrite, Category="GMS")
FVector CurrentVelocity{FVector::ZeroVector};
UPROPERTY(EditAnywhere, BlueprintReadWrite, Category="GMS")
FVector FutureVelocity{FVector::ZeroVector};
UPROPERTY(EditAnywhere, BlueprintReadWrite, Category="GMS")
float DesiredControllerYaw{0.0f};
};
/**
* Stores root bone animation state data.
* 存储根骨骼动画状态数据。
*/
USTRUCT(BlueprintType)
struct GENERICMOVEMENTSYSTEM_API FGMS_AnimState_Root
{
GENERATED_BODY()
/**
* Translation mode for the root bone.
* 根骨骼的平移模式。
*/
UPROPERTY(EditAnywhere, BlueprintReadWrite, Category="GMS")
EOffsetRootBoneMode TranslationMode{EOffsetRootBoneMode::Release};
/**
* Rotation mode for the root bone.
* 根骨骼的旋转模式。
*/
UPROPERTY(EditAnywhere, BlueprintReadWrite, Category="GMS")
EOffsetRootBoneMode RotationMode{EOffsetRootBoneMode::Release};
/**
* Current world-space transform of the root bone.
* 根骨骼的当前世界空间变换。
*/
UPROPERTY(EditAnywhere, BlueprintReadWrite, Category="GMS")
FTransform RootTransform{FTransform::Identity};
/**
* Yaw offset relative to the actor's rotation (degrees; <0 left, >0 right).
* 相对于Actor旋转的偏航偏移<0左侧>0右侧
*/
UPROPERTY(VisibleAnywhere, BlueprintReadWrite, Category="State")
float YawOffset{0};
/**
* Maximum rotation error in degrees; values <0 disable the limit.
* 最大旋转误差(度);值<0禁用限制。
*/
UPROPERTY(EditAnywhere, BlueprintReadWrite, Category="GMS")
float MaxRotationError{-1.0f};
};
/**
* Stores turn-in-place animation state data.
* 存储原地转身动画状态数据。
*/
USTRUCT(BlueprintType)
struct GENERICMOVEMENTSYSTEM_API FGMS_AnimState_TurnInPlace
{
GENERATED_BODY()
/**
* Indicates if the state was updated this frame.
* 指示此帧是否更新了状态。
*/
UPROPERTY()
uint8 bUpdatedThisFrame : 1 {false};
/**
* Animation sequence for turn-in-place.
* 原地转身的动画序列。
*/
UPROPERTY(EditAnywhere, BlueprintReadWrite, Category="GMS")
TObjectPtr<UAnimSequenceBase> Animation;
/**
* Indicates if the character should turn.
* 指示角色是否应该转身。
*/
UPROPERTY(EditAnywhere, BlueprintReadWrite, Category="GMS")
uint8 bShouldTurn : 1 {false};
/**
* Accumulated time for the animation.
* 动画的累计时间。
*/
UPROPERTY(EditAnywhere, BlueprintReadWrite, Category="GMS")
float AccumulatedTime{0};
/**
* Playback rate for the animation.
* 动画的播放速率。
*/
UPROPERTY(EditAnywhere, BlueprintReadWrite, Category="GMS", Meta = (ClampMin = 0, ForceUnits = "x"))
float PlayRate{1.0f};
/**
* Scaled playback rate for the animation.
* 动画的缩放播放速率。
*/
UPROPERTY(EditAnywhere, BlueprintReadWrite, Category="GMS", Meta = (ClampMin = 0, ForceUnits = "x"))
float ScaledPlayRate{1.0f};
/**
* Delay before activating the turn-in-place animation.
* 原地转身动画激活前的延迟。
*/
UPROPERTY(EditAnywhere, BlueprintReadWrite, Category="GMS", Meta = (ForceUnits = "s"))
float ActivationDelay{0.0f};
/**
* Angle that triggers the turn-in-place animation.
* 触发原地转身动画的角度。
*/
UPROPERTY(EditAnywhere, BlueprintReadWrite, Category="GMS")
float TriggeredAngle{0.0f};
/**
* Indicates if the turn is 180 degrees.
* 指示是否为180度转身。
*/
bool b180{false};
};
/**
* Stores in-air animation state data.
* 存储空中动画状态数据。
*/
USTRUCT(BlueprintType)
struct GENERICMOVEMENTSYSTEM_API FGMS_AnimState_InAir
{
GENERATED_BODY()
/**
* Vertical speed of the character (cm/s).
* 角色的垂直速度(厘米/秒)。
*/
UPROPERTY(EditAnywhere, BlueprintReadWrite, Category="GMS", Meta = (ForceUnits = "cm/s"))
float VerticalSpeed{0.0f};
/**
* Indicates if the character is jumping.
* 指示角色是否在跳跃。
*/
UPROPERTY(EditAnywhere, BlueprintReadWrite, Category="GMS")
bool bJumping{false};
/**
* Indicates if the character is falling.
* 指示角色是否在下落。
*/
UPROPERTY(EditAnywhere, BlueprintReadWrite, Category="GMS")
bool bFalling{false};
/**
* Playback rate for the jump animation.
* 跳跃动画的播放速率。
*/
UPROPERTY(EditAnywhere, BlueprintReadWrite, Category="GMS", Meta = (ClampMin = 0, ForceUnits = "x"))
float JumpPlayRate{1.0f};
/**
* Indicates if valid ground is detected.
* 指示是否检测到有效地面。
*/
UPROPERTY(EditAnywhere, BlueprintReadWrite, Category="GMS")
bool bValidGround{false};
/**
* Distance to the ground (cm).
* 到地面的距离(厘米)。
*/
UPROPERTY(EditAnywhere, BlueprintReadWrite, Category="GMS", meta=(ForceUnits = "cm"))
float GroundDistance{0.0f};
/**
* Time to reach the jump apex (s).
* 到达跳跃顶点的时间(秒)。
*/
UPROPERTY(EditAnywhere, BlueprintReadWrite, Category="GMS", Meta = (ClampMin = 0, ClampMax = 1, ForceUnits = "s"))
float TimeToJumpApex{0.0f};
/**
* Time spent falling (s).
* 下落的时间(秒)。
*/
UPROPERTY(EditAnywhere, BlueprintReadWrite, Category="GMS", Meta = (ClampMin = 0, ClampMax = 1, ForceUnits = "s"))
float FallingTime{0.0f};
};
/**
* Stores idle animation state data.
* 存储空闲动画状态数据。
*/
USTRUCT(BlueprintType)
struct GENERICMOVEMENTSYSTEM_API FGMS_AnimState_Idle
{
GENERATED_BODY()
/**
* Animation sequence for idle.
* 空闲动画序列。
*/
UPROPERTY(EditAnywhere, BlueprintReadWrite, Category="GMS")
TObjectPtr<UAnimSequence> Animation{nullptr};
/**
* Indicates if the idle animation is looped.
* 指示空闲动画是否循环。
*/
UPROPERTY(EditAnywhere, BlueprintReadWrite, Category="GMS")
bool bLoop{true};
/**
* Playback rate for the idle animation.
* 空闲动画的播放速率。
*/
UPROPERTY(EditAnywhere, BlueprintReadWrite, Category="GMS")
float PlayRate{1.0f};
/**
* Blend time for the idle animation.
* 空闲动画的混合时间。
*/
UPROPERTY(EditAnywhere, BlueprintReadWrite, Category="GMS")
float BlendTime{1.0f};
/**
* Blend profile for the idle animation.
* 空闲动画的混合配置文件。
*/
UPROPERTY(EditAnywhere, BlueprintReadWrite, Category="GMS")
TObjectPtr<UBlendProfile> BlendProfile{nullptr};
};
/**
* Stores runtime state for idle break animations.
* 存储空闲中断动画的运行时状态。
*/
USTRUCT(BlueprintType)
struct GENERICMOVEMENTSYSTEM_API FGMS_AnimState_IdleBreak
{
GENERATED_BODY()
/**
* Time until the next idle break animation (s).
* 到下一个空闲中断动画的时间(秒)。
*/
UPROPERTY(EditAnywhere, BlueprintReadWrite, Category="GMS")
float TimeUntilNextIdleBreak{0.0f};
/**
* Index of the current idle break animation.
* 当前空闲中断动画的索引。
*/
UPROPERTY(EditAnywhere, BlueprintReadWrite, Category="GMS")
int32 CurrentIdleBreakIndex{0};
/**
* Delay between idle break animations (s).
* 空闲中断动画之间的延迟(秒)。
*/
UPROPERTY(EditAnywhere, BlueprintReadWrite, Category="GMS")
float IdleBreakDelayTime{0.0f};
};
/**
* Stores lean animation state data.
* 存储倾斜动画状态数据。
*/
USTRUCT(BlueprintType)
struct GENERICMOVEMENTSYSTEM_API FGMS_AnimState_Lean
{
GENERATED_BODY()
/**
* Horizontal acceleration amount for leaning (clamped -1 to 1).
* 用于倾斜的水平加速度量(限制在-1到1
*/
UPROPERTY(EditAnywhere, BlueprintReadWrite, Category="GMS", Meta = (ClampMin = -1, ClampMax = 1))
float RightAmount{0.0f};
/**
* Vertical acceleration amount for leaning (clamped -1 to 1).
* 用于倾斜的垂直加速度量(限制在-1到1
*/
UPROPERTY(EditAnywhere, BlueprintReadWrite, Category="GMS", Meta = (ClampMin = -1, ClampMax = 1))
float ForwardAmount{0.0f};
};
/**
* Stores pivot animation state data.
* 存储枢轴动画状态数据。
*/
USTRUCT(BlueprintType)
struct GENERICMOVEMENTSYSTEM_API FGMS_AnimState_Pivot
{
GENERATED_BODY()
/**
* Animation sequence for the pivot.
* 枢轴动画序列。
*/
UPROPERTY(EditAnywhere, BlueprintReadWrite, Category="GMS")
TObjectPtr<UAnimSequence> Animation;
/**
* Acceleration at the start of the pivot.
* 枢轴开始时的加速度。
*/
UPROPERTY(EditAnywhere, BlueprintReadWrite, Category="GMS")
FVector StartingAcceleration{ForceInit};
/**
* Accumulated time for the pivot animation.
* 枢轴动画的累计时间。
*/
UPROPERTY(EditAnywhere, BlueprintReadWrite, Category="GMS")
float AccumulatedTime{ForceInit};
/**
* Time at which the pivot stops for distance matching.
* 距离匹配时枢轴停止的时间。
*/
UPROPERTY(EditAnywhere, BlueprintReadWrite, Category="GMS")
float TimeAtPivotStop{ForceInit};
/**
* Alpha for stride warping during the pivot.
* 枢轴期间步幅适配的Alpha值。
*/
UPROPERTY(EditAnywhere, BlueprintReadWrite, Category="GMS")
float StrideWarpingAlpha{ForceInit};
/**
* Clamp for the playback rate (min, max).
* 播放速率的限制(最小,最大)。
*/
UPROPERTY(EditAnywhere, BlueprintReadWrite, Category="GMS")
FVector2D PlayRateClamp{0.f, 0.f};
/**
* 2D direction of the pivot.
* 枢轴的2D方向。
*/
UPROPERTY(EditAnywhere, BlueprintReadWrite, Category="State")
FVector Direction2D{ForceInit};
/**
* Desired movement direction for the pivot.
* 枢轴的期望移动方向。
*/
UPROPERTY(EditAnywhere, BlueprintReadWrite, Category="State")
EGMS_MovementDirection DesiredDirection{ForceInit};
/**
* Initial movement direction for the pivot.
* 枢轴的初始移动方向。
*/
UPROPERTY(EditAnywhere, BlueprintReadWrite, Category="State")
EGMS_MovementDirection InitialDirection{ForceInit};
/**
* Remaining cooldown time for the pivot (s).
* 枢轴的剩余冷却时间(秒)。
*/
UPROPERTY(EditAnywhere, BlueprintReadWrite, Category="State")
float RemainingCooldown{ForceInit};
/**
* Indicates if the pivot is moving perpendicular to the initial direction.
* 指示枢轴是否垂直于初始方向移动。
*/
UPROPERTY(EditAnywhere, BlueprintReadWrite, Category="State")
bool bMovingPerpendicularToInitialDirection{ForceInit};
};
/**
* Stores start animation state data.
* 存储开始动画状态数据。
*/
USTRUCT(BlueprintType)
struct GENERICMOVEMENTSYSTEM_API FGMS_AnimState_Start
{
GENERATED_BODY()
/**
* Animation sequence for the start movement.
* 开始移动的动画序列。
*/
UPROPERTY(EditAnywhere, BlueprintReadWrite, Category="GMS")
TObjectPtr<UAnimSequence> Animation{nullptr};
/**
* Smooth target rotation for the start movement.
* 开始移动的平滑目标旋转。
*/
UPROPERTY(EditAnywhere, BlueprintReadWrite, Category="GMS")
FRotator SmoothTargetRotation{ForceInit};
/**
* Yaw delta between acceleration direction and root direction at start (degrees).
* 开始时加速度方向与根方向的偏航差(度)。
*/
UPROPERTY(EditAnywhere, BlueprintReadWrite, Category="GMS", Meta = (ClampMin = -180, ClampMax = 180, ForceUnits = "deg"))
float YawDeltaToAcceleration{ForceInit};
/**
* Local velocity direction at the start.
* 开始时的本地速度方向。
*/
UPROPERTY(EditAnywhere, BlueprintReadWrite, Category="GMS")
EGMS_MovementDirection LocalVelocityDirection{ForceInit};
/**
* Alpha for stride warping during the start.
* 开始期间步幅适配的Alpha值。
*/
UPROPERTY(EditAnywhere, BlueprintReadWrite, Category="GMS")
float StrideWarpingAlpha{ForceInit};
/**
* Clamp for the playback rate (min, max).
* 播放速率的限制(最小,最大)。
*/
UPROPERTY(EditAnywhere, BlueprintReadWrite, Category="GMS")
FVector2D PlayRateClamp{ForceInit};
/**
* Alpha for orientation warping during the start.
* 开始期间朝向扭曲的Alpha值。
*/
UPROPERTY(EditAnywhere, BlueprintReadWrite, Category="GMS")
float OrientationAlpha{1.0f};
/**
* Time spent in the start state (s).
* 开始状态的持续时间(秒)。
*/
UPROPERTY(EditAnywhere, BlueprintReadWrite, Category="GMS")
float TimeInState{0.0f};
/**
* Blend profile for the start animation.
* 开始动画的混合配置文件。
*/
UPROPERTY(EditAnywhere, BlueprintReadWrite, Category="GMS")
TObjectPtr<UBlendProfile> BlendProfile{nullptr};
/**
* Remaining time for the start animation (s).
* 开始动画的剩余时间(秒)。
*/
UPROPERTY(EditAnywhere, BlueprintReadWrite, Category="GMS")
float TimeRemaining{0.0f};
/**
* Playback rate for the start animation.
* 开始动画的播放速率。
*/
UPROPERTY(EditAnywhere, BlueprintReadWrite, Category="GMS")
float PlayRate{0.0f};
};
/**
* Stores cycle animation state data.
* 存储循环动画状态数据。
*/
USTRUCT(BlueprintType)
struct GENERICMOVEMENTSYSTEM_API FGMS_AnimState_Cycle
{
GENERATED_BODY()
/**
* Animation sequence for the cycle.
* 循环动画序列。
*/
UPROPERTY(EditAnywhere, BlueprintReadWrite, Category="GMS")
TObjectPtr<UAnimSequence> Animation{nullptr};
/**
* Alpha for orientation warping during the cycle.
* 循环期间朝向扭曲的Alpha值。
*/
UPROPERTY(EditAnywhere, BlueprintReadWrite, Category="GMS")
float OrientationAlpha{ForceInit};
/**
* Alpha for stride warping during the cycle.
* 循环期间步幅适配的Alpha值。
*/
UPROPERTY(EditAnywhere, BlueprintReadWrite, Category="GMS")
float StrideWarpingAlpha{ForceInit};
/**
* Playback rate for the cycle animation.
* 循环动画的播放速率。
*/
UPROPERTY(EditAnywhere, BlueprintReadWrite, Category="GMS")
float PlayRate{1.0f};
/**
* Blend profile for the cycle animation.
* 循环动画的混合配置文件。
*/
UPROPERTY(EditAnywhere, BlueprintReadWrite, Category="GMS")
TObjectPtr<UBlendProfile> BlendProfile{nullptr};
};
/**
* Stores stop animation state data.
* 存储停止动画状态数据。
*/
USTRUCT(BlueprintType)
struct GENERICMOVEMENTSYSTEM_API FGMS_AnimState_Stop
{
GENERATED_BODY()
/**
* Animation sequence for the stop.
* 停止动画序列。
*/
UPROPERTY(EditAnywhere, BlueprintReadWrite, Category="GMS")
TObjectPtr<UAnimSequence> Animation{nullptr};
/**
* Alpha for orientation warping during the stop.
* 停止期间朝向扭曲的Alpha值。
*/
UPROPERTY(EditAnywhere, BlueprintReadWrite, Category="GMS")
float OrientationAlpha{1.0f};
};
/**
* Stores view-related animation state data.
* 存储与视图相关的动画状态数据。
*/
USTRUCT(BlueprintType)
struct GENERICMOVEMENTSYSTEM_API FGMS_AnimState_View
{
GENERATED_BODY()
/**
* Rotation of the view.
* 视图的旋转。
*/
UPROPERTY(EditAnywhere, BlueprintReadWrite, Category="GMS")
FRotator Rotation{ForceInit};
/**
* Yaw angle between the actor and camera (degrees).
* Actor与相机之间的偏航角
*/
UPROPERTY(EditAnywhere, BlueprintReadWrite, Category="GMS", Meta = (ClampMin = -180, ClampMax = 180, ForceUnits = "deg"))
float YawAngle{0.0f};
/**
* Speed of yaw angle change (degrees/s).
* 偏航角变化速度(度/秒)。
*/
UPROPERTY(EditAnywhere, BlueprintReadWrite, Category="GMS", Meta = (ClampMin = 0, ForceUnits = "deg/s"))
float YawSpeed{0.0f};
/**
* Pitch angle of the view (degrees).
* 视图的俯仰角(度)。
*/
UPROPERTY(EditAnywhere, BlueprintReadWrite, Category="GMS", Meta = (ClampMin = -90, ClampMax = 90, ForceUnits = "deg"))
float PitchAngle{0.0f};
/**
* Amount of pitch applied (clamped 0 to 1).
* 应用的俯仰量限制在0到1
*/
UPROPERTY(EditAnywhere, BlueprintReadWrite, Category="GMS", Meta = (ClampMin = 0, ClampMax = 1))
float PitchAmount{0.5f};
};
/**
* Stores layering animation state data for body parts.
* 存储身体部位的分层动画状态数据。
*/
USTRUCT(BlueprintType)
struct GENERICMOVEMENTSYSTEM_API FGMS_AnimState_Layering
{
GENERATED_BODY()
virtual ~FGMS_AnimState_Layering() = default;
/**
* Blend amount for the head (0 to 1).
* 头部混合量0到1
*/
UPROPERTY(EditAnywhere, BlueprintReadWrite, Category="GMS", Meta = (ClampMin = 0, ClampMax = 1))
float HeadBlendAmount{0.0f};
/**
* Additive blend amount for the head (0 to 1).
* 头部附加混合量0到1
*/
UPROPERTY(EditAnywhere, BlueprintReadWrite, Category="GMS", Meta = (ClampMin = 0, ClampMax = 1))
float HeadAdditiveBlendAmount{0.0f};
/**
* Slot blend amount for the head (0 to 1).
* 头部槽混合量0到1
*/
UPROPERTY(EditAnywhere, BlueprintReadWrite, Category="GMS", Meta = (ClampMin = 0, ClampMax = 1))
float HeadSlotBlendAmount{1.0f};
/**
* Blend amount for the left arm (0 to 1).
* 左臂混合量0到1
*/
UPROPERTY(EditAnywhere, BlueprintReadWrite, Category="GMS", Meta = (ClampMin = 0, ClampMax = 1))
float ArmLeftBlendAmount{0.0f};
/**
* Additive blend amount for the left arm (0 to 1).
* 左臂附加混合量0到1
*/
UPROPERTY(EditAnywhere, BlueprintReadWrite, Category="GMS", Meta = (ClampMin = 0, ClampMax = 1))
float ArmLeftAdditiveBlendAmount{0.0f};
/**
* Slot blend amount for the left arm (0 to 1).
* 左臂槽混合量0到1
*/
UPROPERTY(EditAnywhere, BlueprintReadWrite, Category="GMS", Meta = (ClampMin = 0, ClampMax = 1))
float ArmLeftSlotBlendAmount{1.0f};
/**
* Local space blend amount for the left arm (0 to 1).
* 左臂本地空间混合量0到1
*/
UPROPERTY(EditAnywhere, BlueprintReadWrite, Category="GMS", Meta = (ClampMin = 0, ClampMax = 1))
float ArmLeftLocalSpaceBlendAmount{0.0f};
/**
* Mesh space blend amount for the left arm (0 to 1).
* 左臂网格空间混合量0到1
*/
UPROPERTY(EditAnywhere, BlueprintReadWrite, Category="GMS", Meta = (ClampMin = 0, ClampMax = 1))
float ArmLeftMeshSpaceBlendAmount{0.0f};
/**
* Blend amount for the right arm (0 to 1).
* 右臂混合量0到1
*/
UPROPERTY(EditAnywhere, BlueprintReadWrite, Category="GMS", Meta = (ClampMin = 0, ClampMax = 1))
float ArmRightBlendAmount{0.0f};
/**
* Additive blend amount for the right arm (0 to 1).
* 右臂附加混合量0到1
*/
UPROPERTY(EditAnywhere, BlueprintReadWrite, Category="GMS", Meta = (ClampMin = 0, ClampMax = 1))
float ArmRightAdditiveBlendAmount{0.0f};
/**
* Slot blend amount for the right arm (0 to 1).
* 右臂槽混合量0到1
*/
UPROPERTY(EditAnywhere, BlueprintReadWrite, Category="GMS", Meta = (ClampMin = 0, ClampMax = 1))
float ArmRightSlotBlendAmount{1.0f};
/**
* Local space blend amount for the right arm (0 to 1).
* 右臂本地空间混合量0到1
*/
UPROPERTY(EditAnywhere, BlueprintReadWrite, Category="GMS", Meta = (ClampMin = 0, ClampMax = 1))
float ArmRightLocalSpaceBlendAmount{0.0f};
/**
* Mesh space blend amount for the right arm (0 to 1).
* 右臂网格空间混合量0到1
*/
UPROPERTY(EditAnywhere, BlueprintReadWrite, Category="GMS", Meta = (ClampMin = 0, ClampMax = 1))
float ArmRightMeshSpaceBlendAmount{0.0f};
/**
* Blend amount for the left hand (0 to 1).
* 左手混合量0到1
*/
UPROPERTY(EditAnywhere, BlueprintReadWrite, Category="GMS", Meta = (ClampMin = 0, ClampMax = 1))
float HandLeftBlendAmount{0.0f};
/**
* Blend amount for the right hand (0 to 1).
* 右手混合量0到1
*/
UPROPERTY(EditAnywhere, BlueprintReadWrite, Category="GMS", Meta = (ClampMin = 0, ClampMax = 1))
float HandRightBlendAmount{0.0f};
/**
* Blend amount for the spine (0 to 1).
* 脊椎混合量0到1
*/
UPROPERTY(EditAnywhere, BlueprintReadWrite, Category="GMS", Meta = (ClampMin = 0, ClampMax = 1))
float SpineBlendAmount{0.0f};
/**
* Additive blend amount for the spine (0 to 1).
* 脊椎附加混合量0到1
*/
UPROPERTY(EditAnywhere, BlueprintReadWrite, Category="GMS", Meta = (ClampMin = 0, ClampMax = 1))
float SpineAdditiveBlendAmount{0.0f};
/**
* Slot blend amount for the spine (0 to 1).
* 脊椎槽混合量0到1
*/
UPROPERTY(EditAnywhere, BlueprintReadWrite, Category="GMS", Meta = (ClampMin = 0, ClampMax = 1))
float SpineSlotBlendAmount{1.0f};
/**
* Blend amount for the pelvis (0 to 1).
* 骨盆混合量0到1
*/
UPROPERTY(EditAnywhere, BlueprintReadWrite, Category="GMS", Meta = (ClampMin = 0, ClampMax = 1))
float PelvisBlendAmount{0.0f};
/**
* Slot blend amount for the pelvis (0 to 1).
* 骨盆槽混合量0到1
*/
UPROPERTY(EditAnywhere, BlueprintReadWrite, Category="GMS", Meta = (ClampMin = 0, ClampMax = 1))
float PelvisSlotBlendAmount{1.0f};
/**
* Blend amount for the legs (0 to 1).
* 腿部混合量0到1
*/
UPROPERTY(EditAnywhere, BlueprintReadWrite, Category="GMS", Meta = (ClampMin = 0, ClampMax = 1))
float LegsBlendAmount{0.0f};
/**
* Slot blend amount for the legs (0 to 1).
* 腿部槽混合量0到1
*/
UPROPERTY(EditAnywhere, BlueprintReadWrite, Category="GMS", Meta = (ClampMin = 0, ClampMax = 1))
float LegsSlotBlendAmount{1.0f};
void ApplyValueFromSequence(const UAnimSequence* InSequence, float ExplicitTime);
virtual void ZeroOut();
};
USTRUCT(BlueprintType)
struct GENERICMOVEMENTSYSTEM_API FGMS_AnimState_LayeringSmooth
{
GENERATED_BODY()
UPROPERTY(EditAnywhere, BlueprintReadWrite, Category="GMS", Meta = (ClampMin = 0, ClampMax = 1))
float HeadBlendAmount{0.0f};
UPROPERTY(EditAnywhere, BlueprintReadWrite, Category="GMS", Meta = (ClampMin = 0, ClampMax = 1))
float ArmLeftBlendAmount{0.0f};
UPROPERTY(EditAnywhere, BlueprintReadWrite, Category="GMS", Meta = (ClampMin = 0, ClampMax = 1))
float ArmRightBlendAmount{0.0f};
UPROPERTY(EditAnywhere, BlueprintReadWrite, Category="GMS", Meta = (ClampMin = 0, ClampMax = 1))
float SpineBlendAmount{0.0f};
UPROPERTY(EditAnywhere, BlueprintReadWrite, Category="GMS", Meta = (ClampMin = 0, ClampMax = 1))
float PelvisBlendAmount{0.0f};
UPROPERTY(EditAnywhere, BlueprintReadWrite, Category="GMS", Meta = (ClampMin = 0, ClampMax = 1))
float LegsBlendAmount{0.0f};
};