Infos

Name:
Gruppe:
Level:
Version:
Autor:
Download:
VMT Erstellen
Texturen
Einsteiger
1.0
The RaZZeR App
PDF

Beschreibung

Es wird eine VMT erstellen.

Dauer ca. 15-20 Minuten.

Eine VMT erstellen

Wir werden nun eine .vmt Datei erstellen.

In diesem Tutorial erfahren Sie, wie Sie eine .vmt erstellen.


Eine .vtf benötigt immer eine gleichnamige .vmt (Valve Material Type) welche sich im selben Ordner befindet. Die .vmt beschreibt die Eigenschaften der .vtf, also um welches Material es sich handelt usw. Sie können eine .vmt mit jedem beliebigen Text Editor erstellten, ich empfehle Notepad++ oder den normalen Editor. Es gibt Programme die Ihnen die Arbeit abnehmen, diese finden Sie auf dieser Website unter dem Punkt Downloads.


Hier möchte ich jedoch erklären wie Sie eine .vmt mit dem Editor erstellen und auch erklären wie so eine Datei aufgebaut ist. Ich empfehle sich das Highlighting für Notepad++ zu downloaden, Link. Ich erkläre nicht wie Sie Texturen erstellen sondern nur wie Sie diese in die .vmt einbinden.

Hier mal eine kleine Grafik wie so eine .vmt Aufgebaut ist.


Ganz oben steht der Shader. Ein Shader ist eine Software, die auf einer Grafikkarte läuft, um zu bestimmen, wie ein Objekt gezeichnet werden soll. Es gibt verschiedene Shader, hier eine Liste: developer.valvesoftware.com

Jeder Shader ist für andere Anwendungsgebiete geeignet, der am meisten genutzte Shader ist: LightmappedGeneric, er ist gut für einfache Texturen die auf Brushes gesetzt werden. Für Wasser gibt es wiederum andere Shader, sowie für Glas und vieles mehr.

Nach dem Shader kommt eine geschweifte Klammer, sie symbolisiert den Beginn der Eigenschaften (Parameter). Nicht jeder Shader stellt alle Parameter zur Verfügung. Einen Parameter gibt es jedoch immer und das ist: $basetexture. Alle Parameter beginnen mit einem $. Danach kommt der Name des Parameters, es folgt ein Leerzeichen und danach der Wert den der Parameter bekommt. Das ist nicht immer eine Zahl oder ein Buchstabe, es kommt auf den Parameter an.

Eine funktionierende .vmt benötigt nur einen Shader und den $basetextur Parameter, doch was macht basetextur? Dieser Parameter weist auf die .vtf, für die diese .vmt gilt. Denn eine .vtf benötigt immer eine .vmt und damit die .vmt weiß zu welcher .vtf sie gehört müssen wir es ihr sagen. Das geht durch den Parameter basetextur. Hier mal eine kleines Beispiel einer funktionierenden .vmt:


Alles ab Zeile 6 ist nur ein Kommentar, dass benötigen Sie natürlich nicht. Es zeigt nur Dinge, die keinen Unterschied machen würden. Der Wert hinter basetexture gibt den Pfad an, in dem die .vtf liegt, die Endung .vtf müssen Sie weglassen. Der Pfad ist ausgehend vom materials Ordner. Kleines Beispiel:

Falsch:



Richtig:


Alles was jetzt kommt ist Zusatz, auch ohne die folgenden Dinge wird ihre .vmt funktionieren wenn Sie alles richtig gemacht haben was ich bis jetzt erklärt habe. Doch bekommen Sie dann eine Textur die ziemlich langweilig ist. Sie ist halt einfach da, so platt und „leblos“.

Ich werde nun weitere Parameter erklären, eine Liste aller Parameter finden Sie hier: developer.valvesoftware.com


Beginnen wir mit den Basics, eine Textur sollte den Parameter besitzen der ihr sagt aus welchem Material sie ist, also Holz, Metall, usw., dass bestimmt der Parameter: $surfaceprop. Source bietet hier eine Vielzahl an bereits vorhandenen Eigenschaften, hier eine Liste: developer.valvesoftware.com

