[NDC22-프로그래밍] 프라시아 전기에 멋진 탈것 만들기
NDC 넥슨 · YouTube
AI 핵심 요약
프라시아 전기에서는 자동 이동이 중요한 만큼 탈것을 빠르고 생동감 있게 보여주면서도, 서버 동기화와 모바일 네트워크 예외를 처리해야 했다. 서버에는 탈것 개체 대신 캐릭터의 탈것 상태를 두고, 클라이언트가 호출·접근·탑승·하차 연출을 재생하도록 구성했으며 상태 메시지에 위치 등 필요한 정보를 담았다. 이동 경로의 급격한 꺾임은 분기점 안에서 2차 베지어 곡선을 사용해 완화했고, 일정한 속도를 위해 이동 거리 기반으로 곡선 위치를 구한 뒤 UE4 스플라인 컴포넌트로 구현을 정리했다. 상태 전환을 현재 상태 중심으로 설계하면 메시지 누락이나 서버 이동 같은 예외에 대응하기 쉬우며, 엔진 기능을 충분히 살펴보는 것도 직접 구현을 줄이는 방법이라는 점을 공유했다.
- 서버에는 탈것 개체를 두지 않고 캐릭터의 탈것 상태를 동기화하며, 클라이언트가 연출용 개체를 생성하는 구조를 사용할 수 있다.
- 네트워크 지연과 앱 백그라운드 복귀를 고려해 특정 이전 상태를 전제하지 않고, 서버가 전달한 현재 상태로 전환되도록 설계한다.
- 2차 베지어 곡선은 분기점의 안전한 내비게이션 영역 안에서 경로를 만들기 쉽지만, 일정한 속도를 내려면 시간 대신 이동 거리를 기준으로 위치를 계산해야 한다.
- UE4 스플라인 컴포넌트의 거리 기반 위치 계산을 활용하면 직접 구현한 곡선 처리 코드를 대체할 수 있다.
- 캐릭터 액터와 메시의 위치가 어긋나는 연출에서는 카메라 추적 대상을 메시로 바꿨다가 조정이 끝난 뒤 액터로 되돌려 화면을 안정시킬 수 있다.
소개
● 설문조사: https://ko.surveymonkey.com/r/SPNQSLH ↓ 아래를 펼쳐, 세션 상세정보를 확인하세요! ● 발표분야: 프로그래밍 ● 발표자: 넥슨코리아 이연석 / Nexon Korea Yeonseok Yi ● 권장 대상: 게임 프로그래머, 클라이언트 프로그래머, UE4 프로그래머 ● 키워드: #MMORPG #탈것 #곡선 #UE4 #프라시아전기