Spezielle Texturen

Benötigt wird:

  • Wally
  • Ein Grafikprogramm (z.B. Paint.NET oder PaintShopPro wie im Tutorial)

1. Animierte Texturen

Flag: +X (X=0 bis 9)

Animierte Texturen machen maps gleich viel lebendiger. Und sie sind auch noch einfach zu machen. Zeichnet dafür einfach mal 10 (oder weniger, aber nicht mehr!) Texturen. Die müssen natürlich nichts besonderes sein, sowas einfaches wie meine Beispielttexturen tut es ja auch. Das ist die Reihenfolge in der die Texturen abgespielt werden sollen:

anim.jpg

In Half-Life sieht es dann so aus:

Ihr müsst natürlich nicht zehn Texturen zeichnen, es tun auch weniger. Eine Animation benötigt aber mindestens zwei Texturen, und kann maximal zehn Texturen beinhalten. Zu den Namen: Ihr könnt eure Texturen eigentlich irgendwie nennen, müsst aber darauf achten dass alle das gleiche Flag und den gleichen Namen haben. Das sieht dann so aus:

  1. Textur: +0name
  2. Textur: +1name
  3. Textur: +2name
  4. Textur: +3name
  5. Textur: +4name
  6. Textur: +5name
  7. Textur: +6name
  8. Textur: +7name
  9. Textur: +8name
  10. Textur: +9name

Es darf jedoch keine Zahl ausgelassen werden. Wenn ihr z.B. fünf Texturen habt muss die erste Textur “+0name“ heißen, die zweite “+1name“…usw.

2. Schaltbare Texturen

Flag: +X (X=A oder 0)

Schaltbare Texturen werden meistens für Schalter benutzt, oder für Lichter die man ein- und ausschalten kann. Auch dafür zeichnet ihr mal 2 Texturen (nicht mehr, nicht weniger!). Und wie vorhin hab ich auch wieder Beispieltexturen. Das ist die Reihenfolge wie sie im Spiel vorkommen (kann man auch vertauschen):

schalt.jpg

So sieht es dann in Half-Life aus:

Immer wenn der Spieler die Textur aktiviert, wird sie grün wenn sie anfangs blau war, oder eben umgekehrt. Zu den Namen:

  1. Textur: +0name
  2. Textur: +Aname

Die Reihenfolge ist eigentlich egal, weil man im Valve Hammer Editor wahlweise anfangs die +0 oder die +A Textur platzieren kann.

3. Normale und schaltbare Animation

Flag: +X (x=A oder 0 bis 2, man kann auch mehr nehmen, 2 reichen aber)

Die Überschrift verrät es schon, das hier ist ein Mix der ersten beiden Kapitel. Ich meine damit eine Textur, die der Spieler erst aktivieren muss (durch einen button oder sowas), dann läuft die Animation ab, und danach ist die Textur wieder im Originalzustand. In Half-Life wurde das bei den Texturen für die Netzhautscanner (oder Retinascanner) benutzt. Auch dafür wieder ein Beispiel. Die Reihenfolge:

schaltanim.jpg

So schaut es in HL aus:

Die zweite Textur kommt insgesamt 15 mal vor, die Dritte 14 mal. Deswegen solltet ihr auch nur insgesamt 3 Texturen nehmen. Zu den Namen:

  1. Textur: +Aname
  2. Textur: +0name
  3. Textur: +1name

Half-Life spielt die zweite und die dritte Textur dann automatisch ca 15 mal ab.

4. Transparente Texturen und Decals

