Der Szenen-Graph und Blueprints
Sechzehn Ritter im Kreis um eine Statue, jeder zeigt mit einem Schwert auf sie, sind nicht sechzehn von Hand platzierte Importe. Es ist ein Graph: ein Import, ein Kranz davon, ein Hinschauen und ein wenig Variation, damit keine zwei gleich sind. Aus sechzehn vierundzwanzig zu machen, kostet eine Zahl.
Das Panel Szenen-Graph im Szenen-Schritt enthält diesen Graphen. Es ist dieselbe Arbeitsfläche wie der Style-Graph des Style-Schritts – Kästen, Verbindungen, Einstellungen im Körper –, mit einer eigenen Art von Verbindung, sodass sich eine Look-Node nicht hineinziehen lässt und umgekehrt. Notiz setzt eine Notiz darauf, wie im Style-Graphen: deine Worte in einem Kasten hinter den Nodes, der die Nodes in ihm mitbewegt.
Ein Projekt, das ihn nie öffnet und der Szene nichts hinzufügt, speichert gar keinen Graphen und rendert, was es importiert hat.
Alles, was du der Szene hinzufügst, ist eine Node dieses Graphen – ein weiteres Modell (ein Item), eine Requisite an einem Knochen, eine Feder, eine Form, ein Bild, Wörter, ein Volumen, eine Lampe, ein Effekt sowie Gelände, Gras, Wasser und Himmel der Welt (D49). Das + der Gliederung fügt die Node hinzu, am Ende der Kette; die Gliederung listet die Dinge des Graphen, und eine Zeile und ihre Node sind ein Ding: Wählst du eines, wird das andere gewählt, der Inspektor zeigt es mit jedem Steuerelement, das es hat, und das Löschen eines löscht beide. Eine über das eigene Hinzufügen-Menü des Graphen hinzugefügte Node ist sofort eine Zeile der Gliederung. Ein Ding in einer Gruppe (die Laterne eines Kits) wird unter einer Zeile für die Gruppe aufgeführt; es zu wählen öffnet die Gruppe an Ort und Stelle und wählt die Node darin.
Jede Einstellung dieser Nodes ist eine Eigenschaft (siehe Nodes): eine Zeile mit einem Anschluss links, auf der Node gesetzt oder von einem Wert verbunden. Ein Zahlenwert, verbunden in das Wie viele eines Rings und einer Zeile, lässt beide zusammen wachsen. Die Nodes der Welt (Gelände, Wasser, Himmel, Wolken, Wind…) haben auch welche; was nicht eine Zahl oder ein Wort ist – ob ein Fleck eine eigene Farbe hat, was der Wind noch bewegt, die Tageszeiten –, bleibt ein Steuerelement auf der Node.
Die Nodes
| Node | Was sie tut |
|---|---|
| Importieren | Was das Projekt importiert hat, und wo es steht: das Modell mit seinen Requisiten. |
| Objekt | Das Modell mit seinen Requisiten, wo es steht. Was keine Node benennt, wird nicht gerendert. |
| Item | Ein weiteres Modell neben dem Import, aus seiner Datei: wo es steht, seine Drehung und Skalierung, ein eigener Clip. Hinzugefügt wie eine Form: Es gibt seine Liste weiter und fügt eine Kopie von sich hinzu (--item). |
| Requisite | Ein Modell, das ein Knochen des Imports hält – ein Schwert, eine Fackel –, mit seiner Position, Drehung und Skalierung auf dem Knochen und dem Knoten davon, den der Knochen greift (--add-prop). Teil des Modells: Jede Kopie des Imports trägt es, also fügt es keine eigene Kopie hinzu und gibt seine Liste weiter. |
| Feder | Ein Knochen und alles unter ihm, das mit der Bewegung schwingt – Haare, ein Umhang, ein Schwanz –, mit seiner Steifigkeit, Dämpfung und Schwerkraft (--spring). Wie eine Requisite Teil des Modells in jedem seiner Objekte. |
| Form | Eine von Pixors eigenen Formen – ein Quader, ein Zylinder, Buchstaben – mit Ort, Größe, Drehung, Farbe und Fase an der Node. Sie reicht ihre Liste weiter und fügt sich selbst als Objekt hinzu; ist nichts verbunden, beginnt sie eine Liste, sodass eine Form in einen Kranz ein Kranz aus dieser Form ist. |
| Bild, Text | Ein Bild auf einer Ebene oder Text in einer Pixelschrift auf einer Karte (Bilder und Text), hinzugefügt wie eine Form. |
| Volumen | Rauch, Feuer oder eine Flüssigkeit (Volumen): eines für jedes Objekt der Node, die die Ausgabe erreicht, von ihr platziert. |
| Lampe | Ein Licht mit einem Ort: eines für jedes Objekt, das die Ausgabe erreicht, sodass eine Reihe nach einer Lampe eine Reihe von Lampen ist. Eine Lampe, die mit nichts verbunden ist, beleuchtet nichts. |
| Effekt | Partikel – eine Explosion, Funken, Regen, Glühwürmchen –, eines für jedes Objekt, das die Ausgabe erreicht. |
| Kranz | Objekte im Kreis: wie viele, wie weit außen, wo das erste steht und ob sie zur Mitte schauen. |
| Zeile | Objekte in einer Linie, eine Stufe auseinander. |
| Raster | Objekte auf einem Raster, so viele in der Breite und so viele in der Tiefe. |
| Verstreuen | Objekte in einer Box verstreut, mit Seed, und mit einem Abstand, den keine zwei unterschreiten. |
| Schauen auf | Dreht jedes Objekt zu einem Punkt hin. Weiter drehen richtet ein Modell aus, dessen Waffe nicht auf seiner Vorwärtsachse liegt. |
| Variieren | Gibt jedem Objekt eigene Clip-Phase, Drehung und Größe, nach seiner Nummer und einem Seed. |
| Abspielen | Der Clip, den diese Objekte abspielen, egal was der Rest des Sheets abspielt: ein wiegender Baum neben einem angreifenden Ritter. Sie spielen ihn in jeder Action, über die Frames der Action – eine Windmühle, die sich neben einem stillen Haus dreht, ist eine neue Action im Action-Schritt und eine Abspielen-Node an der Windmühle. Actions entstehen dort, nicht hier. |
| Gesehen von | Die Objekte, die nur eine Kamera sieht, und Frames (unten). |
| Zusammenführen | Zwei Objektlisten als eine. |
| Verschieben, Spiegeln | Verschiebe, drehe und skaliere jedes Objekt; füge die Spiegelung jedes Objekts an einer Ebene hinzu. |
| Unterteilen | Teilt jedes Dreieck jedes Objekts in vier, einmal oder bis zu viermal, damit ein Verschieben Punkte zum Bewegen hat. |
| Verschieben | Drückt die Oberfläche jedes Objekts per Seed-Rauschen ein und aus, bis zu einem Betrag in Metern, mit Beulen in einem Abstand. Jede Kopie bekommt eigene Beulen, sodass eine Reihe von Quadern eine Reihe verschiedener Felsen ist. |
| Höhenfeld | Hebt die Oberfläche jedes Objekts senkrecht an, nach einem Seed-Höhenfeld von oben gesehen: Nach einem Unterteilen wird eine flache Ebene zu hügeligem Gelände. Der Boden steigt nur. |
| Fase | Schneidet die Kanten der Boxen jedes Objekts in 45 Grad ab. |
| Auf den Boden setzen | Lässt jedes Objekt senkrecht auf die höchste Fläche darunter fallen: die anderen Dinge der Szene (oder eines davon) und jedes Terrain vor ihm in der Kette, mit einer Anhebung darüber, so weit mit dem Hang geneigt, wie du willst. |
| Auf Oberfläche | Verteilt Objekte aus dem, was es bekommt, über die Oberfläche eines Dings, nach Fläche und per Seed – nur auf den Oberseiten oder überall. |
| Auf Punkten | Setzt ein Objekt aus dem, was ihr übergeben wird, auf jede Ecke eines Dings. |
| Differenz | Die Objekte im ersten Eingang, aus denen die Objekte im zweiten dort herausgeschnitten werden, wo sie stehen: Fenster durch eine Wand, eine Kerbe aus einer Kiste. Der zweite Eingang ist nur die Form des Lochs und wird nicht gerendert. |
| Verbinden | Zwei Listen von Objekten, als ein Teil gezeichnet, sodass dort, wo sie sich treffen, keine Linie entsteht: ein Turm aus Kisten, der als ein Gebäude wirkt. |
| Form setzen | Setzt eine Einstellung der Formen jedes Objekts – Größe (ein Vielfaches), Breite, Höhe, Tiefe, Segmente, Fase oder Farbton – aus einem Attribut mal einer Zahl plus einer Zahl. |
| Attribut | Schreibt eine Zahl auf jedes Objekt, die eine spätere Node nutzen kann (unten). |
| Auswählen | Behält die Objekte, deren Attribut einen Test besteht. |
| Ausgabe | Was vor der Kamera steht: das eine Ergebnis des Graphen. |
Die Nodes der Welt – Terrain, Zweige, Laub, Wasser, Wolken, Himmel, Wind, Lichtstrahlen, Tageszeiten und Chunks – sind im selben Hinzufügen-Menü; siehe Welten. Wert-Nodes (eine Zahl, ein An/Aus, ein Winkel, Text und die Rechenarten dazwischen) speisen die Eigenschaften.
Eine Layout-Node läuft einmal pro Kopie, die ihr übergeben wurde. Ein Ring aus Reihen ist eine Reihe pro Kopie des Rings. Das ist das ganze Verschachteln – es gibt keine zweite Regel.
Variation kommt aus der Nummer der Kopie und dem Seed des Graphen, nie aus etwas anderem; derselbe Graph ergibt also jedes Mal dieselbe Menge, auf jedem Rechner und mit beiden Backends.
Sechzehn Ritter
Füge Kranz hinzu, setze Wie viele auf 16 und Radius auf 3, schalte Zur Mitte drehen aus und füge dann Schauen auf mit Hin zu auf die Statue hinzu. Füge Variieren hinzu und gib Clip-Phase 1, damit sie alle an verschiedenen Punkten ihres Gehzyklus sind. Die Zahl unten auf der Arbeitsfläche sagt, wie viele Kopien der Graph erzeugt, und das Sprite daneben zeigt sie.
Eine Statue daneben ist eine Item-Node: ein weiteres Modell aus seiner Datei, das dort steht, wo es hingestellt wird. Wie jede Ding-Node gibt sie weiter, was sie bekommt, und fügt eine Kopie von sich hinzu; wo sie in der Kette steht, sagt also, was sie wiederholt: Ein Item nach dem Kranz ist eine Statue unter sechzehn Rittern, ein Item davor wären sechzehn Statuen. In der App setzt + › Ein Item › Aus einer Modelldatei… in der Gliederung es ans Ende der Kette, nach dem Kranz.
Per Skript, eine Node nach der anderen:
pxr project scene game.pixor ring --count 16 --radius 3 --face-out
pxr project scene game.pixor look-at --at 0,0.8,0
pxr project scene game.pixor vary --phase 1 --seed 3
pxr project scene game.pixor --set ring.count=24
pxr project scene game.pixor # prints the graph and the count
pxr graph add und pxr project scene hängen eine Node ans Ende der Kette. Eine, die eigene Kopien erzeugt und nichts entgegennimmt (ein Objekt, ein Import), beginnt die Kette anstelle des bloßen Imports, und nach etwas anderem kommt sie neben die Kette, mit ihr zusammengeführt, damit nichts verloren geht, was gerendert wurde. --alone fügt eine mit nichts verbundene Node hinzu, und --in verbindet eine andere Node mit einem ihrer Eingänge.
pxr graph add game.pixor --which scene --node object --set of=model # the knight alone
pxr graph add game.pixor --which scene --node ring --set count=16 --set radius=3
pxr project set game.pixor --item statue.glb@0,0 # an Item after the ring
Ein allein stehendes Item, mit nichts verbunden (--alone), beginnt eine eigene Liste, die ein Zusammenführen, ein Verstreuen oder ein Gesehen von aufnimmt. Ein Objekt nennt nur das Modell: Ein Item, eine Form und ein Bild sind eigene Nodes, und eines davon mit einem Objekt zu nennen, ist ein Fehler.
Was jede Kamera sieht
Eine Kamera erfasst alles, was der Graph vor sie stellt. Gesehen von gibt einer Kamera Kopien, die keine andere Kamera sieht; so kann ein Projekt mit einer Hauptkamera und einer Porträtkamera den ganzen Kranz in einem Sheet zeigen und die Statue im anderen: Verbinde das Item der Statue, allein stehend, über ein Gesehen von portrait per Zusammenführen mit dem Rest. Das Porträt zeigt die Statue mit allem, was jede Kamera sieht; die Hauptkamera sieht die Statue überhaupt nicht.
pxr project new game.pixor --model knight.glb --force
pxr project scene game.pixor ring --count 16 --radius 3 # node 2
pxr project set game.pixor --add-camera portrait:three-quarter:64 # NAME:VIEW:SIZE[:ANGLE]
pxr graph add game.pixor --which scene --node item --set model=statue.glb --alone # node 3
pxr graph add game.pixor --which scene --node seen-by --set camera=portrait --alone --in objects=3 # node 4
pxr graph add game.pixor --which scene --node merge --in b=4 # the ring, and the statue for the portrait
pxr project scene game.pixor # 17 objects
Hier wird das Item der Statue mit --alone hinzugefügt, sodass es nicht am Ende der Kette des Kranzes hängt (pxr graph list gibt die Nummern aus); das Zusammenführen kommt ans Ende der Kette, sodass der Kranz in seinen ersten Eingang geht. pxr render schreibt game.png, nur den Kranz, und game_portrait.png, den Kranz um die Statue.
Ein Graph als eine Node
Ein Kranz aus Rittern um eine Statue, eine Reihe Marktstände, eine Menge mit ihrer Variation: Ein Szenen-Graph lässt sich als eine Gruppe speichern und in einem anderen Projekt verwenden. Kit speichern… in der Leiste schreibt ohne gewählte Gruppe den ganzen Graphen als Kit (Den Szenen-Graphen als Kit speichern; seine Ausgabe-Node wird zum Ausgang der Gruppe) und mit gewählter Gruppe diese Gruppe (Die Gruppe als Kit speichern); Kit verwenden… (Kit als Gruppe hinzufügen) im Hinzufügen-Menü der Arbeitsfläche setzt eines als Gruppe ein. Es ist eine Box, mit eigenem Namen, und der Pfeil darauf (oder ein Doppelklick) öffnet sie an Ort und Stelle, um zu sehen oder zu ändern, woraus sie besteht; der Pfeil klappt sie wieder zu. Eine Eingang-Node darin steht für einen Eingang; so kann man einem gespeicherten Kranz Kopien übergeben, die er im Kreis anordnet.
pxr graph save market.pixor --which scene -o stalls.pixorkit --name "Row of stalls"
pxr graph add town.pixor --which scene --kit stalls.pixorkit
pxr graph flatten town.pixor --which scene # the nodes it stands for
Eine Gruppe ist Daten, kein Code: Sie kann nur tun, was die Nodes darin tun, und rendert genau so, wie diese es täten.
Mehrere Sheets aus einem Render
Was geschrieben wird, ist nicht Sache dieses Graphen. Die Node Ausgabe am Ende der Kette ist das, was vor der Kamera steht, und es gibt nur eine; eine zweite Datei – ein Icon-Set, ein Werbebild, ein Sheet nur mit den Linien – ist eine Ausgabe des Asset-Graphen, der die Frames nimmt, in die die Kopien dieses Graphen gerendert wurden.
Eine Szene aus mehreren Modellen, animiert
Auch ein Item nimmt einen Clip, und eine Phase, um ihn zu verschieben:
pxr project new patrol.pixor \
--item knight.glb@-0.9,0.2,-20:walk \
--item knight.glb@0.9,0.2,-20:walk,0.45 \
--item chest.glb@-1.8,-1.6,25,1.2
Ein Item mit Clip bringt sein Rig mit und spielt ihn ab; eines ohne wird dort gebacken, wo es steht, was günstiger ist. Der Clip kommt aus der eigenen Datei des Modells oder aus seinen name@clip-Geschwistern, wie überall in Pixor.
Platzieren, Umformen und Auswählen
Die Nodes des Szenen-Graphen können mehr als anordnen. Verschieben verschiebt, dreht und skaliert jede Kopie; Spiegeln fügt jeder Kopie ihr Spiegelbild an einer Ebene hinzu.
Attribut schreibt eine Zahl auf jede Kopie – ihre Nummer in der Liste, wo sie steht, wie sie gedreht ist, wie weit sie von der Mitte entfernt ist, oder Seed-Rauschen –, und Auswählen behält die Kopien, deren Attribut einen Test besteht, und verwirft den Rest. Zusammen sagen sie nur die hinten, in halber Größe, ohne zu nennen, welche hinten sind (z zeigt zur Kamera, also ist hinten das untere Ende):
pxr project new town.pixor --model chest.glb --force
pxr project scene town.pixor row --count 6 --step 1,0,0.5
pxr project scene town.pixor attribute --name depth --from z
pxr project scene town.pixor select --name depth --how below --at 1
pxr project scene town.pixor move --size 0.5
Unterteilen und Verschieben formen die eigenen Oberflächen der Kopien um: Eine Box wird zum Felsen, eine glatte Klippe zu einer rauen. Es sind Einstellungen, die die Kopien tragen und mit denen ihre Teile gebaut werden, keine von Hand bearbeiteten Dreiecke; also ergibt derselbe Graph überall dieselben Felsen:
pxr project new yard.pixor --add-shape rock=box:0.5 --size 64
pxr project scene yard.pixor row --count 3 --step 1.4,0,0
pxr project scene yard.pixor subdivide --times 3
pxr project scene yard.pixor displace --amount 0.12 --bumps 0.35 --seed 4
Auf den Boden setzen, Auf Oberfläche und Auf Punkten lesen die Szene, in die der Graph Dinge setzt. Ein Verstreuen in einer Box wird zu einem Verstreuen auf einem Hügel, wenn danach ein Auf den Boden setzen kommt und das Gelände in seiner Liste ist:
pxr project new hill.pixor --model chest.glb --terrain 12:24:2 # the terrain is node 2
pxr graph add hill.pixor --which scene --node object --set of=model --alone # node 3
pxr graph add hill.pixor --which scene --node scatter --alone --in objects=3 --set count=14
pxr graph add hill.pixor --which scene --node merge --in b=4
pxr graph add hill.pixor --which scene --node drop-to-ground
und Kerzen stehen auf jeder Zacke einer Krone, mit der Form-Node der Kerze und Auf Punkten der Krone. Die Arbeitsfläche zählt die Kopien von Auf Oberfläche, bevor irgendetwas gebaut wird; die Anzahl von Auf Punkten ist bekannt, sobald die Szene es ist.
Differenz schneidet mit dem, was ihr als Zweites übergeben wird, dort, wo es steht: Eine kleine Box in einer Zeile aus dreien durch eine lange Wand ergibt eine Wand mit drei Fenstern. Das Innere eines Lochs wird in der Farbe ausgekleidet, in der der größte Teil des Teils gezeichnet ist. Ein an ein Rig gebundenes Teil (ein geskinntes Modell, eine Form an einem Knochen oder eine Form mit Keys) wird nicht geschnitten, da ein Schnitt Vertices ändert, die das Rig bekommen hat, und eines mit mehr als 5,000 Dreiecken auch nicht.
pxr project new house.pixor --add-shape wall=box:4,2,0.2 --size 96 # the wall, node 2
pxr graph add house.pixor --which scene --node shape --set name=window --set size=0.4,0.5,0.4 --set at=-1.2,0.1,0 --alone # node 3
pxr graph add house.pixor --which scene --node row --alone --in objects=3 --set count=3 --set step=1.2,0,0 # node 4
pxr graph add house.pixor --which scene --node difference --in "cut by=4"
pxr render house.pixor -o out/house.png
Eine Form steht zentriert auf ihrem at, also liegt das erste Fenster 1.2 m links von der Wandmitte, und die Zeile setzt die anderen beiden im Abstand von 1.2 m dazu, alle drei innerhalb der 4-m-Wand.
Die Formen, die Pixor baut, haben eigene Einstellungen, und Form setzen steuert sie aus dem Graphen: Eine Reihe Kisten, jede höher als die vorige und ein Stück weiter auf dem Farbkreis, ist die Form-Node der Kiste, eine Zeile, ein Attribut dafür, wo jede Kopie in der Zeile steht, und zwei Form-setzen-Nodes.
pxr project new crates.pixor --add-shape 'crate=box:0.5:0,0,0:#c86432' --size 64 # an orange crate alone
pxr project scene crates.pixor row --count 5 --step 1.1,0,0
pxr project scene crates.pixor attribute --name x --from x
pxr project scene crates.pixor set-shape --setting height --from x --times 0.15 --plus 0.5
pxr project scene crates.pixor set-shape --setting hue --from x --times 40
pxr project scene crates.pixor bevel --width 0.06
pxr render crates.pixor -o out/crates.png
Die Kisten stehen bei 0 bis 4.4 m, also wachsen sie von 0.5 m auf etwa 1.2 m und wechseln von Orange über Gelb und Grün zu Petrol. Der Farbton dreht eine Farbe, also zeigt er sich an einer farbigen Form; eine graue bleibt grau.
Die Einstellungen einer Form werden vor jedem Unterteilen oder Verschieben angewendet, egal in welcher Reihenfolge die Nodes stehen, denn eine aus ihren Einstellungen neu gebaute Form beginnt bei ihrer eigenen Oberfläche. Nur frei stehende Formen nehmen sie an; eine an einem Knochen hängende Form ist Teil des Modells.
Ein Teil, das an einen Skin gebunden ist oder Morph Targets trägt, wird verschoben, aber nicht unterteilt, denn ein neuer Punkt in der Mitte einer Kante hat keine ehrlichen Gewichte; ebenso wenig ein Teil, das im Wind schwankt.
Eine Kopie unterscheidet sich von ihren Nachbarn durch ihre Nummer, ihre Attribute und einen Seed oder gar nicht — nie dadurch, dass sie benannt wird, denn dann würde der Graph zu einer Szenendatei.
Blueprints
Ein Projekt verweist auf dieses Modell. Ein Blueprint ist dasselbe, nur mit herausgelösten Pfaden, die Namen und Typen bekommen — der Look, der Graph oben, die Clips und die Exporte —; so läuft ein Rezept über einen Ordner voller Modelle, statt zwanzigmal kopiert und jedes Mal bearbeitet zu werden.
Projekt › Als Blueprint speichern… schreibt eine .pixorblueprint. Wer eine öffnet (Projekt › Projekt öffnen…), wird nach ihren Eingaben gefragt, danach verhält sie sich wie jedes Projekt; das Ergebnis ist unbenannt, also kann Speichern das Rezept nicht überschreiben.
Über die Kommandozeile:
pxr project blueprint game.pixor -o four-way.pixorblueprint
pxr run four-way.pixorblueprint --in model=hero.glb -o out/hero.png
pxr batch models/ --blueprint four-way.pixorblueprint --out out/
pxr run four-way.pixorblueprint --in model=hero.glb --set ring.count=12
pxr graph set four-way.pixorblueprint --which style --node 0 --set dither=0.5 # change the recipe itself
--set NODE.SETTING=VALUE ändert eine Einstellung einer Node: im Szenen-Graphen, wenn er diese Node hat, sonst in jeder Asset-Pipeline und jedem Style, die sie haben (--set hold.times=4: die Halten-Node jeder Asset-Pipeline). --set PIPELINE/NODE.SETTING=VALUE ändert sie nur in dieser Pipeline. Eine Node wird über ihre Beschriftung in Kleinbuchstaben benannt, mit Bindestrichen zwischen den Wörtern (ring für einen Ring, look-at für ein Look at: pxr project scene listet sie auf); die Beschriftung selbst ("Look at") funktioniert auch. Die Palettendatei jedes Styles ist ein eigener Slot: palette für den ersten Style, palette:NAME für einen anderen. Ein fehlender oder falsch typisierter Slot nennt den Slot und den Typ, den er erwartet hat, bevor irgendetwas geladen wird.
Pixor bringt ein paar in assets/blueprints/ mit: ein Figuren-Sheet mit vier Seiten, ein Inventar-Icon und ein Promo-Standbild.
Was sich seit dem letzten Build geändert hat
Jeder Export trägt ein Rezept (wie das Sheet gemacht wurde), sodass sich zwei Builds ohne Build-Datenbank vergleichen lassen:
pxr diff out-yesterday/ out-today/
Es sagt, welche Dateien neu sind, welche weg sind, welche sich unterscheiden und um wie viele Pixel – und welche Einstellung, welcher Eingang oder welcher Blueprint es verursacht hat:
changed ring.png 36598 of 82944 pixels (44.12%)
scene.nodes[3].settings.count: 16 -> 12
--exact endet bei jeder Änderung mit 1, für einen Build, der reproduzierbar sein soll.
Die Ebenen, die ein Export schreibt
Paper-Doll-Stücke, das Schatten-Sheet und Parallaxe-Ebenen sind eigene Dateien. In der 2D-Ansicht des Schritts Asset stapelt Alle, gestapelt in der Auswahl Ebene die Ebenen eines Sheets von hinten nach vorn, so wie eine Engine es tun wird: ein Schalter pro Ebene und eine Zeile, die sagt, ob jede Ebene so groß ist wie die Basis. Nichts muss vorher exportiert werden: Die Ebenen werden aus den schon gerenderten Frames gezeichnet, vom Code, der sie schreibt, so angeordnet, wie die gewählte Sprite-Sheet-Ausgabe sie anlegt – das fertige Sprite (base), sein Schatten, Linien, flache Farben, Normalen, Tiefe, Emission und die zusätzlichen Ausgaben des Style-Graphen. Sprite und Schatten sind anfangs an; eine Normal Map über dem Sprite würde es verdecken. Aus den Dateien liest stattdessen zurück, was ein Export wirklich geschrieben hat – dieselben Dateien, die eine Engine laden wird, Paper-Doll-Stücke und Parallaxe-Ebenen inklusive.
Was diese Seite beschreibt, gibt es in der Vollversion; die kostenlose Browser-Demo beschränkt sich auf den Standard-Look und das PNG-Sheet.
Im Browser testen Pixor holen