Was du mit Level-XML machen kannst

Mit Level-XML für Happy Wheels kannst du geteilte Kreationen in den Level-Editor laden, ohne jedes Objekt von Hand nachbauen zu müssen. Es bildet Level-Objekte und Einstellungen als strukturierten Text ab. Das ist praktisch, um Kreationen auszutauschen, die Funktionsweise von Objekten zu verstehen und automatisch erzeugte Grafiken zu importieren.

Dieser Text wird auch LevelXML oder Level Data genannt und enthält Einträge für Formen, Spezialobjekte, Gelenkverbindungen, Trigger und andere Bestandteile eines Levels. Jedes Objekt kann mehrere Eigenschaften haben, weshalb selbst eine einfache Szene eine beträchtliche Menge Code erzeugen kann. Du musst nicht jede Eigenschaft verstehen, um ein vollständiges, funktionierendes Level zu importieren.

Wichtig ist der Unterschied zwischen einem spielbaren Level und seinen bearbeitbaren Daten. Ein Level-Titel, ein Screenshot oder ein öffentlicher Link zum Spielen enthält für sich genommen kein XML, das du in den Editor einfügen kannst. Verwende Daten aus deiner eigenen Kreation oder XML, das ein anderer Ersteller geteilt hat. Diese Anleitung bezieht sich auf den Editor des Browserspiels.

Happy Wheels screenshot 5
Image: Steam

Level-Daten importieren und bearbeiten

Der grundlegende Ablauf besteht darin, den vollständigen LevelXML-Text zu kopieren und in das Feld zum Importieren von Level-Daten im Level-Editor einzufügen. Dabei kommt es auf die umschließenden Tags an: Die Daten benötigen ein öffnendes <levelXML>-Tag und ein passendes schließendes </levelXML>-Tag.

Gehe in dieser Reihenfolge vor, damit sich Fehler leicht eingrenzen lassen:

  1. Bewahre eine unveränderte Kopie auf. Sichere das ursprüngliche XML, bevor du Werte änderst, besonders bei einer umfangreichen Kreation.

  2. Öffne den Level-Editor. Rufe Happy Wheels auf Totaljerkface.com auf. Die Website benötigt JavaScript, um zu funktionieren.

  3. Kopiere die vollständigen Daten. Nimm die öffnenden und schließenden äußeren Tags mit. Lass Überschriften der Webseite und den umgebenden Erklärungstext weg.

  4. Füge den Text in das Feld zum Importieren von Level-Daten ein. Achte darauf, dass du das eigentliche XML kopiert hast und keinen Link zu dessen Speicherort.

  5. Prüfe die importierte Szene. Kontrolliere die Platzierung der Objekte, die Startfigur und den Hintergrund, bevor du weitere Änderungen vornimmst.

  6. Teste das Level. Ein erfolgreicher Import garantiert nicht, dass sich jede Kollision, Gelenkverbindung oder jedes bewegliche Objekt wie vorgesehen verhält.

  7. Ändere immer nur eine Sache auf einmal. Nimm eine kleine Änderung vor, importiere oder teste erneut und vergleiche das Ergebnis mit dem Original.

Verwende für deinen ersten Versuch ein kleines Level, dessen Aufbau du bereits verstehst. Die Position eines einzelnen Objekts zu ändern, lässt sich leichter beurteilen, als mehrere unbekannte Eigenschaften in einer komplexen Szene anzupassen.

In älterem XML können Einstellungen fehlen, die erst nach seiner Erstellung eingeführt wurden. Die LevelXML-Referenz im Happy Wheels Wiki empfiehlt, die Daten erneut zu laden und zu speichern, wenn eine erwartete Einstellung fehlt. Behalte dabei die ursprüngliche Kopie, damit du die Versionen vergleichen kannst.

Video: Happy Wheels gameplay and trailer

Die XML-Struktur verstehen

LevelXML ordnet verschiedene Arten von Level-Inhalten in erkennbare Abschnitte ein. Wenn du diese Abschnitte kennst, findest du die passende Stelle im Dokument leichter und vermeidest es, alle nummerierten Eigenschaften als austauschbar zu betrachten.

XML-BestandteilBedeutung
<levelXML>...</levelXML>Der äußere Container für die Level-Daten.
<shapes>Einträge für Formen, darunter geometrische Formen, Polygone und Grafikobjekte.
<specials>Im Level platzierte Spezialobjekte.
<joints>Daten zu Gelenkverbindungen, einschließlich Verbindungen, die mit dem Werkzeug Pin Joint erstellt wurden.
<triggers>Trigger-Daten, die zum Trigger-Werkzeug gehören.
<![CDATA[...]]>Ein Abschnitt, der angezeigte Textinhalte enthält.