Es ist möglich eigene Eigenschaften hinzu zu fügen, durch das Bearbeiten der surfaceproperties_manifest.txt. aber da dies zu sehr ins Detail geht und auch viele Probleme mit sich bringt, gehe ich darauf nicht ein. Diese „Material surface properties“ geben an, welche Sounds kommen, wenn ich auf dem Material laufe oder darauf schieße. Es gibt jedoch noch mehr was sich ändert. Ich möchte nun das meine Textur aus Metall bestehen soll. Das würde dann so aussehen:


Werbung:

Kommen wir nun zum $detail Parameter, er benötigt eine zweite Textur, eine Detail Textur. Wie der Name vermuten lässt, geht es hier ums Detail, wenn wir der Textur sehr nahe kommen dann wird eine zweite Textur über die eigentlich gelegt. Dass sieht dann so aus:

Quelle: developer.valvesoftware.com


Damit dies funktioniert benötigen wir ein zusätzliches Programm, welches eine Detail Version unserer original Textur erstellt. Ich empfehle da CrazyBumb oder MindTex. Beide sind nicht gratis. Wenn Sie nun eine solche Textur besitze, dann müssen Sie sie ebenfalls verlinken, das würde dann so aussehen:


Die Detail Textur würde nun bereits funktionieren, wir können jedoch noch weitere Feineinstellungen vornehmen. Wir möchten nun unsere Textur skalieren, ich nehme nun den Standardwert dafür, dass wäre 4. Also schreibe ich den Parameter $detailscale und den Wert, hinzu füge ich den Parameter $detailblendfactor, er gibt an zu wie viel Prozent die Textur zu sehen ist. 0 = Durchsichtig; 1 = Vollständig da. Als letztes schreibe ich noch $detailblendmode 0. Meine .vmt sieht nun so aus:


Eine Bump Map Textur könnte das Gleiche übernehmen doch dazu später mehr. Wir können nun noch weitere Parameter hinzufügen um unsere Detail Textur zu verbessern. Doch auf diese werde ich hier nicht eingehen, Sie finden sie hier: developer.valvesoftware.com

Mal angenommen unsere Textur besitzt einen durchsichtigen Alpha Channel und wir möchten das unsere Textur auch im Spiel an diesen Stellen durchsichtig ist, dann müssen wir folgenden Parameter hinzufügen: $translucent. Wenn dieser auf 1 steht ist die Textur an den gegebenen Stellen durchsichtig. Der Stand meiner .vmt:


Ein sehr cooler Effekt bei Texturen ist der der Normal Map oder auch Bump Map. Dieser simuliert einen 3D Effekt, man denkt die Textur wäre 3 Dimensional. Dafür benötigen wir eine Bump Map Textur, diese können Sie mit CrazyBump oder dem Normal Map Plugin für Photoshop erstellen. Hier mal ein Beispiel wie so eine Textur aussieht:

Quelle: developer.valvesoftware.com


Der Parameter dafür ist $bumpmap, dahinter der Pfad zur Bump Map Textur. Hier mal meine .vmt:


Werbung:

Nun zum letzten standard Parameter, dem $reflectivity Parameter. Er gibt an zu wie viel Prozent die Textur Licht reflektiert. Als Wert wäre 1 = 100% Reflektion und 0.5 oder .5 = 50% Reflektion. Ich möchte nun das 20% des Lichts Reflektiert werden, dass würde dann so aussehen:


Hier endet dieses Tutorial, Sie finden Tutorial’s zu besonderen Parameter ebenfalls auf dieser Website. Alle obigen Parameter funktionieren mit dem Standard Shader, Sonderfälle wie Wasser, Glas oder Model Texturen sowie die DirectX Versionen finden Sie in separaten Tutorial’s. Über .vmt gibt es so viel zu sagen, dass ich dies unmöglich alles in ein Tutorial zusammen fügen könnte. Dafür ist dieses Thema viel zu komplex und ich habe hier nur grob einen Einblick geliefert. Um sie noch mehr zu verwirren hier mal eine komplexe .vmt, viel Spaß.


Weitere Tutorials zu .vmt's kommen.