반응형

전체 글 142

언리얼 엔진 플레이어 체력 경고 UI 구현 - HP 20% 이하일 때 Widget과 사운드 출력

RPG, FPS, TPS 같은 장르에서는 플레이어 체력이 낮아졌을 때 위험 상태를 직관적으로 알려주는 연출이 자주 사용된다.단순히 수치만 줄어드는 것보다, 화면 경고 UI와 사운드가 함께 출력되면 플레이어가 현재 상태를 훨씬 빠르게 인식할 수 있다.이번에는 플레이어의 체력이 일정 수치 이하로 떨어졌을 때, 경고 Widget이 출력되고 심장박동 사운드가 재생되는 저체력 경고 시스템을 구현한 과정을 정리해보려고 한다.이번 구현의 조건은 아래와 같다.Player의 체력이 20% 이하로 떨어지면 경고 Widget 출력Widget이 표시되는 동안 심장박동 사운드 재생체력이 다시 20% 이상으로 회복되거나 사망하면 Widget과 사운드 제거이번 구현은 우선 빠르게 동작하는 결과를 만드는 것을 목표로 했기 때문에, ..

Ultimate Scan Effects and Screen Effects 추가 변동 사항

25.07.15 변동 사항Player와의 거리에 따라 가까울수록 높은 순위를 주기 위해, ST_ScannedEnemyData 생성BP_Scan_Player에서 위와 같이 Get Nearest Enemy 함수에서 Data 형식으로 반환하도록 하였고, 해당 Data에 있는 정보를 전달Scan할 때마다 Data 초기화도 시켜줌기존에 Out Actors 배열에 정보를 담고 반환했으나, 순위를 매기기 위해서 ST_ScannedEnemyData에 정보를 받고 반환하도록 수정함수 시작 시, ST_ScannedEnemyData 초기화BP_EnemyNormalBase에서 갖고 있던 Info Widget을 Scan 시, 생성한 Show Info Widget 함수를 통해 가시화되도록 설정기존에 EnemyNormalBase ..

Teleport 구현 추가 변동 사항

25.09.19 변동 사항기존 작업이 Player의 Abiltiy Grant 방식이 변경되면서 오류가 발생하게 되었다.급하게 수정해야했기에, GAS를 활용한 Teleport로 동작하는 것이 아닌 Teleport Scroll Button의 WBP에서 아래와 같이 노드를 연결해줘서 임시로 작동하도록 수정하였다.Teleport Scroll Button을 누르면 다른 Level에서도 특정 Level의 지정된 위치로 순간이동 시켜야한다.그래서 현재 Player가 있는 Level이 Teleport Scroll Button으로 이동되는 Level과 같은 Level인지 비교해준 뒤, 지정된 위치로 순간이동이 되도록 해주었다.그리고 IsTeleporting이라는 변수를 통해 Teleport Scroll Button을 ..

언리얼 엔진 GAS 텔레포트 구현 - UI 버튼으로 지정 위치 이동하기

게임 시작 시 연출용으로 만들어둔 Teleport 기능은, 구조만 잘 잡아두면 다른 시스템에도 충분히 재사용할 수 있다.이번에는 그 점을 활용해서, 기존에 GAS와 연동되어 있던 플레이어 등장용 Teleport 연출을 기반으로 Teleport Scroll 아이템 슬롯 버튼을 누르면 지정된 위치로 순간이동하는 기능을 구현했다.이번 구현에서 반영하고자 한 목표는 아래와 같았다.UI 버튼을 누르면 Teleport 발동Level에 자유롭게 배치할 수 있는 특정 지점으로 이동기존에 만들어둔 GA_Teleport, GA_EndTeleport 재사용새로운 목적지를 쉽게 추가할 수 있도록 확장성 확보단순히 버튼 하나와 좌표 하나를 직접 연결하는 방식으로도 구현은 가능하지만, 그렇게 만들면 목적지가 늘어날수록 관리가 빠..

언리얼 엔진 NPC 대화 UI 애니메이션 구현 - 열기, 닫기, 다음 대사 버튼 효과 추가

NPC 대화 UI는 단순히 텍스트만 출력하는 것보다, 등장과 종료 흐름이 자연스럽게 연결될 때 훨씬 완성도 있게 느껴진다.특히 플레이어가 대화창을 열고 닫는 순간, 그리고 다음 대사로 넘어갈 수 있는 버튼이 언제 눌릴 수 있는지를 시각적으로 잘 보여주면 UI 사용감이 확실히 좋아진다.이번에는 NPC 대화 UI가 열릴 때와 닫힐 때 애니메이션이 재생되도록 하고, 추가로 다음 대사 출력 버튼에도 반복 애니메이션을 넣어 플레이어가 상호작용 지점을 더 쉽게 인식할 수 있도록 작업한 내용을 정리해보려고 한다.이번 작업의 목표는 아래와 같았다.NPC 대화 UI가 열릴 때 애니메이션 재생NPC 대화 UI가 닫힐 때 애니메이션 재생다음 대사 출력 버튼에 시선 유도용 애니메이션 추가닫기 애니메이션이 끝난 뒤에만 UI 제..

