Charakter Template: Unterschied zwischen den Versionen
(Die Seite wurde neu angelegt: „Category:Modding Charakter Templates oder "Vorlagen" (Erweiterung dsa2temp) sind Vorlagen für eine Reihe von zufallserzeugten Charakteren. Ein Beispiel m…“) |
(→Erweitert) |
||
(19 dazwischenliegende Versionen von einem Benutzer werden nicht angezeigt) | |||
Zeile 1: | Zeile 1: | ||
[[Category:Modding]] | [[Category:Modding]] | ||
− | Charakter Templates oder "Vorlagen" (Erweiterung dsa2temp) sind Vorlagen für eine Reihe von zufallserzeugten Charakteren. Ein Beispiel mit allen besprochenen Bereichen befindet sich am Ende des Artikels | + | Charakter Templates oder "Vorlagen" (Erweiterung dsa2temp) sind Vorlagen für eine Reihe von zufallserzeugten Charakteren. Ein Beispiel mit allen besprochenen Bereichen befindet sich am Ende des Artikels. Sie werden aus dem Verzeichnis _data/chardef geladen und sie können im NPC-Charakter-Editor getestet werden. |
=Farbdefinitionen= | =Farbdefinitionen= | ||
Für sämtliche Vorlagen sind die folgenden Farbsets bereits definiert: | Für sämtliche Vorlagen sind die folgenden Farbsets bereits definiert: | ||
− | * standardhair | + | * standardhair bzw. defaulthair |
− | * standardeye | + | * standardeye bzw. defaulteye |
− | * standardskin | + | * standardskin bzw. defaultskin |
+ | * standardtorso bzw. defaulttorso | ||
+ | * standardpants bzw. defaultpants | ||
+ | * standardshoes bzw. defaultshoes | ||
+ | * standardheadwear bzw. defaultheadwear | ||
+ | * standardgloves bzw. defaultgloves | ||
* random | * random | ||
Zeile 13: | Zeile 18: | ||
Zusätzlich können weitere Farbsets mit dem Tag "colordef" definiert werden. Jeder "col"-Eintrag hat die gleiche Wahrscheinlichkeit, gewählt zu werden | Zusätzlich können weitere Farbsets mit dem Tag "colordef" definiert werden. Jeder "col"-Eintrag hat die gleiche Wahrscheinlichkeit, gewählt zu werden | ||
+ | |||
+ | ==Standardwerte== | ||
+ | <table><tr><td style="padding-left: 20px" valign="top"> | ||
+ | {| class="wikitable" | ||
+ | |+standardskin = defaultskin | ||
+ | |- | ||
+ | | style="background-color: #F0D4D0; color: black" | F0D4D0 | ||
+ | | style="background-color: #F0D5CA; color: black" | F0D5CA | ||
+ | | style="background-color: #F0D6C9; color: black" | F0D6C9 | ||
+ | | style="background-color: #EDD8C7; color: black" | EDD8C7 | ||
+ | | style="background-color: #EDD8C7; color: black" | EDD8C7 | ||
+ | | style="background-color: #EAD7C6; color: black" | EAD7C6 | ||
+ | |- | ||
+ | | style="background-color: #EAC4B9; color: black" | EAC4B9 | ||
+ | | style="background-color: #EDC3B7; color: black" | EDC3B7 | ||
+ | | style="background-color: #E7C6B3; color: black" | E7C6B3 | ||
+ | | style="background-color: #E7C7AE; color: black" | E7C7AE | ||
+ | | style="background-color: #E0C8B0; color: black" | E0C8B0 | ||
+ | | style="background-color: #E2C7AC; color: black" | E2C7AC | ||
+ | |- | ||
+ | | style="background-color: #E0B0A6; color: black" | E0B0A6 | ||
+ | | style="background-color: #DDB2A1; color: black" | DDB2A1 | ||
+ | | style="background-color: #DCB39F; color: black" | DCB39F | ||
+ | | style="background-color: #D9B59B; color: black" | D9B59B | ||
+ | | style="background-color: #D7B695; color: black" | D7B695 | ||
+ | | style="background-color: #D4B893; color: black" | D4B893 | ||
+ | |- | ||
+ | | style="background-color: #D99E90; color: black" | D99E90 | ||
+ | | style="background-color: #D5A18C; color: black" | D5A18C | ||
+ | | style="background-color: #CDA38B; color: black" | CDA38B | ||
+ | | style="background-color: #CDA184; color: black" | CDA184 | ||
+ | | style="background-color: #C8A480; color: black" | C8A480 | ||
+ | | style="background-color: #EADEC8; color: black" | EADEC8 | ||
+ | |- | ||
+ | | style="background-color: #C68D82; color: black" | C68D82 | ||
+ | | style="background-color: #C38F7A; color: black" | C38F7A | ||
+ | | style="background-color: #C09177; color: black" | C09177 | ||
+ | | style="background-color: #BC9375; color: black" | BC9375 | ||
+ | | style="background-color: #B99573; color: black" | B99573 | ||
+ | | style="background-color: #B59870; color: black" | B59870 | ||
+ | |- | ||
+ | | style="background-color: #B67C70; color: black" | B67C70 | ||
+ | | style="background-color: #B27E69; color: black" | B27E69 | ||
+ | | style="background-color: #AF8066; color: black" | AF8066 | ||
+ | | style="background-color: #AA8163; color: black" | AA8163 | ||
+ | | style="background-color: #A78361; color: black" | A78361 | ||
+ | | style="background-color: #A5855E; color: black" | A5855E | ||
+ | |- | ||
+ | | style="background-color: #A36A5F; color: white" | A36A5F | ||
+ | | style="background-color: #A26D5B; color: white" | A26D5B | ||
+ | | style="background-color: #9D6F55; color: white" | 9D6F55 | ||
+ | | style="background-color: #9A7153; color: white" | 9A7153 | ||
+ | | style="background-color: #95714F; color: white" | 95714F | ||
+ | | style="background-color: #92754D; color: white" | 92754D | ||
+ | |- | ||
+ | | style="background-color: #905C4F; color: white" | 905C4F | ||
+ | | style="background-color: #8C5F4A; color: white" | 8C5F4A | ||
+ | | style="background-color: #87614C; color: white" | 87614C | ||
+ | | style="background-color: #846046; color: white" | 846046 | ||
+ | | style="background-color: #7E6345; color: white" | 7E6345 | ||
+ | | style="background-color: #83633A; color: white" | 83633A | ||
+ | |- | ||
+ | | style="background-color: #7B4A43; color: white" | 7B4A43 | ||
+ | | style="background-color: #784D3D; color: white" | 784D3D | ||
+ | | style="background-color: #754F38; color: white" | 754F38 | ||
+ | | style="background-color: #755036; color: white" | 755036 | ||
+ | | style="background-color: #715233; color: white" | 715233 | ||
+ | | style="background-color: #6D5533; color: white" | 6D5533 | ||
+ | |- | ||
+ | | style="background-color: #643E35; color: white" | 643E35 | ||
+ | | style="background-color: #FFFFFD; color: black" | FFFFFD | ||
+ | | style="background-color: #61402D; color: white" | 61402D | ||
+ | | style="background-color: #5D412B; color: white" | 5D412B | ||
+ | | style="background-color: #5C4229; color: white" | 5C4229 | ||
+ | | style="background-color: #584525; color: white" | 584525 | ||
+ | |- | ||
+ | | style="background-color: #483632; color: white" | 483632 | ||
+ | | style="background-color: #4C3025; color: white" | 4C3025 | ||
+ | | style="background-color: #4B3124; color: white" | 4B3124 | ||
+ | | style="background-color: #483322; color: white" | 483322 | ||
+ | | style="background-color: #463420; color: white" | 463420 | ||
+ | | style="background-color: #453420; color: white" | 453420 | ||
+ | |} | ||
+ | </td><td valign="top" style="padding-left: 20px"> | ||
+ | {| class="wikitable" | ||
+ | |+standardeye = defaulteye | ||
+ | |- | ||
+ | | style="background-color: #6C7CA4; color: white" | 6C7CA4 | ||
+ | | style="background-color: #7281B0; color: white" | 7281B0 | ||
+ | | style="background-color: #91A2D3; color: white" | 91A2D3 | ||
+ | | style="background-color: #5D6F9F; color: white" | 5D6F9F | ||
+ | | style="background-color: #6377A4; color: white" | 6377A4 | ||
+ | |- | ||
+ | | style="background-color: #7E8CD3; color: white" | 7E8CD3 | ||
+ | | style="background-color: #6172BE; color: white" | 6172BE | ||
+ | | style="background-color: #659ED4; color: white" | 659ED4 | ||
+ | | style="background-color: #94C8C6; color: black" | 94C8C6 | ||
+ | | style="background-color: #59B4BF; color: white" | 59B4BF | ||
+ | |- | ||
+ | | style="background-color: #56A7B3; color: white" | 56A7B3 | ||
+ | | style="background-color: #368B95; color: white" | 368B95 | ||
+ | | style="background-color: #2B6A70; color: white" | 2B6A70 | ||
+ | | style="background-color: #6E7973; color: white" | 6E7973 | ||
+ | | style="background-color: #5C6D62; color: white" | 5C6D62 | ||
+ | |- | ||
+ | | style="background-color: #496452; color: white" | 496452 | ||
+ | | style="background-color: #61826A; color: white" | 61826A | ||
+ | | style="background-color: #9EAC7E; color: white" | 9EAC7E | ||
+ | | style="background-color: #6B5951; color: white" | 6B5951 | ||
+ | | style="background-color: #704F31; color: white" | 704F31 | ||
+ | |- | ||
+ | | style="background-color: #674525; color: white" | 674525 | ||
+ | | style="background-color: #8B5829; color: white" | 8B5829 | ||
+ | | style="background-color: #835D38; color: white" | 835D38 | ||
+ | | style="background-color: #7D522D; color: white" | 7D522D | ||
+ | | style="background-color: #856C4C; color: white" | 856C4C | ||
+ | |- | ||
+ | | style="background-color: #8A6F48; color: white" | 8A6F48 | ||
+ | | style="background-color: #DAAB32; color: white" | DAAB32 | ||
+ | | style="background-color: #C6AD6A; color: white" | C6AD6A | ||
+ | | style="background-color: #F0D995; color: black" | F0D995 | ||
+ | | style="background-color: #BFD786; color: black" | BFD786 | ||
+ | |- | ||
+ | | style="background-color: #7B9345; color: white" | 7B9345 | ||
+ | | style="background-color: #7DC159; color: white" | 7DC159 | ||
+ | | style="background-color: #76AA56; color: white" | 76AA56 | ||
+ | | style="background-color: #6B7F4C; color: white" | 6B7F4C | ||
+ | | style="background-color: #CE754D; color: white" | CE754D | ||
+ | |- | ||
+ | | style="background-color: #742F08; color: white" | 742F08 | ||
+ | | style="background-color: #8A210C; color: white" | 8A210C | ||
+ | | style="background-color: #6E1C0C; color: white" | 6E1C0C | ||
+ | | style="background-color: #4D1406; color: white" | 4D1406 | ||
+ | | style="background-color: #4E1E27; color: white" | 4E1E27 | ||
+ | |- | ||
+ | | style="background-color: #2B217A; color: white" | 2B217A | ||
+ | | style="background-color: #1E0C45; color: white" | 1E0C45 | ||
+ | | style="background-color: #000230; color: white" | 000230 | ||
+ | | style="background-color: #010101; color: white" | 010101 | ||
+ | | style="background-color: #11110F; color: white" | 11110F | ||
+ | |- | ||
+ | | style="background-color: #221F1A; color: white" | 221F1A | ||
+ | | style="background-color: #30231B; color: white" | 30231B | ||
+ | | style="background-color: #3F3420; color: white" | 3F3420 | ||
+ | | style="background-color: #3E2714; color: white" | 3E2714 | ||
+ | | style="background-color: #5D4022; color: white" | 5D4022 | ||
+ | |- | ||
+ | | style="background-color: #E49393; color: black" | E49393 | ||
+ | | style="background-color: #B62727; color: white" | B62727 | ||
+ | | style="background-color: #5E4848; color: white" | 5E4848 | ||
+ | | style="background-color: #C46940; color: white" | C46940 | ||
+ | | style="background-color: #866B8D; color: white" | 866B8D | ||
+ | |- | ||
+ | | style="background-color: #6376A4; color: white" | 6376A4 | ||
+ | |} | ||
+ | </td><td valign="top" style="padding-left: 20px"> | ||
+ | {| class="wikitable" | ||
+ | |+standardhair = defaulthair | ||
+ | |- | ||
+ | | style="background-color: #241913; color: white" | 241913 | ||
+ | | style="background-color: #1F1410; color: white" | 1F1410 | ||
+ | | style="background-color: #3C2116; color: white" | 3C2116 | ||
+ | | style="background-color: #422014; color: white" | 422014 | ||
+ | | style="background-color: #7A371A; color: white" | 7A371A | ||
+ | |- | ||
+ | | style="background-color: #883F1C; color: white" | 883F1C | ||
+ | | style="background-color: #883E19; color: white" | 883E19 | ||
+ | | style="background-color: #884D23; color: white" | 884D23 | ||
+ | | style="background-color: #783B1E; color: white" | 783B1E | ||
+ | | style="background-color: #89481E; color: white" | 89481E | ||
+ | |- | ||
+ | | style="background-color: #B98241; color: white" | B98241 | ||
+ | | style="background-color: #C78D44; color: white" | C78D44 | ||
+ | | style="background-color: #DDAB6E; color: black" | DDAB6E | ||
+ | | style="background-color: #DFAD72; color: black" | DFAD72 | ||
+ | | style="background-color: #DDA864; color: black" | DDA864 | ||
+ | |- | ||
+ | | style="background-color: #B87B3C; color: white" | B87B3C | ||
+ | | style="background-color: #88421E; color: white" | 88421E | ||
+ | | style="background-color: #9A5023; color: white" | 9A5023 | ||
+ | | style="background-color: #78371B; color: white" | 78371B | ||
+ | | style="background-color: #84371B; color: white" | 84371B | ||
+ | |- | ||
+ | | style="background-color: #551C11; color: white" | 551C11 | ||
+ | | style="background-color: #4C251E; color: white" | 4C251E | ||
+ | | style="background-color: #E2B782; color: black" | E2B782 | ||
+ | | style="background-color: #E2B57E; color: black" | E2B57E | ||
+ | |} | ||
+ | </td> | ||
+ | </tr></table> | ||
+ | |||
+ | == Eigene Farbsets == | ||
+ | Es können auch eigene Farbsets, zB als "Subsets" der obigen Standardfarben definiert werden. Dazu muss eine Liste der verfügbaren Farben erstellt werden: | ||
+ | <syntaxhighlight lang="xml"> | ||
+ | <colordef id="cloth"> | ||
+ | <!-- Farben werden im Standard-RGB-Format definiert, das auch Webbrowser verwenden --> | ||
+ | <col>FF00FF</col> | ||
+ | <col>FF80FF</col> | ||
+ | <col>80FFFF</col> | ||
+ | </colordef> | ||
+ | </syntaxhighlight> | ||
=Allgemein Tags= | =Allgemein Tags= | ||
Zeile 20: | Zeile 226: | ||
|- | |- | ||
!id | !id | ||
− | |Interne ID des sets (Verpflichtend | + | |Interne ID des sets (Verpflichtend nur bei "bulkfiles", die es noch nicht gibt) |
|- | |- | ||
!baserace | !baserace | ||
− | |zu verwendende Basisrasse | + | |zu verwendende Basisrasse, verpflichtend |
|} | |} | ||
Zeile 84: | Zeile 290: | ||
Geben einen Minimum- und Maximum-Wert an, wird ein Attribut weggelassen, wird stattdessen der Standardwert verwendet. Wird der Tag gar nicht definiert, werden beide Standardwerte verwendet. | Geben einen Minimum- und Maximum-Wert an, wird ein Attribut weggelassen, wird stattdessen der Standardwert verwendet. Wird der Tag gar nicht definiert, werden beide Standardwerte verwendet. | ||
+ | |||
+ | '''Wichtig:''' Die Groß-Klein-Schreibung der Werte ist relevant! | ||
==Standard-Min-Max-Werte== | ==Standard-Min-Max-Werte== | ||
Zeile 133: | Zeile 341: | ||
|} | |} | ||
+ | ==Spezielle Min-Max-Werte== | ||
+ | {| class="wikitable" | ||
+ | !Bezeichnung | ||
+ | !Min-Wert | ||
+ | !Max-Wert | ||
+ | |- | ||
+ | |charheight | ||
+ | |100 | ||
+ | |220 | ||
+ | |- | ||
+ | |legSize | ||
+ | |45 | ||
+ | |55 | ||
+ | |- | ||
+ | |armLength | ||
+ | |48 | ||
+ | |52 | ||
+ | |- | ||
+ | |forearmLength | ||
+ | |48 | ||
+ | |52 | ||
+ | |- | ||
+ | |handsSize | ||
+ | |48 | ||
+ | |52 | ||
+ | |- | ||
+ | |feetSize | ||
+ | |48 | ||
+ | |52 | ||
+ | |- | ||
+ | |mandibleSize | ||
+ | |45 | ||
+ | |52 | ||
+ | |- | ||
+ | |headSize | ||
+ | |48 | ||
+ | |52 | ||
+ | |} | ||
+ | |||
+ | =Itemdefinition= | ||
+ | <syntaxhighlight lang="xml"> | ||
+ | <torso color="cloth" color2="cloth"> | ||
+ | <item>Poor Torso</item> | ||
+ | <item>Poor2 Upper</item> | ||
+ | <item color="nocolor" color2="nocolor" with="pants/2">Bard Jacket</item> | ||
+ | </torso> | ||
+ | </syntaxhighlight> | ||
+ | |||
+ | Itemdefinitionen verweisen auf die Auswahlfelder aus dem NPC-Charaktereditor. Es gilt zu beachten, dass bei Einfachen und Standard-Definitionen "Definition ausgelassen" gleichbedeutend ist mit "ALLE Optionen verwendbar". | ||
+ | |||
+ | Dagegen ist eine vorhandene, leere Definition wie diese hier: | ||
+ | <syntaxhighlight lang="xml"> | ||
+ | <beard></beard> | ||
+ | </syntaxhighlight> | ||
+ | gleichbedeutend mit "KEINE Optionen verwendbar". | ||
+ | |||
+ | Es wird jeweils auf die Bezeichnungen aus dem NPC-Charaktereditor verwiesen. | ||
+ | |||
+ | Außerdem kann der Spezialeintrag "None" (wichtig, großes "N" am Beginn) verwendet werden, dieser erlaubt es, den entsprechenden Eintrag der Liste nicht zu besetzen. Alle anderen Eigenschaften wie "with" oder "without" für die erweiterten Einträge sind auch für "None" möglich. | ||
+ | |||
+ | Einträge (inkl. "None") können auch mehrfach vorkommen, um so die Gewichtung zu erhöhen oder auch unterschiedliche with/without-Varianten zu verwenden. | ||
+ | |||
+ | ==Einfach== | ||
+ | Einfache Itemdefinitionen enthalten weder Farben noch Verknüpfungen (with/notwith), sie stellen eine einfache Aufzählung dar. Gültige Definitionen sind: | ||
+ | |||
+ | * headtex | ||
+ | * bodytex | ||
+ | |||
+ | Bei beiden wird die Farbe über "skincolor" geregelt. | ||
+ | |||
+ | ==Standard== | ||
+ | Standarddefinitionen können außerdem Farbreferenzen beinhalten. Hierbei kann sowohl im Kopf (Tag "torso") als auch in den einzelnen Items eine Farbe angegeben werden. Wird in Item keine Farbe angegeben, so wird die Standardfarbe aus dem Kopf verwendet. Ist auch im Kopf keine Standardfarbe definiert, so wird "random" angenommen. Gültige Definitionen sind: | ||
+ | * beard | ||
+ | * hair | ||
+ | * eyebrow | ||
+ | * underwear | ||
+ | |||
+ | ==Erweitert== | ||
+ | Erweiterte Definitionen enthalten zusätzlich die Möglichkeit, Kombinations-Referenzen zu legen. Dies bedeutet, dass bei Verwendung eines bestimmten Items entweder Voraussetzungen ("with") oder Ausschlusskriterien ("notwith") getroffen werden können. Hierbei werden die verfügbaren Definitionen in folgender Reihenfolge abgehandelt: | ||
+ | # torso | ||
+ | # pants | ||
+ | # shoes | ||
+ | # headwear | ||
+ | # gloves | ||
+ | # acc1 | ||
+ | # acc2 | ||
+ | # acc3 | ||
+ | # acc4 | ||
+ | # acc5 | ||
+ | |||
+ | 1-5 haben bei nicht definierter Farbwahl die jeweilige Standard-Farbklasse, zB "defaulttorso" für torso, "defaultheadwear" bei headwear usw. 6-10 haben weiterhin "random" bei nicht definierter Farbklasse | ||
+ | |||
+ | Die Referenz auf ein anderes Element erfogt jeweils mit der Bezeichnung der Itemdefinition und der Position, also zB torso/0 verweist auf das erste Item in "torso", acc5/3 verweist auf Item 4 in acc5 usw. Ein Beispiel: | ||
+ | |||
+ | <syntaxhighlight lang="xml"> | ||
+ | <torso color="cloth" color2="cloth"> | ||
+ | <item>Poor Torso</item> | ||
+ | <item>Poor2 Upper</item> | ||
+ | <item color="nocolor" color2="nocolor" with="pants/2">Bard Jacket</item> | ||
+ | </torso> | ||
+ | <pants> | ||
+ | <item>Poor Pants</item> | ||
+ | <item notwith="torso/0">Poor2 Lower</item> | ||
+ | <item color="nocolor" color2="nocolor">Bard Pants</item> | ||
+ | </pants> | ||
+ | </syntaxhighlight> | ||
+ | |||
+ | Folgende Regeln sind hier definiert: | ||
+ | * In torso erzwingt Item 3, also "Bard Jacket", die Verwendung von pants/2, also "Bard Pants" | ||
+ | * In pants kann Item 2, also "Poor2 Lower", NICHT gewählt werden, wenn torso/1, also "Poor2 Upper", für Torso gewählt wurde | ||
+ | |||
+ | Neben den Referenzen auf die oben genannten Bekleidungsitems sind auch solche auf "beard" sowie "hair" möglich. | ||
+ | |||
+ | ===Ausführliche Notation=== | ||
+ | Um mehrere "with" oder "notwith" anzugeben ist die Attributsnotation eher ungeeignet. Daher gibt es noch eine weitere Notationsmöglichkeit, die aber aus Aufwandsgründen nur bei absoluter Notwendigkeit gewählt werden sollte: | ||
+ | |||
+ | <syntaxhighlight lang="xml"> | ||
+ | <torso color="cloth" color2="cloth"> | ||
+ | <item color="nocolor" color2="nocolor"> | ||
+ | <with>pants/0</with> | ||
+ | <with>shoes/0</with> | ||
+ | <notwith>acc1/0</notwith> | ||
+ | <notwith>acc1/1</notwith> | ||
+ | <notwith>acc1/2</notwith> | ||
+ | <slot>Bard Jacket</slot> | ||
+ | </item> | ||
+ | </torso> | ||
+ | </syntaxhighlight> | ||
+ | |||
+ | Hier wird bei Verwendung von Bard Jacket erzwungen, dass sowohl das erste Item von pants als auch das erste Item von shoes verwendet wird, und dass die Items 1, 2 und 3 aus acc1 NICHT verwendet werden. | ||
+ | |||
+ | ==Farbreferenz== | ||
+ | Die Werte für "color" können außerdem auf vorherige Items referenzieren, um deren Farbe zu verwenden, wobei dies nur für "color" und dann für beide Farbwerte funktioniert. Dazu muss ein "@" vorangestellt werden, also zB: | ||
+ | <syntaxhighlight lang="xml"> | ||
+ | <beard color="@hair"> | ||
+ | <item>Beard 1</item> | ||
+ | </beard> | ||
+ | <torso color="random"> | ||
+ | <item>Mage Torso</item> | ||
+ | </torso> | ||
+ | <pants color="@torso"> | ||
+ | <item>Mage Lowerbody</item> | ||
+ | </pants> | ||
+ | </syntaxhighlight> | ||
+ | |||
+ | Die Referenz funktioniert von "beard" auf "hair", sowie in den Kleidungsstücken auf bereits definierte Slots, es kann also von "pants" auf "torso" verwiesen werden, aber nicht umgekehrt! | ||
+ | |||
+ | =Vererbung= | ||
+ | Damit nicht sehr ähnliche Werte immer wieder kopiert werden müssen, können "Basis"-Templates angegeben werden. Sämtliche Werte aus dem Basistemplate werden 1:1 kopiert, also Farben, Körperwerte, Texturen und Kleidungsdefinitionen. Zu beachten ist, dass das "Kind"-Template hierbei gleichlautende Werte grundsätzlich überschreibt, d.h. damit zB die Torsobekleidung erweitert werden kann, muss diese nochmals vollständig aus dem Basistemplate kopiert werden. Ein Basistemplate wird wie folgt definiert: | ||
+ | |||
+ | <syntaxhighlight lang="xml"> | ||
+ | <chartemplate> | ||
+ | <id>humanmalechild</id> | ||
+ | <base>humanmale</base> | ||
+ | </chartemplate> | ||
+ | </syntaxhighlight> | ||
+ | |||
+ | Zu beachten ist hierbei, dass es immer nur ein Basistemplate geben kann, das Basistemplate kann aber wiederum auf einem anderen Basistemplate aufbauen. | ||
=Beispiel einer Vorlage= | =Beispiel einer Vorlage= | ||
<syntaxhighlight lang="xml"> | <syntaxhighlight lang="xml"> | ||
Zeile 151: | Zeile 517: | ||
<!-- ist der Standardwert, wollte aber als beispiel nochmal setzen --> | <!-- ist der Standardwert, wollte aber als beispiel nochmal setzen --> | ||
<skincolor>defaultskin</skincolor> | <skincolor>defaultskin</skincolor> | ||
− | < | + | <upperMuscle min="20" max="40" /> |
− | < | + | <lowerMuscle min="20" max="40" /> |
<handSize min="40" max="45" /> | <handSize min="40" max="45" /> | ||
<!-- Kinder sollten nur glatte Haut haben --> | <!-- Kinder sollten nur glatte Haut haben --> |
Aktuelle Version vom 16. Mai 2017, 13:30 Uhr
Charakter Templates oder "Vorlagen" (Erweiterung dsa2temp) sind Vorlagen für eine Reihe von zufallserzeugten Charakteren. Ein Beispiel mit allen besprochenen Bereichen befindet sich am Ende des Artikels. Sie werden aus dem Verzeichnis _data/chardef geladen und sie können im NPC-Charakter-Editor getestet werden.
Inhaltsverzeichnis
Farbdefinitionen
Für sämtliche Vorlagen sind die folgenden Farbsets bereits definiert:
- standardhair bzw. defaulthair
- standardeye bzw. defaulteye
- standardskin bzw. defaultskin
- standardtorso bzw. defaulttorso
- standardpants bzw. defaultpants
- standardshoes bzw. defaultshoes
- standardheadwear bzw. defaultheadwear
- standardgloves bzw. defaultgloves
- random
Das Farbset "random" liefert eine Zufallsfarbe zwischen 191919 und FFFFFF.
Zusätzlich können weitere Farbsets mit dem Tag "colordef" definiert werden. Jeder "col"-Eintrag hat die gleiche Wahrscheinlichkeit, gewählt zu werden
Standardwerte
|
|
|
Eigene Farbsets
Es können auch eigene Farbsets, zB als "Subsets" der obigen Standardfarben definiert werden. Dazu muss eine Liste der verfügbaren Farben erstellt werden:
<colordef id="cloth"> <!-- Farben werden im Standard-RGB-Format definiert, das auch Webbrowser verwenden --> <col>FF00FF</col> <col>FF80FF</col> <col>80FFFF</col> </colordef>
Allgemein Tags
Tag | Wert |
---|---|
id | Interne ID des sets (Verpflichtend nur bei "bulkfiles", die es noch nicht gibt) |
baserace | zu verwendende Basisrasse, verpflichtend |
Verfügbare Rassen sind:
- humanmale
- humanfemale
- elvenmale
- elvenfemale
- dwarfmale
- dwarffemale
Farben
<skincolor>standardskin</skincolor>
Folgende Tags definieren die verwendeten Farben:
Bezeichnung | Beschreibung | Standardwert | Anmerkungen |
---|---|---|---|
skincolor | Hautfarbset | standardskin | |
eyecolor | Farbdefinition für Augen | standardeye | |
lipstickcolor | Lippenstift | - | nur "female" |
blushcolor | Rouge | - | nur "female" |
eyelinercolor | Eyeliner | - | nur "female" |
eyeshadowcolor | Lidschatten | - | nur "female" |
Min-Max-Werte
<charheight min="120" max="220">
Geben einen Minimum- und Maximum-Wert an, wird ein Attribut weggelassen, wird stattdessen der Standardwert verwendet. Wird der Tag gar nicht definiert, werden beide Standardwerte verwendet.
Wichtig: Die Groß-Klein-Schreibung der Werte ist relevant!
Standard-Min-Max-Werte
Die nachfolgenden Werte haben Minimum 40 und Maximum 60
upperMuscle | lowerMuscle | upperWeight | lowerWeight | armWidth | forearmWidth | legSeparation | legsSize |
gluteusSize | breastSize | belly | waist | headWidth | foreheadSize | foreheadPosition | earsSize |
earsPosition | earsRotation | noseSize | noseCurve | noseWidth | noseInclination | nosePosition | nosePronounced |
noseFlatten | eyeSize | eyeRotation | cheekSize | cheekPosition | lowCheekPronounced | lowCheekPosition | lipsSize |
mouthSize | jawsSize | jawsPosition | neckThickness | chinSize | chinPronounced | chinPosition |
Spezielle Min-Max-Werte
Bezeichnung | Min-Wert | Max-Wert |
---|---|---|
charheight | 100 | 220 |
legSize | 45 | 55 |
armLength | 48 | 52 |
forearmLength | 48 | 52 |
handsSize | 48 | 52 |
feetSize | 48 | 52 |
mandibleSize | 45 | 52 |
headSize | 48 | 52 |
Itemdefinition
<torso color="cloth" color2="cloth"> <item>Poor Torso</item> <item>Poor2 Upper</item> <item color="nocolor" color2="nocolor" with="pants/2">Bard Jacket</item> </torso>
Itemdefinitionen verweisen auf die Auswahlfelder aus dem NPC-Charaktereditor. Es gilt zu beachten, dass bei Einfachen und Standard-Definitionen "Definition ausgelassen" gleichbedeutend ist mit "ALLE Optionen verwendbar".
Dagegen ist eine vorhandene, leere Definition wie diese hier:
<beard></beard>
gleichbedeutend mit "KEINE Optionen verwendbar".
Es wird jeweils auf die Bezeichnungen aus dem NPC-Charaktereditor verwiesen.
Außerdem kann der Spezialeintrag "None" (wichtig, großes "N" am Beginn) verwendet werden, dieser erlaubt es, den entsprechenden Eintrag der Liste nicht zu besetzen. Alle anderen Eigenschaften wie "with" oder "without" für die erweiterten Einträge sind auch für "None" möglich.
Einträge (inkl. "None") können auch mehrfach vorkommen, um so die Gewichtung zu erhöhen oder auch unterschiedliche with/without-Varianten zu verwenden.
Einfach
Einfache Itemdefinitionen enthalten weder Farben noch Verknüpfungen (with/notwith), sie stellen eine einfache Aufzählung dar. Gültige Definitionen sind:
- headtex
- bodytex
Bei beiden wird die Farbe über "skincolor" geregelt.
Standard
Standarddefinitionen können außerdem Farbreferenzen beinhalten. Hierbei kann sowohl im Kopf (Tag "torso") als auch in den einzelnen Items eine Farbe angegeben werden. Wird in Item keine Farbe angegeben, so wird die Standardfarbe aus dem Kopf verwendet. Ist auch im Kopf keine Standardfarbe definiert, so wird "random" angenommen. Gültige Definitionen sind:
- beard
- hair
- eyebrow
- underwear
Erweitert
Erweiterte Definitionen enthalten zusätzlich die Möglichkeit, Kombinations-Referenzen zu legen. Dies bedeutet, dass bei Verwendung eines bestimmten Items entweder Voraussetzungen ("with") oder Ausschlusskriterien ("notwith") getroffen werden können. Hierbei werden die verfügbaren Definitionen in folgender Reihenfolge abgehandelt:
- torso
- pants
- shoes
- headwear
- gloves
- acc1
- acc2
- acc3
- acc4
- acc5
1-5 haben bei nicht definierter Farbwahl die jeweilige Standard-Farbklasse, zB "defaulttorso" für torso, "defaultheadwear" bei headwear usw. 6-10 haben weiterhin "random" bei nicht definierter Farbklasse
Die Referenz auf ein anderes Element erfogt jeweils mit der Bezeichnung der Itemdefinition und der Position, also zB torso/0 verweist auf das erste Item in "torso", acc5/3 verweist auf Item 4 in acc5 usw. Ein Beispiel:
<torso color="cloth" color2="cloth"> <item>Poor Torso</item> <item>Poor2 Upper</item> <item color="nocolor" color2="nocolor" with="pants/2">Bard Jacket</item> </torso> <pants> <item>Poor Pants</item> <item notwith="torso/0">Poor2 Lower</item> <item color="nocolor" color2="nocolor">Bard Pants</item> </pants>
Folgende Regeln sind hier definiert:
- In torso erzwingt Item 3, also "Bard Jacket", die Verwendung von pants/2, also "Bard Pants"
- In pants kann Item 2, also "Poor2 Lower", NICHT gewählt werden, wenn torso/1, also "Poor2 Upper", für Torso gewählt wurde
Neben den Referenzen auf die oben genannten Bekleidungsitems sind auch solche auf "beard" sowie "hair" möglich.
Ausführliche Notation
Um mehrere "with" oder "notwith" anzugeben ist die Attributsnotation eher ungeeignet. Daher gibt es noch eine weitere Notationsmöglichkeit, die aber aus Aufwandsgründen nur bei absoluter Notwendigkeit gewählt werden sollte:
<torso color="cloth" color2="cloth"> <item color="nocolor" color2="nocolor"> <with>pants/0</with> <with>shoes/0</with> <notwith>acc1/0</notwith> <notwith>acc1/1</notwith> <notwith>acc1/2</notwith> <slot>Bard Jacket</slot> </item> </torso>
Hier wird bei Verwendung von Bard Jacket erzwungen, dass sowohl das erste Item von pants als auch das erste Item von shoes verwendet wird, und dass die Items 1, 2 und 3 aus acc1 NICHT verwendet werden.
Farbreferenz
Die Werte für "color" können außerdem auf vorherige Items referenzieren, um deren Farbe zu verwenden, wobei dies nur für "color" und dann für beide Farbwerte funktioniert. Dazu muss ein "@" vorangestellt werden, also zB:
<beard color="@hair"> <item>Beard 1</item> </beard> <torso color="random"> <item>Mage Torso</item> </torso> <pants color="@torso"> <item>Mage Lowerbody</item> </pants>
Die Referenz funktioniert von "beard" auf "hair", sowie in den Kleidungsstücken auf bereits definierte Slots, es kann also von "pants" auf "torso" verwiesen werden, aber nicht umgekehrt!
Vererbung
Damit nicht sehr ähnliche Werte immer wieder kopiert werden müssen, können "Basis"-Templates angegeben werden. Sämtliche Werte aus dem Basistemplate werden 1:1 kopiert, also Farben, Körperwerte, Texturen und Kleidungsdefinitionen. Zu beachten ist, dass das "Kind"-Template hierbei gleichlautende Werte grundsätzlich überschreibt, d.h. damit zB die Torsobekleidung erweitert werden kann, muss diese nochmals vollständig aus dem Basistemplate kopiert werden. Ein Basistemplate wird wie folgt definiert:
<chartemplate> <id>humanmalechild</id> <base>humanmale</base> </chartemplate>
Zu beachten ist hierbei, dass es immer nur ein Basistemplate geben kann, das Basistemplate kann aber wiederum auf einem anderen Basistemplate aufbauen.
Beispiel einer Vorlage
<?xml version="1.0" encoding="utf-8"?> <chartemplate> <id>humanmalechild</id> <colordef id="cloth"> <!-- Farben werden im Standard-RGB-Format definiert, das auch Webbrowser verwenden --> <col>FF00FF</col> <col>FF80FF</col> <col>80FFFF</col> </colordef> <colordef id="nocolor"> <col>FFFFFF</col> </colordef> <gender>male</gender> <charheight min="120" max="150" /> <!-- ist der Standardwert, wollte aber als beispiel nochmal setzen --> <skincolor>defaultskin</skincolor> <upperMuscle min="20" max="40" /> <lowerMuscle min="20" max="40" /> <handSize min="40" max="45" /> <!-- Kinder sollten nur glatte Haut haben --> <headtex> <item>Head 4</item> <item>Head 9</item> </headtex> <eartype>human</eartype> <eyecolor>defaulteye</eyecolor> <!-- Keine Bärte für Kinder ;) --> <beard></beard> <!-- passende Frisuren, Farbe1 sind Standardhaare, Farbe 2 die Kleidungsfarben für etwaige Bänder --> <hair color="defaulthair" color2="cloth"> <item>Hair 1</item> <item>Hair 2</item> <!-- Hier wird die Standard-Color aus hairtype überschrieben --> <item color="defaulteye">Hair 4</item> <item>Hair 6</item> <item>Hair 8</item> <item>Hair 11</item> </hair> <torso color="cloth" color2="cloth"> <item>Poor Torso</item> <item>Poor2 Upper</item> <item color="nocolor" color2="nocolor" with="pants/2">Bard Jacket</item> </torso> <pants> <item>Poor Pants</item> <!-- Sofern torso Item 0 ("Poor Torso") gewählt ist, soll dieser Eintrag NICHT gewählt werden --> <item notwith="torso/0">Poor2 Lower</item> <item color="nocolor" color2="nocolor">Bard Pants</item> </pants> <shoes> <item>Poor Shoes</item> </shoes> </chartemplate>