2024.10 - 2025.12 / Unreal VR Digital Twin
스마트 팩토리 VR 디지털 트윈
회사 자체 VR 메타버스 시스템을 기반으로, 실제 공장 데이터를 여러 사용자가 같은 월드에서 확인할 수 있도록 Unreal 클라이언트 기능을 확장한 작업
전체 구조
공장 데이터가 VR 메타버스 시스템에 반영되는 구조
서버가 실제 공장 raw 데이터를 약속된 JSON 형태로 정제해 송신하고, Unreal 클라이언트는 이를 받아 다중 사용자가 확인할 수 있는 디지털 트윈 상태로 반영
로봇, 아바타, 제조 설비 raw 데이터
사전에 약속된 JSON 포맷으로 변환
WebSocket 수신, 파싱, 상태 관리, Actor/UI 반영 담당
여러 사용자가 같은 월드에서 로봇, 아바타, 설비 상태 확인
클라이언트 구성 요소
로봇/아바타는 Transform 동기화, 기계 설비는 작동시간/상태/센서값 동기화
WebSocket 문자열을 JSON 데이터로 변환하고 관리 매니저에서 타입별 처리
Echo로 전송시간을 추정하고 Complete로 데이터 반영 완료 시점을 보내 응답속도 검증에 대응
클라이언트 동작 흐름
-
01
WebSocket 수신
서버가 빠르게 전달하는 공장 상태 JSON 문자열 수신
-
02
Echo 응답
메시지 단위 왕복 전송시간을 추정하기 위해 수신 직후 Echo Response 반환
-
03
파싱 / 관리
수집 문자열을 객체 데이터로 변환하고 타입별 관리 매니저로 전달
-
04
상태 반영
게임 스레드 타임에 수집된 데이터 중 마지막 상태를 Actor와 UI에 반영
-
05
Complete 응답
데이터 반영 완료 시점에 Complete Response를 보내 응답속도 검증에 대응
응답 처리 설계
데이터 반영 시간을 검증하기 위한 Echo / Complete 분리
서버가 보낸 공장 상태가 클라이언트의 Actor/UI 상태로 반영되기까지 걸린 시간을 검증해야 했고, 단순 왕복 통신 시간과 데이터 처리 시간을 분리할 필요가 있었다.
메시지를 받은 직후 반환해 왕복 전송시간을 추정. 이후 Complete 응답 시간에서 전송시간 영향을 빼고 실제 반영 시간을 계산하는 기준으로 사용.
게임 스레드에서 수집 데이터 중 마지막 상태를 Actor/UI에 반영한 뒤 반환. 클라이언트 처리와 데이터 반영 완료 시점을 서버가 확인할 수 있게 구성.
Unreal WebSocket 수신이 게임 스레드에서 여러 메시지를 배열 단위로 처리해 메시지 단위 Echo 반환이 어려웠고, 응답속도 검증 요구에 맞춰 수신 처리 일부를 수정.
구현 상세
Unreal 클라이언트 구현 내용
Receiver/Sender, JSON Parser, 데이터 관리 매니저 개발. 수신 데이터 타입에 따라 이동 객체와 고정 설비 처리 분리
로봇과 아바타 타입의 Transform 데이터를 받아 Unreal 월드의 위치와 회전 상태로 동기화
기계마다 달라지는 작동시간, 상태, 센서값 데이터를 UI/Actor 상태로 반영
회사 자체 VR 메타버스 프로그램의 서버/클라이언트 실행 구조와 AWS 서버 월드 접속 방식을 활용해, 여러 사용자가 같은 월드에서 공장 상태를 확인하는 형태로 확장
실제 공장 데이터 연동과 과제 완료 시연 테스트 진행. 서버와 약속한 JSON 포맷 기준으로 객체 상태 반영과 응답 처리 흐름 확인