Basis-Permutation
Die Basis bildet zwischen dem internen Koordinatensystem von Haply und dem Ihrer Anwendung ab.
Standard-Bezugssystem von Haply
Haply verwendet ein rechtshändiges Koordinatensystem:
| Achse | Richtung |
|---|---|
| +X | Rechts |
| +Y | Vorwärts |
| +Z | Oben |
So funktioniert es
Eine Permutationszeichenkette gibt dem Dienst an, wie die Achsen Ihrer Anwendung auf die von Haply abgebildet werden. Nach dem Setzen wird jeder Wert, den der Dienst zurückgibt (Positionen, Geschwindigkeiten, Kräfte, Ausrichtungen) in Ihrer Basis ausgedrückt, und jeder Wert, den Sie senden wird in Ihrer Basis interpretiert. Die Umrechnung erfolgt automatisch und in beide Richtungen.
Die Zeichenkette ist eine Permutation von X, Y, Z, optional mit vorangestelltem + oder
-, um eine Achse zu negieren.
Beispiele
| Permutation | Bedeutung | Typische Verwendung |
|---|---|---|
XYZ | Identität — keine Neuzuordnung | Haply-native Apps |
XZY | Y und Z tauschen → Ihre +Y-Achse zeigt nach oben | Y-up-Engines |
X-YZ | Y negieren → linkshändiges Z-up | Unreal Engine |
ZXY | Alle drei Achsen rotieren | Benutzerdefiniertes Bezugssystem |
Interpretation
"YZX" bedeutet:
- Ihre X-Achse entspricht der Y-Achse von Haply (vorwärts)
- Ihre Y-Achse entspricht der Z-Achse von Haply (oben)
- Ihre Z-Achse entspricht der X-Achse von Haply (rechts)
Basis festlegen
- WebSocket
- HTTP
{
"session": {
"configure": {
"basis": { "permutation": "XZY" }
}
}
}
curl -X POST "http://localhost:10001/inverse3/0/config/basis?session=:0" \
-H "Content-Type: application/json" \
-d '{"permutation": "XZY"}'
Die Basis ist persistent -- Sie legen sie einmal mit der ersten Nachricht fest, und sie bleibt aktiv, bis sie geändert wird oder die Sitzung endet.
session.set_basisDie Vorzeichenkonvention der Achsen hat sich zwischen dem Legacy-Befehl session.set_basis und
session.configure.basis geändert. Eine Permutation, die mit dem alten Befehl funktioniert hat, kann
mit dem neuen Befehl eine invertierte Transformation erzeugen. Kehren Sie die Vorzeichen der Achsen
bei Bedarf um (z. B. wird X-ZY zu XZ-Y).
Details finden Sie im Migrationsleitfaden für 3.5.