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

#include <CharacterAnimInstance.h>

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

Public 멤버 함수

 UCharacterAnimInstance ()
 

Protected 멤버 함수

virtual void NativeInitializeAnimation () override
 
virtual void NativeBeginPlay () override
 
virtual void NativeUninitializeAnimation () override
 
virtual void NativeUpdateAnimation (float DeltaSeconds) override
 
virtual bool UpdateAnimation (float DeltaSeconds, float CurrentSpdOverride, float TargetSpdOverride)
 
virtual void TryBindTagEvent ()
 
virtual void TryRemoveTagEvent ()
 
void CacheOwnerReferences ()
 
void OnAbilitySystemReady (UAbilitySystemComponent *InASC)
 
void OnChargingTagChanged (const FGameplayTag Tag, int32 NewCount)
 

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 속성

FDelegateHandle ChargingTagEventHandle
 
FDelegateHandle ASCReadyHandle
 

생성자 & 소멸자 문서화

◆ UCharacterAnimInstance()

UCharacterAnimInstance::UCharacterAnimInstance ( )
14{
15 Direction = 0.0f;
16 bIsCharging = false;
17 AnimInterpSpeed = 5.0f;
18 DirInterpSpeed = 10.0f;
19}
float AnimInterpSpeed
Definition CharacterAnimInstance.h:63
float Direction
Definition CharacterAnimInstance.h:51
float DirInterpSpeed
Definition CharacterAnimInstance.h:60
uint8 bIsCharging
Definition CharacterAnimInstance.h:57

멤버 함수 문서화

◆ CacheOwnerReferences()

void UCharacterAnimInstance::CacheOwnerReferences ( )
protected
106{
107 Owner = Cast<ACharacter>(GetOwningActor());
108 Movement = nullptr;
109
110 if (IsValid(Owner) == false)
111 {
112 return;
113 }
114
115 Movement = Owner->GetCharacterMovement();
116
117 if (IsValid(CachedASC))
118 {
119 return;
120 }
121
122 CachedASC = UAbilitySystemBlueprintLibrary::GetAbilitySystemComponent(Owner);
123
124 if (CachedASC)
125 {
126 return;
127 }
128
129 // 플레이어 ASC는 PlayerState 소유라 PossessedBy 전까지 nullptr이다. 준비되면 통지받아 바인딩한다.
130 ACharacterBase* CharacterOwner = Cast<ACharacterBase>(Owner);
131
132 if (CharacterOwner && ASCReadyHandle.IsValid() == false)
133 {
135 }
136}
Definition CharacterBase.h:21
FORCEINLINE FOnAbilitySystemReady & GetOnAbilitySystemReady()
Definition CharacterBase.h:41
TObjectPtr< UAbilitySystemComponent > CachedASC
Definition CharacterAnimInstance.h:70
TObjectPtr< UCharacterMovementComponent > Movement
Definition CharacterAnimInstance.h:45
TObjectPtr< ACharacter > Owner
Definition CharacterAnimInstance.h:42
void OnAbilitySystemReady(UAbilitySystemComponent *InASC)
Definition CharacterAnimInstance.cpp:139
FDelegateHandle ASCReadyHandle
Definition CharacterAnimInstance.h:74
이 함수 내부에서 호출하는 함수들에 대한 그래프입니다.:
이 함수를 호출하는 함수들에 대한 그래프입니다.:

◆ NativeBeginPlay()

void UCharacterAnimInstance::NativeBeginPlay ( )
overrideprotectedvirtual

UPlayerAnimInstance에서 재구현되었습니다.

36{
37 Super::NativeBeginPlay();
38
40
41 if (CachedASC)
42 {
44 }
45}
virtual void TryBindTagEvent()
Definition CharacterAnimInstance.cpp:162
void CacheOwnerReferences()
Definition CharacterAnimInstance.cpp:105
이 함수 내부에서 호출하는 함수들에 대한 그래프입니다.:

◆ NativeInitializeAnimation()

void UCharacterAnimInstance::NativeInitializeAnimation ( )
overrideprotectedvirtual

UPlayerAnimInstance에서 재구현되었습니다.

23{
24 Super::NativeInitializeAnimation();
25
27
28 if (CachedASC)
29 {
31 }
32}
이 함수 내부에서 호출하는 함수들에 대한 그래프입니다.:

◆ NativeUninitializeAnimation()

void UCharacterAnimInstance::NativeUninitializeAnimation ( )
overrideprotectedvirtual
49{
50 Super::NativeUninitializeAnimation();
51
52 if (CachedASC)
53 {
55 }
56
57 if (ASCReadyHandle.IsValid())
58 {
59 if (ACharacterBase* CharacterOwner = Cast<ACharacterBase>(Owner))
60 {
61 CharacterOwner->GetOnAbilitySystemReady().Remove(ASCReadyHandle);
62 }
63
64 ASCReadyHandle.Reset();
65 }
66
67 CachedASC = nullptr;
68}
virtual void TryRemoveTagEvent()
Definition CharacterAnimInstance.cpp:175
이 함수 내부에서 호출하는 함수들에 대한 그래프입니다.:

◆ NativeUpdateAnimation()

void UCharacterAnimInstance::NativeUpdateAnimation ( float  DeltaSeconds)
overrideprotectedvirtual

UPlayerAnimInstance에서 재구현되었습니다.

