Zum Hauptinhalt springen

Ereignisse

Ein Ereignis ist ein Satz: wenn das passiert, tu diese Dinge.

WENN  jemand die Tür antippt
DANN das Knarren abspielen
sie in 600 ms aufschwingen lassen
das Schild „verschlossen" deaktivieren

Das wenn ist ein Auslöser. Das dann ist eine Liste von Schritten. Das ist die ganze Idee — und sie deckt einen überraschend großen Teil dessen ab, was ein Projekt braucht.

Ein Objekt kann beliebig viele Ereignisse tragen, und jedes läuft für sich.

Das sind die Namen, die Sie im Editor sehen

Wenn Sie auch Skripte schreiben oder Patches bauen, hat jedes zusätzlich einen kurzen Codenamen — die Referenzen für Auslöser und Schritte führen beide nebeneinander. Beim Bauen im Editor brauchen Sie ihn nie.

Zwei generierte Listen, die man offen lassen sollte

Jeder Auslöser, auf den Sie reagieren können: Auslöser. Jede Aktion, die Sie ausführen können: Schritte. Beide kommen direkt aus der Engine und sind daher nie veraltet.

Jeder Auslöser, und wofür er da ist

Die generierte Auslöser-Referenz nennt die Parameter jedes einzelnen. Hier steht, was sie bedeuten und wo sie überraschen.

Eingaben

Im EditorFeuert, wenn
Mouse buttonein Tippen oder Klick — Zweige für Klick, Drücken und Loslassen
Hoverder Cursor das Objekt betritt oder verlässt
Double clickzwei Klicks auf dasselbe Objekt binnen 300 ms
Long press450 ms gehalten, ohne zu bewegen
Keyeine Taste — Zweige für Drücken und Loslassen
Scrolldas Rad sich dreht; nach Richtung filterbar
Dragplatzierter AR-Inhalt gezogen wird
Pinchplatzierter AR-Inhalt zum Skalieren gezwickt wird
Rotateplatzierter AR-Inhalt gedreht wird

Die drei Gesten-Auslöser gibt es nur auf Surface-Szenen — sie betreffen Inhalt, den der Besucher platziert hat. Sie wiederholen sich fortlaufend, solange der Finger sich bewegt; behandeln Sie sie als Strom, nicht als einzelnen Moment.

Lebenszyklus

Im EditorFeuert, wenn
Launchdie Szene startet — erreicht jedes Objekt
ResizeFenster oder Viewport die Größe ändert
PauseApp oder Tab in den Hintergrund geht
Resumesie zurückkommt
on-pause ist der Ort, an dem man Dinge höflich stoppt

Töne spielen weiter, wenn ein Besucher die App wechselt, sofern Sie sie nicht stoppen. Audio und Timer auf on-pause zu pausieren und auf on-resume wiederherzustellen ist eine Kleinigkeit, die Leute bemerken.

Tracking

Im EditorFeuert, wenn
DetectMarker oder Fläche gefunden wird
Tracking lostdas Tracking verloren geht
Placedder Besucher den Inhalt platziert hat
VPS readydie Verortung gestartet ist
VPS localizeddie echte Position des Besuchers gefunden wurde
VPS localization failedsie es nicht wurde — das ist normal, kein Fehler
VPS errordie Verortung gar nicht laufen konnte

Jeder wird nur auf Szenen angeboten, deren Anker ihn erzeugen kann. Erkennung wird an der Flanke gemeldet, wenn das Tracking beginnt, nicht in jedem Bild.

Eine misslungene VPS-Lokalisierung ist zu erwarten

on-vps-not-localized feuert routinemäßig, während der Besucher nach einer Stelle sucht, die die Karte erkennt. Behandeln Sie es als „weiter versuchen", nicht als anzukündigenden Fehlschlag.

Zeit und Nähe

Im EditorFeuert, wenn
Delayeinmal, nach einer Verzögerung
Every N secondswiederholt — eine Wiederholungszahl von 0 heißt endlos
Distanceetwas in einen Abstand kommt oder ihn verlässt — zwei Zweige
Visibilitydas Objekt gezeigt oder verborgen wird
Variable changesich der Wert einer Variablen ändert

on-distance hat eine Option „beim Start prüfen". Ohne sie feuert ein Objekt, das beim Öffnen der Szene bereits nah ist, erst, wenn sich etwas bewegt.

State, Physik und Oberfläche

