Hallo zusammen!
Willkommen zu zu meinem Screenshot-Tutorial für den Sandbox 2 Editor. Ich möchte euch meinen Workflow zu folgendem
Bild vorstellen und euch eventuell den ein oder anderen Trick verraten, den ihr vielleicht noch nicht kanntet.
Erstmal ein paar einleitende Worte, bevor ich mit dem eigentlichen Tutorial beginne.
Der hier vorgestellte Workflow ist lediglich einer von vielen möglichen und ist auch
nicht unbedingt für jedes Setting und jede Art von Bild geeignet, aber wenn ihr die
einzelnen Elemente beherrscht, könnt und solltet ihr diese natürlich in beliebiger
Reihenfolge kombinieren.
Die wichtigsten Dinge in meinen Bildern sind die folgenden 3:
- Farben
- Texturen
- Dynamic Lights
Diese 3 Dinge bestimmen letztendlich die Atmosphäre auf euren Bildern. Die Time of Day Einstellungen
sind dabei nur die Grundlage für die allgemeine Farbgebung, aber dürfen natürlich nicht vernachlässigt
werden und ihr solltet auch zwischen den einzelnen Schritten immer mal wieder damit rumspielen (wichtig: Fog, Contrast, Saturation, Photofilter Color/Density).
Eine wirklich gute Beleuchtung erreicht man (bei speziell erstellten Szenen) meiner Erfahrung nach nur durch intensiven Einsatz
von Dynamic Lights, mit denen ihr dem Bild viel mehr Tiefe verleihen könnt. Dieses Bild ist ein besonders gutes Beispiel dafür.
So, genug davon, fangen wir an.
------------------------------------------------------------------------
TEIL EINS: Das Grobe
Als erstes brauchen wir ein Fokusobjekt, um das dann der gesamte Rest der Szene aufgebaut wird,
in dem Fall das Schiff (Geom Entity/Library/Vehicles/fishing ship).
Packt es in die Szene, richtet es aus und vergrößert es um einiges, damit der Fog-Effekt später im hinteren Teil
eine bessere Wirkung erzielt. Legt dann euren Kamerawinkel fest, mit dem ihr von jetzt an arbeiten werdet.
Wenn ihr mit der Ausrichtung zufrieden seid, drückt Strg+F1, so wird die Einstellung gespeichert und kann jederzeit
mit Shift+F1 wieder aufgerunfen werden,
falls ihr die Kamera für die Positionierung von Objekten mal drehen müsst.
Alternativ könnt ihr auch eine separate Cam benutzen, wo ihr dann noch Field of View Einstellungen
vornehmen könnt für bestimmte Effekte, aber für das Bild reicht die normale Ausrichtung der Editor Cam.
(Ihr könnt natürlich auch mehrere Cam-Ausrichtungen speichern, jeweils mit Strg + F-Taste)
Anschließend nehmen wir unter "Environment" ein paar Einstellungen vor:
- DetailLayersViewDistRatio: stelle ich immer auf 100, damit die Texturen auch in
großer Entfernung noch gut zu erkennen sind und nicht an Qualität verlieren.
- Ocean: hier passen wir die Fog-Einstellungen an, in diesem Fall hab ich das Blau
etwas dunkler gemacht, den Farb-Multiplier und die Dichte fast auf null gestellt,
da ich mit den Fog-Einstellungen in der ToD die besseren Ergebnisse erzielt habe.
- OceanAnimation: Hier könnt ihr je nach Geschmack die Einstellungen für Wellengröße
und Anzahl ändern, in dem Fall habe ich wenige (WavesAmount), aber dafür die größt
möglichen Wellen (WavesSize) gewählt.
Wenn ihr damit fertig seid, könnt ihr anfangen, den Boden um das Schiff zu bearbeiten und ein paar
Unebenheiten reinbringen. Wichtig ist dabei, dass ihr direkt am Rumpf des Schiffes den Boden etwas anhebt,
damit der Eindruck entsteht, das schwere Schiff sei nach dem Sinken tief in den Meeresgrund gedrückt worden.
----------------------------------------------------------------------------------------------------
Jetzt wenden wir uns den Bodentexturen zu. Für dieses Bild habe ich nur 2 Texturen benutzt.
(Wie ihr mit Texturen umgeht, könnt ihr in anderen Tutorials herausfinden, die sich speziell damit befassen)
- Materials/Terrain/beach_white_sand_wet
- Materials/Terrain/cliff_rock_a
Für die Sandtextur habe ich eine eigene Kopie angelegt um sie nochmal bearbeiten zu können. Das macht ihr folgendermaßen:
- Rechtsklick auf das Material -> Copy
- Rechtsklick -> Paste (nicht auf eine Datei, irgendwo daneben im gleichen Fenster)
- Sucht unter Crysis/Game/Levels euren Levelordner und legt darin mit Rechtsklick
einen Unterordner an, zb "Texturen" und gebt dann den gewünschten Namen der Textur
ein und speichert sie ab.
- Nun weisen wir unsere eigene Textur in den Textureinstellungen zu und können damit
beginnen, diese zu bearbeiten
Allgemein ist es eine gute Idee, für die Texturen Kopien anzulegen und diese dann neu zuzuweisen,
damit eure Original-Texturen erhalten bleiben. Das gilt natürlich auch für Objekt-Texturen.
Bei der Sand-Textur habe ich das "Detail Texture Mapping" auf 0.1 gestellt und die Textur damit vergrößert
(je kleiner die Zahl, desto größer die Textur und umgekehrt).
Diese Einstellung ist bei den meisten Bildern sehr wichtig, denn man erzielt durch die Anpassung die besten
Ergebnisse. (zB bei weit entfernten Bergen kann man damit ganz gut Texturwiederholungen vermeiden)
Anschließend habe ich in den Material-Einstellungen die Textur und die Bumpmap jeweils im Unterpunkt "Tiling"
nochmals vergrößert. Die Werte von Textur und Bumpmap sollten idealerweise immer gleich größ sein,
aber das ist Geschmackssache.
Nun nehmen wir die Einstellungen für Reflexionseffekte, Texturstärke usw vor, damit uns die Textur im Bild
etwas Feedback über die Beschaffenheit des Bodens gibt.
(es ist möglich, dass ich für andere Bilder die Original-Textur schonmal verändert hatte, deshalb wundert euch nicht,
wenn bei euch nicht die gleichen Einträge unter "Texture Maps" stehen. Es geht ja hier nur ums Prinzip^^)
So sieht dann etwa die Textur nach dem Bearbeiten aus:
---------------------------------------------------------------------------------------------------
Wichtig: Sobald wir ein neues Objekt für die Szene erstellen, sollten wir eine Kopie des Materials anlegen
und dem neuen Objekt zuweisen, da ihr sonst vielleicht in die Verlegenheit kommt, nach 10 kopierten Objekten
nachher jedem das kopierte Material einzeln zuweisen zu müssen
Jetzt können wir damit anfangen, unsere Szene mit Steinen, Pflanzen und ähnlichem zu füllen.
Für das Bild habe ich folgende Objekte benutzt:
- Brush/Library/alien/alien_mountain/amountain_rock1
- Brush/natural/underwater_plants/coral_bright_white_pattern_a
- Brush/natural/underwater_plants/coral_bright_rock_big_a
- Brush/natural/underwater_plants/coral_bright_rock_big_b
- Brush/natural/bushes/junglebush/junglebush_big_b
- Brush/natural/rocks/pebbles/3m_pebbles_a
Generell müsst ihr nicht unglaublich viele unterschiedliche Objekte benutzen, es reicht meistens, wenn ihr ein paar wenige
Objekte kopiert, diese dann vergößert/verkleinert, dreht und verschiebt.
Zudem lassen sich damit auch teilweise ganz neue Objekte erstellen, wie zum Beispiel die länglichen Unterwasserpflanzen.
Dazu habe ich einfach den junglebush genommen, ihn entlang der Z-Achse in die die Höhe gezogen
und ihn über die Y-Achse etwas zusammengedrückt.
Die Fantasie ist hierbei eigentlich das Limit, da man unglaublich viel mit den Objekten anstellen kann,
wenn man sich ein bisschen Mühe gibt und einfach mal ein paar Sachen ausprobiert.
Für einen weniger einschneidenden Übergang zwischen Steinen und Meeresgrund habe ich noch eine zusätzliche Bodentextur erstellt:
- Materials/Terrain/cliff_rock_a
Da die Textur schön dunkel ist, gibt es weichere Übergänge zum Meeresgrund, wenn man die Steine damit ein wenig ummalt.
Der untere Teil der Szene ist nun soweit fertig und nun fehlt noch im oberen Teil das Boot und die beiden Taucher:
Für das Boot habe ich benutzt:
- Geom Entity/Library/vehicles/small_ship/small_ship
und die beiden Taucher sind AnimObjects mit folgendem Model und Animation:
- Model: Characters/human/story/martin_hawker/martin_hawker_helmet.cdf
- Animation: cineMine/cineMine_ab5_barnesdyingIdle_01
Die Taucherflossen an den Füßen sind natürlich keine, dafür müssen wir dann etwas tricksen, wenn wir nicht selbst
welche mit einem 3D-Prog erstellen wollen:
- Brush/Library/props/flags/airfield_terminal_flag_white
Diese dann drehen, skalieren und verschieben, bis es passt, allerdings solltet ihr anschliessend einen Rendertest
machen um zu sehen, ob sie auch im finalen Bild an der richtigen Stelle sitzen. Es hätte sicher auch elegantere
Lösungen gegeben, aber ich hatte keine Lust, tausende von Objekten auf ihre Flossentauglichkeit zu untersuchen
Zum eigentlichen Bildaufbau gibts es noch etwas wichtiges zu sagen. Wenn ihr dem Bild anständige Tiefe verleihen wollt,
solltet ihr jeweils mehrere Objektebenen benutzen.
Wie man an dem Bild schön erkennen kann, gibt es hier den Vordergrund, in dem Fall ein paar Pflanzen links unten
und die Korallensteine rechts. Dann kommt der Mittelteil mit dem Schiff und dessen näherer Umgebung und dahinter
dann nochmal mehrere große Steine und Korallen, die jeweils unterschiedlich weit voneinander entfernt sind.
Um die Details dabei zu erhalten und nicht durch die Level of Detail Einstellungen zu verlieren, könnt ihr die LodRatio
und ViewDistRatio anpassen, wobei ein geringerer Wert bei LodRatio eine höhere Sichtweite für die Details zulässt,
also am besten auf 1 stellen und die ViewDistRatio auf 255 für allgemein erhöte Sichtweite der Objekte.
----------------------------------------------------------------------------------------------------
Damit ist der erste und grobe Teil des Tutorials abgeschlossen und im nächsten Teil werden wir der Szene mit Dynamic Lights,
Partikeleffekten und ein paar Fischen ein bisschen Leben einhauchen
Generell bleibt noch zu sagen, dass ihr zwischendurch immer mal wieder Testrenders machen solltet um zu sehen,
ob das gesamte Bild auch im Endprodukt so aussieht, wie ihr euch das vorstellt. Vor allem nach Veränderungen in der ToD,
da zb bei Veränderungen der "Sun shafts visibility" im Zusammenspiel mit "Sun rays attenuation" schnell unerwünschte Effekte
bei hohen Renderauflösungen entstehen können.
----------------------------------------------------------------------------------------------------
TEIL ZWEI: Das Feine
Nun sieht unser Bild (ungerendert) etwa so aus:
Ganz nett soweit, aber da geht noch einiges^^
Deshalb wollen wir der Szene nun ein paar Dynamic Lights hinzufügen. Vor allem, da der Effekt der Lichtbrechung
durch das Meer am Boden und auf den Objekten völlig fehlt. Und darauf möchte man doch in einem Unterwasserbild ungern verzichten
Der Effekt ist zwar eigentlich schon vorhanden, jedoch ist er viel zu klein für diese Tiefe und hat allgemein eine zu geringe Sichtweite,
wie man auf dem folgenden Bild schön erkennt:
Zudem hätte man selbst bei ausreichender Sichtweite viel zu wenig Kontrolle über die extakte Beleuchtung der Objekte
und so kommt es uns zugute, dass wir das selbst in die Hand nehmen können.
Also erstellen wir über Entity/Lights/Light ein Licht und passen es folgendermaßen an:
- Den Radius stellen wir auf 500, damit wir genug Spielraum haben um das Licht in
Größe, Entfernung und Schärfe anzupassen.
- Die Farbe sollte nicht zu weiß sein, da es sonst unrealistisch und störend wirkt,
also umstellen auf einen leichten Blauton.
- DiffuseMultiplier, HDRDynamic und SpecularMultiplier könnt ihr euren Wünschen
anpassen, achtet dabei darauf, dass das Licht nicht zu hell wirkt. Manchmal
erreicht man mit niedrigen Einstellungen bei den ersten beiden und dafür einer
hohen Einstellung beim SpecularMultiplier bessere Ergebnisse, müsst ihr
ausprobieren.
- Als Textur könnt ihr fast alles verwenden, das Licht wird dann in entsprechender
Form auf den Boden geworfen, in dem Fall benutzen wir aber:
-> game/textures/sprites/plasma_new.dds
Das kommt dem Unterwasserlicht am nächsten.
- Anschließend müssen wir dem Licht noch ein Material zuweisen, in dem Fall wollen
wir nicht für jedes einzelne Licht sichtbare Lichtstrahlen haben und wählen:
-> Materials/lightbeams/lightbeam_corona
Mit dem Material haben wir nur einen kleinen Lichtkreis ohne rays, den wir dann
wenig störend über der Wasseroberfläche positionieren können.
- Dann fehlt nur noch die Einstellung für den Weitwinkel des Lichts -> ProjectorFov
Diese könnt ihr wieder euren Vorlieben anpassen. Ein geringer Winkel gibt euch
gewissermaßen mehr Details für das einzelne Licht, jedoch braucht ihr dann
ungleich mehr Lichter um alles abzudecken, zudem sollte das Licht in der Tiefe
nicht mehr besonders detailiert sein, ist aber wiederum Geschmackssache und eine Frage der
Hardware bzw der Engine-Limitierung bezüglich der Dynamic Lights.
Nun könnt ihr anfangen, eure Lights zu kopieren, verschieben, drehen und evtl noch ein paar Winkel- oder Intensitätseinstellungen ändern,
ganz wie es euch gefällt
Am besten ist dabei eine Mischung aus großen, groben Lichtern für die Abdeckung und vereinzelten,
kleineren Lichtern für ein paar mehr Details, wie zb auf dem Schiffsdeck oder den Korallensteinen.
Für die Objekte im Hintergrund habe ich nur grobe Lichter verwendet.
Wenn ihr mit der Positionierung fetig seid, solltet ihr noch ein normales Licht, ohne Textur oder sonstiges,
für den Rumpf des Bootes an der Wasseroberfläche benutzen, weil das ansonsten viel zu dunkel wäre und das Licht
uns noch ein paar kleine Details zusätzlich verschafft. Das gleiche gilt für die Korallensteine rechts im Vordergrund.
Zum Schluss wollen wir noch ein Licht einfügen, dass ein paar Lichtstrahlen unter die Wasserobefläche wirft,
da hier die ToD-Einstellungen für die Sunrays nur sehr leicht eingesetzt werden sollten und somit für Lichstrahlen eher ungeeignet sind:
- Kopiert ein Unterwasserlicht und weist ihm folgendes Material zu:
-> Materials/lightbeams/lightbeam_floodlight
Nun das Licht soweit nach hinten/oben verschieben und etwas in Richtung Cam drehen,
bis beim Rendern der Eindruck
von leichten Sonnenstrahlen unter der Wasseroberfläche entsteht. Diese sollten dabei jedoch nicht zu tief gehen.
Hier mal als Beispiel, der HDR-Wert ist dabei jedoch viel zu hoch eigestellt, damit mans besser sieht^^:
Nun sollte unser Bild in etwa so aussehen:
----------------------------------------------------------------------------------------------------
Allgemein ist zu den Dynamic Lights noch zu sagen, dass ihr die Schattenwürfe der Lichter nicht grundsätzlich anschalten solltet,
sondern je nach Bedarf. Außerdem ist es auch manchmal sinnvoll, statt eines Lights ein IndirectLight zu benutzen,
kommt immer auf den Einsatz dafür an
Außerdem solltet ihr immer darauf achten, dass eure Lichter das Bild harmonisch beleuchten und hauptsächlich
die Fokusobjekte in den Vordergrund heben. Ihr wollt sicher nicht, dass der Betrachter unnötig durch zu stark beleuchtete,
unwichtige Objekte vom Wesentlichen abgelenkt wird
-----------------------------------------------------------------------------------------------------
So, das Bild ist nun schon weit fortgeschritten, allerdings gibt es noch ein paar Ungereimtheiten und Dinge,
die verbesserungswürdig sind, wie zb Texturen und deren Farben.
Außerdem sieht das Bild wenig belebt aus, schliesslich befinden wir uns im Meer und da tobt das Leben
Aber fangen wir mit den Texturen an:
Zunächst beginnen wir mit den Steinen, stellen in den Materialeinstellungen der Kopie Farbe, Specular, Bump und sonstiges
nach unseren Wünschen ein. (ihr habt hoffentlich nicht vergessen, dem ersten Stein vor dem Vervielfältigen eurer kopiertes
Material zuzuweisen, ansonsten habt ihr nun ein bisschen Arbeit)
Das gleiche gilt für die länglichen Unterwasserpflanzen (junglebush), bei denen wir in der Kopie dann
den Specular-Wert auf 0 drehen, da der Glanz unter Wasser doch eher unrealistisch wirkt.
Nun noch die Korallenpflanzen, bei denen wir die Farbe etwas grünlicher und kräftiger einstellen (oder auch rot, gelb, pink, alles was euch gefällt).
Ihr könnt natürlich auch mehrere Kopien eines Materials erstellen mit unterschiedlichen Farben und so noch mehr Abwechslung
ins Bild bringen, mir hat in dem Fall die "Farbarmut" mehr zugesagt
Wenn wir damit fertig sind, weisen wir dem großen Schiff noch eine Kopie des Materials zu
und spielen dann ein wenig mit den Farben des Rumpfes und dem Specular-Wert. In dem Fall hat mir das Rot am besten gefallen,
allerdings auch mit dem Hintergedanken, dass das Schiff mit decals später noch ein bisschen demoliert wird
Schliesslich noch die Einstellungen für Anker und allgemein die Metallteile des Schiffes. Dabei solltet ihr
eine gute Mischung finden zwischen Leuchten und Mattheit.
Zuviel Leuchten sieht unrealistisch aus und zu wenig lässt dann wieder Details vermissen.
Kommen wir nun zu den Decals für das Schiff. Folgende hab ich verwendet:
- Materials/Decals/dirty_rust/burning_oil1
- Materials/Decals/frozen
Diese werden groß genug skaliert und in Position gebracht. Ihr werdet merken, dass aufgrund der Dynamic Lights
eure Decals fast unsichtbar sind, deshalb kopieren wir die Decals einfach sooft übereinander, bis die gewünschte Intensität erreicht ist.
Auch für die Decals gilt: ihr könnt eine Kopie erstellen, zuweisen und dann mit den Einstellungen spielen.
Nun erstellen wir uns einen Partikeleffekt für die Luftblasen, allerdings sollte der Effekt gemäßigt eingesetzt werden,
wir sind schliesslich nicht in einem Whirlpool
Dazu einfach einen neuen Partikeleffekt erstellen, dann einen Sub Effect hinzufügen und den wie auf dem folgenden Bild einstellen:
Den Effekt könnt ihr dann in eure Szene setzen und nach Belieben kopieren und verschieben.
Ich hatte zusätzlich noch einen Partikeleffekt erstellt, der aber auf dem Bild so gut wie nicht zu sehen ist,
deshalb lass ich ihn an dieser Stelle unerklärt, waren ein paar kleine schwarze Partikel um dem Wasser mehr Dichte zu geben.
So, nun fehlen eigentlich nur noch die Fische:
Dazu erstellt ihr euch unter Entity/Boids/Fish einen Fischschwarm, bei dem ihr dann die verschiedenen Einstellungen vornehmen könnt,
wie zB Model des Fisches oder Anzahl, Schwimmverhalten usw. Ich benutze in dem Bild 3 Schwärme mit jeweils
unterschiedlichen Models und Größen, hier mal ein Beispiel für meine Einstellungen:
Auch hier wieder wichtig, in den Eistellungen die VisibiltyDist auf 255 zu stellen, da euch sonst die Fische schnell abhanden kommen^^
Dann noch die 3 Fische im Vordergrund erstellen (geom entitys), skalieren, drehen verschieben und die Farbe anpassen
(ich hab ein leichtes Blau benutzt, alle Fische teilen sich die gleiche Farbe, wenn man keine Kopie zuweist)
-----------------------------------------------------------------------------------------------------
TEIL DREI: Rendern
So, nun ist euer Bild soweit fertig und kann gerendert werden, statt nun aber einfach daufloszurendern, gibts noch einige Dinge,
die ich euch dazu sagen möchte:
Ihr könnt bei hohen Renderauflösungen (denke mal ab 4x Editorauflösung) den Grain-Filter in der Tod fast auf halbe Höhe stellen,
damit kann man dem Bild einen leichten Mal-Touch verpassen, je nach Stärke.
Und nun das wohl wichtigste, ohne dass ich eigentlich nie ein Bild rendern würde:
Benutzt den time_scale Befehl bevor ihr rendert, besonders, wenn ihr bewegliche Objekte wie AnimObjects,
Vögel oder wie in dem Fall Fische im Bild habt.
Ich nutze grundsätzlich 2 Möglichkeiten, einmal time_scale 0.1 um zb den richtigen Moment einer Animation abzuwarten,
anschliessend dann time_scale 0 um in aller Ruhe rendern zu können, außerdem kann man selbst bei angehaltenem Bild
noch viele Veränderungen vornehmen, um noch den letzten Feinschliff zu verpassen.
In unserem Bild kommt uns der Befehl besonders zugute, da die Fische zwar in der Animationsgeschwindigkeit
eingestellt werden können, aber es wäre trotzdem nervig, dann auf den richtigen moment zu warten um das Bild machen zu können.
Also schaut auf eure Fische, wenn sie in die richtige Richtung schwimmen und ein bisschen näher zusammen sind,
nutzt dann time_scale 0 und verschiebt sie anschließend, bis sie so ins Bild passen, wie ihr euch das wünscht
(alternativ könnt ihr sie auch resetten, time_scale 0.1 benutzen, kurz warten bis sie sich ein bisschen verteilt haben und dann die Zeit anhalten)
Allgemein solltet ihr bei Screenshots, in denen Wasser zu sehen ist, immer mit time_scale 0 rendern,
da ansonsten Spiegelungen auf dem Wasser verloren gehen.
------------------------------------------------------------------------------------
So, zum Abschluss möchte ich nochmal mit auf den Weg geben, dass der von mir beschriebene Weg nur einer
von vielen möglichen ist und dass es für verschiedene Probleme mit Sicherheit auch einige unterschiedliche Lösungen gibt,
für mich persönlich ist das der angenehmste Workflow.
Solltet ihr Verbesserungsvorschläge haben oder andere Lösungen für die von mir angesprochenen Probleme kennen,
dürft ihr sie natürlich gern hier posten
A tutorial in english will follow soon, just have to translate these few words
lg