Erstellen eines statischen Modells

Ich kenn mich nicht wirklich mit Modeling aus, aber ich weiß mitlerweile wie man ein, in Milkshape, erstelltes Model zu einer HL2/CS:S .mdl Datei wandelt. Ich will nicht auf Spielermodels eingehen, es geht hier um schlichte und unanimierte Models (z.B. Bäume, Lampen, Tonnen, usw.), obwohl es so ähnlich wohl auch bei animierten Models funzen wird. Ein bischen Grundwissen für Milkshape setze ich voraus, ansonsten guckt euch einfach mal das unten gelinkte Tutorial an.

Für das erstellen eines Models habe ich Milkshape 1.7.1 eingesetzt, was man hier erhält: http://www.milkshape3d.com/

Für ein wenig Grundwissen in sachen Modeling mit Milkshape hab ich mir dieses Tut reingezogen: http://www.gargi.org/showthread.php?1732-Gargi-s-Milkshape-3D-Tutorial&p=5923#post5923

Wer keine Ahnung von Texturen hat, sollte sich noch das Tutorial von -explicit- hier ansehen: http://www.thewall.de/forum/thread/texturen-erstellen/43431.1.html

Hinweis: ² steht für “…\Steam\SteamApps\username\sourcesdk\“

Als erstes erstellen wir mit Milkshape eine „Box“, dieser verpassen wir ein einzellnes „Joint“ (am besten genau in die Mitte). Mit „Select - Group“ wählen wir die Box aus und „assignen“ sie mit „joint1“ (siehe Reiter „Joints“). Nun hat unsere Box einen „Bone“ (Joint) welchen wir zum rotieren im Model Viewer oder im Hammer benötigen. Nun braucht unsere Box noch eine Textur, welche unter dem Reiter „Materials“ zugewiesen wird. Erstmal muss mit „New“ eine Textur definiert werden und durch anklicken des ersten “<none>“ kann diese dann ausgewähl werden. Damit die Textur dann auch im Hammer und später im Spiel zu sehen ist, muss diese unter “…²\cstrike_sample_content\materials\models“ als kompilierte Datei vorliegen (.vtf + .vmt). Wir wählen hier mal die Datei “…²\cstrike_sample_content\materialsrc\sdk\bump.tga“ aus, hier gibt es nämlich unter “…²\cstrike_sample_content\materials\sdk“ die passende kompilierte Textur (bump.vtf) dazu. Welche wir dann nach “…²\cstrike_sample_content\materials\models\test“ kopieren und eine angepasste „bump.vmt“ mit folgendem Inhalt erstellen:

"VertexLitGeneric"
{
    "$baseTexture" "models/test/bump"
    "$nodecal" "1"
}

Eure Box sollte immer noch makiert sein, wenn nicht tut dies nochmal über „Select - Group“. Zurück beim Reiter „Materials“ wird durch anwählen von „Assign“ die Textur der Box zugeordnet. Im 3D Fenster sollte nun eure Box in etwa so aussehen:

Wenn die Textur nicht zu sehen ist, einfach mal einen Rechtsklick ins 3D Fenster machen und „Textured“ anklicken. Nun haben wir unser Testmodel im Grunde fertig. Wer will kann auch was komplexers erstellen, hauptsache irgendwie irgendein Model.

Als nächsten Schritt exportieren wir unser Model mit „File - Export - Half-Life SMD…“ in eine .smd Datei, nennen diese „cube.smd“ und legen sie unter “…²\cstrike_sample_content\model_sources\test“ ab. Beim darauf folgendem Fenster wählen wir „Reference“. Nun wählen wir unter dem Reiter „Groups“ unsere Box aus, wenn die Box nicht mehr markiert ist dies bitte mit „Select“ tun. Unter „Smoothing Groups“ wählen wir „Assign“ aus und klicken auf die „1“, unsere Box sollte sich nun dunkel verfärben. Das Ergebnis exportieren wir wieder als „Half-Life SMD“ an den gleichen Ort wie „cube.smd“ nur diesmal nennen wir es „cube_phys.smd“, „Reference“ bleibt ausgewählt. Nun sind wir mit Milkshape fertig, es kann im grunde geschlossen werden.

Nun werden wir eine .qc Datei für unser Model erstellen, welche wichtige Informationen für das spätere Kompilieren beinhaltet. Leider kann ich nicht jede Option erklären da ich selbst noch nicht alles komplett durchschaut habe. Einige .qc Kommandos werden aber hier detailiert erklärt (auf Englisch). Hier nun mal meine „cube.qc“ Datei, eure sollte genau so aussehen:

// Pfad zu fertigen .mdl Datei 
$modelname test/cube.mdl 
 
$scale 1.0 
 
// Ordner der Textur(en) für das Model 
$cdmaterials models/test 
 
// Steht für ein nicht animiertes Model 
$staticprop 
 
$body studio "./cube" 
 
$sequence idle "cube" 
 
// Angabe für die Physik des Models, wie es sich eben im Spiel verhalten soll 
$collisionmodel "cube_phys.smd" 
{ 
// Gewicht in Killogram 
$Mass 5 
$concave 
}

Das fertige Model mit der Endung .mdl soll dann im Ordner “…²\cstrike_sample_content\models\test“ abgelegt werden, wenn der Ordner „test“ noch nicht besteht bitte diesen anlegen. Jetzt ist alles fürs Kompilieren vorbereitet, die Kompilierung starten wir dann über eine MS-DOS Box:

cd ...²\bin
studiomdl.exe ..\cstrike_sample_content\model_sources\test\cube.qc

Wenn am Ende „Completed 'cube.qc'“ steht, hat alles geklappt. Im Ordner “…²\cstrike_sample_content\models\test“ sollte nun die Datei „cube.mdl“ liegen und ein paar andere „cube“ Dateien mit verschiedenen Endungen. Ihr könnt nun euer Ergebniss im Model Viewer bestaunen oder direkt in eure Map einbauen.

Das mit der Phyisk (cube_phys.cmd) klappt nicht so wie ich es mir vorgestellt habe, ich war da wohl etwas vorschnell, sorry. Ich muss erstmal noch ein bischen recherchieren, werde meinen Beitrag dann dementsprechend anpassen. Das Model lässt sich aber trotzdem so wie beschrieben erstellen, nur es reagiert halt nicht auf beschießen oder sonstiges.

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.
 
source/modeling/statisches_modell_erstellen.txt · Zuletzt geändert: 2010/05/09 11:42 von Adrian_Broher