https://www.youtube.com/watch?v=RrMQy9pGF-k
https://www.youtube.com/watch?v=AtHa_sEW5Ss&list=PLNTm9yU0zou7XnRx5MfBbZnfMZJqC6ixz
4. Unreal Engine 5 C++ | Gameplay Ability System - Step by Step
https://www.youtube.com/watch?v=L-3ifQRpyB4
2번째 Action RGp With 를 우선 따라했다. 블루프린트로만 이루워진것 같다.
우선 Unreal V5.3으로 ThirdPerson Templete를 만들고
플러그인으로 GameAbility추가
우클릭으로 Gameplay>Gameplay Ability Blueprint선택
print 노드 추가
메시모드에서 간단히 칼을 만들자.
# 위에서 만든 메시를 그대로 사용하면 플레이어에 어태치했을경우 플레이어의 움직이는 방향이 좀 이상했다.
따라서 위에서 만든 액터의 피봇이 손잡에 정도로 배치한후, FBX로 export후 이름을 변경하고 다시 import시 skeleton으로 지정해서 import하자 그러면 문제가 없었다.
Actor로 BP_Sword만들고 메시를 루트밑에 넣어준다.
매니에 Spine02밑에 소켓을 만들고 프리뷰로 방금만든 Sword를 지정하고
위치를 잡아준다
결국 가타나 메시를 구했다. 임포트할테 스켈레톤메시로 지정해줘야하고 스케일은 0.1로 했다.
블루프린트인터페이스를 하나 만들자
BP_ThirdPerson으로 ClassSettings를 선택 오른쪽 Interface에서 BPI등록하고 왼쪽 컴포넌트아래 CollectWepon더블클릭
GetActorInfo노드를 추가하고
Actor로 BP_Collectable 블프 작성,On Component Begin Overlap +
GiveAbility를 추가하고 AbilityClass에 GA_CollectWeapon을 지정하고 변수로 승격
BP_Sword의 메시를 카피해서 BP_Collectable DefaultRoot밑에 Paste해주자, skeleton의 경우 이름채로 카피된다.
플레이해서 검쪽으로 가면 허리체 칼을 차게 되는데 원래 칼이 안 없어진다. 다음과 같이 노드를 추가해 없애주겠다.
이번에는 칼을 2개 놓고 다가서면 겹쳐서 잘 보이지는 않지만 2개 다 어태치된다. 이걸 막기 위해 Tag를 우선 설정해야 한다.
이펙터도 만들어야 하는데 우클릭 Actor를 만들고 클래스를 GameplayEffect를 선택 이름을 GE_CollectSword로 선택 오른쪽 디테일에서 Target Tag Gameplay Effec Component선택후 Tag 설정
마지막으로 Class Defaults의 Costs Gameplay Effect에 GE_CollectSword를 지정
듀레이션과 기간도 지정해야 한다.
다시 GA_CollectSword에서 방금만든 이펙트를 지정하고
Event ActivateAbility에 노드를 추가해주면 Tag가 Activity되면 Block되는것 같다.
한번 검을 장착하면 다른건 블록된다.
'DXWave > GameplayAbility' 카테고리의 다른 글
게임플레이 어빌러티 시스템 Gameplay Ability System 개요 (0) | 2025.02.04 |
---|