Flag: {

In Half-Life habt ihr die Möglichkeit Texturen zu zeichnen, bei denen bestimmte Bereiche transparent sind. Wenn ihr z.B. eine Leitertextur gezeichnet habt, und wollt dass die Zwischenstücke zwischen den einzelnen Sproßen transparent sind, müsst ihr die blau färben. Aber nicht irgendein Blau sondern NUR Blau: RGB-Wert: 0 0 255. Zusätzlich muss das Blau ganz ans Ende der Farbpalette sein und nur einmal vorkommen. So muss das aussehen:

leiter.jpg

Zum Namen: Transparente Textur: {name

palette.jpg

Decals werden auf die gleiche Art gemacht, allerdings wird dabei kein Blau, sonderen Weiß benutzt (RGB-Wert: 255 255 255). Zudem müssen sich Decals in einer WAD-Datei namens „decals.wad“ befinden, da Half-Life die Decals sonst nicht findet.

5. Zufällige Texturierung

Flag: -X (X=0 bis 9)

So ganz kapier ich das noch nicht mit dem Randomly Tiling, und ich weiß auch nicht ob das überhaupt richtig funktioniert. Naja, wie auch immer, ich hab hier mal die Info von Valve aus dem HLSDK übersetzt:

Eine Innovation von HL ist das Randomly Tiling Texture Set. Diese Textur ist sehr nützlich wenn man organische Maps erstellen möchte. In einem Pack von Randomtexturen (-0 bis -9) ist jede Textur so gezeichnet dass sie an jede andere aus dem Pack passt. Und wenn ihr die erste Textur des Packs auf einer Mauer anwendet, wird die Engine die Mauer mit einer zufälligen Sortierung aller Texturen des Packs texturieren. Wenn ihr zum Beispiel ein paar Mauern mit einer normalen (ohne Flags) 64×64 Textur baut und ihr habt die Mauern „natürlich“ beleuchtet, so dass ein paar dunkler und ein paar heller sind als die anderen (wenn ihr die Textur auf einer großen Mauer seht wird der dunkelste Brush leicht „ausstehen“), wenn ihr ein 64×64 Netz auf dieser Mauer baut. (Das soll einer verstehen! *g* FIXME). Die Texturierung wird sichtbar und seltsam sein. Wenn ihr, jedoch, 4 32×32 Mauertexturen für ein Random Set zeichnet (welche euren Speicher genau so viel belasten wie eine 64×64 Textur), und ihr dieses Random Set auf die große Mauer anwendet, werden die Mauern die „ausstehen“ ein besonders Muster aufweisen: eine der 32×32 Texturen könnte auf dem dunkelsten Brush sein, und z.B. eine der anderen Texturen die hellste haben. Eine Textur könnte z.B. Risse, oder Wasserflecken oder sowas in der Art haben. Auch bei den Randomtexturen gibt es ein Maximum von 10 Texturen:

  1. Textur: -0name
  2. Textur: -1name
  3. Textur: -2name
  4. Textur: -3name
  5. Textur: -4name
  6. Textur: -5name
  7. Textur: -6name
  8. Textur: -7name
  9. Textur: -8name
  10. Textur: -9name

Eine andere Verwendung für ein Random Set: Ihr habt 5 Texturen die fast identisch aussehen, mit einer Textur die ein Loch hat, werdet ihr Texturen für ein Büro-Komplex haben, bei dem manchmal ein Loch vorkommt. Oder ein halbes Dutzend einfacher Betontexturen, bei denen eine einen Riss hat, führt dazu dass ihr selten einen Riss habt. Einer Felsenseite wird unermesslich geholfen indem ihr 4 oder 5 Felstexturen in einem Random Set habt. Wenn ihr die von der Ferne seht, wird dass Mipmapping der Texturen den Fels nicht zu einem komischen Farbnetz machen. Wenn ihr die Random Sets gut benutzt, könnt ihr euren Maps viel Leben einhauchen. Übertreibt es aber nicht mit Randomtexturen, da dies zu Fehlern führen kann. Wenn ihr die 1.Textur (die -0 Textur) des Sets an einer Mauer anwendet, wird HL alle anderen Texturen des Sets auch benutzen. Wenn ihr eine andere Textur des Sets (z.B. -5) anwendet, wird nur dieses Textur benutzt, sonst keine. Randomtexturen funktionieren im Software- aber nicht im GL Modus.

6. Wassertexturen

Flag: !

Wassertexturen sind sehr einfach zu erstellen. Ihr Name beginnen lediglich mit einem ! (Ausrufezeichen), also beispielsweise “!water“. Lässt man das Ausrufezeichen am Anfang weg, bewegt sich die Textur im Spiel später nicht und es gibt keine Wellen.

7. Himmel-, Clip- und Origintexturen

Eine eigene Himmelstextur ist eigentlich unnötig, da sie in mehreren WADs bereits existiert, so auch in der halflife.wad. Möchte man allerdings keine dieser WADs verwenden, so muss man sich selbst eine Himmelstextur erstellen. Der Name der Textur muss „sky“ lauten, das Aussehen ist vollkommen egal. Anmerkung: Die Gestaltung dieser Textur hat mit dem späteren Aussehen des Himmels nichts zu tun. Wie man einen anderen Himmel einstellt, kann man in der wie_mache_ich_das_der_himmel_eine_andere_textur_bekommt nachlesen.

Das gleiche gilt für Origin- und Clip-texturen. Auch hier ist das Aussehen unwichtig, nur die Namensgebung „clip“ und „origin“ muss eingehalten werden.

8. "Grapple"-Texturen

Flag: XENO_GRAPPLE

Kein Flag und auch nur in Opposing Force verfügbar. In Opposing Force gibt es das Grapple-Hook Alien mit dem man sich an solche „Grapple“-Texturen heranziehen kann. Um eine solche Textur zu erstellen, muss diese wie folgt genannt werden. Grappletextur: Name: XENO_GRAPPLE_name

9. Texturen bestimmte Sounds zuweisen

Mal angenommen ihr habt eine Holztextur gezeichnet und habt sie in eurer map verwendet. Dann werdet ihr festellen das, wenn man mit der Brechstange darauf losgeht, kein Knirsch-sound (was für'n Wort!) abgespielt wird sondern ein langweiliges „Klang!“. Um das zu ändern müsst ihr die materials.txt (befindet sich in der pak0.pak bzw. in der half-life.gcf im Verzeichnis sound) editieren. Die Datei sieht ungefähr so aus (beispielhaft):

V DUCT_WALL03
V DUCT_WALL04

D OUT_GRVL2
D OUT_GRVL2B

G GENERIC015D
G GENERIC015E

M C2A3TURBINE1
M C2A3TURBINE2

S TOXICGRN
S FLUID1A

T FIFTIES_F01
T FIFTIES_F02

W CRATE09B
W CRATE09C

P C1A1_GAD2
P C1A1_GAD3

Y GLASS_BRIGHT
Y GLASS_DARK

Das sind nur ein paar Auszüge aus der Datei von Half-Life. Mit den Buchstaben vor den Texturnamen wird Half-Life mitgeteilt welchen Sound es abspielen soll, wenn der Spieler darüber läuft oder darauf schießt. Hier die Erklärung der Buchstaben:

Half-Life:

  • V - Lüftungsschacht
  • D - Dreck/Schotter
  • G - Gitter
  • M - Metall
  • S - Flüssigkeiten
  • T - Ziegel und Kacheln (kann man auch für Büroböden benutzen)
  • W - Holz
  • P - Computer (dann sprühen bei Beschuss auch Funken)
  • Y - Glas

Opposing Force: (ab Version 1.1.00)

  • O - Schnee

Counter-Strike:

  • N - Schnee

Natürlich kann man die Buchstaben aus Half-Life auch in den anderen Mods verwenden. Ihr müsst euch auch nicht an die Reihenfolge halten in der Valve die Texturen aufgelistet hat, hängt eure Texturen einfach am Ende der Datei an. Maximal können in dieser Datei 512 Texturen aufgelistet werden. Außerdem werden nur die ersten 12 Buchstaben eines Texturnamen verwendet. Die Flags müsst ihr hier auch weglassen. Wenn ihr z.B. 2 animierte Texturen (+0name und +1name) habt, dann schreibt sie so in die materials.txt:

P name

Bei Counter-Strike ist der hier festgelegte Materialtyp außerdem auch für die „Stärke des Materials“ bei der Berechnung der Schussstärke durch einen Brush zuständig. So verliert ein Schuss durch einen Brush, der mit einer mit M gekennzeichneten Textur belegt ist, ungefähr die Hälfte seines Schadens.

10. LASER-Texturen

Flag: LASER

Habt ihr euch eventuell schon einmal gefragt wie die Mapper es in der Half-Life-Mod Deathmatch Classic geschafft haben diese coolen Teleportaleffekte zu erstellen?

Sie haben eine sogenannte LASER-Textur verwendet, das Präfix ist LASER und danach folgt der eigentliche Texturname.

  • Textur: LASERname

laser_und_translucent_texture.zip LASER- und TRANSLUCENT- Beispielmap (Alle Texturen wurden included. (77 Kbyte))

11. TRANSLUCENT-Texturen

Flag: TRANSLUCENT

Dies ist eine recht außergewöhnliche Textur. Sie ähnelt sehr stark einem func_illusionary. Hier mal eine Gegenüberstellung von einem func_illusionary-Entity zu einem TRANSLUCENT Worldbrush.

func_illusionary TRANSLUCENT-Brush
ist ein Entity Ja Nein
ist ein Worldbrush Nein Ja
ist not solid Ja Ja
reflektiert kein Licht Ja Ja
Rendermode verstellbar Ja Nein
ist VIS-Blocker Nein Ja
ist „ausgehöhlt“ Nein Ja


Wie ihr seht gibt es viele Gemeinsamkeiten aber auch Unterschiede zwischen beiden. Eine TRANSLUCENT Brush kann also als VIS-Blocker an Orten eingesetzt werden, bei denen trotzdem irgendwelche Dinge (seien es Gibs, NPCs, pushables, o.ä.) hindurch müssen, der Spieler aber nicht hindurch sehen sollte, z.B. aus Performance-Gründen.

Das Präfix ist TRANSLUCENT und danach folgt der eigentliche Texturname.

  • Textur: TRANSLUCENTname

laser_und_translucent_texture.zip LASER- und TRANSLUCENT- Beispielmap (Alle Texturen wurden included. (77 Kbyte))

Die Verwendung aller Dokumente einschließlich der Abbildungen ausschließlich zu nichtkommerziellen Zwecken. Verbreitung des Dokuments auf Speichermedien, (insbesondere auf CD-ROMs als Beilage zu Zeitschriften und Magazinen oder sog. "Mission-Packs" etc.) ist untersagt.
 
half-life/tutorials/spezielle_texturen.txt · Zuletzt geändert: 2010/09/13 13:41 von Bluthund