Subsystem 3

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

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

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

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

언리얼 엔진 NPC 대화 시스템 설계 - DataTable, DataAsset, Subsystem으로 구조 잡기

NPC 대화 시스템을 만들기 전에 먼저 해야 할 일은, NPC에 관한 정보와 NPC가 출력할 대사를 어떤 식으로 관리할지 구조부터 정리하는 것이다.특히 NPC 대화는 단순히 텍스트 한 줄을 띄우는 수준에서 끝나지 않고, NPC 이름, 초상화, 퀘스트 상태, 대사 조건, 음성 재생, 자동 넘김 같은 요소들이 함께 엮이기 때문에 처음부터 데이터 구조를 잘 나눠두는 편이 이후 유지보수와 확장에 훨씬 유리하다.이번 프로젝트는 아직 알파 단계이고, NPC는 플레이어와 복잡한 선택형 대화를 주고받는 구조가 아니라 퀘스트를 주는 역할에 가깝다.그래서 이번에는 아래 방향으로 구조를 설계했다.NPC 기본 정보는 DataTable로 관리NPC 대사 데이터도 DataTable로 관리NPC별 설정과 참조 정보는 DataAss..