언리얼 엔진 - 게임 프로젝트/GAS 프레임워크 RPG 프로젝트

AbilityTasks - 3) 클릭한 대상을 향해 투사체와 캐릭터의 방향 일치시키기

monstro 2025. 8. 17. 19:42
728x90
반응형

- 개요

Motion Warping 플러그인을 사용하면 캐릭터의 루트 모션타깃과 일치하도록 변경할 수 있다

따라서 해당 플러그인을 사용하여 클릭한 타깃과 캐릭터를 일치시킨다

또 로직을 추가하여 캐릭터가 shift를 누르고 있는 상황이라면 이동하지 않도록 설정한다

 

 

우선, 위와 같이 Motion Warping 플러그인을 활성화하였다

 

1) AuraProjectileSpell 클래스

 

SpawnProjectile 함수FVector의 인자를 추가하여 생성한 투사체의 Rotation을 설정한다

 

 

Vector로부터 적용할 Rotation을 가져와 생성하고, 생성한 Rotation의 높이0으로 설정한다

이후 생성한 투사체의 Transform의 Rotation위에서 설정한 값으로 적용한다

 

2) AuraCharacterBase 클래스

 

캐릭터의 캡슐컴포넌트와 메쉬에 대해 카메라의 충돌무시하도록 설정한다

 

3) AuraPlayerController 클래스

 

Shift 키를 누르는 경우 수행할 InputAction의 멤버변수를 추가한다

 

 

Shift 키를 누르거나, 떼는 경우 수행할 콜백 함수들을 추가하고

Shift 키의 입력에 따라 설정할 불리언 멤버 변수를 추가한다

 

 

SetupInputComponent 함수에서 InputAction의 입력에 따라 수행할 콜백함수를 바인드한다

  • 키를 누르는 경우 수행 : ShiftPressed 함수
  • 키를 눌렀다 떼는 경우 수행 : ShiftReleased 함수

 

 

AbilityInputTagReleased 함수의 조건을 위와 같이 변경한다

타겟팅을 하고 있지 않거나, shift 키를 누르고 있지 않은 경우 왼쪽 마우스 키를 눌렀다 뗀 지점으로 이동한다

 

 

AbilityInputTagHeld 함수의 조건을 위와 같이 변경하였다

타겟팅을 하고 있거나, ShiftKey를 누르고 있는 경우 ASC로부터 키를 누르고 있는 경우의 어빌리티를 발동한다

 

4) CombatInterface 인터페이스

 

CombatInterface의 함수블루 프린트에서 오버라이드할 수 있도록 BlueprintType 어트리뷰트를 추가한다

그리고 UpdateFacingTarget 함수를 추가하여 해당 함수를 통해 Motion Warping할 수 있도록 설정한다

 

5) 언리얼 에디터

5 - 1) 애니메이션 몽타주

Motion Warping 설정 (1)

 

Motion Warping 설정 (2)

 

애니메이션 몽타주에서 Notify State - Motion Warping을 추가하고 위와 같이 설정한다

 

5 - 2) BP_PlayerController 블루 프린트

 

위와 같이 Shift Action을 설정한다

 

5 - 3) BP_AuraCharacter 블루 프린트

Motion Warping 컴포넌트 추가

 

UpdateFacingTarget 함수 오버라이드

 

MotionWarping 컴포넌트를 추가한다

추가한 후에, UpdateFacingTarget 함수를 위와 같이 오버라이드한다

이때 애니메이션 몽타주에서 설정한 Warp Target Name동일하게 사용해야 한다

 

5 - 4) GA_FireBolt 블루 프린트

ActivateAbility 함수의 첫 번째 과정

 

ActivateAbility 함수의 두 번째 과정

 

ActivateAbility 함수의 세 번째 과정

 

위와 같이 로직을 구성하였다

  • 첫 번째 과정 : AbilityTask를 사용하여 어빌리티의 타겟 데이터를 가져온다
  • 두 번째 과정 : 가져온 타겟 데이터를 바탕으로 Motion Warping을 수행한다
  • 세 번째 과정 : 애니메이션 몽타주를 재생한 후에 어빌리티를 수행한다

 

- 최종 실행 결과

 

728x90
반응형