언리얼 엔진 플레이어 사망 UI 구현 - 공격자 이름 표시와 경험치 페널티 계산

RPG에서 플레이어 사망은 단순히 캐릭터가 쓰러지는 연출로 끝나는 것이 아니라, 어떤 페널티를 주고 어떤 정보를 화면에 보여줄 것인지까지 함께 설계해야 하는 시스템이다.특히 사망 원인, 손실 자원, 복귀 흐름이 명확하게 전달되지 않으면 플레이어 입장에서는 왜 손해를 봤는지 체감하기 어렵다.이번에는 플레이어가 사망했을 때, 마지막 공격자의 이름이 표시되는 UI와 경험치 감소 페널티 시스템을 함께 구현한 과정을 정리해보려고 한다.이번 작업에서 반영한 목표는 아래와 같았다.Player 사망 시 마지막 공격자의 이름 표시사망 페널티로 잃게 되는 경험치량과 퍼센티지 계산 후 UI에 표시현재 레벨에서 가진 경험치가 페널티보다 부족하면 레벨을 차감하고 추가 경험치 차감1레벨 0% 구간에서는 더 이상 레벨이 내려가지 ..

ClassComponent 추가 변동 사항; 매개변수 추가

25.09.03 변동 사항ClassComponentBase에 있는 ClassChange 함수에 직업과 직업 차수를 가리키는 Gameplay Tag를 매개변수로 추가해주는 작업을 하였다.ClassChange 함수를 생성한지 꽤 돼서, Delegate를 통해 다른 클래스에서 전직 퀘스트라던가 계보 시스템에 사용되고 있었기에 찾아서 전부 수정해주었다.우선은 ClassChange 함수가 들어있는 ClassBaseComponent의 수정 사항이다.ClassBaseComponent1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071..

언리얼 엔진 스킬 해금 UI 구현 - 레벨업 시 신규 스킬 정보를 위젯에 표시하기

RPG에서 레벨업은 단순히 숫자가 올라가는 것보다, 그에 따라 어떤 스킬이 새롭게 열렸는지를 플레이어가 바로 알 수 있게 해주는 것이 중요하다.특히 이미 만들어둔 스킬 해금 위젯이 있다면, 이를 실제 레벨 시스템과 스킬 데이터에 연결해 “이 레벨에서 어떤 스킬이 새로 열렸는지”를 자연스럽게 보여줄 수 있어야 한다.지난 글에서는 신규 스킬 해금 시 출력되는 알림 Widget과 스킬창 메뉴 배지 시스템을 먼저 구현했다.이번 글에서는 그 구조를 바탕으로 플레이어의 레벨 시스템 및 스킬 데이터 테이블을 연동하여, 레벨업 시점에 맞춰 신규 스킬이 실제로 해금되고 해당 정보가 UI에 표시되는 흐름을 정리해보려고 한다.이전 글 보기[신규 스킬 해금 Widget과 스킬창 알림 배지 구현]이번 구현의 전체 흐름은 아래와..

언리얼 엔진 신규 스킬 해금 UI 구현 - 위젯 출력과 스킬창 알림 배지 만들기

RPG에서 새로운 스킬을 해금했을 때는, 단순히 내부 데이터만 바뀌는 것이 아니라 플레이어가 그 사실을 바로 인지할 수 있도록 시각적인 알림을 주는 것이 중요하다.특히 새 스킬이 열렸다는 팝업과 함께, 스킬창 버튼에 빨간 점 같은 알림 표시까지 들어가면 플레이어는 지금 무엇이 바뀌었는지 훨씬 직관적으로 이해할 수 있다.이번에는 신규 스킬 해금 시 위젯이 출력되고, 동시에 스킬 메뉴 버튼에 알림 표시가 뜨도록 하는 UI 시스템을 구현한 과정을 정리해보려고 한다.추가로 이 프로젝트는 온라인 MMO RPG 구조를 기반으로 하고 있기 때문에, 신규 스킬 해금 UI 역시 해당 플레이어의 소유 클라이언트에게만 안전하게 표시되도록 네트워크 동기화 구조까지 함께 고려했다.이번 작업의 목표는 아래와 같았다.신규 스킬 해..

언리얼 엔진 GAS Aura 시스템 구현 - Gameplay Tag로 직업과 직업 차수에 맞는 Aura 출력하기

RPG나 MMORPG에서 캐릭터의 직업과 전직 단계에 따라 외형적인 차이를 주는 대표적인 방식 중 하나가 Aura 연출이다.특히 같은 직업이라도 차수가 올라갈수록 다른 분위기의 이펙트를 출력하면, 플레이어는 현재 캐릭터의 성장 상태를 직관적으로 인식할 수 있다.이번에는 GAS의 Gameplay Tag 기능을 활용해, Player의 직업(클래스)과 직업 차수(클래스 티어)를 확인한 뒤, 해당 정보에 맞는 Aura를 Data Asset에서 찾아 Gameplay Cue로 출력하는 구조를 구현해 보았다.이번 작업의 목표는 아래와 같았다.Player의 직업과 직업 차수를 Gameplay Tag로 관리직업과 차수에 따라 다른 Aura 출력Aura 정보를 Data Asset으로 관리해 확장성 확보Gameplay Cu..