第一次提交

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,81 @@
// Copyright 2025 https://yuewu.dev/en All Rights Reserved.
#pragma once
#include "CoreMinimal.h"
#include "GMS_AnimLayer.h"
#include "Settings/GMS_SettingObjectLibrary.h"
#include "GMS_AnimLayer_Overlay.generated.h"
#pragma region Blend Data Structures
USTRUCT()
struct GENERICMOVEMENTSYSTEM_API FGMS_AnimData_PoseBlendSetting
{
GENERATED_BODY()
virtual ~FGMS_AnimData_PoseBlendSetting() = default;
/**
* The overall adoption of the pose(0~1).
* 姿势的整体采用度0~11是开启0是关闭。
*/
UPROPERTY(EditAnywhere, Category="GMS", meta=(ClampMin=0, ClampMax=1, DisplayPriority=0))
float BlendAmount{1.0f};
};
USTRUCT()
struct GENERICMOVEMENTSYSTEM_API FGMS_AnimData_PoseBlendSetting_TwoParams : public FGMS_AnimData_PoseBlendSetting
{
GENERATED_BODY()
/**
* Overall adoption of Montage playing on this slot (0~1)
* 在此槽上播放的Montage的整体采用度0~1
*/
UPROPERTY(EditAnywhere, Category="GMS", meta=(ClampMin=0, ClampMax=1, DisplayPriority=2))
float SlotBlendAmount{1.0f};
};
USTRUCT()
struct GENERICMOVEMENTSYSTEM_API FGMS_AnimData_PoseBlendSetting_ThreeParams : public FGMS_AnimData_PoseBlendSetting_TwoParams
{
GENERATED_BODY()
/**
* How much to blend the overlay pose with the underlying motion.
* 叠加姿势与底层运动的混合程度。
*/
UPROPERTY(EditAnywhere, Category="GMS", meta=(ClampMin=0, ClampMax=1, DisplayPriority=1))
float AdditiveBlendAmount{0.0f};
};
USTRUCT()
struct GENERICMOVEMENTSYSTEM_API FGMS_AnimData_PoseBlendSetting_FourParams : public FGMS_AnimData_PoseBlendSetting_ThreeParams
{
GENERATED_BODY()
UPROPERTY(EditAnywhere, Category="GMS", meta=(ClampMin=0, ClampMax=1, DisplayPriority=3))
bool bMeshSpace{true};
};
#pragma endregion
/**
* Base class for overlay animation layer settings.
* 叠加动画层设置的基类。
*/
UCLASS(Abstract, Blueprintable)
class GENERICMOVEMENTSYSTEM_API UGMS_AnimLayerSetting_Overlay : public UGMS_AnimLayerSetting
{
GENERATED_BODY()
public:
/**
* Checks if the overlay mode is valid.
* 检查叠加模式是否有效。
* @param NewOverlayMode The overlay mode to check. 要检查的叠加模式。
* @return True if the overlay mode is valid, false otherwise. 如果叠加模式有效则返回true否则返回false。
*/
virtual bool IsValidForOverlayMode(const FGameplayTag& NewOverlayMode) const { return true; };
};