Files
2nd/10_Wiki/Topics/Programming & Language/Beat Saber.md
T
2026-05-10 22:08:15 +09:00

113 lines
3.7 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
---
id: wiki-20260508-beat-saber-redir
title: Beat Saber
category: 10_Wiki/Topics
status: verified
canonical_id: self
aliases: [Beat Saber, 비트 세이버, BS]
duplicate_of: none
source_trust_level: A
confidence_score: 0.92
verification_status: applied
tags: [vr, game, exergaming, rhythm, unity]
raw_sources: []
last_reinforced: 2026-05-10
github_commit: pending
tech_stack:
language: csharp
framework: Unity, OpenXR
---
# Beat Saber
## 매 한 줄
> **"매 VR rhythm 의 lightsaber slashing 의 game"**. 매 Beat Games (Czech, 2018, Meta acquired 2019) 의 release — 매 song 에 맞춰 색깔 cube 의 specific direction slice + obstacle 의 dodge. 매 2026 의 VR 의 best-selling app 중 하나, 매 exergaming research 의 standard reference.
## 매 핵심
### 매 Gameplay
- **Red/Blue cube**: left/right saber 의 매칭.
- **Direction arrow**: 8-way slice direction.
- **Obstacles** (red wall): squat / lean.
- **Bombs**: avoid.
- 매 difficulty: Easy, Normal, Hard, Expert, Expert+.
### 매 Tech
- Unity engine, OpenXR / Meta SDK.
- 매 90 Hz frame target — 매 motion sickness 의 minimize.
- 매 input: hand-tracked controller (6DoF, sub-mm precision).
- 매 audio sync: <20 ms latency.
### 매 Research relevance
1. **Exergaming**: 매 calorie burn ~6-8 kcal/min — moderate cardio.
2. **VR locomotion**: 매 stationary play — 매 motion sickness 의 less.
3. **Reaction time**: 매 expert 의 <300 ms.
4. **Custom song**: BSMG modding community 의 huge — research 의 stimulus 의 source.
## 💻 패턴
### Custom map JSON (Beat Saber 의 .dat)
```json
{
"_version": "2.0.0",
"_notes": [
{ "_time": 4.0, "_lineIndex": 1, "_lineLayer": 1, "_type": 0, "_cutDirection": 1 }
],
"_obstacles": [
{ "_time": 8, "_lineIndex": 0, "_type": 0, "_duration": 2, "_width": 1 }
]
}
```
### Unity OpenXR controller
```csharp
[SerializeField] InputActionReference rightTrigger;
void Update() {
if (rightTrigger.action.WasPressedThisFrame()) SwingSaber(Hand.Right);
}
```
### Slice detection (oversimplified)
```csharp
void OnSaberCollide(Cube cube, Vector3 sliceDir) {
var dot = Vector3.Dot(sliceDir.normalized, cube.expectedDir);
if (dot > 0.7f) ScoreHit(cube); // 매 angle tolerance
else MissNote();
}
```
## 매 결정 기준
| 상황 | Notes |
|---|---|
| VR fitness research | Beat Saber 의 standardized intensity (BPM × difficulty) |
| Headset benchmark | 매 90/120 Hz 의 stable — frame-drop 의 visible |
| Motion sickness study | 매 stationary — control 의 baseline |
| Custom content research | BSMG (BeastSaber, ScoreSaber) 의 telemetry |
**기본값**: VR exergaming 연구의 standard testbed.
## 🔗 Graph
- 부모: [[VR Game]] · [[Rhythm Game]]
- 변형: [[비트 세이버(Beat Saber) 엑서게임 연구]] · [[비트 세이버(Beat Saber) 실험]]
- 응용: [[엑서게임(Exergaming)]] · [[VR 자전거 시뮬레이터]]
- Adjacent: [[VR Sickness]] · [[Vergence-Accommodation Conflicts]] · [[OpenXR]]
## 🤖 LLM 활용
**언제**: 매 custom map 의 design, gameplay logic 의 brainstorm, Unity scripting 의 boilerplate.
**언제 X**: 매 official content 의 reverse-engineering — 매 ToS 의 violate.
## ❌ 안티패턴
- **Frame drop 무시**: 매 VR 의 sub-90Hz → 매 nausea — 매 profile 의 강제.
- **Latency >30 ms**: 매 saber → cube 의 desync — 매 prediction.
- **Room scale 무시**: 매 obstacle 의 player 의 hit — 매 chaperone 의 enforce.
## 🧪 검증 / 중복
- Verified (Beat Games official, BSMG wiki, Meta Store metrics).
- 신뢰도 A.
## 🕓 Changelog
| 날짜 | 변경 |
|---|---|
| 2026-05-08 | Phase 1 |
| 2026-05-10 | Manual cleanup — VR rhythm game treatment with research relevance |