Tip:
Highlight text to annotate it
X
Schönen guten Tach, hier ist wieder der Klabautermann, und es geht weiter mit der Tutorial-Serie.
Heute geht es darum, wie man eigene Assets ins Spiel bringt, also eigene 3D-Modelle und/oder
Texturen. Weil man hat ja oft das Problem, dass man
ein bestimmtes Objekt sucht, dass man gerne in die Welt setzen würde und das gibt es
aber nicht im originalen Witcher 2, und wenn man kann, kann mans dann selber machen und
importieren. Und wie das geht, werde ich heute zeigen.
Ich habe zu diesem Zweck eine Mistgabel in 3ds Max hier modelliert und die werden wir
mal versuchen, ins Spiel zu bringen. Ich war zu faul, für die Mistgabel eine eigene Textur
zu erstellen, deshalb habe ich das ganze aus originalen Texturen zusammengebastelt. Hier
für den Stiel von der Schaufel die Textur genommen und hier für die Zinken ähm einfach
eine Metalltextur. Das sieht jetzt nicht optimal aus, ist ein bisschen hässlich geworden,
aber für unsere Zwecke reichts, es geht ja nur um die Demonstration.
Um die Texturkoordinaten richtig zuweisen zu können, braucht man natürlich die Textur
hier im 3ds Max drin, damit man sehen kann, was man macht. Und dafür ist es im ersten
Schritt nötig, dass man die Textur aus dem Redkit rausholt weil sie sind hier in so nem
komischen Format, weiß ich nicht, wie das heißt, auf jeden Fall kann man die nicht
direkt angucken und deshalb geht man auf Rechtsklick, und hier sollte eigentlich was von export
stehen, das ist aber irgendwie ständig so, dass es das nicht gibt und der Trick ist einfach,
man kopiert die Textur in seinen Levelordner hier rein. Ich mach einfach mal 'test'. So
und wenn man dann Rechtsklick macht, kann man hier export asset machen und das ganze
als dds speichern, was Photoshop und 3ds Max alle ganz gut verarbeiten können. Und dann
sieht man die Texturen auch hier und kann damit vernünftig arbeiten.
Ähm, wie man sieht, habe ich jetzt hier drei Schaufeln und so ne komische Box. Der Sinn
dahinter ist eigentlich ganz leicht, wir haben hier in grün die originale Schaufel die hat
teuflische 666 Tris und hier sind das die Level of Detail Versionen, die jeweils nen
niedrigeren Polycount haben und die dann in der Entfernung übergeblendet werden um Performance
zu sparen. Ich habe das hier nur ganz schnell automatisch
generieren lassen, das ist nichts dolles, aber zeigt wies geht. Das Ding hier hat 430
Tris, und hier die niedrigste Stufe hat 131. Das Ding hier soll die Kollisionsbox sein,
weil es ist nicht nötig, dass die Kollission Polygonexakt ist, weil der Spieler wird nie
so wie hier mit der zehenspitze auf diese Ecke gerade laufen, oder wenn er es tut, wird
er nicht merken, ob er jetzt wirklich genau an diesem Stückchen hängen bleibt oder ob
das doch 10 Zentimeter weiter hier drüben ist. Ich hab das jetzt nur zur Übersicht
auseinandergezogen, die müssen natürlich alle auf einen Fleck, aber dann sieht man
das alles so schlecht. Ich mach mal das hier rein und so, da können wirs sehen: So ganz
grob die Kontur einmal nachgezogen, und der Spieler wird, wenn er gegen diese Schaufel
läuft im Spiel, letztendlich an dieser Box hängen bleiben und nicht an der Schaufel
selbst. Damit der RedEngine Exporter auch erkennt,
dass wir hier die Kollisionsbox haben und hier die verschiedenen LOD-Level, müssen
wir die Dinger entsprechend benennen. Und zwar die Schaufel selbst, also das eigentliche
Mesh ist relativ egal, ich nenns jetzt einfach mal Fork. So. Die erste Lod-Stufe muss dann
heißen Fork Untenstrich LOD 1 und die zweite Fork Unterstrich LOD 2. Und die Kollisionsbox
Fork Unterstrich Coll. Coll nimmt man bei konvexer Kollision und bei konkav nimmt man
dann _Tri. Konvex - konkav, hier haben wir auf jeden Fall ne konvexe Hülle. Wer sich
nie merken kann, was konvex oder konkav ist, gibts nen guten Merksatz: Ist der Bauch konkav,
war das Mädchen brav, ist der Bauch konvex, hatte das Mädchen Sex.
So merk ichs mir zumindest immer. Das schöne ist, in dieser Version vom Exporter die ich
hier habe, funktioniert der Export nicht mehr, sobald man n Kollisionsmesh mitexportieren
will, deshalb ist das relativ sinnlos, dass ich das hier gemacht hab und werd das auch
gleich nicht mitexportieren. Es gibt aber noch ne andere Möglichkeit, wie man die Kollision
trotzdem hinkriegen kann, aber nur in nem eingeschränkten Rahmen und deshalb hoffe
ich, dass der Fehler demnächst irgendwann mal gefixt wird. Dann gibts noch ne wichtige
Sache mit den Texturen. Man kann sich sein Leben sehr viel leichter machen, wenn man
ein paar grundlegende Regeln beachtet, wie die Texturen hier angewandt und benannt werden.
Dann hat man nachher im RedKit weniger Arbeit. Ich mach mal Materialeditor auf - Ich hab
hier n Multi/Sub Object genommen, das ist immer ganz komfortabel mit mehreren Texturen.
Hier an der ID 1 haben wir das Holz, ist nicht ganz zutreffend, die Textur von der Schaufel.
Moment, wo ist sie? Diese hier, die man hier klein sieht. Und die ID 2 ist das Metall,
diese hier. Und an dieser Stelle kann man die Dinger nennen wie man möchte, sodass
mans nachher wiederfindet. Wie man die Material-IDs und so weiter zuweist, geh ich davon aus,
dass ihr es wisst. Ja, einfach die Polygone und dann hier unten - und hier wird dann auch
der Name angezeigt, den man hier eingibt, deshalb wenn man mehrere Materialien hat ist
es ganz praktisch, wenn man die Dinger da sinnvoll benennt.
Wirklich wichtig wirds aber jetzt wenn wir hier draufklicken, und das was hier reinkommt,
ist entscheidend. Denn hier muss der Name rein, den die Textur hat. Das heißt bei der
Schaufel ist es hier Shovel_01. Und wenn ich das jetzt hier reinschreibe und beim Metall
entsprechend auch. Metal Beams 01. Dann wird das nachher vom Redkit alles richtig erkannt
und ähm die Maps werden direkt richtig zugewiesen, das ist sehr praktisch.
Eine weitere Sache noch sind die Smoothing groups, muss man auch drauf achten, die werden
nämlich mit übernommen. Ich zeige es mal. Und zwar gibt es diesen AutoSmooth, der nichts
an der Geometrie ändert aber die Lichtberechnung so n bisschen optimiert, dass das Ganze etwas
runder wirkt. Wenn ich das mal ausschalte, sieht man hier, ja, dann sieht man ganz klar
die Kante, dass der Stiel nicht richtig rund ist. Und das würde man auch im Redkit sehen.
Und wenn ich jetzt hier das Ganze mit nem Winkel von 45 Grad glätte, dann sieht es
direkt rund aus, obwohl die Geometrie wie wir hier sehen, natürlich nicht ganz rund
ist. Wenn man da dran denkt, kann man ein paar
Schönheitsfehler vermeiden oder noch ein bisschen mehr an Optik rausholen. So jetzt
wirds aber Zeit, zu exportieren. Dazu kommen hier alle übereinander, damit
sich nicht die Gabel in der Entfernung plötzlich um 50 Zentimeter verschiebt. Hier passts noch
nicht ganz. Mit den Zacken passts jetzt nicht ganz, aber ist mir auch wurscht. So jetzt
wählen wir die alle 3 aus, weil die will ich exportieren, gehen hier zu Tools MaxScript
und wählen hier unten den RedEngine Exporter aus. Hier steht auch nochmal das mit der Benennung,
wie die Dinger benannt werden müssen. Wie gesagt: Kollision funktioniert im Moment nicht.
Und jetzt einfach auf Export, Namen eingeben, irgendwo hin speichern als RedEngine (.re),
erledigt. Jetzt gehen wir ins Redkit, gehen hier in
den Ordner von unserer Welt, machen Rechtsklick, Import, Mesh. So, wo hab ich das hingemacht?
Achja, hier ist es schon richtig. Mistgabel öffnen. Mistgabel ist ein wunderbarer Name,
obwohl ich mach nochmal ein M davor, damit man weiß, dass es ein Mesh ist. Ok. So. Jetzt
gehts los. Jetzt kommt hier dieses Fenster. Und zwar möchte der, dass ich dem Material,
das wir hier in 3ds Max haben, einen Shader zuweise. Das hier ist eigentlich das Standardding,
ist aber am Anfang nicht in der Recent-Liste, das muss man ewig langen Menü einmal heraussuchen,
dann ist es hier drin und man hat es immer parat.
Jetzt drück ich ok. So und dann sieht man schon, ich kann nochmal die Vorschau updaten.
Ok, sieht bisschen komisch aus, machen wir es mal auf. Öhm, so man sieht, ich mach mal
den Hintergrund heller, damit man auch was erkennt - man sieht, irgendwie ist hier der
Stiel ein bisschen verkackt und völlig bunt. Ok, der gute alte RedKit Neustart hat es mal
wieder gerichtet, ich hatte doch keinen Fehler gemacht, es ist alles in Ordnung. Man sieht
schon, es passt alles, die Materialien sind richtig, Normal Map und Specular ist drin.
Jetzt müssen wir hier nur noch bei den LODs festlegen, wann die umschalten. Wenn man die
anklickt, sieht man links im Fenster ändert sich entsprechend schon das Aussehen. Das
hier ist doch ein bisschen aus der Mitte raus, muss ich nochmal korrigieren und gucken, woran
es liegt, ist aber auch egal. Jetzt kann man nämlich hier eingeben, nach welcher Distanz
das umschaltet. Sagen wir nach 8 Metern kommt die mittlere Detailstufe, und dann kommt nach
16 Metern die Niedrigste. Ehm, hier für Xenon ist egal, das ist für die Xbox Version, damit
haben wir ja nichts am Hut. Achja, Kollision. Kollision konnten wir ja
leider nicht mit exportieren, wenn wir jetzt hier auf Show gehen - gibt keine Kollision.
Die kann man aber schönerweise automatisch generieren lassen und zwar wenn wir auf Collision
gehen, dann gibts hier verschiedene Methoden. Man sieht jetzt hier, der macht einen relativ
genauen Umriss, wenn ich jetzt ne Box mache, macht er, wie der Name sagt, nur ne Box. Dann
gibts hier noch so verschiedene andere Verfahren. Bei der Schaufel ist es vollkommen egal, was
man nimmt, man wird da im Spiel denke ich sowieso keinen Unterschied bemerken. Und deshalb
nehme ich die Box, weil das die simpelste Form ist und damit auch am wenigsten Rechenaufwand
erfordert. Das einzige was man nie nie nie nie nie nie nie nehmen sollte, ist hier die
Exact Collision, da kommt auch ne Warnung, weil die einfach viel zu viel Rechenleistung
frisst und total unnötig ist. Deshalb die Box. LODs festgelegt, Kollision festgelegt,
speichern. Jetzt wollen wir das ganze Ding auch nochmal
InGame sehen, dafür lade ich mal die gute alte Tutorialwelt. Reinziehen, static mesh,
da ist sie, die Mistgabel! Wenn jemand weiß, wie man hier schneller
drehen kann, wäre ich ihm sehr verbunden, wenn er es mir verraten würde. Es macht mich
nämlich immer wahnsinnig, man kann hier zwar die Schrittweite einstellen, aber ich muss
trotzdem 10 Mal angreifen, um das Ding einmal komplett rumzudrehen und das ist wirklich
lästig. Jetzt gucken wir mal wegen den LODs, ob die
umspringen. Das Original, jetzt fahr ich weiter weg, ok und man sieht überhaupt nichts. Wenn
das hier richtig eingestellt ist, dann funktioniert das auch. Wir können bei der AutoHide Distance
angeben, wann die Mistgabel hier generell ausgeblendet wird, ich mach einfach mal nach
30 Metern. Und wegen den LODs, dass wir das mal sehen können, mach ich mal das nach einem
Meter und das nach zwei, da müssten wirs jetzt eigentlich aber mitkriegen. Ja. Jetzt
hat mans, ja, das eine ist ein bisschen aus der Mitte raus, deshalb sieht man hier, wie
es sich dann umschaltet. Ja, funktioniert. Und noch einmal InGame, weils so schön ist.
Man kann die Berechnung von dem Navigationsmesh beschleunigen, wenn man hier unten das hier
auf false stellt. Dann geht das einfach wesentlich schneller. Zack, fertig. So und man sieht:
Man kann nicht durch die Schaufel hindurchlaufen und man sieht jetzt auch nicht, dass man da
nur gegen die Box rennt, weil die Kollision sowieso nicht so exakt ist. Gut, dann vielen
Dank fürs Zusehen, bis zum nächsten Mal, blabla und so weiter, tschüss.