Text verdient besondere Aufmerksamkeit. Die lesbaren Wörter stehen innerhalb eines CDATA-Abschnitts und sehen daher anders aus als die nummerierten Attribute vieler Objekte. Wenn du eine Beschriftung bearbeitest, lass das umgebende XML und die CDATA-Markierungen unverändert.

Die folgenden Felder bieten einen guten Einstieg. Dabei ist der Zusammenhang entscheidend: Eine nummerierte Eigenschaft in einem Formeintrag hat nicht automatisch bei jedem Spezialobjekt dieselbe Bedeutung.

Feld oder AttributBedeutung
Level x und yDie Startkoordinaten der Hauptfigur.
Level cDie ausgewählte Hauptfigur.
Level fOb die ausgewählte Figur verbindlich vorgegeben ist; t bedeutet wahr und f bedeutet falsch.
Level hOb das Fahrzeug der Figur ausgeblendet ist.
Level bgAuswahl der Hintergrundkulisse: 0 ist leer, 1 sind grüne Hügel und 2 ist eine Stadt.
Level bgcDie Hintergrundfarbe als dezimaler RGB-Wert.
Objekt p0 und p1Die horizontalen und vertikalen Koordinaten des Objekts.
Form p2 und p3Die Breite und Höhe der Form.
Form tDer Formtyp: Rechteck 0, Kreis 1, Dreieck 2, Polygon 3 oder Grafikobjekt 4.

Einige Werte werden beim Import angepasst. Objektkoordinaten werden nach zwei Nachkommastellen abgeschnitten. Die Abmessungen von Rechtecken und Kreisen werden in ganze Zahlen umgewandelt und auf den dokumentierten Bereich von 5 bis 5.000 begrenzt.

Formtypen beeinflussen auch das Verhalten. Wenn du ein Grafikobjekt in ein Polygon umwandelst, kann die Kollisionserkennung an konkaven Bereichen fehlerhaft sein. Die sichtbare Kontur und das physikalische Verhalten solltest du nach einer Bearbeitung deshalb getrennt prüfen.

Happy Wheels screenshot 6
Image: Steam

Import- und Darstellungsprobleme beheben

Wenn ein Import fehlschlägt oder eine unerwartete Szene erzeugt, gehe von der kleinsten Änderung aus rückwärts vor. Probiere zuerst das unveränderte XML aus und vergleiche es dann mit der bearbeiteten Version.

ProblemWas du prüfen solltest
Die Daten lassen sich nicht importierenPrüfe, ob die vollständigen öffnenden und schließenden levelXML-Tags vorhanden sind und der Text nicht abgeschnitten wurde.
Ein kopiertes Beispiel lässt sich nicht ladenPrüfe, ob es sich nur um ein einzelnes Objekt oder einen Abschnitt statt um vollständige Level-Daten handelt.
Eine erwartete Einstellung fehltÄlteres XML kann aus der Zeit vor Einführung dieser Einstellung stammen; lade und speichere das Level erneut.
Eine Form verschwindet beim ImportPrüfe ihren Typwert. Formtypen außerhalb des unterstützten Bereichs werden nicht importiert.
Der Editor wird nach dem Hinzufügen von Grafiken langsamerBildkonvertierungen können viele Objekte erzeugen; probiere ein kleineres oder einfacheres Bild aus.

Umschließende Tags sind erforderlich. Wenn du sie jedoch um ein beliebiges Fragment ergänzt, ist damit nicht sichergestellt, dass es alle für ein funktionierendes Level benötigten Daten enthält. Ein Rechteck-Beispiel kann ein einzelnes Objekt erklären, ohne die umgebenden Level-Informationen mitzuliefern.

Wenn ein Objekt erscheint, sich aber anders verhält, prüfe deine Änderungen. Eine Änderung des Formtyps kann die Kollisionserkennung beeinflussen, während eine Positionsänderung den Standort des Objekts verändert. Teste jede Anpassung einzeln.

Ebenso deutet ein fehlendes Attribut nicht immer auf beschädigte Daten hin. Das Interaktionsattribut i erscheint beispielsweise bei nicht interaktiven Formen oder Grafikobjekten als i="f"; bei interaktiven Formen und Polygonen kann es fehlen. Vergleiche gleichartige Objekte, bevor du ein vermeintlich fehlendes Feld ergänzt.

