언리얼 엔진5 Advanced - 어트리뷰트와 UI 연동

타입·2025년 4월 18일
0

언리얼 강의

목록 보기
45/47

신규 기능 기획

현재 체력 퍼센티지를 표시해주는 체력바 UI 추가
체력이 떨어지면 죽는 기능의 구현
발동 기간동안 들어오는 대미지를 모두 무효화하는 무적 버프의 구현
공격 명중 시 공격 반경이 넓어지는, 최대 4단계까지 중첩되는 버프의 구현

기간형 게임플레이 이펙트

Intant 타입이 아닌 게임플레이 이펙트
Duration: 지정한 시간 동안 동작하는 게임플레이 이펙트
Infinite: 명시적으로 종료하지 않으면 계속 동작하는 게임플레이 이펙트

Intant 타입은 한 프레임에 종료되기 때문에 상태를 가질 수 없음

기간형 게임플레이 이펙트는 유효 기간동안 태그와 같은 상태를 가질 수 있음

기간형 게임플레이 이펙트는 중첩(Stack)이 가능하도록 설정이 가능함

모디파이어를 설정하지 않아도 다양하게 활용 가능함

인스턴트는 Base 값을 변경하지만, 기간형은 (상태를 가질 수 있기에) Current 값을 변경하고 원래대로 돌려놓음

기간형 게임 이펙트만 잘 활용하면,
다양한 종류의 스킬, 버프 효과를 코딩 없이 구현하는 것이 가능

UE5.5 버전에선 GE에 "Tags" 카테고리가 존재하지 않습니다.
GrantedTags를 설정하기 위해선 컴포넌트에서 "타깃 액터에 태그 부여"를 지정해주면 됩니다.

실습코드

https://github.com/dnjfs/ArenaBattle_GAS/commit/1a669bd8eb76f8d4bbdefad0e7231aa56a4aac3c

  • HP바 구현
    유저 위젯에서 오너의 ASC를 갖도록 설정
    어트리뷰트 값이 변경되었을 때 발동되는 델리게이트에 함수 바인딩
    체력이 변경될 때 HP바가 업데이트 되도록 처리
    캐릭터와 NPC에 HP바 생성

  • 사망 처리
    어트리뷰트에서 HP가 0이 되면 델리게이트 발동
    IsDead 태그도 직접 지정

  • 무적 상태 구현
    어트리뷰트에서 데미지 GE 적용 전에 Invinsible 태그 소유 검사
    게임 시작 시 NPC 캐릭터는 3초 후 무적 GA 발동하여 무적 GE 적용
    무적 상태일 땐 들어오는 데미지가 0이 되도록 변경

  • 공격 범위 증가 버프 구현
    공격 적중 시 AttackRadius가 증가하는 버프 GE 발동
    2초간 유지되도록 Duration 세팅

profile
주니어 언리얼 프로그래머

0개의 댓글