141 lines
3.6 KiB
Markdown
141 lines
3.6 KiB
Markdown
<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ü**
|
||

|
||
|
||
### **Konfiguration**
|
||

|
||
|
||
### **Explosionsansicht**
|
||

|
||
|
||
---
|
||
|
||
## 🛠 **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
|
||
|
||
|