Im EditorFeuert, wenn
State activedieses Objekt den gewählten State betritt
State inactivees ihn verlässt
Collisiondieses Objekt ein anderes berührt — optional nur bestimmte
UI actionein Button auf einer Interface-Karte gedrückt wurde
Signalein anderes Ereignis ein Signal gesendet hat
Game controlsdie Figur den Zustand gewechselt hat

Ein Ereignis, beide Richtungen

Manche Auslöser haben Zweige, ein einzelnes Ereignis behandelt also jeden Ausgang. Legen Sie einen Abstand einmal fest und antworten Sie sowohl auf Annäherung als auch auf Entfernen:

AuslöserZweige
Distancebetreten · verlassen
Keygedrückt · losgelassen
Hoverbetreten · verlassen
MouseKlick · gedrückt · losgelassen
Visibilitygezeigt · verborgen
Game controlRuhe · Bewegung · Sprung · Laufen

Im Editor bekommen Sie je Zweig einen Abschnitt. Auslöser ohne Zweige haben einen einzigen, „bei Aktivierung".

Auf welche Objekte ein Schritt wirkt

Jeder Schritt hat Ziele.

Bleiben sie leer, wirkt der Schritt auf das Objekt, das das Ereignis trägt — der Normalfall. Füllen Sie sie aus, wirkt er stattdessen auf jene Objekte; so öffnet ein Ereignis auf einem Button drei Türen.

Tipper wandern zu den Eltern hinauf

Ein Tippen, ein Hovern oder eine Kartenaktion erreicht das Objekt und seine Elternobjekte.

Das spart viel Wiederholung: Ein Ereignis auf einer Gruppe fängt Tipper auf alles darin ab, statt dass Sie dasselbe Ereignis auf vierzig Objekte kopieren.

Zwei angenehme Nebenwirkungen:

  • „irgendwo in diesem Panel tippen" ist ein Ereignis auf dem Panel;
  • zwischen zwei Kindern desselben Elternobjekts zu gleiten löst kein Hover/Blur am Elternobjekt aus, weil Sie es nie wirklich verlassen haben.

Kollisionen sind die Ausnahme — sie feuern nur dort, wo sie passiert sind. Und Tastatur, Scrollen, Größenänderung und Szenenstart betreffen kein einzelnes Objekt, sie erreichen also alles.

Mehrere Tasten für ein Ereignis

Springen mit Leertaste oder W ist ein Ereignis, nicht zwei Kopien. Die erste Kombination lebt im Auslöser; der Rest kommt in eine „oder"-Liste, als Text geschrieben:

ArrowUp        ctrl+KeyW        KeyA+KeyS        Space+double

Modifikatoren gehören zu der Kombination, in der sie stehen, und eine Alternative ersetzt die Belegung, statt sie zu ergänzen. Maustasten nutzen dasselbe Format (mouse:middle).

Noch besser: Nennen Sie eine Projektbelegung statt einer Taste. Legen Sie „Sprung" einmal in den Projekteinstellungen neu, und jedes Ereignis, das sie erwähnt, zieht mit — genau das, was Sie an dem Tag wollen, an dem jemand nach Linkshänder-Steuerung fragt.

Jeder Schritt, und was er tut

Die Parameter stehen in der generierten Schritt-Referenz.

Im EditorTut
Scene transitionzu einer anderen Szene gehen
Space transitionzu einem anderen Space gehen, optional zu einer bestimmten Szene
Open URLeinen Link öffnen, in diesem Tab oder einem neuen
Open messengerFacebook, VK, OK, Instagram, Telegram, WhatsApp oder Viber
Call phone numbereinen Anruf starten
Compose emaileine E-Mail beginnen
File downloadeine Datei aus Ihrem Projekt herunterladen
Contact downloadeine Kontaktkarte anbieten, aus den ausgefüllten Feldern gebaut

Der Messenger-Schritt nimmt eine Seiten-Id für Facebook, VK und OK, einen Benutzernamen für Instagram und Telegram und eine Telefonnummer für WhatsApp und Viber.

Die Szene ändern

Im EditorTut
Show / hide objectdie Ziele zeigen oder verbergen — auf einer Szene aktiviert das sie
Set statein einen benannten State wechseln, optional weich über eine Dauer
Override propertieseinen einmaligen Satz Werte als temporären State anwenden

Animation

Im EditorTut
Play animationein Timeline-Preset abspielen — Schleife, Wiederholungen, Tempo, Verzögerung
Stop animationeines stoppen
Transformationüber die Zeit bewegen, drehen oder skalieren
Opacityein- oder ausblenden
Materialdie Materialien der Ziele zu einem gespeicherten hin mischen
Bone transformeinen einzelnen Knochen bewegen
Built-in animationeinen Clip abspielen, der mit einem Modell kam

