Hallo zusammen! Wir freuen uns wieder einige neue Modding-Features ankündigen zu können, die mit der Parklife-Erweiterung erscheinen und alle Teil des kostenlosen Updates sein werden.
Objekt-Editor
Sub-Meshes
Einige integrierte Gebäude und Fahrzeuge verwenden bereits sogenannte Sub-Meshes, um ihr Aussehen während des Spiels zu verändern. Sub-Meshes sind zusätzliche 3D-Modelle, die unter bestimmten Bedingungen (de-)aktiviert werden. Um einige Beispiele zu nennen: Vielleicht ist euch aufgefallen, dass eure Mülldeponie zwischen mehreren Müllbergmodellen wechselt, wenn sich das Gebäude füllt, und viele Dienstleistungsfahrzeuge verwenden bei Linksverkehr ein gespiegeltes Modell. Wir haben das Sub-Mesh-System jetzt im Objekt-Editor freigeschaltet.
Das Editor-Fenster enthält nun bei der Bearbeitung von Gebäuden und Fahrzeugen ein neues, ausklappbares Menü für Sub-Meshes. Klickt einfach auf die Schaltfläche "Add New" [todo], wählt euer eigenes Modell aus dem Import-Menü, passt Position und Rotation an, legt in den Dropdown-Menüs "Required Conditions" und "Forbidden Conditions" fest, wann das Sub-Mesh angezeigt oder ausgeblendet werden soll, und schon seid ihr startklar. Ihr könnt das Sub-Mesh im Editor mit dem "Toggle Preview"-Button ein- und ausschalten, um eine Vorstellung davon zu bekommen, wie sich euer Objekt verhält, wenn ihr es endlich auf eure Stadt loslasst.
Um euch eine Vorstellung davon zu geben, wie die Bedingungen funktionieren, lasst uns mal schauen, wie die Mülldeponie aufgebaut ist. Zuerst importieren wir das Objekt mit eingeschaltetem "Bestehende Requisiten & Dekorationen laden", damit die Sub-Meshes erhalten bleiben. Der Übersichtlichkeit halber schalten wir nun alle Vorschauen für Sub-Meshes aus.
Das Haupt-Mesh der Mülldeponie besteht nur aus den Zäunen ringsherum. Insgesamt gibt es drei Sub-Meshes mit unterschiedlich hohen Müllbergen, welche die Bedingungen "First Half Filled" und "Second Half Filled" verwenden, die nur für bestimmte Gebäudetypen wie Mülldeponie und Friedhof gelten. Beim ersten Sub-Mesh sind beide Bedingungen als "Forbidden Conditions" festgelegt, d.h. wenn irgendeine dieser Bedingungen erfüllt ist, wird das Sub-Mesh ausgeschaltet. Beim zweiten Sub-Mesh ist die Einstellung "Required Conditions" auf "First Half Filled" gesetzt und "Forbidden Conditions" auf "Second Half Filled", und beim dritten müssen beide Bedingungen erfüllt sein. Schlussendlich wird immer genau eines dieser Sub-Meshes gerendert.
Es gibt eine Menge an verfügbaren Bedingungen, einige davon nur für bestimmte Gebäudearten, wie z.B. "Abandoned" ("Verlassen") für Zonengebäude. Einige allgemeine Bedingungen wie "Active" sind für alle Gebäudearten verfügbar, die ihr beispielsweise so einstellen könnt, dass das Sub-Mesh nur dann gerendert wird, wenn das Gebäude ausgeschaltet ist. Fahrzeuge haben ihre eigenen Bedingungen, mit denen ihr auch festlegen könnt, wann das Haupt-Mesh ausgeblendet werden soll.
Scripting API
Wir haben auch zwei neue Schnittstellen fürs Scripten zu ICities.dll hinzugefügt. Diese sind hauptsächlich für erfahrene Modder gedacht, jedoch könnte die Cinematic Camera API auch für diejenigen interessant sein, die mit Scripting experimentieren wollen. Die API-Referenz und Dokumentation wird später im Community-Wiki verfügbar sein, sobald Parklife veröffentlicht wird.
Asset Data API
Die neue Asset Data API ermöglicht es fortgeschrittenen Objekt-Erstellern und Moddern, eigene Daten direkt in ihre eigenen Objekt-Pakete zu speichern und eine Rückmeldung mit diesen Daten zu erhalten, wenn das Objekt geladen wird. Diese Funktion wurde gewünscht, um komplexere Objekte leichter einstellen zu können und sollte den Bedarf an externen Xml-Dumps und Detour/Harmonie-Hooks beim Laden von Objekten verringern.
Die selbsterstellten Daten werden als Byte-Arrays in einem Wörterbuch gespeichert. Dabei werden String-Keys verwendet, um die Daten zu organisieren. Beim Speichern eines Objekts ruft das Spiel die OnAssetSaved-Methode in eurer IAssetDataExtension-Implementierung auf. Die Parameter enthalten den Namen des gespeicherten Objekts, das Prefab des eigentlichen Objekts als gepacktes Objekt (welches ihr in den spielinternen Typ umwandeln könnt, falls ihr zusätzliche Dinge damit anstellen wollt) und das Daten-Wörterbuch als Ausgabeparameter. Ebenso wird OnAssetLoaded beim Laden aller selbsterstellten Objekte aufgerufen. Beachtet, dass diese nur für das Haupt-Objekt aufgerufen werden, damit z.B. erhöhte Straßen oder Prop-Variations, die im selben Paket verpackt werden, nicht zusätzlich aufgerufen werden.
Cinematic Camera API
Die Cinematic Camera API bietet eine zuverlässige und bequeme Möglichkeit, schöne Kamerafahrten eurer Stadt zu skripten, vielleicht für ein Vorführungsvideo oder einfach, um eure Kreation zu bewundern. Eine neue Schaltfläche wurde neben der vorhandenen Schaltfläche Freilaufende Kamera hinzugefügt, um selbsterstellte Kameraskripte zu aktivieren, zusammen mit einer integrierten Filmkamera, die zufällig Einwohner, Verkehr oder Gebäude in eurer Stadt präsentiert.
Das API bietet einige Low-Level-Steuerelemente wie Drehen und Bewegen der Kamera, Ein- und Ausblenden und Blendenwechsel, um die Tiefenschärfe zu steuern, sowie Hilfen, um Einwohner, Gebäude, Fahrzeuge usw. mit bestimmten Parametern in eurer Stadt zu finden. Das Kamerasystem verwendet Unity Coroutine -style Scripting, das besonders für diese Art von Frame-to-Frame-Aufgaben geeignet ist und es euch ermöglicht, euer Kameraskript in mehrere Sequenzen aufzuteilen, diese Sequenzen von anderen starten zu lassen und einige Sequenzen anzuhalten, während sie darauf warten, dass andere enden.
Wenn ein Spieler die Filmkamera aus dem Spielmenü auswählt und aktiviert, startet das Spiel die OnStart Coroutine in eurer ICameraExtension-Implementierung. Das an OnStart übergebene ICamera-Handle enthält alle Kamerasteuerungsmethoden und ICameraExtensionBase verpackt diese Methoden für zusätzlichen Komfort auch in der Basisklasse. Wenn das Skript die Steuerung der Kamera für ein Bild beendet hat, verwendet einfach eine Yield-Anweisung, um auf das nächste Bild zu warten, und das Skript wird dann dort weitermachen, wo ihr aufgehört habt.
Cinematic Cameras werden wie alle anderen Mods erstellt, aber die Implementierung der ICameraExtension oder ICameraExtensionBase führt dazu, dass die Mod in der Inhaltsverwaltung und im Steam-Workshop unter Cinematic Camera Scripts aufgelistet wird. Da es sich um skriptgesteuerte Assemblies handelt, gelten für Cinematic Camera-Scripte dieselben Sicherheitsvorkehrungen wie für alle anderen Mods, und das Aktivieren jeglicher Kameraskripte deaktiviert die Errungenschaften.
Menüfilterung
Wir haben einen echten Leckerbissen für alle Spieler, unabhängig davon, ob ihr Parklife kauft oder nicht, kommt jeder in den Genuss der Menüfilterfunktion. Wie einige vielleicht bemerkt haben, sind mit all den zusätzlichen Inhalten aus den zuvor veröffentlichten Erweiterungen einige der Menüs im Spiel und im Editor etwas überfüllt. Anstatt es einfach so zu lassen, haben wir eine Menüfilterung eingebaut, damit das Durchsuchen der Menüs nicht mehr so lange dauert wie früher. Menüfilterung ist eine neue Funktion, die den Spielern hilft, die Objekte in den Menüs zu filtern und das Durchsuchen der Menüs erleichtert.
Also, lasst uns schnell die grundlegenden Funktionen durchgehen:
- In jedem der Menüs im Spiel und im Editor, in denen Filter verfügbar sind, erscheinen die Filter als kleine Schaltflächen beim Menü.
- Wenn ein Menü mehrere Reiter hat, werden die Filter im jeweiligen Reiter festgelegt.
- Durch Anklicken (linke Maustaste) der Filterschaltfläche aktiviert der Spieler den Filter und das Menü zeigt nur Elemente an, die die vom Filter vorgegebenen Bedingungen erfüllen.
- Wenn mehrere Filter ausgewählt werden, müssen alle Bedingungen der Filter erfüllt sein, wodurch die Auswahl der im Menü verfügbaren Objekte eingeschränkt wird.
- Die Filter können durch erneutes Anklicken deaktiviert werden.
Es gibt viele verschiedene Arten von Filtern, einige Menüs können mehr und andere weniger Filter zur Auswahl haben. Ein paar der Menüfilter, die ihr vorfinden werdet, sind "Kleine Gebäude", "Große Gebäude" und "Netzstrukturen". Der Filter Netzstrukturen zeigt euch alle Straßen, Wege, Wasser- und Stromleitungen.
Der Objekt-Editor ist ein Sonderfall, es wird ein Suchfeld anstelle von Filterschaltflächen geben, welches ähnlich der Suchfunktion der Inhaltsverwaltung funktionieren wird. Ich begrüße diese Änderung mit offenen Armen. Das Finden von Objekten wird so viel einfacher.
Werfen wir einen Blick auf alle kleinen Gebäude im Park-Menü.
Tschüss,
die Entwickler von Cities: Skylines
Quelle: https://forum.paradoxplaza.com…d-menu-filtering.1098504/
Hello everyone! We are again happy to announce some new modding features coming up alongside with Park Life expansion, all of which will be part of the free update.
Asset editor
Sub-meshes
Certain built-in buildings and vehicles have already made use of something called sub-meshes to change their look during the game. Sub-meshes are additional 3D-models with some simple conditions on when to switch them on and off. To give a few examples, you might have seen your friendly neighborhood Landfill Site switching between multiple trash pile models as the building fills up, and many service vehicles using a mirrored model in left-hand traffic. We have now exposed the sub-mesh system in asset editor.
The editor panel now contains a new collapsible menu for sub-meshes when editing buildings and vehicles. Simply click the “Add New” button, select your custom model from the importer menu, tweak its position and rotation, set up any conditions on when to show or hide the sub-mesh in the “Required Conditions” and “Forbidden Conditions” drop-down menus, and you’re ready to go. You can switch the sub-mesh on and off in editor with “Toggle Preview”-button to get some idea on how your asset acts when you finally let it loose in your city.
To give you some idea about how the conditions work let’s take a look at how the Landfill Site is set up. First we’ll import the asset with “Load existing props & decorations” switched on so as not to discard the sub-meshes. Now for clarity let’s switch off all sub-mesh previews.
The main mesh of the Landfill Site only consists of the surrounding fences. There are in total three sub-meshes with trash piles of varying heights, making use of the “First Half Filled” and “Second Half Filled” conditions only available to certain building types such as Landfill Site and Cemetery. The first sub-mesh has both of these conditions set as “forbidden conditions”, meaning that if any of these conditions is met, the sub-mesh will be toggled off. The second sub-mesh has “First Half Filled” set as required, and “Second Half Filled” as a forbidden condition, and the third one requires both conditions to be met. In the end exactly one of these sub-meshes will always be rendered.
There are multitude of conditions available, some of them only for some building types such as “Abandoned” condition for zoned buildings. Some general conditions such as “Active” are available for all building types, which you can for example set as forbidden to only have the sub-mesh rendered when the building is turned off. Vehicles have their own set of conditions, and also let you specify conditions on when to hide the main mesh.
Scripting API
We have also added two new scripting interfaces to ICities.dll. These are mainly targeted to more experienced modders, but Cinematic Camera API might be interesting to those wanting to experiment with scripting. The API reference and documentation will become available later in community wiki once Parklife is released.
Asset Data API
The new Asset Data API will enable more advanced asset creators and modders to save custom data straight into their custom asset packages and receive a callback with that data when the asset is loaded. This feature has been requested to ease up custom setup of more complex assets, and should mitigate some needs for external xml-dumps and detour/harmony -hooks on asset loading.
The custom data is saved as byte-arrays into a dictionary using string keys to organize the data. When saving an asset, the game will call OnAssetSaved method in your IAssetDataExtension implementation. The parameters contain the name of the saved asset, the actual asset prefab as a boxed object (which you can cast to game’s internal type in case you need to handle some additional magic), and the data-dictionary as an out-parameter. Similarly OnAssetLoaded will be called for all custom assets when they are loaded. Note that these are called only for the main asset, so for example road elevations or prop variations that get packed in the same package don’t receive additional calls.
Cinematic Camera API
The Cinematic Camera API provides a reliable and convenient way to script beautiful camera sequences of your city, maybe for a showcase video or just to marvel at your creation. A new button has been added next to the existing Free Camera button to activate any custom cinematic camera scripts, along with a built-in cinematic camera to randomly showcase citizens, traffic or buildings in your city.
The API offers some low level controls such as rotating and moving the camera, fading to/from black and changing the camera aperture to control the depth of field, as well as helpers to find citizens, buildings, vehicles etc. with certain parameters in your city. The camera system utilizes Unity coroutine -style scripting which is especially suitable for this kind of frame-to-frame work and lets you easily break your camera script into multiple sequences, start those sequences from others and halt some sequences while waiting for others to finish.
When a player selects the cinematic camera from the in-game menu and activates it, the game will start the OnStart coroutine in your ICameraExtension implementation. The ICamera handle passed to OnStart will contains all the camera control methods, and ICameraExtensionBase also wraps these methods in the base class for some added convenience. When the script has finished controlling the camera for a frame, just use a yield instruction to wait for next frame and the script will keep then take on from where you left.
Cinematic cameras are created much like any other mods, but implementing the ICameraExtension or ICameraExtensionBase will cause the mod to be listed under Cinematic camera scripts tab in content manager and Steam workshop. Due to being scripted assemblies, same security precautions apply to cinematic camera scripts as with any other mods, and enabling any camera scripts will disable achievements.
Menu Filtering
We have a real treat for all players, regardless whether you buy or don't Parklife we have included the Menu Filtering feature for everyone to enjoy. As some may have noticed that with all the additional content from the previously published expansions, some of the in-game and editor menus have become somewhat crowded. Instead of just leaving it be, we made Menu Filtering so the browsing of the menus isn't as slow as it used to be. Menu Filtering is a new feature that will help players to filter down the objects in the menus and make menu browsing easier.
So, lets go over the basic functionality real quick:
- Each of the in-game and editor menus that has filters available will have the filters as small buttons next to the menu.
- If a menu has multiple tabs, the filters are determined per tab.
- By clicking (primary mouse button) the filter button the player activates the filter and the menu will show only items that fulfill the conditions specified by the filter.
- When multiple filters are chosen, all of the filters' conditions must be met, thus narrowing down the range of available menu objects.
- The filters can be deactivated by clicking them again.
There are plenty of different kind of filters, some menus can have more and some can have less filters to choose from. Couple of the menu filters that players will find are "Small Buildings", "Large Buildings" and "Net Structures". Net Structure filter shows you all roads, paths, water pipers and power lines.
The Asset Editor is a special case, there will be a search box instead of filter buttons and will function similarly to Content Managers search feature, I welcome this change with big open arms, finding those assets just got so much easier.
Let's take a look at all the Small Buildings in City Park menu.
Cheers,
Cities: Skylines developers