MiniScript im Metaverse: Deine kreative Freiheit in 3D-Welten

Willkommen, XR-Pioniere und zukünftige Welterbauer! Hast du dich jemals gefragt, wie du deine interaktiven Erlebnisse gestalten kannst? Deine Galaxie hat eine leistungsstarke und leicht zugängliche Skriptsprache: MiniScript.

Deine Galaxie, baut auf Unity und läuft nahtlos in Webbrowsern und auf VR-Geräten und bietet dir die Möglichkeit, deine 3D-Objekte mit MiniScript zum Leben zu erwecken. Vergiss komplexe Programmierumgebungen – mit MiniScript gestaltest du Interaktionen direkt im Editor, intuitiv und effizient.

Was macht MiniScript so besonders und wie kannst du es nutzen, um deine Visionen in deiner Galaxie zu verwirklichen? Tauchen wir ein!

Die Essenz von MiniScript: Saubere Syntax, maximales Metaverse

MiniScript (von Joe Strout), ist eine hochrangige, objektorientierte Skriptsprache, die für ihre Klarheit und Einfachheit bekannt ist. Hier sind die wichtigsten Syntax-Merkmale, die du nutzen kannst:

  • Kein Semikolon-Zwang: Jede Anweisung steht in der Regel in einer eigenen Zeile, ohne abschließendes Semikolon. Für kompaktere Codezeilen kannst du Anweisungen jedoch mit einem Semikolon trennen.
  • Klare Codeblöcke: Statt geschweifter Klammern ({}), wie sie aus vielen anderen Sprachen bekannt sind, verwendet MiniScript Schlüsselwörter wie if, for, while und function zum Starten von Codeblöcken, die jeweils mit einem passenden end-Statement (end if, end for, end while, end function) abgeschlossen werden.
  • Lesbarkeit durch Einrückung: Obwohl nicht zwingend erforderlich, fördert die Einrückung von Codeblöcken die Lesbarkeit und Struktur deines Skripts.
  • Einfache Kommentare: Beginne eine Zeile oder füge Kommentare nach einer Anweisung mit zwei Schrägstrichen (//) ein.
  • Keine unnötigen Klammern: Bei Funktionsaufrufen ohne Argumente oder um Bedingungen in if– oder while-Anweisungen sind Klammern nicht erforderlich und sollten weggelassen werden.
  • Lokale Variablen als Standard: Variablen sind standardmäßig lokal, was die Fehleranfälligkeit reduziert. MiniScript ist case-sensitive, achte also auf Groß- und Kleinschreibung!
  • Dynamische Typisierung: Du kannst jeder Variablen jeden Datentyp zuweisen – sei es eine Zahl, ein String, eine Liste oder eine Map.

Interaktion im Metaverse: Die Custom Commands

Unsere Plattform erweitert MiniScript um spezifische “Custom Commands”, die dir die Kontrolle über deine 3D-Welt geben. Hier sind einige der mächtigsten Werkzeuge:

1. Objektmanipulation

Verändere Position, Rotation und Größe deiner Objekte in Echtzeit:

  • moveObject "Objektname", fX, fY, fZ
  • rotateObject "Objektname", fX, fY, fZ
  • scaleObject "Objektname", fX, fY, fZ
  • Lichteffekte steuerst du mit setLightObject.
  • Spiele Animationen auf deinen Modellen ab mit aniObject.

2. Interaktion & Benutzeroberfläche

Gestalte interaktive Elemente und gib Feedback:

  • openURL "URL": Öffnet externe Links.
  • messageBox "Titel", "Nachricht": Zeigt informative Pop-ups an.
  • examineObject und examineObjectWithButton: Ermöglichen detaillierte Objektinspektionen, optional mit einem Button zu einer URL.

3. Audio- & Videowiedergabe

Tauche deine Nutzer in immersive Klang- und Seherlebnisse ein:

  • playSound "SoundNummer", "oneshot/loop", "2D/3D": Für integrierte Sounds.
  • playAudio "Objektname", "MP3_URL", "loop/false", fVolume: Für eigene MP3-Dateien.
  • playAmbientAudio: Für räumliche Hintergrundgeräusche.
  • playVideo "Objektname", "MP4_URL", "loop/false", fVolume: Für Videowiedergabe auf Objekten.

4. Navigation

Führe Benutzer durch deine Welten:

  • localJump "Objektname": Springt den Spieler zu einem spezifischen Objekt innerhalb des aktuellen Plots.
  • plotJump: Ermöglicht Sprünge zu anderen Plots oder Galaxien.

5. NPCs & Avatare

Belebe deine Welt mit intelligenten Charakteren:

  • customAvatarAnim "AnimationNameOrID", "PlayMode": Steuere Avatar-Animationen. Es gibt eine breite Palette an integrierten Animationen (z.B. “Cheer Jump”, “Hello Hand Wave”, “Yoga Poses”).
  • makeNPC: Erstelle nicht-spielbare Charaktere mit anpassbaren Nachrichten und Verhaltensweisen.

6. Netzwerkbefehle

Erlebnisse für alle:

  • networkCommand "Objektname", "Befehl", "Daten": Sende Befehle, die für alle verbundenen Clients sichtbar sind, z.B. um Objekte zu bewegen, zu skalieren, zu rotieren oder Texturen zu ändern. Dies ist entscheidend für Multi-User-Interaktionen.

7. Code-Ausführung

  • runObjectCode "Objektname": Führe MiniScript-Code aus, der an andere Objekte gebunden ist.

Tipps für den Editor

  • Objektnamen: Objekte werden immer über ihren genauen Namen (als String) referenziert, z.B. "MeinWürfel".
  • Zufälligkeit: Nutze die rnd-Funktion, um Zufallszahlen zu generieren und so dynamische, unvorhersehbare Erlebnisse zu schaffen.
  • Zeitsteuerung: time gibt die Laufzeit des Skripts an, während wait die Ausführung für eine bestimmte Dauer pausiert.
  • Einschränkungen: Bitte beachte, dass die Funktionen new, create und input (noch) nicht verfügbar sind. Auch der print-Befehl wird nicht verwendet, da die Ausgabe über messageBox erfolgt.

Play Forward

MiniScript ist dein Schlüssel, um deine Galaxie mit Leben zu füllen. Die einfache, aber mächtige Syntax, kombiniert mit unseren spezifischen Custom Commands, bietet dir unbegrenzte Möglichkeiten, interaktive und immersive Welten zu erschaffen. Experimentiere, lerne und lass deiner Kreativität freien Lauf oder schau dir ein paar Beispiele an.

Scroll to Top