카테고리 없음

gas 시스템 실습

alwaysyoung2 2025. 5. 8. 23:57
728x90
반응형

언리얼 프로젝트를 하나 만들어줍니다.

템플릿은 FirstPerson으로 해주겠습니다.이번 실습은 블루프린트로 진행할 것이기 때문에 블루프린트기반으로 만들어줍니다.

 

먼저 프로젝트 셋업을 해주겠습니다.

해당 플러그인을 연결한 후 에디터를 재시작합니다.

 

그리고 새로운 블루프린트를 만들어줍니다 부모클래스는

gameplayability로 해줍니다. 이름은 GA_shootRifle 로 해주겠습니다

이제 원래 있던

이 블루프린트에서 EnhancedInputAction IA_Shoot에 있는 로직을 전부 만들었던 GA에 옮겨주겠습니다.

블루프린트도 좀 추가해주겠습니다.

 

추가된 내용은 다음 역할을 합니다. 그뒤 코멘트에 있는 로직은 옮긴 로직입니다.

  • 이 Ability를 사용하는 캐릭터를 찾아서,
  • 그 캐릭터에 포함된 특정 무기 컴포넌트를 참조하고,
  • 이후 해당 컴포넌트를 활용하여 기능을 실행 

 

옮겨온 로직의 마지막에는 End Ability를 연결해줍니다. 말그대로 주어진 능력이 끝난다는 의미입니다.

 

  • EndAbility를 호출하지 않으면 능력이 계속 활성 상태로 남아있어서, 쿨다운이 적용되지 않거나 리소스를 계속 사용할 수 있습니다.
  • AbilityTask를 쓰면 자동으로 종료되는 경우도 있지만, 직접 호출하는 습관이 좋습니다.

 

이제 BP_FirstPersonCharacter 로 들어가서 블루프린트를 추가해주겠습니다.

 

다음과 같은 노드들을 추가해줍니다. 캐릭터에게 ability 를 부여해주는 노드입니다.  class는 아까  만든 ga로 해주겠습니다.

 

당연하게도 캐릭터의 컴포넌트에는

다음과 같이 abilitysystem을 추가해주어야합니다.

 

이제 BP_Weapon_Component 로 들어줍니다.

 

아까 우리가 옮겻던 로직의 빈자리를 다음과 같이 채워줍니다.

 

 

이때 make literal gameplay tag container에 있는 value 는 무엇인지 의문이 드실겁니다. 제가 이전에 태그를 만들어두었기때문입니다.

 

태그를 만드는 방법은 다음과 같습니다.

 

프로젝트세팅에 들어가 gameplaytags에 들어가시면 manage gameplay tags라는 버튼이 있습니다.

이를 누르고 +버튼을 누르면

다음과 같은 창이 뜹니다 여기서 tag를 추가해줍니다.(ex.weapon.Primary)

태그로 하여금 Ability , effect , cue등 을 서로 연결해주는 것입니다.

그럼 weapon.Primary은 왜 저기잇냐? 우리가 만든 GA에 연결해주기 위해서입니다.

그렇기 위해선 GA의 디테일창에서도 tag를  weapon.Primary 로 설정해주어야합니다.

가장 위에 있는것이 가장 이 클래스의 기본 능력이고 나머지는 이 능력이 있을땐 다른 능력을 비활성화한다던가 하는 기능이 존재합니다. 이번실습에선 따로 나머지는 설정하지 않겟습니다.

 

이제 Gameplay Effect를 부모로 하여 블루프린트를 하나 더 만들어줍니다.

똑같이 태그도 아까와 같은 방식으로 하나 만들어줍니다 effect를 위하여...

effect를 사실상 지금 실습은 cue를 사용하기위한 수단일 뿐이므로 따로 데미지가 작용한다거나 하지않으므로 태그말곤 설정해줄 건 없습니다.

연결되어있는 cue는 이미 태그가 되어있음을 볼수 있습니다. 제가 미리 만들어놨기 때문입니다.

똑같이 cue도 만들어준 뒤 tag도 추가해주시면 됩니다.

하지만 우리가 cue가 작용되고 있다는걸 눈으로 보여야하기에 나이아가라 시스템 추가해주어 티가 날수있게 해줍니다.

 

이제 태그가 완료되었습니다.

하지만 아무거나 쏜다고 해서 되진않습니다. 약간의 수정이 필요합니다

 

공에 닿을때 effect를 불러내야합니다.

BP_FirstPersonProjectile로직을 다음과 같이 수정해줍니다.

 

이제  블루프린트 액터를 아무거나 만들어줘 매쉬를 달고 어빌리티 시스템도 달아줍니다.

어빌리티시스템이 달려잇는아이들끼리 상호작용하기때문입니다,.

 

이제 게임을 시작하면

 

 

간단한 실습을 통해 gas시스템에 대해 간략하게 알아보았습니다

 

728x90
반응형