Make readme pretty
This commit is contained in:
146
README.md
146
README.md
@@ -1,27 +1,131 @@
|
||||
# VR-Konfigurator
|
||||
# 🚀 **VR-Konfigurator**
|
||||
|
||||
## Goals
|
||||
- Möglichkeit, 3D-Modelle in VR anzuzeigen und zu konfigurieren
|
||||
Willkommen zum **VR-Konfigurator**! Hier kannst du Fahrzeuge in VR und AR konfigurieren und eine coole User-Experience genießen.
|
||||
|
||||
## Non-Goals
|
||||
- TBD
|
||||
---
|
||||
|
||||
## Structure
|
||||
- Model (zB EmRoCar)
|
||||
+ Port (zB "wheel")
|
||||
* ChildModel ("wheel", Reifenmodell)
|
||||
- ...
|
||||
## 🎯 **Ziele (Goals)**
|
||||
|
||||
## Adding Models
|
||||
1. Add Mesh (.obj/.fbx) & Material to Assets/Resources/
|
||||
2. (Optional) Add Port IDs in [Definitions.cs](/vr-configurator/Assets/Scripts/Models/Definitions.cs)
|
||||
3. Define Models in [ModelList.cs](/vr-configurator/Assets/Scripts/Models/ModelList.cs)
|
||||
✔️ 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
|
||||
|
||||
## Adding Childmodels
|
||||
1. Add a new Child in List ChildModels in [ModelList.cs](/vr-configurator/Assets/Scripts/Models/ModelList.cs)
|
||||
2. Each Child has a Port, a human name, a nameId, a mesh, a material, a portList(always null) and a list of changeable colors(default null)
|
||||
|
||||
## Contributors
|
||||
- Max Luca Schmidt
|
||||
- Florian Speicher
|
||||
- Tim Wall
|
||||
Reference in New Issue
Block a user