Payback 0.0.1
CK Graduation Project
로딩중...
검색중...
일치하는것 없음
UPlayerAnimInstance 클래스 참조

#include <PlayerAnimInstance.h>

UPlayerAnimInstance에 대한 상속 다이어그램 :
Inheritance graph
UPlayerAnimInstance에 대한 협력 다이어그램:
Collaboration graph

Public 멤버 함수

 UPlayerAnimInstance ()
 
- UCharacterAnimInstance(으)로부터 상속된 Public 멤버 함수
 UCharacterAnimInstance ()
 

Protected 멤버 함수

virtual void NativeInitializeAnimation () override
 
virtual void NativeBeginPlay () override
 
virtual void NativeUpdateAnimation (float DeltaSeconds) override
 
virtual void TryBindTagEvent () override
 
virtual void TryRemoveTagEvent () override
 
virtual bool UpdateAnimation (float DeltaSeconds, float CurrentSpdOverride, float TargetSpdOverride) override
 
void CachePlayerMovement ()
 
void OnAttackIdleTagChanged (const FGameplayTag Tag, int32 NewCount)
 
float CalculateLocomotionBlendValue (float CurrentMovementSpeed, float RunSpeed) const
 
float EvaluateLocomotionBlendRatioCurve (float NormalizedSpeedRatio) const
 
float CalculateAnimPlayRate (float CurrentMovementSpeed, float RunSpeed) const
 
float EvaluateAnimSpeedRatioCurve (float NormalizedSpeedRatio) const
 
- UCharacterAnimInstance(으)로부터 상속된 Protected 멤버 함수
virtual void NativeUninitializeAnimation () override
 
void CacheOwnerReferences ()
 
void OnAbilitySystemReady (UAbilitySystemComponent *InASC)
 
void OnChargingTagChanged (const FGameplayTag Tag, int32 NewCount)
 

Protected 속성

FRuntimeFloatCurve AnimSpeedRatioCurvePerLocomotionSpeedRatio
 
float LocoAnimPlayRate = 1.0f
 
FRuntimeFloatCurve LocomotionBlendRatioCurve
 
bool bIsAttackIdle = false
 
float LeanAngle = 0.0f
 
FDelegateHandle AttackIdleTagEventHandle
 
- UCharacterAnimInstance(으)로부터 상속된 Protected 속성
TObjectPtr< ACharacter > Owner
 
TObjectPtr< UCharacterMovementComponent > Movement
 
float CurrentSpeed = 0.0f
 
float Direction = 0.0f
 
uint8 bIsIdle: 1
 
uint8 bIsCharging: 1
 
float DirInterpSpeed = 0.0f
 
float AnimInterpSpeed = 0.0f
 
float IdleSpeedThreshold = 1.0f
 
TObjectPtr< UAbilitySystemComponent > CachedASC
 

Private 속성

TObjectPtr< UPlayerMovementComponent > CachedPlayerMovement
 

생성자 & 소멸자 문서화

◆ UPlayerAnimInstance()

UPlayerAnimInstance::UPlayerAnimInstance ( )
14{
15 FRichCurve* LocomotionBlendRatioCurveData = LocomotionBlendRatioCurve.GetRichCurve();
16 LocomotionBlendRatioCurveData->AddKey(0.0f, 0.0f);
17 LocomotionBlendRatioCurveData->AddKey(1.0f, 1.0f);
18
19 FRichCurve* AnimSpeedRatioCurveData = AnimSpeedRatioCurvePerLocomotionSpeedRatio.GetRichCurve();
20 AnimSpeedRatioCurveData->AddKey(0.0f, 1.0f);
21 AnimSpeedRatioCurveData->AddKey(1.0f, 1.0f);
22}
FRuntimeFloatCurve AnimSpeedRatioCurvePerLocomotionSpeedRatio
Definition PlayerAnimInstance.h:42
FRuntimeFloatCurve LocomotionBlendRatioCurve
Definition PlayerAnimInstance.h:49

멤버 함수 문서화

◆ CachePlayerMovement()

void UPlayerAnimInstance::CachePlayerMovement ( )
protected
42{
43 CachedPlayerMovement = nullptr;
44
45 if (Owner == nullptr)
46 {
47 return;
48 }
49
50 CachedPlayerMovement = Cast<UPlayerMovementComponent>(Owner->GetCharacterMovement());
51}
TObjectPtr< ACharacter > Owner
Definition CharacterAnimInstance.h:42
TObjectPtr< UPlayerMovementComponent > CachedPlayerMovement
Definition PlayerAnimInstance.h:62
이 함수를 호출하는 함수들에 대한 그래프입니다.:

◆ CalculateAnimPlayRate()

