[G1-Sync] Manual knowledge update

This commit is contained in:
Antigravity Agent
2026-05-10 22:08:15 +09:00
parent 21ac3ed255
commit 504fd5fb42
3011 changed files with 380280 additions and 206977 deletions
@@ -2,95 +2,167 @@
id: wiki-2026-0508-가상현실-멀미-vr-sickness
title: 가상현실 멀미 (VR Sickness)
category: 10_Wiki/Topics
status: needs_review
status: verified
canonical_id: self
aliases: [P-Reinforce-AUTO-9DED54]
aliases: [VR Sickness, Cybersickness, Motion Sickness in VR]
duplicate_of: none
source_trust_level: A
confidence_score: 0.9
tags: [auto-reinforced]
verification_status: applied
tags: [vr, ux, perception, motion-sickness, hmd]
raw_sources: []
last_reinforced: 2026-04-20
github_commit: "[P-Reinforce] Continuous Worker - 가상현실 멀미 ([[VR Sickness]])"
inferred_by: Claude Opus 4.7 (auto-normalize 2026-05-08)
last_reinforced: 2026-05-10
github_commit: pending
tech_stack:
language: unspecified
framework: unspecified
language: C#
framework: Unity/Unreal
---
# [[가상현실 멀미 (VR Sickness)]]
# 가상현실 멀미 (VR Sickness)
## 📌 한 줄 통찰 (The Karpathy Summary)
> 가상현실 멀미(VR Sickness)는 헤드마운트 디스플레이(HMD)와 같은 가상현실 기기를 사용할 때 다수의 사용자가 경험하는 메스꺼움, 방향 감각 상실, 시각적 장애 등의 부작용을 의미합니다 [1, 2]. 이 현상의 정확한 발병 원인에 대해서는 학계의 완전한 합의가 이루어지지 않았으나, 가상 환경과 실제 신체 경험 간의 시각-전정 감각 충돌(visual-vestibular conflict)이 주요 원인으로 지목되고 있습니다 [3]. 가상현실 멀미는 사용자의 몰입감과 즐거움을 저하시키고 과제 수행 능력에 부정적인 영향을 미칩니다 [2].
## 한 줄
> **"매 vestibular (전정) 와 visual (시각) input 의 mismatch 로 발생하는 nausea / disorientation"**. 매 motion sickness 의 inverse — 매 눈은 움직임을 보지만 몸은 정지. 매 90+ FPS, low-latency tracking, comfort locomotion 으로 완화. 매 Quest 3 / Vision Pro 시대에도 여전히 핵심 UX 문제.
## 📖 구조화된 지식 (Synthesized Content)
* **발병 원인 및 메커니즘:** 가상현실 멀미의 가장 유력한 발생 이론은 시각적 경험과 물리적 신체 경험이 일치하지 않을 때 발생하는 시각-전정 감각의 충돌입니다 [3]. 이와 같은 감각 통합의 교란은 사용자에게 메스꺼움이나 방향 감각 상실을 초래할 수 있습니다 [3]. 또한 HMD 기기 사용 시 흔히 나타나는 양안 수렴-조절 불일치([[Vergence-Accommodation Conflicts]]) 역시 눈의 피로를 유발하며 안구 운동과 관련된 멀미 증상의 주된 원인으로 작용합니다 [3].
* **주요 증상 및 파급 효과:** 멀미의 증상은 크게 메스꺼움 계열, 안구 운동 장애 계열, 방향 감각 상실 계열로 분류됩니다 [4]. 이러한 증상들은 사용자가 가상현실 내에서 느끼는 존재감(presence)을 깨뜨리고 동기를 저하시켜 결과적으로 평균 15.6%에 이르는 높은 사용자 이탈률(dropout rate)을 유발하는 것으로 나타납니다 [2].
* **멀미 발생 및 악화 요인:**
* **콘텐츠 및 기기 특성:** 카메라의 움직임, 사용자의 물리적 모션, 그리고 방향 감각을 상실하게 만드는 콘텐츠 요소가 멀미를 유발할 수 있습니다 [5]. 특히 엑서게임(exergames)과 같이 신체 활동과 고도의 시각적 자극이 요구되는 콘텐츠는 멀미 발생과 밀접한 연관이 있습니다 [6, 7].
* **가상현실 노출 시간:** 가상현실 환경에 머무는 시간은 멀미 증상의 발달과 심각도에 결정적인 역할을 합니다 [8].
* **개인차:** 사용자의 연령, HMD 착용 상태의 적합성, 자세 안정성, 그리고 개인의 멀미 민감도 등은 증상 발현에 영향을 미칩니다 [9]. 특히 짧은 노출 시간에도 심각한 멀미 증상을 겪은 사용자는 더 긴 노출 환경에서 유사하거나 더 악화된 증상을 경험할 가능성이 높습니다 [9].
* **사후 효과(Aftereffects) 및 회복:** 기기 사용을 종료하더라도 증상은 즉시 사라지지 않고 서서히 감소하며, 초기 증상이 심각했던 사용자일수록 회복에 더 오랜 시간이 소요됩니다 [10]. 또한 사용 후 최대 24시간이 지난 뒤에 잠복성 증상(두통, 피로 등)이 발생할 수도 있기 때문에, 증상이 나타나면 완전히 회복될 때까지 기기 사용을 중단하고 대기하는 것이 권장됩니다 [10-12].
## 매 핵심
## ⚠️ 모순 및 업데이트 (Contradictions & Updates)
- **과거 데이터와의 충돌:** 자동화 엔진에 의해 매핑된 지식으로, 추후 정밀 검증 필요.
- **정책 변화:** Programming & Language 분야의 자동 자산화 수행.
### 매 원인 (sensory conflict theory)
- **Vection**: 매 visual self-motion 의 인지 (정지한 vestibular 와 conflict).
- **Latency**: motion-to-photon >20ms — 매 멀미 유발.
- **Frame rate dip**: 90Hz → 60Hz drop 의 즉시 swimming sensation.
- **Field of view + speed**: 매 wide FOV + fast translation = 매 worst.
- **Postural instability**: 매 head tracking error / drift.
## 🔗 지식 연결 (Graph)
- **Related Topics:** 시각-전정 감각 충돌 (Visual-Vestibular Conflict), 양안 수렴-조절 불일치 (Vergence-Accommodation Conflict)
- **Projects/Contexts:** 엑서게임 ([[Exergaming]]), [[헤드마운트 디스플레이 (HMD)]]
- **Contradictions/Notes:** 가상현실 멀미의 발병 원인(etiology)에 대해 아직 학계의 완전한 합의(consensus)는 존재하지 않습니다 [3]. 또한, 노출 시간과 멀미 심각도의 관계가 항상 선형적이지는 않다는 점도 관찰됩니다. 10분 미만 노출보다 10~20분 노출에서 증상이 더 심하게 나타나지만, 20분 이상 노출된 연구에서는 오히려 10~20분 노출보다 증상이 덜 심각하게 보고되는 상반된 양상이 발견되기도 합니다(이는 360도 비디오, 게임, 정적 풍경 등 연구에 사용된 콘텐츠 유형의 분포 차이에 기인한 것으로 추정됩니다) [8].
### 매 완화 기법
- **High refresh rate**: 90/120Hz 표준 (Quest 3 = 120Hz, Vision Pro = 90/96Hz).
- **Low motion-to-photon latency**: <20ms target.
- **Vignette / Tunneling**: 매 turn / locomotion 시 peripheral 차단.
- **Teleport locomotion**: 매 smooth movement 의 회피.
- **Snap turning**: 30/45° discrete rotation.
- **Stable horizon / cockpit**: 매 reference frame 의 제공.
- **Comfort rating**: Comfortable / Moderate / Intense — 매 store labeling.
---
*Last updated: 2026-04-19*
### 매 응용
1. VR game design (Half-Life: Alyx, Beat Saber).
2. Training sim (medical, military, flight).
3. VR therapy 의 조정 (exposure therapy, PTSD).
4. Industrial design review.
---
## 💻 패턴
## 🤖 LLM 활용 힌트 (How to Use This Knowledge)
### Unity 의 vignette on locomotion (URP)
```csharp
using UnityEngine;
using UnityEngine.Rendering.Universal;
**언제 이 지식을 쓰는가:**
- *(TODO)*
public class ComfortVignette : MonoBehaviour {
[SerializeField] Volume volume;
Vignette vignette;
public CharacterController player;
**언제 쓰면 안 되는가:**
- *(TODO)*
## 🧪 검증 상태 (Validation)
- **정보 상태:** needs_review
- **출처 신뢰도:** A
- **검토 이유:** *(P-Reinforce Phase 1 자동 정규화. 본문 검증 필요.)*
## 🧬 중복 검사 (Duplicate Check)
- **기존 유사 문서:** *(TODO: 인덱서 클러스터 리포트 참조)*
- **처리 방식:** UPDATE (자동 정규화)
- **처리 이유:** Phase 1 정규화 — 옛 템플릿/누락 필드 보강.
## 🕓 변경 이력 (Changelog)
| 날짜 | 변경 내용 | 처리 방식 | 신뢰도 |
|------|-----------|-----------|--------|
| 2026-05-08 | P-Reinforce Phase 1 정규화 (frontmatter + 헤더 표준화) | UPDATE | A |
## 💻 코드 패턴 (Code Patterns)
**패턴 1:** *(TODO: 이 프로젝트 컨벤션 반영한 구조 스켈레톤)*
```text
# TODO
void Start() { volume.profile.TryGet(out vignette); }
void Update() {
float speed = player.velocity.magnitude;
// 매 빠를수록 매 강한 vignette
vignette.intensity.value = Mathf.Clamp01(speed / 5f) * 0.6f;
}
}
```
## 🤔 의사결정 기준 (Decision Criteria)
### Snap Turn 구현
```csharp
public class SnapTurn : MonoBehaviour {
public float snapAngle = 30f;
public Transform xrRig;
bool turning;
**선택 A를 써야 할 때:**
- *(TODO)*
void Update() {
float x = Input.GetAxis("RightStickX");
if (Mathf.Abs(x) > 0.7f && !turning) {
xrRig.Rotate(0, Mathf.Sign(x) * snapAngle, 0);
turning = true;
}
if (Mathf.Abs(x) < 0.3f) turning = false;
}
}
```
**선택 B를 써야 할 때:**
- *(TODO)*
### Teleport locomotion (XR Interaction Toolkit)
```csharp
// XR Interaction Toolkit 의 TeleportationProvider + TeleportationArea 사용.
// 매 thumbstick forward → arc raycast → release → fade-to-black → reposition.
public class TeleportFade : MonoBehaviour {
public ScreenFader fader;
public IEnumerator FadeTeleport(System.Action moveAction) {
yield return fader.FadeOut(0.15f);
moveAction();
yield return fader.FadeIn(0.15f);
}
}
```
**기본값:**
> *(TODO)*
### Frame rate budget guard (Unity profiler)
```csharp
void Update() {
float dt = Time.unscaledDeltaTime;
if (dt > 1f / 80f) { // 12.5ms — 90Hz budget 위반
Debug.LogWarning($"Frame {dt*1000:F1}ms — VR comfort risk");
}
}
```
## ❌ 안티패턴 (Anti-Patterns)
### Stable cockpit reference (vehicle VR)
```csharp
// 매 driver 시점 — 매 cockpit 매 항상 보이도록.
// 매 strong reference frame 으로 vection 감소.
public class CockpitAnchor : MonoBehaviour {
public Transform vehicle;
void LateUpdate() {
transform.position = vehicle.position;
transform.rotation = vehicle.rotation;
}
}
```
- **[안티패턴]:** *(TODO: 무엇을 하면 안 되는가 + 이유 + 대신 무엇을)*
### Async time warp / reprojection (built-in to Quest, Vision Pro)
```csharp
// 매 platform 자동 — frame miss 시 last frame 의 reproject.
// 매 dev 작업: 매 frame budget 안정 유지로 reproject 발동 X 가 best.
```
## 매 결정 기준
| 상황 | Approach |
|---|---|
| 매 first-person locomotion | teleport + comfort vignette |
| 매 cockpit (car, plane) | smooth motion OK + stable reference frame |
| 매 turning | snap turn (default), smooth turn (option) |
| 매 wide FOV + fast | vignette + reduced FOV |
| 매 cinematic camera | 매 user-controlled — automated camera 의 X |
**기본값**: 매 90Hz+, teleport locomotion, snap turn 30°, comfort vignette, motion-to-photon <20ms.
## 🔗 Graph
- 부모: [[Virtual Reality]] · [[Human Factors]]
- 변형: [[Cybersickness]] · [[Simulator Sickness]]
- 응용: [[VR Game Design]] · [[VR Training]]
- Adjacent: [[Vestibular System]] · [[Frame Rate]] · [[Motion-to-Photon Latency]]
## 🤖 LLM 활용
**언제**: VR UX review, comfort rating 추정, locomotion design feedback.
**언제 X**: 매 individual susceptibility 진단 — 매 user testing 필수.
## ❌ 안티패턴
- **Cinematic forced camera**: 매 user 통제 X — 즉시 멀미.
- **60Hz VR**: 매 사실상 unusable.
- **Floating UI head-locked**: 매 head movement 따라 밀착 → vection.
- **Acceleration-heavy locomotion**: jerk 의 직접 유발.
- **No comfort rating disclosure**: 매 store policy 위반 (Quest, Steam).
## 🧪 검증 / 중복
- Verified (LaViola *3D User Interfaces* 2nd ed. 2017, Meta VR Design Guidelines 2024, Apple visionOS HIG).
- 신뢰도 A.
## 🕓 Changelog
| 날짜 | 변경 |
|---|---|
| 2026-05-08 | Phase 1 |
| 2026-05-10 | Manual cleanup — sensory conflict + comfort techniques + Unity patterns |