Charakter Template

Aus Sternenschweif Wiki
Wechseln zu: Navigation, Suche


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

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

standardskin = defaultskin
F0D4D0 F0D5CA F0D6C9 EDD8C7 EDD8C7 EAD7C6
EAC4B9 EDC3B7 E7C6B3 E7C7AE E0C8B0 E2C7AC
E0B0A6 DDB2A1 DCB39F D9B59B D7B695 D4B893
D99E90 D5A18C CDA38B CDA184 C8A480 EADEC8
C68D82 C38F7A C09177 BC9375 B99573 B59870
B67C70 B27E69 AF8066 AA8163 A78361 A5855E
A36A5F A26D5B 9D6F55 9A7153 95714F 92754D
905C4F 8C5F4A 87614C 846046 7E6345 83633A
7B4A43 784D3D 754F38 755036 715233 6D5533
643E35 FFFFFD 61402D 5D412B 5C4229 584525
483632 4C3025 4B3124 483322 463420 453420
standardeye = defaulteye
6C7CA4 7281B0 91A2D3 5D6F9F 6377A4
7E8CD3 6172BE 659ED4 94C8C6 59B4BF
56A7B3 368B95 2B6A70 6E7973 5C6D62
496452 61826A 9EAC7E 6B5951 704F31
674525 8B5829 835D38 7D522D 856C4C
8A6F48 DAAB32 C6AD6A F0D995 BFD786
7B9345 7DC159 76AA56 6B7F4C CE754D
742F08 8A210C 6E1C0C 4D1406 4E1E27
2B217A 1E0C45 000230 010101 11110F
221F1A 30231B 3F3420 3E2714 5D4022
E49393 B62727 5E4848 C46940 866B8D
6376A4
standardhair = defaulthair
241913 1F1410 3C2116 422014 7A371A
883F1C 883E19 884D23 783B1E 89481E
B98241 C78D44 DDAB6E DFAD72 DDA864
B87B3C 88421E 9A5023 78371B 84371B
551C11 4C251E E2B782 E2B57E

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:

  1. torso
  2. pants
  3. shoes
  4. headwear
  5. gloves
  6. acc1
  7. acc2
  8. acc3
  9. acc4
  10. 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>