void UMyAnimInstance::NativeUpdateAnimation(float DeltaSeconds) { Super::NativeUpdateAnimation(DeltaSeconds); const auto PawnOwner = TryGetPawnOwner(); if (nullptr != PawnOwner) { //!< スピード const auto Velocity = PawnOwner->GetVelocity(); Speed = Velocity.Size(); //!< 方向 Direction = (Velocity.Rotation() - PawnOwner->GetActorRotation()).Yaw; while (Direction < -180.0f) { Direction += 360.0f; } while (Direction > 180.0f) { Direction -= 360.0f; } //!< 落下 const auto MovementComp = PawnOwner->GetMovementComponent(); if (nullptr != MovementComp) { IsFalling = MovementComp->IsFalling(); } } }
void UARPG_Character_AnimInstance::NativeInitializeAnimation() { //very inportant line Super::NativeInitializeAnimation(); //Try to get Pawn Owner for tick use OwningPawn = Cast<ARPG_ProjectCharacter>(TryGetPawnOwner()); }
void UMyAnimInstance::NativeUpdateAnimation(float DeltaSeconds) { Super::NativeUpdateAnimation(DeltaSeconds); APawn* OwningPawn = TryGetPawnOwner(); if (OwningPawn) { Speed = OwningPawn->GetVelocity().Size(); } }
void UMyAnimInstance::NativeUpdateAnimation(float DeltaSeconds) { Super::NativeUpdateAnimation(DeltaSeconds); ACharacter* OwningPawn = Cast<ACharacter>(TryGetPawnOwner()); //const auto MovementComp = OwningPawn->GetMovementComponent(); if (OwningPawn) { Speed = OwningPawn->GetVelocity().Size(); Jump = OwningPawn->GetVelocity().Z; isFlying = OwningPawn->CharacterMovement->IsFalling(); } }
void UAnimInstance::UnlockAIResources(bool bUnlockMovement, bool UnlockAILogic) { APawn* PawnOwner = TryGetPawnOwner(); if (PawnOwner) { AAIController* OwningAI = Cast<AAIController>(PawnOwner->Controller); if( OwningAI ) { if (bUnlockMovement && OwningAI->PathFollowingComponent) { OwningAI->PathFollowingComponent->ClearResourceLock(EAILockSource::Animation); } if (UnlockAILogic && OwningAI->BrainComponent) { OwningAI->BrainComponent->ClearResourceLock(EAILockSource::Animation); } } } }
void UBaseEnemyAnimInstance::UpdatePawnSpeed() { APawn* Pawn = TryGetPawnOwner(); if (Pawn) CharacterSpeed = Pawn->GetVelocity().Size(); }