scripting:tutorials:level1:place_entities
Unterschiede
Hier werden die Unterschiede zwischen zwei Versionen der Seite angezeigt.
Nächste Überarbeitung | Vorherige Überarbeitung | ||
scripting:tutorials:level1:place_entities [2023/07/10 13:27] – angelegt fritz_98 | scripting:tutorials:level1:place_entities [2024/05/13 13:38] (aktuell) – [Objekte selektieren] fritz_98 | ||
---|---|---|---|
Zeile 1: | Zeile 1: | ||
=====Objekte platzieren===== | =====Objekte platzieren===== | ||
- | Objekte werden mit dem Entitäten-Werkzeug (Shortcut Ctrl+2) platziert. Wenn man den Cursor im Viewport bewegt, erscheint das gewählte Entity unter dem Cursor. Dieser hat folgende Funktionen: | + | Objekte/ |
^ Tastenkombination ^ Effekt ^ | ^ Tastenkombination ^ Effekt ^ | ||
Zeile 43: | Zeile 43: | ||
=====Objekte selektieren===== | =====Objekte selektieren===== | ||
- | Objekte | + | Entitäten |
+ | ^ Tastenkombination ^ Effekt ^ | ||
+ | | Linke Maustaste oder Lasso ziehen | Entitäten selektieren | | ||
+ | | Rechte Maustaste | Ausgewählte Entitäten zum Mauszeiger bewegen***** | | ||
+ | | Shift + Mausrad | Selektierte Entities drehen | | ||
+ | | Alt + Mausrad | Selektierte Entities skalieren | | ||
+ | | Backspace | Selektiere Entities löschen | | ||
+ | |||
+ | ***** Im ursprünglich mit der Gold Edition ausgelieferten Editor sorgt ein Bug dafür, dass nur die Hälfte der gewählten Entities verschoben wird. Im [[ https:// | ||
+ | |||
+ | ====Der Selektions-Explorer==== | ||
+ | |||
+ | Die genauen Eigenschaften jedes selektierten Objekts finden sich in einer Liste im **Selektions-Explorer**, | ||
+ | |||
+ | Mit einem Doppelklick auf ein Objekt im Selektions-Explorer können einige dieser Attribute verändert werden. Dazu zählen beispielsweise die Position, die Spieler-Id und der Skriptname. Insbesondere das Setzen eines Skriptnamens ist dabei von Bedeutung. | ||
+ | |||
+ | {{ scripting: | ||
+ | |||
+ | Der Selektions-Explorer bietet außerdem die Möglichkeit, | ||
+ | |||
+ | Weiterhin kann im Selektions-Explorer ein // | ||
+ | |||
+ | ====Exkurs: Entity-Id vs Skriptname==== | ||
+ | |||
+ | Mit der Entity-Id wird eine Entity eindeutig identifiziert. Sie wird im Selektionsexplorer und bei den Entity Properties angezeigt. Jede Entity auf der Karte hat eine einzigartige Entity-Id und die Entity-Id ist später im Skript die **einzige** Möglichkeit, | ||
+ | |||
+ | Um im Skript nicht mit wenig aussagekräftigen Zahlen hantieren zu müssen, kann jeder Entity ein Skriptname zugewiesen werden. Viele Funktionen, die wir später vorstellen, können mit Skriptnamen arbeiten. Aber auch diese Funktionen ermitteln intern zuerst die Entity-Id, die zur Entity mit dem angegebenen Skriptnamen gehört. Damit die Zuweisung einer Entity-Id zu einem Namen immer funktioniert, | ||
+ | |||
+ | Ein weiterer Vorteil von Skriptnamen ist, dass sie unverändert bleiben und eine Entity auch nach bestimmten Aktionen eindeutig identifizierbar lassen. Beispielsweise ändert sich die Entity-Id, wenn du eine Entity einem anderen Spieler zuweist. Ihr Skriptname bleibt allerdings gleich. | ||
+ | |||
+ | Umgekehrt können per Skript Entities auf der Karte gesucht werden, zum Beispiel alle Türme in einem gewissen Gebiet. Auch in solchen Fällen wird **immer** mit Entity-Ids gearbeitet, niemals mit Skriptnamen - alle gefundenen Entities werden über deren Id angegeben. | ||
+ | |||
+ | Der Unterschied zwischen Entity-Id und Skriptname ist wichtig, um zu verstehen, in welchen Fällen sie jeweils gebraucht werden (können). Skriptnamen erleichtern lediglich die Bedienung; intern läuft alles über Ids. | ||
+ | |||
+ | **Achtung**: | ||
+ | |||
+ | =====Rohstoffe setzen===== | ||
+ | |||
+ | Rohstoffschächte werden mit einem separaten Tool (Shortcut Ctrl+9) platziert. Das liegt daran, dass neben dem Schacht auch passende Texturen platziert werden und die Höhenlevel automatisch so gesetzt, dass der Schacht gut in der Landschaft sitzt. | ||
+ | |||
+ | Jeden Rohstoffschacht gibt es in zwei Varianten: Normal und verschüttet (closed). Verschüttete Schächte sollten logischerweise nur auf Karten vorkommen, in denen Pilgrim zur Verfügung steht. Im Daten-Explorer kann der gewünschte Schacht gewählt und im Viewport mit einem Linksklick platziert werden. | ||
+ | |||
+ | **Achtung**: | ||
+ | |||
+ | ---- | ||
+ | |||
+ | =====Umsetzung der Beispielkarte: | ||
+ | |||
+ | Um die Gestaltung der Karte abzuschließen, | ||
+ | |||
+ | **Hinweis**: | ||
+ | |||
+ | ---- | ||
+ | |||
+ | Wir setzen zuerst die Rohstoffschächte, | ||
+ | |||
+ | Wenn der Schacht nicht auf komplett planem Untergrund platziert wird, muss nachgearbeitet werden. Das heißt, dass Kanten geglättet und an den Rändern Höhen angepasst werden müssen, damit der Schacht natürlich in der Umgebung liegt. Der Rohstoff-Brush setzt automatisch passende Texturtypen. Diese sollten in die Landschaft integriert werden. Versuche, passende Texturen zu finden und einen Übergang zwischen Schacht und Umgebung zu gestalten. Beispielsweise passt zum Lehmschacht dunkle Erde, die wiederum gut zu dunklem Gras oder heller Erde passt. Die Standardtextur um den Schacht komplett zu ersetzen sieht sehr unnatürlich aus. Ein Schwefelschacht sollte nicht komplett in der grünen Wiese liegen, sondern seiner sandigen Textur entsprechend. | ||
+ | |||
+ | Speziell Steinbrüche erfordern etwas Geduld, da deren " | ||
+ | |||
+ | {{ scripting: | ||
+ | |||
+ | Abhängig davon, auf welcher Höhe du Schächte platzierst, kann es passieren, dass sie zum Teil mit Wasser gefüllt sind. Mit dem Wasserhöhen-Tool (Crtl + 8) und aktivierter " | ||
+ | |||
+ | {{ scripting: | ||
+ | |||
+ | Nach den Schächten setzen wir außerdem noch die Siedlungsplätze ('' | ||
+ | |||
+ | **Hinweis**: | ||
+ | |||
+ | **Achtung**: | ||
+ | |||
+ | Anschließend geben wir beiden Spielern ein Haupthaus und dem Computerspieler außerdem noch eine fertige Stadt. Siedler 5 verfügt standardmäßig über keine selbstständig aufbauende KI, sodass allen Computerspielern ihre Siedlung fertig platziert werden muss. In den KI-Tutorials in [[ scripting: | ||
+ | |||
+ | Damit die KI später Armeen rekrutieren kann, braucht sie Militärgebäude. Um die Siedlung etwas zu beleben, setzen wir außerdem einige Stadtzentren und Wirtschaftsgebäude. Einige wenige Türme zur Verteidigung machen das ganze wehrhaft. \\ | ||
+ | Auch was Türme betrifft: Der Drang, sehr viele davon zu setzen, wird in der Regel damit bekämpft, dagegen mal zu spielen. Kämpfen wird durch zu viele gegnerische Türme zu einer zähen Fleißarbeit. Sie sollten deshalb mit Bedacht eingesetzt werden. | ||
+ | |||
+ | **Wichtig**: | ||
+ | |||
+ | Nachdem alle Gebäude und Rohstoffschächte auf der Karte sind, sieht unser Beispiel so aus: | ||
+ | |||
+ | {{ scripting: | ||
+ | |||
+ | Wir fahren mit Bäumen fort, da sie ebenfalls Rohstoffe liefern und ihnen deshalb genug Platz auf der Map eingeräumt werden muss. Im Werkzeug-Container setzen wir Häkchen bei // | ||
+ | |||
+ | **Tipp**: Sehr wahrscheinlich wird dir bei diesem Schritt noch die ein oder andere Stelle auf der Karte auffallen, die nicht richtig geglättet ist oder eine Nachbearbeitung mit dem Texturtool erfordert. Dafür ist es nie zu spät; bei jedem Arbeitsschritt besteht die Gelegenheit, | ||
+ | |||
+ | Achte insbesondere bei Bäumen darauf, dass sie alle einen gewissen Abstand zueinander haben. Bäume, die zu nah ineinander stehen, sehen unnatürlich aus. Gleichzeitig sollten nicht alle Bäume den genau gleichen Abstand zueinander haben, da das ebenfalls nicht realitätsnah wirkt. | ||
+ | |||
+ | **Achtung**: | ||
+ | |||
+ | {{ scripting: | ||
+ | |||
+ | Wie beim Texturieren gilt auch hier, nicht alles nach dem gleichen Schema zu bearbeiten. Erlaube deinem Design zu variieren, sodass nicht jeder Teil der Karte gleich aussieht. | ||
+ | |||
+ | Ebenfalls solltest du beachten, dass die gesetzten Objekte die Landschaft **ergänzen** und nicht für sich stehen. Das bedeutet, dass Wälder nicht hauptsächlich auf sandigen oder felsigen Boden gehören. Hier und da können Ausnahmen das Design aufwerten - im Allgemeinen sollte die Landschaft aber logisch bleiben. | ||
+ | |||
+ | Oft ist es sinnvoll, in die Nähe von Rohstoffschächten oder an anderen Orten, an denen es Sinn ergibt, kleine Rohstoffhaufen zu setzen (z.B. '' | ||
+ | |||
+ | Als nächstes bleibt die Karte mit Deko-Entities zu schmücken. Dazu wählen wir beispielsweise '' | ||
+ | |||
+ | {{ scripting: | ||
+ | |||
+ | **Wichtig**: | ||
+ | |||
+ | Im Bereich um den Lehmschacht im Westen setzen wir wenig Wald und viele Gräser, um den trockenen Boden zu unterstreichen. | ||
+ | |||
+ | {{ scripting: | ||
+ | |||
+ | **Hinweis**: | ||
+ | |||
+ | Gebiete, die ohnehin durch Felstexturen oder steiles Terrain blockiert werden, können wir ohne Bauplatzverlust mit Felsen bedecken. Dazu müssen wir beim Platzieren die **B**-Taste gedrückt halten. | ||
+ | |||
+ | {{ scripting: | ||
+ | |||
+ | Im letzten Schritt kannst du dir für bestimmte Orte auf der Karte besondere Designs überlegen, sogenannte Blockfänger. Wasserfälle, | ||
+ | |||
+ | {{ scripting: | ||
+ | |||
+ | Weil der Spieler ohne Dorfzentrum und Leibeigene nicht starten kann, stellen wir ihm einige der letzteren zur Verfügung. Außerdem soll er diverse Helden erhalten, die wir um ein Lagerfeuer herum anordnen. | ||
+ | |||
+ | {{ scripting: | ||
+ | |||
+ | **Tipp**: Die Leibeigenen wurden mit aktiviertem //Am Raster ausrichten// | ||
+ | |||
+ | Der weiße Kasten auf dem Lagerfeuer ist ein '' | ||
+ | |||
+ | Damit im Skript außerdem Sieg und Niederlage festgestellt werden können, geben wir den Haupthäusern der beiden Spieler die namen '' | ||
+ | |||
+ | {{ scripting: | ||
+ | |||
+ | Die komplette Beispielkarte sieht damit so aus: | ||
+ | |||
+ | {{ scripting: | ||
+ | |||
+ | \\ | ||
+ | |||
+ | ===Ambient Sounds=== | ||
+ | |||
+ | Noch sind wir nicht fertig! In einem letzten Schritt, der leider oft vergessen wird, platzieren wir Umgebungsgeräusche/ | ||
+ | |||
+ | Im // | ||
+ | |||
+ | Mit einem Doppelklick auf ein '' | ||
+ | |||
+ | Auf der Beispielkarte setzen wir einige Sounds für Wald, Berge und den Fluss.\\ | ||
+ | **Hinweis**: | ||
+ | |||
+ | **Tipp**: Beispielsweise bei Flüssen passiert es oft, dass Ambient Sounds unter dem Terrain verschwinden. Wenn du unter // | ||
+ | |||
+ | \\ | ||
+ | |||
+ | ===Cleanup=== | ||
+ | |||
+ | Zum Schluss solltest du erneut überprüfen, | ||
+ | |||
+ | ---- | ||
+ | |||
+ | Die Gestaltung der Beispielkarte ist komplett. Im nächsten Abschnitt führen wir die wichtigsten Aspekte der Lua-Programmierung ein, um in den folgenden Abschnitten einen Kartenablauf gemäß unseres Plans zu skripten. | ||
+ | [[ scripting: | ||
+ | [[ scripting: | ||
+ | [[ scripting: |
scripting/tutorials/level1/place_entities.1688995666.txt.gz · Zuletzt geändert: 2023/07/10 13:27 von fritz_98