Files
vr-configurator/README.md
2025-07-17 21:06:06 +02:00

141 lines
3.6 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.
<table align="center"><tr><td align="center" width="9999">
<img src="vr-configurator/Assets/graphics/icon.png" align="center" width="300" alt="Project icon">
# 🚀 **VR-Konfigurator**
Willkommen zum **VR-Konfigurator**! Hier kannst du Fahrzeuge in VR und AR konfigurieren und eine coole User-Experience genießen.
</td></tr></table>
---
## 🎯 **Ziele (Goals)**
✔️ Auswahl zwischen **zwei Modellen**: *Erlbach* & Fahrrad
✔️ **Konfiguration** von Teilen (Felgen, Grill, etc.)
✔️ **Farbauswahl** verschiedener Komponenten
✔️ **3D-Darstellung** mit frei drehbarer Ansicht
✔️ **Explosions-Ansicht** via Animation
✔️ Umschalten in **AR-Modus**
✔️ **Export** der Konfiguration als JSON
✔️ **VR-Umgebung** passend zum Kontext
✔️ **Grabben** der UI-Menüelemente
✔️ Teile per **Klick auf das Modell** auswählen
---
## 🖼 **Screenshots**
**Hauptmenü**
![Screenshot1](docs/img/img1.png)
**Konfiguration**
![Screenshot2](docs/img/img2.png)
**Explosionsansicht**
![Screenshot3](docs/img/img3.png)
---
## 🛠 **Projektstruktur (Structure)**
### 🏗 **Model**
Grundlage für Base- und ChildModels:
- Name (Human-Readable)
- ID
- Mesh (Form)
- Material (Oberfläche)
- Position, Rotation, Skalierung
- Farbauswahlen
- Unterstützt **Passthrough-Model** (Hilfsobjekte, Farbweitergabe an Kinder)
- Definiert **Ports**
### 🔌 **Port**
- Schnittstelle, die ChildModels anbinden lässt
- Enthält:
- PortID (nicht-unique)
- DefaultID (Standardmodell)
- Chooseable-Flag
- Positionsinformationen
- Anzeigename im Menü
- Explode-Direction
### 📦 **BaseModel**
- Startpunkt der Konfiguration
- Im Hauptmenü auswählbar
- Farbe **nicht änderbar**
- Empfehlung: leeres/festes Objekt für maximale Flexibilität
### 🔗 **ChildModel**
- An Ports angebunden
- Kann eigene Ports definieren → rekursive Baumstruktur
### 🎮 **ModelBehaviour**
- Visualisiert Ports und deren Kinder
- Steuert Logik beim Modellwechsel
### 🔍 **BaseModelBehaviour / ChildModelBehaviour**
- **BaseModelBehaviour:** Identifikationszweck
- **ChildModelBehaviour:** Zusätzliche Infos für ChildModels (Port, Parent)
### ⚙️ **Manager & Controller**
- **ModelManager:** Verwaltung aller Modelle (`Assets/Scripts/Model`)
- **StateManager:** Reset-Logik & Menü-Rückkehr (`Assets/Scripts/Managing`)
- **Exploder:** Steuert Explosionsanimation
- **Rotator:** Rotation des Modells über Meta Quest 3 Joysticks (nur Y-Achse)
---
## **Modelle hinzufügen (Adding Models)**
📂 Modelle & Materialien ins Verzeichnis: ```/Assets/Ressources```
🔑 In der ModelList eintragen:
- **BaseModel:** Grundmodell
- **ChildModel:** Teile des Modells (Position, Ports, Farben, Explosionsrichtung)
- **Sammlung von ChildModels:** Mehrere ChildModels aus einer Datei laden
---
## 📥 **Installation**
### ✅ **Voraussetzungen**
- [Unity](https://unity.com/)
- [Meta Quest 3](https://www.meta.com/quest/)
- [Meta Interaction SDK](https://developer.oculus.com/downloads/package/meta-xr-interaction-sdk/)
- OpenXR aktiviert
### ▶️ **Schritte**
```bash
# Repository klonen
git clone ssh://git@git.kilabor.htwsaar.de:2222/projektarbeiten-bachelor/sose_2025/gruppe-1/vr-configurator.git
# Unity öffnen & Projekt importieren
# Player Settings: OpenXR aktivieren
# App auf Meta Quest 3 (Android Build Settings) builden
```
## 📚 **Dokumentation**
Detaillierte Infos findest du hier: ```/docs/Dokumentation```
---
## 👥 **Contributors**
- Max Luca Schmidt
- Florian Speicher
- Tim Wall