GA_ | GameplayAbility |
GC_ | GameplayCue |
GE_ | GameplayEffect |
Demo Project 분석
총 발사
- 구성
1. BP_GunProjectile(총알)
2. GA_FireGun
3. GE_GunDamage
4. GC_FireGunImpact
세부 분석
BP_GunProjectile
- BeginPlay를 통하여 Actor의 수명을 결정 Set Life Span 함수 사용
총알의 Range와 초기 속도를 통하여 수명 결정
- On Component Begin Overlap을 Collision과 StaticMesh에 동시에 걸어 충돌을 확인(1차)
- 발사자와 충돌하는 것을 Branch를 통해 방지
- Switch Has Authority를 통하여 Server는 피격자가 플레이어(올바른 대상)인지 판단(아닌 경우 액터가 삭제)
Client는 액터를 삭제 (서버에서 충돌 판정을 검사하기 때문)
- 피격자가 올바른 대상인 경우 Ability System Component를 가져와 Is Valid를 통하여 검사를 함
- 총알 객체로 부터 피격자까지 Multi Line Trace를 통하여 피격된 대상들을 배열로 반환(Pawn클래스만 반환)
- For Each를 통하여 모든 대상 Actor를 대상으로 마지막 피격자를 검사
- Effect 정보를 가져오고 피격자에게 이펙트가 나오게 됨(서버에서 호출하면 클라이언트에도 이펙트가 소환됨)
모든 데이터는 GA_FireGun을 토대로 발생
Anim Montage, Projectile class, Game Effect(Gameplay Effect), Range, Damage 등 데이터 저장
능력에 대한 Ability ID 존재
각종 Tag를 지정해줘야함
Cost와 CoolDown에 대해서도 설정이 가능
GE_GunDamage
Gameplay Effect의 데미지 처리를 위하여 Executions에 데이터를 넣어 처리
Gameplay Cues를 통하여 FireGun Imapct를 설정
GamePlay Effect에 대해서
경과 시간
Cooldown 개발
Duration Policy : Has Duration
Duration Magnitude : 쿨타임 수치를 기입
GamePlay Effect에는 Components, Modifiers, Executions가 존재
Components :
Modifiers : 마나, 체력, 스테미나 소모 등
Executions :데미지에 대한 처리
'Unreal Engine 5 > MMORPG 개발' 카테고리의 다른 글
보스 몬스터 회전 (0) | 2024.04.21 |
---|---|
보스 Jump Attack 구현 (0) | 2024.04.20 |
GAS 보스 데미지 설계 (0) | 2024.04.13 |
스텟 설계 (0) | 2024.03.22 |
Boss Ai 구현 Behavior Tree (0) | 2024.03.21 |