26.06.17 TIL

김민준
∙∙조회 9

GAS 2일차
김민준

Gameplay Ability(GA)

Ability - 캐릭터가 수행할 수 있는 행동 ex) Attack, Dash, Jump, Roll, Interact.....

1.) GAS방식으로 행동을 분리하면

  • 행동을 Ability 클래스로 분리 할 수 있다

  • ASC가 실행과 관리를 담당해준다

  • Ability를 재사용 할 수 있다 (다른 캐릭터에)

실행 흐름

Input -> ASC -> AbilitySpec -> ActivateAbility -> EndAbility(꼭 있어야함)

 

2.) Ability 적용 시키는 법

플레이어 블루프린트의 Class Defaults에서 Initial Abilities 에 만든 Ability를 대입

그리고 블루프린트에 Right Mouse Button -> Try Activate Ability by Class 연결(Target is Ability System Component)

 

3.애니메이션 FullBody로 설정하기

모션이 중요한 부분에는 FullBody를 켜서 다른 행동과 충돌이 나지 않게 설정하기

->Anim에서 Curve(FullBody)를 추가

->Curve에서 FullBody의 값에 따라

->애니메이션 블루프린트의 EventGraph에서

FullBody또는 FullBody가 아닌 애니메이션으로 설정(Get Curve Value -> Set FullBody)

plain text
즉, 원하는 부분만 FullBody로 재생하고 나머지를 UpperBody 애니메이션으로 재생하는 방법임

 

4.애니메이션 몽타주 섹션

Montage Section Loop -> 애니메이션이 끝나고 끝난 모습 그대로 고정시킬 수 있음

Montage Section End -> PlayMontageAndWait에서 StartSection노드를 End로 설정하면 그 부분 부터 재생

 

5.AN_TagSend

애니메이션 재생

-> AnimNotify 실행

-> 현재 애니메이션을 재생하는 Actor 찾기

-> GamePlay Event (Tag)를 Actor에게 전송

-> Ability가 해당 Tag를 받고 다음 동작 실행

 

6.PlayMontageAndWait

몽타주를 재생하고 끝날 때까지 기다리면서, 중간에 발생하는 이벤트(Notify, Cancel, Interrupt 등)을 Ability에 전달하는 노드

Ability 실행
│
▼
Play Montage and Wait
│
├── On Blend Out
├── On Completed
├── On Interrupted
├── On Cancelled
└── Event Received

애니메이션이 진행되는 동안 발생하는 상황을 Ability가 모두 받아 볼 수 있다.