1. 서론
증강현실(Augmented Reality, AR)은 현실 세계 위에 가상 물체를 실시간 중첩함으로써, 사용자가 현실과 가상을 동시에 지각∙조작할 수 있게 하는 기술이다. 모바일 카메라 기반 마커 추적을 중심으로 한 초기 AR 콘텐츠는 평면 위 간단한 물체 배치 수준에 머물렀으나, Microsoft HoloLens, Magic Leap, Meta Quest 등 HMD 기반 장비의 등장으로 주변 3차원 공간 전체를 활용하는 상호작용형 콘텐츠로 확장되고 있다.
HoloLens 2는 SLAM과 제스처 인식을 결합한 광학 시스루 방식과 공간 메쉬 재구성 기능을 제공하여, 실내 환경의 구조를 안정적으로 인식하고, 손가락 관절 단위 3D 핸드 트래킹을 지원한다. 이는 현실 물체 중심의 상호작용, 공유 좌표계 기반 멀티플레이, 자연스러운 손 기반 조작을 구현하기에 적합하다.
AR 게임 분야에서는 Pokémon GO와 같은 위치 기반 콘텐츠가 현실 이동을 게임 플레이와 연결하는 사례를 제시하였으나, 카메라 뷰와 평면 인식에 의존하여 입체 구조 활용과 다중 사용자 실시간 상호작용에는 제약이 있다. 레이싱 장르는 공간 구조와 물리적 상호작용이 결합될 때 높은 몰입감을 제공할 수 있음에도, 기존 AR 레이싱은 대부분 단일 사용자, 평면 기반 주행에 머무르고 있다. Hot Wheels Rift Rally(2023)는 현실 레일을 이용하지만, 임의 물체나 경사 지형을 인식해 트랙을 자동 생성하는 기능은 제공하지 않는다.
이에 본 연구는 HoloLens 2를 이용하여 현실 공간의 물체와 구조를 직접 활용하는 2인용 AR 레이싱 시스템 ARSlope를 제안한다. 제안 시스템은 평면∙물체의 외곽 형상과 높이를 추출하고, 사용자 간 좌표계를 정합하며, 제스처 기반 상호작용을 통해 현실 구조를 반영한 동적 트랙과 멀티플레이 레이싱 환경을 제공한다.
HoloLens 2는 양안 기반 깊이 센서와 공간 메쉬 재구성 기능을 통해 실내 환경의 세밀한 물체 구조를 안정적으로 추출할 수 있으며, World Locking Tools(WLT)를 이용해 장치 간 시점 변화에도 일관된 공유 좌표계를 제공한다. 또한 손가락 관절 단위의 3D 핸드 트래킹을 지원하여 물체 중심 선택이나 게임 내 UI 조작과 같은 상호작용을 모바일 기반 AR보다 안정적으로 수행할 수 있다. 본 연구에서는 위의 특징들을 고려하여 HoloLens 2 환경에서 실험하기로 결정하였다.
본 연구의 목적은 HoloLens 2 기반 2인용 AR 레이싱 시스템 ARSlope를 설계∙구현하고, 현실 물체 기반 트랙 생성과 멀티플레이 공간 정합의 가능성을 검증하는 것이다. 이를 위해 다음과 같은 기술적 목표를 설정한다.
MRTK 공간 인식과 제스처 입력을 통해 사용자가 현실 물체를 선택하면, 최소 세 개 이상의 물체 중심 좌표를 Unity Spline 시스템 기반 경사형 가상 트랙 노드로 변환하여 자동 생성한다. 첫 번째 물체는 출발∙도착 지점으로 사용되며, 물체 간 높이 차이를 실제 경사도로 반영한다.
기존 AR 연구는 평면 인식 기반 단일 사용자 환경에서 가상 물체 배치와 상호작용에 초점을 맞추어, 현실 공간의 입체 구조와 다중 사용자 좌표 정합을 충분히 활용하지 못했다[13][14][15].
ARSlope는 (1) 현실 물체의 3차원 좌표를 이용해 곡선형 Spline 트랙을 자동 생성하고, (2) 공유 앵커와 네트워크 동기화를 통해 동일 공간에서 동일 트랙을 공유하며, (3) 핸드 트래킹 기반 직접 조작을 지원함으로써, 현실 구조∙다중 사용자 정합∙직접 조작이 결합된 환경 적응형 AR 주행 시뮬레이션을 구현한다.
2. 관련 연구
정창훈∙서상현(2022)은 실내 공간 인식과 물체 인식 기술을 결합해 현실 물체 위에 가상 정보를 중첩하고 양방향 제어가 가능한 구조를 제안했다[1]. 그러나 단일 사용자 환경을 전제로 하여, 다중 사용자 좌표 정합에는 한계가 있다.
Zins 등(2022)은 물체 중심 SLAM 구조를 통해 추적 손실 시에도 의미적 물체 정보를 활용해 위치를 재추정하는 방식을 제시하였다[2].
지형∙트랙 자동 생성 연구는 AR 환경에서 구조적 특징을 반영한 트랙 생성을 위한 기술적 기반을 제공한다. Olsen(2004)은 프랙탈 노이즈와 침식 모델을 결합해 자연스러운 지형을 실시간 생성하는 기법을, Doran과 Parberry(2010)는 곡률∙경사도 조건을 만족하는 자동 지형 생성 기법을 제안하였다[3][4].
Wang 등(2003)은 Spline 곡선을 호 길이 기준으로 보간해 곡선 구간에서도 일정한 주행 속도를 유지하는 모델을, Galin(2010)은 클로토이드와 Spline 보간을 결합해 도로의 곡률과 연결부 연속성을 확보하는 알고리즘을 제시하였다[5][6].
Peire(2022)는 Unity Spline 시스템을 이용한 실시간 도로∙지형 편집 프레임워크를, Nyström(2022)은 Spline 도로 생성 과정의 교차∙연결 문제를 자동 처리하는 기법을 제안하였다[7][8]. 본 연구는 이러한 절차적 생성 기법을 AR 환경에 맞게 변형해, 현실 물체 위치 정보를 기반으로 곡선형 Spline 트랙을 자동 구성한다.
Gao 외(2023)는 단일 RGB 이미지에서 양손 형상을 추정하여 가림에 강인한 손 추적을 구현하였고[9], TriPad(2023)는 손 추적 정보만으로 일반 표면을 터치 인터페이스처럼 사용하는 방법을 제안하였다[10].
Silva 등(2021)은 AR 게임에서 현실–가상 통합성, 상호작용성, 물리적 피드백 수준이 높을수록 현존감과 몰입이 강화된다고 분석했다[11]. Wozniak 등(2021)의 Ball-AR 프로젝트는 공유 물리 공간에서 다중 사용자가 공을 주고받는 AR 게임을 구현하고, 신체 활동과 공간 공유가 상호작용 품질과 몰입을 크게 향상시킴을 보였다[12].
ARSlope는 동일 물리 공간을 공유하는 두 사용자가 핸드 트래킹으로 차량을 조작하며, 현실 이동과 가상 트랙 요소가 연동되는 구조를 구현함으로써 이러한 연구를 레이싱 장르로 확장한다.
Azuma(1997)는 증강현실 핵심 요소로 공간 정합과 공유 경험을 제시하며, 다중 사용자가 동일 가상 객체를 인식하기 위해 일관된 좌표계 유지가 중요함을 강조하였다[16]. Cutler 등(2019)은 공유 공간 앵커 기반 협업 MR 시스템을, Grubert 등(2016)은 다중 사용자 AR에서 실시간 공간 정합과 시각적 일관성이 경험 품질에 직접적인 영향을 미친다고 보고하였다[17][18]. Ventura(2021)는 사용자 간 위치 오차를 줄이기 위한 고정밀 앵커 정렬 기법을 제안하여 다중 사용자 AR의 공간 정합 안정성을 높였다[19].
3. 실험 환경
실험에는 Microsoft HoloLens 2를 사용하였다. HoloLens 2는 깊이 센서, 헤드 트래킹 카메라, IMU를 통해 주변 환경을 3차원 메시로 재구성하고, 광학 시스루 디스플레이를 통해 현실 시야 위에 홀로그램을 투영한다. 핸드 트래킹을 통해 제스처를 인식하는 독립형 MR 장비로, 공간 기반 AR 레이싱 구현에 적합하다.
게임 엔진으로 Unity 6000.0.32f1을 사용하였고, 핵심 기능 구현을 위해 다음 프레임워크를 통합하였다.
-
- Mixed Reality Toolkit(MRTK) 2.8.3: HoloLens 2 입력∙공간 인식 통합
-
- Photon Unity Networking(PUN) 2.50: 룸 기반 멀티플레이 및 물체 상태 동기화
-
- World Locking Tools(WLT) 1.5.9: 좌표계 드리프트 보정 및 공유 앵커 관리
이 구성은 현실 공간 인식, 제스처 입력, 멀티플레이 동기화를 하나의 시스템에서 통합적으로 처리하기 위한 기반을 제공한다.
4. 시스템 구현 및 상세
ARSlope는 트랙 생성, 차량 제어, 아이템 상호작용, 장애물 배치의 네 모듈로 구성된다. 사용자는 현실 물체를 선택해 트랙 노드를 정의하고, 시스템은 이를 Spline 도로로 변환한다. 이후 도로 위에 차량, 아이템, 장애물을 배치하고, 주행 중 충돌∙아이템 효과를 처리하며 경기 진행을 관리한다.
트랙 생성 시스템은 선택된 물체의 3차원 좌표를 이용해 폐곡선 형태의 Spline 도로를 구성한다(Figure 1). 인접 노드 간 거리∙방향 벡터로 입∙출력 탄젠트를 계산하여 C¹ 연속성을 확보하고, 곡률 급변 구간에서는 탄젠트 길이를 제한해 오버슈팅을 방지한다.
각 노드의 기준 높이는 물체 외접 경계 높이에 일정 오프셋 δ를 더해 설정하여, 도로가 물체 위로 자연스럽게 떠 있는 형태가 되도록 하였다. 전체 도로 길이 L에 비례해 도로 폭 r을
으로 설정해 환경 규모에 따라 폭이 자동 조정되도록 하였다. 실험에서는 α = 0.18, r_min = 0.4 m, r_max = 1.2 m를 사용하였다. 생성된 도로는 Spline 매개변수 t ∈ [0,1]에 따라 아이템과 장애물을 균등 배치하며, 최소 거리 제약으로 간섭을 방지한다.
차량은 Spline 진행도 매개변수에 따라 이동하며, 진행도는 차량 위치와 Spline 표본점(300개) 간 거리 비교로 추정한다. 사용자 입력(전진∙후진∙회전)은 물리 엔진에 반영되고, 도로 기울기에 따라 차량 자세를 자동 보정한다. Quaternion 보간을 적용해 경사 변화 시에도 움직임을 부드럽게 유지한다.
경사면이 임계각을 초과하면 차량이 이탈한 것으로 판단하고, 최근 접지 위치로 자동 복귀시키며, 복귀 직후 짧은 시간 동안 충돌 판정을 비활성화해 반복 이탈을 방지한다. 진행도 변화량을 누적해 주행 거리를 계산하고, 진행도가 1을 초과할 때마다 한 랩을 완료한 것으로 처리하여 목표 랩 수 도달 시 경기를 종료한다.
아이템은 주행 중 획득 가능한 상호작용 요소로, Spline 매개변수 구간을 균등 분할해 배치하고 도로 폭에 따라 좌우 오프셋을 적용한다. 주요 아이템은 속도 증강∙감소, 무적, 폭탄, 갈고리, 점수형 금괴 등이며, 대부분 3–6초 동안 효과를 유지한 뒤 원상 복귀된다. 폭탄∙갈고리는 상대 차량의 위치∙속도에 영향을 주고, 무적 상태에서는 폭발∙끌어오기 등의 외부 효과를 무시한다.
장애물은 아이템과 겹치지 않도록 배치하며, Spline 진행도에서 최소 간격과 도로 폭에 비례한 크기를 유지하여 난이도와 시각적 다양성을 조절한다(Figure 2).
멀티플레이 시스템은 Unity 기반으로 PUN, WLT, MRTK를 통합하여 구현하였다. 사용자가 세션 참여를 요청하면 PUN 마스터 서버에 접속해 입장 가능한 방을 탐색하고, 없으면 새로운 방을 생성한다. 최초 접속자는 마스터 클라이언트가 되며, 이후 접속자는 해당 방에 입장한다.
체크포인트 생성은 마스터 클라이언트에서 시작해 두 사용자에게 순차적으로 권한을 부여하며, 각 체크포인트 좌표는 RPC로 공유되어 모든 클라이언트에서 동일 위치에 생성된다. WLT는 기준 앵커를 생성하고 앵커 ID를 공유하여 각 기기의 로컬 좌표계를 정렬함으로써, 두 사용자가 동일 AR 물체를 같은 물리 위치에서 관찰할 수 있도록 한다.
공간 및 물체 인식 모듈은 HoloLens 2의 공간 인식 기능으로 3D 메쉬를 수집한 뒤, PlaneFinding을 통해 수평 평면을 검출하고, 선택된 평면 위 포인트를 필터링해 평면 자체와 그 위 물체를 분리한다.
필터링된 포인트는 거리 기반 밀도 클러스터링으로 물체 단위로 분리되며, 각 클러스터에 Convex Hull과 Extrusion을 적용해 3차원 메쉬와 콜라이더를 생성한다. 생성된 물체 경계는 제스처 입력을 처리하는 스크립트와 연결되어, 사용자의 에어탭 제스처가 감지될 때 해당 물체 중심 좌표를 트랙 노드로 전달한다. 이를 통해 현실 물체 인식과 상호작용, 트랙 생성 과정이 일관된 파이프라인으로 연결된다.
MRTK Spatial Awareness System을 통해 MeshObserver에서 각 표면을 구성하는 삼각형 메쉬 데이터를 획득한다. 메쉬가 충분히 수집되기 전에 평면 검출이 수행되는 문제를 방지하기 위해, 코루틴 기반 메쉬 준비 상태 감시 로직을 추가하여 일정 수집량이 충족된 이후에만 다음 단계로 진행하도록 하였다.
준비된 공간 메쉬에 PlaneFinding을 적용하여 주요 평면을 검출한다. 인접 면의 법선 벡터를 비교해 유사 방향 면을 병합하고, 최소 면적 조건을 만족하는 평면만 남긴다. 중력축 정렬 기법을 통해 미세하게 기울어진 표면도 안정적으로 수평 평면으로 분류하고, 카메라 높이 기준으로 천장∙바닥 등은 제외한 뒤, 테이블∙선반과 같은 수평 작업면만 분석 대상으로 선택한다.
선택된 평면의 중심 좌표와 회전 정보를 이용해 Oriented Bounding Box(OBB)를 계산하고, 평면 좌표계로 변환된 포인트 중 지정된 높이 구간에 해당하는 포인트만 선별하여 평면 위 물체의 포인트를 추출한다. 이를 통해 평면 자체와 평면 위 물체를 구조적으로 분리하고, 노이즈를 제거한 유효 점 집합을 확보한다.
필터링된 포인트는 거리 기반 밀도 클러스터링(DBSCAN 유사 방식)을 통해 물체 단위 클러스터로 분리된다. 두 포인트 간 거리가 설정 반경 이내이고 최소 점 개수 조건을 만족하면 동일 클러스터로 묶는다. 이 과정은 노이즈 제거와 물체 분리를 동시에 수행하며, 실시간 처리 환경을 고려해 계산 복잡도를 최소화하였다.
클러스터링된 포인트 집합에 Convex Hull을 적용해 물체 윤곽을 계산하고, 이를 상방 Extrusion하여 3차원 Mesh와 MeshCollider를 생성한다. 이로써 현실 물체는 가상 공간 내에서 시각적으로 식별되고 물리 충돌 및 상호작용 이벤트 처리에 활용 가능하게 변환된다(Figure 3).
5. 실험
실험은 두 명의 사용자가 HoloLens 2를 착용한 상태에서 충분한 이동이 가능한 실내 공간(테이블 등 넓은 수평면 포함)에서 수행되었다. 두 HoloLens 2는 동일 무선 네트워크(IEEE 802.11ac, 5 GHz)에 연결되었으며, Photon PUN 2 클라우드 서버를 통해 차량 위치∙회전∙체크포인트 정보를 실시간 동기화하였다. 네트워크 지연은 약 25–35 ms 범위에서 유지되었고, WLT를 통해 공유 앵커를 지속적으로 재정렬하였다. 실험 절차는 다음 다섯 단계로 구성하였다(Figure 4).
1단계: 애플리케이션 실행 및 세션 준비
2단계: 멀티플레이 세션 참가 및 대기
3단계: 상호작용적 트랙 생성
4단계: AR 레이싱 진행 및 상호작용
5단계: 게임 종료 및 결과 확인
HoloLens 2에서 애플리케이션을 실행하면 인트로 후 타이틀 씬이 표시되고, ‘Start’ 버튼을 에어탭하면 PUN 기반 매치메이킹이 시작된다. 게임 메뉴 화면에서 사용자는 가이드 UI를 열어 게임 방법과 조작 안내를 확인할 수 있다(Figure 5, Figure 6).
세션 참가 요청 시 클라이언트는 PUN 마스터 서버에 접속하여 입장 가능한 방을 탐색하고, 없으면 새로운 방을 생성한다. 두 플레이어가 모두 입장할 때까지 “다른 플레이어를 기다리는 중…” 대기 UI가 표시된다.
모든 참가자가 입장하면 마스터 클라이언트에게 체크포인트 개수 선택 UI가 제공되고, 다른 플레이어에게는 “방장이 트랙을 설정 중입니다…” 안내 문구가 표시된다. 개수가 확정되면 MRTK 공간 인식이 활성화되고, 각 플레이어는 자신의 턴에 공간 메쉬 상 원하는 지점을 에어탭하여 체크포인트를 지정한다(Figure 7). 지정된 좌표는 RPC로 전송되며, 설정된 개수가 채워지면 Spline 알고리즘으로 곡선형 AR 트랙이 자동 생성되어 모든 플레이어에게 렌더링된다.
트랙 생성 후 짧은 카운트다운이 끝나면 출발선에 각 플레이어의 차량이 생성된다. 사용자는 핸드 트래킹을 이용해 손가락 방향으로 차량을 조향하고, 트랙 구간에는 아이템과 장애물이 무작위 배치된다(Figure 8). 아이템 획득 시 가속∙방해 효과가 적용되며, 차량 상태와 아이템 사용 정보는 모든 클라이언트 간 실시간 동기화된다.
설정된 랩 수를 먼저 완주한 플레이어를 승자로 판정하고, 시스템은 랩 수와 상태를 확인하여 순위를 결정한 뒤 조작 입력을 비활성화하고 “Winner”, “Loser” UI로 결과를 제시한다.
공간 인식 정확도를 검증하기 위해 동일 자세에서 총 20회 반복 실험을 수행하였다. 평면 인식과 물체 인식 성공 여부를 각각 기록한 결과는 다음과 같다.
평면 인식 성공률은 85%(17/20), 평면∙물체 인식을 모두 포함한 성공률은 65%(13/20)로 나타났으며, 물체 인식 실패는 센서 해상도 한계, 조명 조건, 메쉬 밀도 불균형 등과 관련된 것으로 분석되었다.
평면 인식 자체가 실패한 경우는 사용자와 평면 사이 거리가 지나치게 가까운 상황, 조명 조건 변화로 특정 방향 깊이 정보가 누락된 경우, 메쉬 준비 이전에 인식이 시도된 경우 등으로 분석되었다.
향후 메쉬 업샘플링, 연속 프레임 누적 기반 포인트 보정, 물체 중심 추정 알고리즘 보강 등을 통해 인식 성능을 향상시킬 수 있을 것으로 생각된다.
본 실험은 조명, 사용자–평면 거리, 시점 방향 등 주요 변수를 통제한 정적 환경에서 수행되었으며, 동일 조건 반복 시 측정 편차가 매우 작게 나타났기에 반복 횟수를 과도하게 증가시키기보다는, 조건 통제 하에서 재현성을 확인할 수 있는 적정 수준의 반복이 중요하다고 판단하여 20회의 실험 횟수를 적용하였다.
WLT 기반 좌표 정합 평가에서는 대부분의 경우 시각적으로 큰 차이가 없었고, 측정된 최대 위치 오차는 약 10cm 이내로, 트랙 폭∙차량 크기를 고려할 때 플레이에 치명적 영향은 없는 수준이었다.
HoloLens 2에서 두 사용자가 동시에 레이싱을 진행하는 동안 평균 프레임 속도는 약 120 FPS를 유지하여, 핸드 트래킹∙네트워크 동기화∙아이템 처리∙물리 연산이 결합된 상황에서도 실시간 AR 콘텐츠 요구 성능을 충족함을 확인하였다.
주변 물체 배치에 따른 트랙 특성을 비교하기 위해, 물체 개수가 다른 세 가지 환경(3개, 4개, 5개)을 구성하여 트랙 길이, 평균 곡률, 아이템∙장애물 밀도를 측정하였다(Table 1). 물체 수가 증가하여 배치가 복잡해진 환경에서는 트랙 길이와 곡률이 증가하고, 동일 개수의 아이템∙장애물이 더 넓은 구간에 분포함에 따라 단위 길이당 밀도는 감소하였다. 이는 제안 시스템이 현실 물체의 공간적 분포에 따라 트랙 형태와 난이도가 자연스럽게 변화하는 환경 적응형 특성을 가짐을 보여준다.
제안된 ARSlope 시스템의 기술적 특성을 정량적으로 평가하기 위해 트랙 생성 안정성과 환경 적응형 변화량을 분석하였다. 동일한 환경에서 5회 반복하여 자동 생성된 트랙의 길이와 곡률의 변동 폭을 측정한 결과, 트랙 길이의 편차는 0.12m(약 2.3%), 평균 곡률 편차는 0.02 수준으로 나타나 스플라인 기반 경로 생성 과정이 높은 재현성을 가지는 것으로 확인되었다.
또한, 물체 배치 복잡도에 따른 트랙 형태 변화를 비교한 결과(Table 1), 물체가 3개에서 5개로 증가할 때 트랙 길이는 4.1m에서 5.8m로 약 41% 증가하였으며, 평균 곡률은 0.17에서 0.29로 증가하여 환경 구조 변화에 따라 경로 형태가 일관되게 적응하는 특성이 나타났다. 이는 ARSlope가 현실 공간의 구조적 특성을 반영해 트랙 난이도를 자동 조절하는 환경 적응형 경로 생성 기능을 제공함을 의미한다.
6. 기술적 한계와 개선 방향
본 연구는 현실 공간의 물체를 트랙 구성 요소로 직접 활용하는 2인용 AR 레이싱 시스템을 구현하였다. 자체 물체 인식 로직과 Spline 기반 자동 트랙 생성 기능을 결합해, 환경에 따라 다른 형태∙난이도의 트랙을 실시간 구성하였으며, 핸드 트래킹 기반 직관적 조작과 로컬 멀티플레이를 결합해 현실–가상 융합형 상호작용 경험을 제공하였다.
7. 결론 및 향후 연구
본 연구는 HoloLens 2를 기반으로 현실 물체를 인식하고 이를 이용해 사용자 맞춤형 AR 레이싱 트랙을 생성하는 ARSlope 시스템을 제안∙구현하였다. 시스템은 수평 평면과 그 위 물체를 인식해 중심 좌표를 트랙 노드로 활용하고, Spline 기반 동적 트랙 생성, PUN∙WLT 기반 멀티플레이 동기화, 핸드 트래킹 기반 조작, 아이템∙장애물 시스템을 통합하여, 두 사용자가 동일 현실 공간에서 경쟁하는 환경 적응형 AR 레이싱 경험을 제공한다.
향후에는 평면 위 물체 인식에 한정된 구조를 실내 전체 3D 공간으로 확장하고, 다중 평면 통합∙전역 메쉬 분석∙앵커 재정렬 및 제스처 인식 고도화를 통해 인식 정확도와 좌표 정합성을 향상시킬 계획이다. 이를 통해 XR 기반 교육∙훈련, 실내 스포츠형 콘텐츠, 협업형 AR 시스템 등 다양한 응용 분야로의 확장이 가능할 것으로 기대된다.