Play animation kann eine Animation irgendeines Objekts starten, nicht nur die des Objekts mit dem Ereignis — so startet ein Button eine Sequenz, an der mehrere Dinge zugleich beteiligt sind.

Bewegung

Im EditorTut
Follow objectfortlaufend folgen — Abstand, Versatz, Glättung und Tempo
Look at objectsich zu etwas drehen, ohne sich zu bewegen
Stop followingbeides beenden
Fly along patheinen Pfad entlangfahren
Stop path flightdas beenden

Logik

Im EditorTut
If — otherwiseeine Bedingung prüfen und eine von zwei verschachtelten Schrittlisten ausführen
Set variableeine Variable setzen, erhöhen oder umschalten
Send signalein Signal senden — an die Ziele oder an alle
Wait, thenwarten, bevor die darin verschachtelten Schritte laufen

Zeiger

Lock pointer und Release pointer verbergen den Mauszeiger und geben seine Bewegung an Ihre Szene weiter — was ein Ego-Spiel braucht, damit der Zeiger nicht aus dem Fenster wandert.

Bedingungen

if_action ist ein Schritt, keine Eigenschaft des Ereignisses — Bedingungen verschachteln sich also, und „wenn im wenn" ist der Weg zu mehr als zwei Ausgängen.

Worauf die Bedingung schaut, legt ihre Quelle fest:

QuellePrüftMit
alwaysnichts — immer wahr
variableden Wert einer VariablenVariable, Operator, Wert
distancewie weit das Objekt des Ereignisses von einem anderen entfernt istZiel, Operator, Schwelle
statein welchem State ein anderes Objekt istZiel, State
visibleob etwas sichtbar istZiel, Flag
randomZufallSchwelle, in Prozent

Werte werden locker gelesen: 3 wird eine Zahl, true ein Boolean, alles andere bleibt Text. == und != vergleichen exakt; die übrigen Operatoren vergleichen als Zahlen.

Variablen, Signale und Timer

Variablen halten für den Besuch, nicht für das Projekt — sie starten jedes Mal leer, wenn jemand Ihr Erlebnis öffnet. Geben Sie ihnen ihre Startwerte aus einem Ereignis beim Szenenstart. Es sind dieselben Variablen, die ein Skript als Globals sieht.

Signale (emit_signalon-signal) verketten Ereignisse, ohne Schritte zu kopieren: Mehrere Ereignisse hören auf level-complete, und alles kann es senden. Ein Signal, das sich selbst erneut sendet, hört nach acht Runden auf, statt das Bild einzufrieren.

Timer starten, wenn ihr Objekt lebendig wird, und setzen sich zurück, wenn es deaktiviert wird. Erneutes Aktivieren startet die Zählung neu, statt eine Salve verpasster Ticks abzufeuern.

States

Ein State ist eine benannte Momentaufnahme der Einstellungen eines Objekts: Position, Farbe, Sichtbarkeit, was Sie wollen. Auf einen State zu wechseln wendet die Momentaufnahme an, und mit einer Dauer zu wechseln lässt es weich laufen.

States sind der saubere Weg zu einem Schalter, einem Hervorheben, einer Tür, die offen oder zu ist — ganz ohne etwas von Hand zu animieren.

Solange ein State ausgewählt ist, landen Ihre Änderungen darin

Ändern Sie ein Objekt, während einer seiner States aktiv ist, bearbeiten Sie die Momentaufnahme dieses States, nicht das Objekt. Genau das wollen Sie beim Bauen von States — und es ist gründlich verwirrend, wenn Sie nicht bemerkt haben, dass ein State ausgewählt war.

Re-Tracking

Bei AR-Szenen entscheidet der Re-Tracking-Modus jedes Ereignisses, was passiert, wenn der Marker verloren und wiedergefunden wird: sofort von vorn beginnen, nie neu starten, oder neu starten, sobald die laufenden Schritte fertig sind.

Wenn Sie auch Skripte schreiben

Ereignisse, Patches und Skripte teilen ein Vokabular — dasselbe Tippen erreicht alle drei.

Behandeln Sie jeden Auslöser nur an einer Stelle

Derselbe Auslöser am selben Objekt, sowohl als Ereignis als auch als Skript verdrahtet, läuft zweimal. Wenn etwas doppelt feuert, liegt es fast immer daran.


Weiter: Animation — Dinge in Bewegung bringen.