// © 2024 Long Ly. All rights reserved. Any unauthorized use, reproduction, or distribution of this trademark is strictly prohibited and may result in legal action. #pragma once #include "CoreMinimal.h" #include "Animation/AnimInstance.h" #include "OLSBaseLinkedOverlayLayerAnimInstance.generated.h" /** * */ UCLASS() class OLSANIMATION_API UOLSBaseLinkedOverlayLayerAnimInstance : public UAnimInstance { GENERATED_BODY() protected: //~ Begin UAnimInstance overrides virtual void NativeInitializeAnimation() override; //~ End UAnimInstance overrides protected: UFUNCTION(BlueprintCallable, meta = (BlueprintThreadSafe), Category = "ThreadSafe|Selectors") class UAnimSequence* SelectIdlePose(const bool isCrouching) const; protected: UFUNCTION(BlueprintCallable, meta = (BlueprintThreadSafe)) class UOLSBaseLayerAnimInstance* GetBaseMainAnimInstance() const; protected: UPROPERTY(EditDefaultsOnly, BlueprintReadOnly, Category = "Mask") TObjectPtr IdlePose_Standing = nullptr; UPROPERTY(EditDefaultsOnly, BlueprintReadOnly, Category = "Mask") TObjectPtr IdlePose_Crouching = nullptr; UPROPERTY(EditDefaultsOnly, BlueprintReadOnly, Category = "Mask") TObjectPtr OverlayAnimationProps = nullptr; protected: UPROPERTY(Transient) TObjectPtr BaseMainAnimInstance = nullptr; };