Unreal Engine은 대규모 3D 공간, 실시간 렌더링과 사용자 상호작용을 구현할 수 있어 Digital Twin의 시각화 계층으로 활용된다. 그러나 엔진 프로젝트 하나에 센서 연결, 이력 저장, 업무 규칙과 3D 표현을 모두 넣으면 운영과 확장이 어려워진다. 기본 원칙은 현실 데이터의 원본 시스템과 Twin 모델을 Unreal Engine 밖에서도 유지하고, 엔진은 필요한 상태를 안정적으로 받아 표현하는 클라이언트 또는 애플리케이션 계층으로 두는 것이다.
권장하는 다섯 계층
| 계층 | 주요 역할 | 대표 산출물 |
|---|---|---|
| 현실·원본 | 센서, 제어기, BIM·CAD, 자산·정비 시스템 | 텔레메트리, 설계 파일, 자산 ID |
| 수집·데이터 | 프로토콜 변환, 검증, 현재 상태와 이력 저장 | 정규화 이벤트, 시계열 API |
| Twin·업무 | 개체·관계 모델, 규칙, 권한과 업무 API | Twin Graph, 경보와 작업 상태 |
| 연동 서비스 | 엔진용 데이터 선별, 캐시, 재연결과 버전 변환 | WebSocket·HTTP 메시지, 상태 스냅샷 |
| Unreal Runtime | 3D 매핑, 렌더링, UI와 사용자 입력 | 공간 화면, 대시보드, 시나리오 경험 |
3D 자산 파이프라인과 데이터 파이프라인을 분리한다
형상과 메타데이터
CAD·BIM 또는 DCC 원본은 좌표계, 단위, 계층과 재질을 정리한 뒤 Unreal로 가져온다. Epic Games의 Datasmith는 설계 도구에서 만든 장면과 어셈블리를 Unreal 형식으로 변환하고 재가져오기 흐름을 지원한다. Datasmith 메타데이터도 가져올 수 있지만 값은 문자열로 저장되므로 타입과 단위는 별도 스키마에서 검증하는 것이 안전하다.
가장 중요한 것은 각 Actor와 현실 자산 ID의 연결이다. 표시 이름이나 Actor 경로는 재가져오기 때 바뀔 수 있으므로 안정적인 외부 ID를 메타데이터나 별도 매핑 테이블에 둔다. LOD, 충돌, Nanite 사용 여부와 텍스처 품질은 화면 목적과 목표 장비에 맞춰 최적화한다.
상태와 이벤트
현재 상태 스냅샷은 접속 직후 전체 맥락을 복원하는 데 사용하고, 이후 변경분은 이벤트 스트림으로 전달할 수 있다. 고빈도 센서 값을 매 Frame마다 Actor에 직접 쓰기보다 서버에서 집계하거나 엔진에서 표시 주기에 맞게 보간한다. 원시 이력 조회는 별도 API로 요청해 그래프나 재생 기능에 사용한다.
Unreal 내부의 구성
- Connection Manager: 인증, 연결·재연결, Heartbeat와 메시지 버전을 관리한다.
- Twin Registry: 외부 자산 ID와 Actor 또는 Component 참조를 매핑한다.
- State Cache: 마지막 값, 측정 시각, 품질과 오래된 상태를 보관한다.
- Presentation Adapter: 물리 단위를 색상, 애니메이션, 라벨과 UI 상태로 변환한다.
- Interaction Layer: 검색, 필터, 선택, 카메라 이동과 권한별 명령을 처리한다.
Blueprint는 화면 로직과 빠른 검증에 유용하고, 대량 메시지 파싱이나 재사용 가능한 통신 모듈은 C++ 또는 별도 Plugin으로 분리할 수 있다. 외부 애니메이션·모션 데이터를 스트리밍할 때는 Live Link가 공통 인터페이스를 제공하지만, 설비 텔레메트리 전체를 반드시 Live Link로 보낼 필요는 없다. 데이터 성격에 맞는 인터페이스를 선택한다.
Remote Control과 제어 경로의 주의점
Unreal의 Remote Control 시스템은 HTTP와 WebSocket을 통해 외부 UI가 프로젝트 속성과 기능을 다룰 수 있게 한다. 공식 문서가 Beta 기능이며 공개 인터넷에 호스트와 포트를 노출하지 말라고 안내하는 만큼, 이를 장치 제어의 보안 게이트웨이로 간주하면 안 된다. 사용한다면 LAN 또는 보호된 네트워크 안에서 인증·권한을 갖춘 별도 서비스 뒤에 두고, 실제 설비 제어는 허용 범위와 안전 로직이 있는 제어 시스템을 거쳐야 한다.
성능과 운영 체크
- 목표 해상도와 하드웨어에서 Frame Time, 메모리와 네트워크 부하를 함께 측정한다.
- 데이터가 끊기면 마지막 값의 시각과 Stale 상태를 표시한다.
- 3D 재가져오기 후 자산 ID 매핑이 유지되는 자동 검사를 만든다.
- 서버와 엔진의 스키마 버전이 다를 때 안전하게 거부하거나 변환한다.
- 키오스크·관제 운영을 위해 자동 시작, 복구, 로그 수집과 원격 진단을 준비한다.
FAQ
Unreal Engine이 Digital Twin 데이터베이스가 될 수 있나?
런타임 상태를 보관할 수는 있지만 장기 이력, 데이터 계보와 여러 애플리케이션 공유를 위해서는 외부 플랫폼을 원본으로 두는 편이 일반적이다.
Datasmith로 가져오면 자산 매핑이 자동 완성되나?
형상과 일부 메타데이터를 가져올 수 있지만 현실 설비 ID와 Twin 스키마의 정합성은 프로젝트가 정의하고 검증해야 한다.
모든 센서 값을 실시간으로 3D에 표시해야 하나?
아니다. 사용자가 판단할 상태와 변화만 선별하고, 고빈도 원시는 집계·필터링하거나 필요할 때 이력으로 조회하는 편이 읽기 쉽고 안정적이다.
관련 글과 도구
- 센서 데이터가 Digital Twin에 연결되는 과정
- 공연·전시에서 실시간 렌더링을 활용하는 방법
- Camera FOV Calculator — 3D 뷰와 실제 카메라 계획의 기초 화각 검토
- XR Project Budget Estimator — 데이터·콘텐츠·시스템 통합 범위의 초기 검토