Beide Seiten, vorherige ÜberarbeitungVorherige ÜberarbeitungNächste Überarbeitung | Vorherige Überarbeitung |
scripting:tutorials:level1:place_entities [2023/09/18 09:26] – fritz_98 | scripting:tutorials:level1:place_entities [2024/05/13 13:38] (aktuell) – [Objekte selektieren] fritz_98 |
---|
| Backspace | Selektiere Entities löschen | | | 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://www.siedler-maps.de/downloads.php?action=download&downloadid=47 |TinyScript]] und der Community-Version des Editors (FIXME Link einfügen) ist dieser Fehler behoben. | ***** 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://www.siedler-maps.de/downloads.php?action=download&downloadid=47 |TinyScript]] und der [[ scripting:tutorials:community_tools |Community-Version des Editors]] ist dieser Fehler behoben. |
| |
====Der Selektions-Explorer==== | ====Der Selektions-Explorer==== |
| |
**Hinweis**: Alle hier behandelten Schritte der Beispielkarte können {{ scripting:tutorials:level1:place_entities:entityplacementexample.zip |hier}} einzeln heruntergeladen werden. | **Hinweis**: Alle hier behandelten Schritte der Beispielkarte können {{ scripting:tutorials:level1:place_entities:entityplacementexample.zip |hier}} einzeln heruntergeladen werden. |
FIXME letzte Version nochmal hochladen, Ambients fehlen! | |
| |
---- | ---- |
| |
{{ scripting:tutorials:level1:place_entities:doodads5.jpg }} | {{ scripting:tutorials:level1:place_entities:doodads5.jpg }} |
| |
| 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:tutorials:level1:place_entities:doodads6.jpg }} |
| |
| **Tipp**: Die Leibeigenen wurden mit aktiviertem //Am Raster ausrichten// im //Helfer//-Tab gesetzt. Ist diese Option aktiv, werden alle Entities genau auf den Rasterpunkten mit einer Rotation in 90°-Schritten platziert. |
| |
| Der weiße Kasten auf dem Lagerfeuer ist ein ''XD_ScriptEntity'' (zu finden unter //Misc//). Diese Entities sind im Spiel unsichtbar und werden dafür benutzt, Positionen auf der Karte zu markieren und im Skript nutzbar zu machen. Dafür sollten sie immer einen Skriptnamen erhalten. Ein ''ScriptEntity'' ohne Namen ist nicht sinnvoll. Unser ''ScriptEntity'' nennen wir ''PositionCampfire'' und benutzen es später im Skript, um die Kamera auf diese Position zu bewegen. |
| |
| Damit im Skript außerdem Sieg und Niederlage festgestellt werden können, geben wir den Haupthäusern der beiden Spieler die namen ''Player1'' und ''Player2''. |
| |
| {{ scripting:tutorials:level1:place_entities:properties.jpg }} |
| |
| Die komplette Beispielkarte sieht damit so aus: |
| |
| {{ scripting:tutorials:level1:place_entities:step9.jpg }} |
| |
| \\ |
| |
| ===Ambient Sounds=== |
| |
| Noch sind wir nicht fertig! In einem letzten Schritt, der leider oft vergessen wird, platzieren wir Umgebungsgeräusche/**Ambient Sounds** auf der Karte. Die sorgen im Spiel dafür, dass in Wäldern Vogelzwitschern und auf Bergen heulender Wind zu hören ist. |
| |
| Im //Misc//-Ordner im Daten-Explorer findet sich dazu ''XS_Ambient''. Das platzieren wir in die Mitte der Umgebung, in der Geräusche zu hören sein sollen. Weil diese Entities manchmal schwierig zu selektieren sein können, stellen wir im Selektionsexplorer den Selektionsfilter auf //Skripte//. So können wir mit dem Auswahlrahmen ausschließlich ''XS_Ambient''-Entities in einem Bereich selektieren. |
| |
| Mit einem Doppelklick auf ein ''XS_Ambient'' im Selektions-Explorer öffnen sich die Entitätseigenschaften, wo wir für den Ambient Sound den Typ und den Radius festlegen können. Mit dem Radius wirst du experimentieren müssen. Ein Typ muss allerdings **immer** gesetzt werden! Der Name des Typs lässt auf den Sound im Spiel schließen, auch dafür bietet sich Experimentieren an. |
| |
| Auf der Beispielkarte setzen wir einige Sounds für Wald, Berge und den Fluss.\\ |
| **Hinweis**: Einige der Umgebungssounds sind deutlich lauter als andere, wie z.B. ''WindMountain''. Für diese Sounds solltest du die Lautstärke (//Volume// in den Entitätseigenschaften) herabsetzen, um dem Spieler nicht zu nerven. Für den Wind haben wir die Lautstärke 30 gewählt. Welche Lautstärken für andere Sounds gut passen, solltest du beim Spielen ausprobieren. |
| |
| **Tipp**: Beispielsweise bei Flüssen passiert es oft, dass Ambient Sounds unter dem Terrain verschwinden. Wenn du unter //Ansicht//->//Terrain// das Terrain ausblendest, werden sie wieder sichtbar. |
| |
| \\ |
| |
| ===Cleanup=== |
| |
| Zum Schluss solltest du erneut überprüfen, ob die gesamte Karte korrekt funktioniert. Sind alle Rohstoffe und Gegner, die zu Beginn zugängig sein sollen, auch wirklich zugängig? Sind keine Ressourcenschächte oder -Haufen durch Terrain oder Felsen blockiert? Sind alle Bäume innerhalb der Kartengrenzen? Fallen noch Fehler aus den vorigen Schritten auf? Vor dem Testen der Karte sollten möglichst viele dieser Fehler auffallen, um unnötige Testiterationen zu vermeiden. |
| |
| ---- |
| |
| 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:tutorials:level1:terrain_textures |Voriges Kapitel: Texturen setzen]] \\ |
| [[ scripting:tutorials:level1:place_entities |Zurück nach oben]] \\ |
| [[ scripting:tutorials#grundlagen_lua-programmierung|Zurück zur Übersicht]] |