Geteilte Kreationen finden und Bilder umwandeln

Ersteller haben Pastebin genutzt, um Level-Daten zu teilen. Community-Seiten und Erstellerprofile können dir helfen, passende Projekte zu entdecken. Suche nach einem Beitrag oder Download mit tatsächlichen XML-Daten zu einer Kreation, statt davon auszugehen, dass jedes aufgeführte Level bearbeitbare Daten enthält.

Zum Beispiel führt das Profil von the random maker „Level XML (Artwork)“ mit dem Datum 27. September 2014 auf. Protoxons Profil enthält „Props for Levels Xml“ vom 18. Mai 2021. Diese Einträge verweisen auf passende Kreationen, sind selbst aber keine XML-Dokumente.

Das Level-Archiv für Happy Wheels listet außerdem Einträge wie „LevelXML #4 [Ferris Wheel]“ und „LevelXML #6 [Candyland]“ auf. Nutze diese Namen als Ausgangspunkte für deine Suche und prüfe, was die einzelnen Einträge tatsächlich anbieten.

Ein weiterer Einsatzbereich von LevelXML ist die Bildkonvertierung. Statt jedes farbige Teil von Hand zu platzieren, lässt du einen Konverter Level-Objekte aus einem Bild erzeugen.

ProjektDokumentierte Vorgehensweise
Pixelsufts Happy Wheels PictureEin GitHub-Projekt, das als Website zur Umwandlung von Bildern in XML-Level-Daten für Happy Wheels beschrieben wird.
PeturDarris BildkonverterEin Projekt von 2014, das zunächst 5 × 5 große Rechtecke verwendete; eine spätere Version wird als Variante mit 2 × 2 großen Polygonen beschrieben.

Diese Verfahren wandeln Bilder in Objekte um, die der Editor darstellen kann. Mehr Bilddetails können mehr Objekte bedeuten. PeturDarri berichtete ausdrücklich, dass die Bildgröße sowohl den Editor als auch das Spiel erheblich verlangsamen konnte.

Damit deine erste Konvertierung überschaubar bleibt:

  • Wähle ein kleines Bild mit einer klaren Silhouette.
  • Beginne mit einfachen Farben und wenigen feinen Details.
  • Importiere die Grafik, bevor du eine komplexe Szene darum herum baust.
  • Teste die Leistung sowohl beim Spielen als auch beim Bearbeiten.
  • Sichere deine ursprünglichen Level-Daten, bevor du die erzeugten Objekte hinzufügst.

FAQ

Was bedeutet „happy wheels level xml“?

Damit ist der strukturierte Text gemeint, der ein Level in Happy Wheels beschreibt. LevelXML und Level Data sind andere Bezeichnungen dafür. Der Level-Editor kann diesen Text einlesen, um Objekte und Einstellungen wiederherzustellen.

Kann ich aus jedem öffentlichen Level-Link XML erhalten?

Ein öffentlicher Link zum Spielen ist selbst keine bearbeitbare Level-Datei. Suche nach XML, das der Ersteller geteilt hat, oder frage ihn nach der gewünschten Kreation. Diskussionen in der Community über frühere Importfunktionen belegen keine aktuell nutzbare Methode, mit der sich jedes veröffentlichte Level extrahieren lässt.

Kann ich eine einzelne Form in das Importfeld einfügen?

Ein Formeintrag ist nur ein Teil eines Level-Dokuments. Gehe nicht davon aus, dass sich ein isoliertes Objektbeispiel allein importieren lässt. Verwende vollständige, funktionierende Level-Daten als Ausgangspunkt und nimm darin gezielte, klar begrenzte Änderungen vor.

Bleibt bei einem Bildkonverter jedes Detail erhalten?

Der Detailgrad hängt davon ab, wie der Konverter das Bild abbildet und wie viele Objekte er erzeugt. PeturDarris dokumentierte Versionen verwendeten kleine Rechtecke und Polygone. Mehr Details können den Editor stärker belasten. Beginne deshalb mit einem kleinen Bild und teste das Ergebnis.

Gelten diese Feldbeschreibungen unverändert auch für iOS?

Gehe nicht davon aus, dass alles identisch kompatibel ist. Das Happy Wheels Wiki dokumentiert Level-XML für iOS separat, einschließlich eigener Ausgangsdaten und Objekteinträge wie eines Zeitlupen-Panels. Nutze die Dokumentation für die Version, in der du arbeitest, bevor du plattformspezifische Daten überträgst oder änderst.