72{
73 Super::NativeUpdateAnimation(DeltaSeconds);
74
75 if (Movement == nullptr || Owner == nullptr)
76 {
77 return;
78 }
79
80 const float MovementSpeed = Movement->Velocity.Size2D();
81 bIsIdle = UpdateAnimation(DeltaSeconds, MovementSpeed, MovementSpeed);
82}
virtual bool UpdateAnimation(float DeltaSeconds, float CurrentSpdOverride, float TargetSpdOverride)
Definition CharacterAnimInstance.cpp:85
uint8 bIsIdle
Definition CharacterAnimInstance.h:54
이 함수 내부에서 호출하는 함수들에 대한 그래프입니다.:

◆ OnAbilitySystemReady()

void UCharacterAnimInstance::OnAbilitySystemReady ( UAbilitySystemComponent *  InASC)
protected
140{
141 if (InASC == nullptr || InASC == CachedASC)
142 {
143 return;
144 }
145
146 if (CachedASC)
147 {
149 }
150
151 CachedASC = InASC;
153}
이 함수 내부에서 호출하는 함수들에 대한 그래프입니다.:
이 함수를 호출하는 함수들에 대한 그래프입니다.:

◆ OnChargingTagChanged()

void UCharacterAnimInstance::OnChargingTagChanged ( const FGameplayTag  Tag,
int32  NewCount 
)
protected
157{
158 bIsCharging = (NewCount > 0);
159}
이 함수를 호출하는 함수들에 대한 그래프입니다.:

◆ TryBindTagEvent()

void UCharacterAnimInstance::TryBindTagEvent ( )
protectedvirtual

UPlayerAnimInstance에서 재구현되었습니다.

163{
164 if (ChargingTagEventHandle.IsValid())
165 {
166 return;
167 }
168
169 FOnGameplayEffectTagCountChanged& Event = CachedASC->RegisterGameplayTagEvent(TAG_CHARACTER_STATE_COMBAT_ISCHARGING, EGameplayTagEventType::NewOrRemoved);
171 bIsCharging = CachedASC->HasMatchingGameplayTag(TAG_CHARACTER_STATE_COMBAT_ISCHARGING);
172}
void OnChargingTagChanged(const FGameplayTag Tag, int32 NewCount)
Definition CharacterAnimInstance.cpp:156
FDelegateHandle ChargingTagEventHandle
Definition CharacterAnimInstance.h:73
이 함수 내부에서 호출하는 함수들에 대한 그래프입니다.:
이 함수를 호출하는 함수들에 대한 그래프입니다.:

◆ TryRemoveTagEvent()

void UCharacterAnimInstance::TryRemoveTagEvent ( )
protectedvirtual

UPlayerAnimInstance에서 재구현되었습니다.

176{
177 if (ChargingTagEventHandle.IsValid() == false)
178 {
179 return;
180 }
181
182 FOnGameplayEffectTagCountChanged& Event = CachedASC->RegisterGameplayTagEvent(TAG_CHARACTER_STATE_COMBAT_ISCHARGING, EGameplayTagEventType::NewOrRemoved);
183 Event.Remove(ChargingTagEventHandle);
185}
이 함수를 호출하는 함수들에 대한 그래프입니다.:

◆ UpdateAnimation()

bool UCharacterAnimInstance::UpdateAnimation ( float  DeltaSeconds,
float  CurrentSpdOverride,
float  TargetSpdOverride 
)
protectedvirtual

UPlayerAnimInstance에서 재구현되었습니다.

86{
87 const float SafeIdleSpeedThreshold = FMath::Max(IdleSpeedThreshold, KINDA_SMALL_NUMBER);
88 const float Result = FMath::FInterpTo(CurrentSpeed, TargetSpdOverride, DeltaSeconds, AnimInterpSpeed);
89
90 if (CurrentSpdOverride > SafeIdleSpeedThreshold)
91 {
92 const float TargetDirection = UKismetAnimationLibrary::CalculateDirection(Movement->Velocity, Owner->GetActorRotation());
93
94 const FRotator CurrentRotation(0.0f, Direction, 0.0f);
95 const FRotator TargetRotation(0.0f, TargetDirection, 0.0f);
96
97 Direction = FMath::RInterpTo(CurrentRotation, TargetRotation,DeltaSeconds, DirInterpSpeed).Yaw;
98 }
99
100 CurrentSpeed = Result;
101 return CurrentSpdOverride < SafeIdleSpeedThreshold;
102}
float IdleSpeedThreshold
Definition CharacterAnimInstance.h:66
float CurrentSpeed
Definition CharacterAnimInstance.h:48
이 함수를 호출하는 함수들에 대한 그래프입니다.:

멤버 데이터 문서화

◆ AnimInterpSpeed

float UCharacterAnimInstance::AnimInterpSpeed = 0.0f
protected

◆ ASCReadyHandle

FDelegateHandle UCharacterAnimInstance::ASCReadyHandle
private

◆ bIsCharging

uint8 UCharacterAnimInstance::bIsCharging
protected

◆ bIsIdle

uint8 UCharacterAnimInstance::bIsIdle
protected

◆ CachedASC

TObjectPtr<UAbilitySystemComponent> UCharacterAnimInstance::CachedASC
protected

◆ ChargingTagEventHandle

FDelegateHandle UCharacterAnimInstance::ChargingTagEventHandle
private

◆ CurrentSpeed

float UCharacterAnimInstance::CurrentSpeed = 0.0f
protected

◆ Direction

float UCharacterAnimInstance::Direction = 0.0f
protected

◆ DirInterpSpeed

float UCharacterAnimInstance::DirInterpSpeed = 0.0f
protected

◆ IdleSpeedThreshold

float UCharacterAnimInstance::IdleSpeedThreshold = 1.0f
protected

◆ Movement

TObjectPtr<UCharacterMovementComponent> UCharacterAnimInstance::Movement
protected

◆ Owner

TObjectPtr<ACharacter> UCharacterAnimInstance::Owner
protected

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