Pauspapier: Unterschied zwischen den Versionen
(6 dazwischenliegende Versionen desselben Benutzers werden nicht angezeigt) | |||
Zeile 9: | Zeile 9: | ||
== Parameter== | == Parameter== | ||
Pauspapier verfügt über mehr oder weniger die gleichen Parameter wie [[ZickZack]] - aufgrund der abgewandelten Funktionsweise kommen jedoch ein paar dazu und andere fallen dafür weg... | Pauspapier verfügt über mehr oder weniger die gleichen Parameter wie [[ZickZack]] - aufgrund der abgewandelten Funktionsweise kommen jedoch ein paar dazu und andere fallen dafür weg... | ||
− | * '''Spiel''' | + | * '''Spiel''' - ID des Spiels aus dem die Vektoren geladen werden sollen |
− | * '''Spieler''' | + | * '''Spieler''' - Name oder ID des Spielers von dem die Vektoren geladen werden sollen |
* <s>'''Streckenlänge'''</s> - die Länge ergibt sich aus den Vektoren des Spielers | * <s>'''Streckenlänge'''</s> - die Länge ergibt sich aus den Vektoren des Spielers | ||
* '''Streckenbreite''' - die minimale und maximale Breite der Strecke (die Strecke wird dabei Mittig um einen Vektor aufgespannt und ist also nach rechts und links je Breite/2 breit) | * '''Streckenbreite''' - die minimale und maximale Breite der Strecke (die Strecke wird dabei Mittig um einen Vektor aufgespannt und ist also nach rechts und links je Breite/2 breit) | ||
Zeile 20: | Zeile 20: | ||
* <s>'''Startrichtung'''</s> - die Startrichtung wird anhand des ersten Vektors ermittelt | * <s>'''Startrichtung'''</s> - die Startrichtung wird anhand des ersten Vektors ermittelt | ||
* <s>'''Maximale Größe'''</s> - die Größe ergibt sich aus den Vektoren des Spielers | * <s>'''Maximale Größe'''</s> - die Größe ergibt sich aus den Vektoren des Spielers | ||
− | * '''Crashs ignorieren?''' | + | * '''Crashs ignorieren?''' - normalerweise ignoriert Pauspapier Crashvektoren (da diese bei großem ZZZ sonst quer über die Karte neue Verbindungen schaffen können). Mit dieser Einstellungen kann man die Crashvektoren aber einschließen |
− | * '''Zugbereich einschränken''' - normalerweise paust Pauspapier den gesamten Verlauf eines Spielers ab. Mit diesen zwei Parametern kann man einschränken welche Vektoren verwendet werden sollen (von, bis). | + | * '''Zugbereich einschränken''' - normalerweise paust Pauspapier den gesamten Verlauf eines Spielers ab. Mit diesen zwei Parametern kann man einschränken welche Vektoren verwendet werden sollen (von, bis). Kleine Hinweise dazu: |
+ | ** positive Zahlen vom Anfang, negative vom Ende | ||
+ | ** für 0 gilt: von = 0 --> ganz vom Anfang; bis = 0 --> ganz bis zum Ende | ||
+ | ** also z. B. | ||
+ | *** von=0, bis=0 --> alle Züge (default) | ||
+ | *** von=10, bis=-5 --> die ersten 10 und die letzten 5 Züge werden ignoriert | ||
+ | *** von=0, bis=100 --> nur die ersten 100 Züge werden genommen | ||
+ | *** von=-100, bis=0 --> nur die letzten 100 Züge werden genommen | ||
+ | ** aus Performance-Gründen ist bei 10000 Zügen erstmal Schluss (also ausgewählter Bereich von, bis) | ||
== Trivia == | == Trivia == | ||
Zeile 33: | Zeile 41: | ||
! Vektorverlauf (Input) !! Generierte Karte (Output) !! Generierte Karte (Output) - Variante | ! Vektorverlauf (Input) !! Generierte Karte (Output) !! Generierte Karte (Output) - Variante | ||
|- | |- | ||
− | | [[Bild:Pauspapier_39838_input.png|500px]] || [[Bild:Pauspapier_39838_output.png|500px]]<br/>Zugbereich: von=96 || [[Bild:Pauspapier_39838_output_uncut.png|500px]]<br/>Zugbereich NICHT eingeschränkt | + | | [[Bild:Pauspapier_39838_input.png|500px]] || [[Bild:Pauspapier_39838_output.png|500px]]<br/>Zugbereich: von=96, Breite: von=bis=1 || [[Bild:Pauspapier_39838_output_uncut.png|500px]]<br/>Zugbereich NICHT eingeschränkt, Breite: von=bis=2 |
|- | |- | ||
− | | [[Bild:Pauspapier_58511_input.png|500px]] || [[Bild:Pauspapier_58511_output.png|500px]]<br/>Zugbereich: bis=716 || - | + | | [[Bild:Pauspapier_58511_input.png|500px]] || [[Bild:Pauspapier_58511_output.png|500px]]<br/>Zugbereich: bis=716, Breite: von=bis=1 || - |
|- | |- | ||
− | | [[Bild:Pauspapier_141723_input.png|500px]] || [[Bild:Pauspapier_141723_output.png|500px]]<br/>Crashes ignoriert || [[Bild:Pauspapier_141723_output_withcrash.png|500px]]<br/>Crashes NICHT ignoriert | + | | [[Bild:Pauspapier_141723_input.png|500px]] || [[Bild:Pauspapier_141723_output.png|500px]]<br/>Crashes ignoriert, Zugbereich: von=0, bis=-14, Breite: von=2, bis=4 || [[Bild:Pauspapier_141723_output_withcrash.png|500px]]<br/>Crashes NICHT ignoriert, Zugbereich: von=0, bis=-14, Breite: von=2, bis=4 |
|} | |} | ||
Aktuelle Version vom 27. Mai 2024, 13:47 Uhr
Pauspapier ist ein von ultimate geschriebener Kartengenerator. Seit dem <tbd> ist er in Karopapier eingebunden.
Der Generator ist kein "normaler" Generator in dem Sinne, dass er eine Strecke "aus dem Nichts" erzeugt. Stattdessen erzeugt er Karten durch "durchpausen" des Zugverlaufs eines Spielers in einem Spiel.
Inhaltsverzeichnis
Streckenverlauf
Pauspapier arbeitet nach dem gleichen Prinzip wie ZickZack. Dabei wird lediglich der Schritt 2 des Algorithmus abgewandelt und statt zufälliger Abschnitte werden die die Vektoren des gewünschten Spielers aus einem Rennen aus der Karo-Datenbank geladen und als Abschnitte verwendet. Die zufällige Variiation der Streckenbreite, sowie alle weiteren Schritte (Checkpoints und Hindernisse hinzufügen, etc.) bleiben unverändert.
Parameter
Pauspapier verfügt über mehr oder weniger die gleichen Parameter wie ZickZack - aufgrund der abgewandelten Funktionsweise kommen jedoch ein paar dazu und andere fallen dafür weg...
- Spiel - ID des Spiels aus dem die Vektoren geladen werden sollen
- Spieler - Name oder ID des Spielers von dem die Vektoren geladen werden sollen
Streckenlänge- die Länge ergibt sich aus den Vektoren des Spielers- Streckenbreite - die minimale und maximale Breite der Strecke (die Strecke wird dabei Mittig um einen Vektor aufgespannt und ist also nach rechts und links je Breite/2 breit)
Zickigkeit (Stärke der Kurven)- der Verlauf ergibt sich aus den Vektoren des SpielersZackigkeit (Länge der Geraden)- der Verlauf ergibt sich aus den Vektoren des Spielers- Checkpoints - die Anzahl der Checkpoints (mindestens jedoch immer 4, wegen des ULTI-Logos - wenn du keine willst, dann deaktiviere sie einfach in den Spiel-Einstellungen). Die CPs werden dabei immer gleichmäßig auf die Gesamtlänge der Strecke (in Karos, nicht in Abschnitten) und aufsteigend ihrer Nummerierung von 1 bis zur eingestellten Anzahl verteilt.
- Hindernisse - die Anzahl der Hindernisse. Die Hindernisse werden dabei immer gleichmäßig auf die Gesamtlänge der Strecke (in Karos, nicht in Abschnitten) verteilt. Bei starken Ecken, werden unter Umständen Hindernisse weggelassen um die Wahrscheinlichkeit zu verringern, dass die Strecke unpassierbar wird. Achtung: bei zu vielen Hindernissen kann die Strecke trotzdem noch unbefahrbar werden.
Überschneidungen- Überschneidungen können sich natürlich aus den Vektoren des Spielers ergebenStartrichtung- die Startrichtung wird anhand des ersten Vektors ermitteltMaximale Größe- die Größe ergibt sich aus den Vektoren des Spielers- Crashs ignorieren? - normalerweise ignoriert Pauspapier Crashvektoren (da diese bei großem ZZZ sonst quer über die Karte neue Verbindungen schaffen können). Mit dieser Einstellungen kann man die Crashvektoren aber einschließen
- Zugbereich einschränken - normalerweise paust Pauspapier den gesamten Verlauf eines Spielers ab. Mit diesen zwei Parametern kann man einschränken welche Vektoren verwendet werden sollen (von, bis). Kleine Hinweise dazu:
- positive Zahlen vom Anfang, negative vom Ende
- für 0 gilt: von = 0 --> ganz vom Anfang; bis = 0 --> ganz bis zum Ende
- also z. B.
- von=0, bis=0 --> alle Züge (default)
- von=10, bis=-5 --> die ersten 10 und die letzten 5 Züge werden ignoriert
- von=0, bis=100 --> nur die ersten 100 Züge werden genommen
- von=-100, bis=0 --> nur die letzten 100 Züge werden genommen
- aus Performance-Gründen ist bei 10000 Zügen erstmal Schluss (also ausgewählter Bereich von, bis)
Trivia
- im PHP Code sind ZickZack und Pauspapier beide von einer gemeinsamen Klasse AbstractPointPathGenerator abgeleitet. Ebenso sind die Settings von PointPathGeneratorSettings abgeleitet.