float UPlayerAnimInstance::CalculateAnimPlayRate ( float  CurrentMovementSpeed,
float  RunSpeed 
) const
protected
141{
142 return RunSpeed < KINDA_SMALL_NUMBER ? 1.0f : EvaluateAnimSpeedRatioCurve(CurrentMovementSpeed / RunSpeed);
143}
float EvaluateAnimSpeedRatioCurve(float NormalizedSpeedRatio) const
Definition PlayerAnimInstance.cpp:146
이 함수 내부에서 호출하는 함수들에 대한 그래프입니다.:
이 함수를 호출하는 함수들에 대한 그래프입니다.:

◆ CalculateLocomotionBlendValue()

float UPlayerAnimInstance::CalculateLocomotionBlendValue ( float  CurrentMovementSpeed,
float  RunSpeed 
) const
protected
120{
121 return RunSpeed < KINDA_SMALL_NUMBER ? 0.0f : EvaluateLocomotionBlendRatioCurve(CurrentMovementSpeed / RunSpeed);
122}
float EvaluateLocomotionBlendRatioCurve(float NormalizedSpeedRatio) const
Definition PlayerAnimInstance.cpp:125
이 함수 내부에서 호출하는 함수들에 대한 그래프입니다.:
이 함수를 호출하는 함수들에 대한 그래프입니다.:

◆ EvaluateAnimSpeedRatioCurve()

float UPlayerAnimInstance::EvaluateAnimSpeedRatioCurve ( float  NormalizedSpeedRatio) const
protected
147{
148 const float SafeNormalizedSpeedRatio = FMath::Clamp(NormalizedSpeedRatio, 0.0f, 1.0f);
149
150 if (const FRichCurve* AnimSpeedRatioRichCurve = AnimSpeedRatioCurvePerLocomotionSpeedRatio.GetRichCurveConst())
151 {
152 return FMath::Max(AnimSpeedRatioRichCurve->Eval(SafeNormalizedSpeedRatio, 1.0f), 0.0f);
153 }
154 else
155 {
156 return 1.0f;
157 }
158}
이 함수를 호출하는 함수들에 대한 그래프입니다.:

◆ EvaluateLocomotionBlendRatioCurve()

float UPlayerAnimInstance::EvaluateLocomotionBlendRatioCurve ( float  NormalizedSpeedRatio) const
protected
126{
127 const float SafeNormalizedSpeedRatio = FMath::Clamp(NormalizedSpeedRatio, 0.0f, 1.0f);
128
129 if (const FRichCurve* LocomotionBlendRichCurve = LocomotionBlendRatioCurve.GetRichCurveConst())
130 {
131 return FMath::Max(LocomotionBlendRichCurve->Eval(SafeNormalizedSpeedRatio, SafeNormalizedSpeedRatio), 0.0f);
132 }
133 else
134 {
135 return SafeNormalizedSpeedRatio;
136 }
137}
이 함수를 호출하는 함수들에 대한 그래프입니다.:

◆ NativeBeginPlay()

void UPlayerAnimInstance::NativeBeginPlay ( )
overrideprotectedvirtual

UCharacterAnimInstance(으)로부터 재구현되었습니다.

34{
35 Super::NativeBeginPlay();
36
38}
void CachePlayerMovement()
Definition PlayerAnimInstance.cpp:41
이 함수 내부에서 호출하는 함수들에 대한 그래프입니다.:

◆ NativeInitializeAnimation()

void UPlayerAnimInstance::NativeInitializeAnimation ( )
overrideprotectedvirtual

UCharacterAnimInstance(으)로부터 재구현되었습니다.

26{
27 Super::NativeInitializeAnimation();
28
30}
이 함수 내부에서 호출하는 함수들에 대한 그래프입니다.:

◆ NativeUpdateAnimation()

void UPlayerAnimInstance::NativeUpdateAnimation ( float  DeltaSeconds)
overrideprotectedvirtual

UCharacterAnimInstance(으)로부터 재구현되었습니다.

62{
63 Super::NativeUpdateAnimation(DeltaSeconds);
64
65 if (CachedPlayerMovement == nullptr)
66 {
67 return;
68 }
69
70 LeanAngle = CachedPlayerMovement->GetLeanAngle();
71}
float LeanAngle
Definition PlayerAnimInstance.h:55

◆ OnAttackIdleTagChanged()

void UPlayerAnimInstance::OnAttackIdleTagChanged ( const FGameplayTag  Tag,
int32  NewCount 
)
protected
55{
56 bIsAttackIdle = (NewCount > 0);
57 LOG_INFO(LogCK, "%s", bIsAttackIdle ? TEXT("O") : TEXT("X")); //아오키지
58}
#define LOG_INFO(Category, Format,...)
Definition CK_UE.h:38
bool bIsAttackIdle
Definition PlayerAnimInstance.h:52
이 함수를 호출하는 함수들에 대한 그래프입니다.:

◆ TryBindTagEvent()

void UPlayerAnimInstance::TryBindTagEvent ( )
overrideprotectedvirtual

UCharacterAnimInstance(으)로부터 재구현되었습니다.

90{
91 Super::TryBindTagEvent();
92
93 if (AttackIdleTagEventHandle.IsValid())
94 {
95 return;
96 }
97
98 FOnGameplayEffectTagCountChanged& Event = CachedASC->RegisterGameplayTagEvent(TAG_CHARACTER_STATE_COMBAT_ATTACKIDLE, EGameplayTagEventType::NewOrRemoved);
100 bIsAttackIdle = CachedASC->HasMatchingGameplayTag(TAG_CHARACTER_STATE_COMBAT_ATTACKIDLE);
101}
TObjectPtr< UAbilitySystemComponent > CachedASC
Definition CharacterAnimInstance.h:70
FDelegateHandle AttackIdleTagEventHandle
Definition PlayerAnimInstance.h:58
void OnAttackIdleTagChanged(const FGameplayTag Tag, int32 NewCount)
Definition PlayerAnimInstance.cpp:54
이 함수 내부에서 호출하는 함수들에 대한 그래프입니다.:

◆ TryRemoveTagEvent()

void UPlayerAnimInstance::TryRemoveTagEvent ( )
overrideprotectedvirtual

UCharacterAnimInstance(으)로부터 재구현되었습니다.

105{
106 Super::TryRemoveTagEvent();
107
108 if (AttackIdleTagEventHandle.IsValid() == false)
109 {
110 return;
111 }
112
113 FOnGameplayEffectTagCountChanged& Event = CachedASC->RegisterGameplayTagEvent(TAG_CHARACTER_STATE_COMBAT_ATTACKIDLE, EGameplayTagEventType::NewOrRemoved);
114 Event.Remove(AttackIdleTagEventHandle);
116}

◆ UpdateAnimation()

bool UPlayerAnimInstance::UpdateAnimation ( float  DeltaSeconds,
float  CurrentSpdOverride,
float  TargetSpdOverride 
)
overrideprotectedvirtual

UCharacterAnimInstance(으)로부터 재구현되었습니다.

75{
76 if (CachedPlayerMovement == nullptr)
77 {
78 return Super::UpdateAnimation(DeltaSeconds, CurrentSpdOverride, TargetSpdOverride);
79 }
80
81 const float CurrentMovementSpeed = CachedPlayerMovement->GetCurrentMovementSpeed();
82 const float RunSpeed = CachedPlayerMovement->GetRunSpeed();
83 const float TargetLocomotionBlendValue = CalculateLocomotionBlendValue(CurrentMovementSpeed, RunSpeed);
84 LocoAnimPlayRate = CalculateAnimPlayRate(CurrentMovementSpeed, RunSpeed);
85 return Super::UpdateAnimation(DeltaSeconds, CurrentMovementSpeed, TargetLocomotionBlendValue);
86}
float LocoAnimPlayRate
Definition PlayerAnimInstance.h:45
float CalculateLocomotionBlendValue(float CurrentMovementSpeed, float RunSpeed) const
Definition PlayerAnimInstance.cpp:119
float CalculateAnimPlayRate(float CurrentMovementSpeed, float RunSpeed) const
Definition PlayerAnimInstance.cpp:140
이 함수 내부에서 호출하는 함수들에 대한 그래프입니다.:

멤버 데이터 문서화

◆ AnimSpeedRatioCurvePerLocomotionSpeedRatio

FRuntimeFloatCurve UPlayerAnimInstance::AnimSpeedRatioCurvePerLocomotionSpeedRatio
protected

X축의 정규화된 실제 속도 배율(0~1)을 Y축의 애니메이션 재생속도 배율로 변환한다.

◆ AttackIdleTagEventHandle

FDelegateHandle UPlayerAnimInstance::AttackIdleTagEventHandle
protected

◆ bIsAttackIdle

bool UPlayerAnimInstance::bIsAttackIdle = false
protected

◆ CachedPlayerMovement

TObjectPtr<UPlayerMovementComponent> UPlayerAnimInstance::CachedPlayerMovement
private

◆ LeanAngle

float UPlayerAnimInstance::LeanAngle = 0.0f
protected

◆ LocoAnimPlayRate

float UPlayerAnimInstance::LocoAnimPlayRate = 1.0f
protected

◆ LocomotionBlendRatioCurve

FRuntimeFloatCurve UPlayerAnimInstance::LocomotionBlendRatioCurve
protected

X축의 정규화된 실제 속도 배율(0~1)을 Y축의 Locomotion Blend 파라미터 배율(0~n)로 변환한다.


이 클래스에 대한 문서화 페이지는 다음의 파일들로부터 생성되었습니다.: