Tutorial Verkehrswege über Tunnelportalen - UPDATE

toja

Member
SimForum BAT Team
Registriert
Oktober 2008
Das Problem: Normalerweise lassen sich Verkehrsnetzwerke gar nicht oder wenn, dann nur äußerst mühsam über Tunnelportalen platzieren.

Die Lösung: Wenn man einmal verstanden hat, wie es geht, ist es mit relativ geringem Aufwand möglich, die NHP Hole Digger and Raiser Lots von Shadow Assassin bzw. die Hole Digging Lots von smoncrie so zu modifizieren, dass sie den Höhen der verschiedenen Tunnelportale entsprechen.





Hinweis: Um das Tutorial nachzuvollziehen brauchst du

  • die Digger- bzw. Raiser-Lots (im Folgenden: DRLs) deiner Wahl,



TEIL I - Wie man Hole Digger-/ Raiser-Lots modifiziert

Guckt man in den Ordner, in denen die DRLs gespeichert sind, finden sich eine Reihe von Dateien, nämlich für jeden DRL genau eine. Jede dieser Dateien folgt im Prinzip dem gleichen Aufbau, für das weitere Verständnis ist es jedoch sinnvoll, zunächst denjenigen Lot mit dem ExemplarEditor des SC4Tools bzw. dem Reader zu öffnen, der den Boden um 15m anhebt:

Ground_lifter.SC4Lot (smoncrie)
15m Raiser... (ShadowAssassin)

Im exemplar-file für die LotConfigurations findet man den Eintrag LotConfigPropertyLotObject und dort als fünften Wert 0x000F0000. Gefunden? So sollte es im ExemplarEditor des SC4Tools bzw. Reader jetzt aussehen:




Die 0x am Anfang zeigt lediglich an, dass es sich um einen Wert in hexadezimaler Schreibweise handelt – F im Hexadezimalsystem entspricht der 15 im Dezimalsystem. Sieht ganz so aus, als sind wir auf der richtigen Spur!

Fragt sich nur, warum die Ziffer 0xF = 15 da so verloren in der Mitte steht. Ganz einfach: die letzten vier Ziffern entsprechen den Nachkommastellen einer Dezimalzahl, nur sind die Nachkommastellen im Hexadezimalsystem keine Zehntel, Hundertstel usw. sondern 16tel, 256stel usw.

Beispiel 1:
Einen Lot, der den Boden um 10,25m anhebt, erstellt man wie folgt:

Die 10 im Dezimalsystem entspricht der Ziffer 0xA im Hexadezimalsystem; daraus folgt für eine Bodenanhebung von 10m: 0x000A0000.

Da 1/16 = 0,0625 und 4/16 = 0,25 folgt für eine Bodenanhebung von 10,25m: 0x000A4000.



Und wie geht das mit dem Absenken? Hier wird’s leider etwas komplizierter...

Zunächst wie oben beschrieben denjenigen Lot öffnen, der den Boden um 15m absenkt. Im entsprechenden LotConfigPropertyLotObject-Eintrag findet sich jetzt der Wert 0xFFF10000 :confused:

Um zu verstehen, wie es zu diesem Wert kommt, kann man sich folgende Frage stellen: Wie definiert man negative Zahlen ohne dabei ein Minuszeichen zu verwenden? Antwort: Indem man einfach einen für den Anwendungszweck ausreichend großen Wert als 0 definiert. Hört sich verrückt an, oder? Ich will versuchen das an einem Beispiel zu veranschaulichen.

Stellen wir uns vor, wie definieren 10000 als unsere 0. Daraus ergibt sich:

10002 = 2
10001 = 1
10000 = 0
9999 = -1
9998 = -2
usw.

Für unseren Anwendungszweck können wir uns nun aber getrost mit 4 Ziffern zufrieden geben, schließlich würde kein vernünftiger Mensch auf die Idee kommen, sein Terrain um mehrere tausend Meter zu erhöhen oder zu senken!

Übersetzt man diese Überlegungen ins Hexadezimalsystem ergibt sich dann:

0x0002 = 2
0x0001 = 1
0x0000 = 0
0xFFFF = -1
0xFFFE = -2
...
0xFFF5= -11
....
0xFFF1 = -15

Soweit so gut, allerdings hat diese Methode zudem den kleinen Nebeneffekt, das sich jetzt auch die Nachkommastellen etwas anders verhalten, als wir es normalerweise gewohnt sind, diese werden nämlich genauso wie bei den positiven Werten zu der Zahl, die mit den ersten vier Ziffern abgebildet wird ADDIERT!

Beispiel 2:
Für einen Lot, der den Boden um 10,25m absenken soll, orientiert man sich daher zunächst einmal an der nächsthöheren Ganzzahl, also 11, daraus folgt:

0xFFF50000 für einen Lot, der sich mit -11m auswirkt, da 0x10-0xB = 0x5.

Um nun auf -10,25 zu kommen, muss man jetzt noch 0,75 = 3/4 = 12/16 addieren; da der Zahl 12 im Hexadezimalsystem die Ziffer 0xC entspricht ergibt sich:

0xFFF5C000 für einen Lot, der das Terrain um 10,25m absenkt, hurra!


Teil II – Wie man Netzwerke über Tunnelportalen platziert

Mit der Methode, die im ersten Teil des Tutorials vorgestellt wurde, sollte es jetzt eigentlich kein Problem mehr sein, die Terrainhöhe an Tunnelportale anzupassen. Noch mal zur Erinnerung: Entscheidend für die Funktionsweise der DRLs ist der fünfte Wert beim Eintrag LotConfigPropertyLotObject im exemplar-file für die LotConfigurations. Dieser 8-stellige Hexadezimalwert kann entweder mit dem Exemplar-Editor des SCTools oder alternativ mit dem Reader von ilive anhand nachfolgender Übersicht verändert werden.

Code:
                     Bodenanheber   Lochgräber
Land-/Einbahnstraße:   0x000DCD00   0xFFF23300
Allee:                 0x00078200   0xFFF87E00
Autobahn:              0x000B4200   0xFFF4BE00
Erhöhte Autobahn:      0x00178200   0xFFE87E00
Eisenbahn:             0x00074200   0xFFF8BE00
Monorail:              0x00166800   0xFFE99800
Eisenbahnviadukt:      0x000F8000   0xFFF08000
Straßenüberführung:    0x000F0000   0xFFF10000


Beispiel: Autobahntunnel


Lot entsprechend modifizieren (hier: 0x000B4200), Gelände vorbereiten und Tunnel ziehen



Auf einer Seite lässt sich jetzt ein Netzwerk ziehen, auf der anderen allerdings nicht... :(



Ist aber zum Glück kein Problem:





jetzt noch die Verbindungsstücke bulldozern...



....fertig!

-------------------------------------------------------------------------------------
P.S.: Kritik und Verbesserungsvorschläge sind natürlich ausdrücklich erwünscht und immer willkommen!

P.S.S.: Natürlich kann man die DRLs auch für ganz andere Sachen verwenden - dieses Bild hat mich auf die Idee (danke dafür!) gebracht, mal Folgendes zu probieren:


 
Zuletzt bearbeitet:
Ähhh, das hab ich schon lange geplant, aber war immer zu faul zu.

Vielen Dank für dieses Tutorial!

Arbeite ja schon seit einiger Zeit mit 15,5-m-Lochgräbern für die Eisenbahnpuzzleteile von ArkenbergeJoe.

Bin schon gespannt auf die Fortsetzung. Man braucht ja zum Glück auch mehrere der Lochgräber nicht wirklich, z. B. die für die extratiefen Löcher. Die können ruhigen Gewissens für Tunnelbauten modifiziert werden.
 
Zuletzt bearbeitet:
Tolles Tutorial. :) So eine Liste mit passenden Werten für die anderen Tunnel wäre in der Tat sehr schön, dann könnte man mal ein richtig angepaßtes Lochgräber/Bodenanheber-Set basteln. Straßen- und Eisenbahnüberführungen haben ja z. B. auch unterschiedliche Höhen, deshalb braucht man da ebenfalls zwei verschiedene Bodenanheber, um die Hangpuzzleteile ohne Höhenversatz bauen zu können. Willst Du nicht der Freiwillige sein, der noch ein bißchen Recherche betreibt? ;) Um das Anpassen der Lots für SC4 (schöne Icons usw.) würde ich mich kümmern.
 
Es gibt einen einfacheren und universeller einsatzbareren Weg, die Geländeglättung zu verhindern: Durch das Platzieren eines Fußgängerzonen-Puzzleteils. Dies bewirkt, daß das Gelände, auf dem sich das Teil befindet in seiner Neigung unveränderbar ist und jeglicher benachbarter Verkehrsweg bei Neubau höhengleich ist. Für kompliziertere Gelände-Operatoren nutze ich eine gezielte Anbringung von Fußgängerzonen während dem Bau, die anschließend wieder entfernt werden.
 
@Andreas: Danke! Was die anderen Tunnel angeht - das steht ohnehin auf meiner ToDo-Liste, allerdings ist die im Moment nicht gerade kurz. Insofern kann das ein bischen dauern, so dass ich tatsächlich für jede Unterstützung dankbar wäre...

@GoaSkin: Vielen Dank für deinen Hinweis. Ich bin allerdings nicht ganz sicher ob ich dich richtig verstanden habe. Grundsätzlich hast du natürlich recht, man kann Fußgängerzonen-Puzzelteile dazu verwenden, um nebenstehenden Verkehrswegen eine bestimmte Höhe aufzuzwingen - allerdings scheint mir das genau die Eigenschaft zu sein, die es Normalfall gerade verhindert, Verkehrswege direkt über Tunnelportalen zu platzieren...

@ArkenbergeJoe: Mit ein bischen Feinschliff hier und da ... an mir soll's nicht scheitern!

@Apophis88: Find' ich auch... Kleiner Tip zum Nachbauen: die Hochbahnstation habe ich 21m tief im Boden versenkt, Straßenanbindung hat die Station über die Tiefgarageneinfahrten links und rechts - hoffentlich fährt da nie einer geradeaus und landet unbeabsichtigt auf den Hochbahngleisen...
 
Ich nutze die Fußgängerzonen hauptsächlich, um zu gewährleisten, daß vorhandene Straßen bei Anbau oder durchbau eines anderen Verkehrsweges nicht verzerrt werden können. Wenn ich Tunnel baue, lege ich zuerst die Höhe des Grabens fest und lege je ein Fußgängerzonenteil unten und oben. Dann nutze ich das Straßentool und lege damit einzelne Felder, um das Gelände endgültig zu ebnen. Das untere Teil und die Straßen lösche ich wieder und ziehe dann den Verkehrsweg durch - fertig ist der Tunnel.
 
Wenn ich Tunnel baue, lege ich zuerst die Höhe des Grabens fest und lege je ein Fußgängerzonenteil unten und oben. Dann nutze ich das Straßentool und lege damit einzelne Felder, um das Gelände endgültig zu ebnen. Das untere Teil und die Straßen lösche ich wieder und ziehe dann den Verkehrsweg durch - fertig ist der Tunnel.

Soweit, so gut, das mache ich fast genauso... in bestimmten Situationen ist es jedoch notwendig, die Höhe des Grabens auf eine ganz bestimmte Höhe festzulegen - z.B. wenn man plant, Verkehrswege auf den Feldern direkt über dem Tunnelportal zu platzieren. Und das geht nur, wenn die Geländehöhe über dem Tunnel ziemlich exakt der Portalhöhe entspricht, da der Neigungswinkel der Felder über dem Tunnelportal ansonsten zu groß wird. ;)
 
Zuletzt bearbeitet:

P.S.S.: Natürluch kann man die DRLs auch für ganz andere Sachen verwenden - dieses Bild hat mich auf die Idee (danke dafür!) gebracht, mal Folgendes zu probieren:


Keine Ursache ;).Diese Veriante hatte ich mir auch zuerst überlegt, aber ich fand dass es irgendwie keinen Sinn macht "elevated" im "sunken" Prinzip zu verlegen :/. Das soll aber nicht deine Leistung schmälern - im Gegenteil: technisch perfekt umgesetzt!
 
....
@ArkenbergeJoe: Mit ein bischen Feinschliff hier und da ... an mir soll's nicht scheitern!

....

Oh ja, Danke. %)
Eine kleine Überarbeitung wird eh stattfinden, denn es ist ja dann nicht für ein Forum zur Diskussion bestimmt.
 
Das Tutorial ist inzwischen um besagte nützliche kleine Übersicht ergänzt (s.o.). Jetzt bitte ich alle: testen, testen, testen - nicht das sich da irgendwo noch ein Tippfehler eingeschlichen hat...
 
Hmm...die Tunnel lassen sich aber schon bauen, oder? Wenn ja, sollte sich zumindest auf einer Seite ein Verkehrsnetzwerk platzieren lassen. Wenn man dann ein Netzwerk von einem Tunnelportal zum anderen zieht, sollte es auch auf der anderen Seite funktionieren, die Verbindungswege kann man danach wieder bulldozern. Guck dir dazu am besten auch noch mal die Bilder im Autobahntunnel-Beispiel an.

Ich muss allerdings zugeben, dass die angegebenen Werte sicherlich nicht perfekt sind. Tatsächlich liegt bspw. der optimale Wert für Autobahntunnel irgendwo zwischen 0x000B4005 und 0x000B428B - alle Werte dazwischen auszuprobieren, würde Jahre dauern...
 
Hmm...die Tunnel lassen sich aber schon bauen, oder? Wenn ja, sollte sich zumindest auf einer Seite ein Verkehrsnetzwerk platzieren lassen.
Auf einer Seite geht es, auf der anderen nicht.

Wenn man dann ein Netzwerk von einem Tunnelportal zum anderen zieht, sollte es auch auf der anderen Seite funktionieren, die Verbindungswege kann man danach wieder bulldozern.
Das oben liegende Netzwerk wird eingerissen, aber ein Tunnel entsteht nicht.


Guck dir dazu am besten auch noch mal die Bilder im Autobahntunnel-Beispiel an.
Vielleicht machst du nochmal eine detaillierte Anleitung? Wäre sicher ganz gut.

Ich muss allerdings zugeben, dass die angegebenen Werte sicherlich nicht perfekt sind. Tatsächlich liegt bspw. der optimale Wert für Autobahntunnel irgendwo zwischen 0x000B4005 und 0x000B428B - alle Werte dazwischen auszuprobieren, würde Jahre dauern...
Die Werte für die Modelle stehen irgendwo in den Dat-Files im SC4-Programmordner. Ich werde mal suchen und berichten, was bei der Sache rausgekommen ist.
 
Ja, ich geb's ja zu - eine detaillierte Anleitung wäre sicherlich hilfreich ;)

--- so, erledigt!
 
Zuletzt bearbeitet:
Was ist denn mit den gelisteten Werten? Die sind nicht wirklich sicher, wie man sieht.

Nur um evtl. Unsicherheiten vorzubeugen: Die oben gelisteten Werte sind nur insofern unsicher, als daß es sich um Näherungswerte handelt. Tatsächlich lassen sich die Werte aber mit dem oben bebilderten Workaround problemlos verwenden, um Netzwerke über Tunnelportalen zu platzieren.

Ich konnte leider die Tunnelexemplars nicht finden. Weiß jemand deren IDs?
In SimCity_1.dat habe ich exemplar-files gefunden, die [Netzwerktyp]Placement Tuning Parameters heißen. Darin enthalten ist auch der Eintrag TunnelModelHeights, nur leider hilft dieser Wert nicht wirklich weiter: Für Autobahnen ist bspw. der Wert 11,25, also 0x000B4000, meine Versuche haben allerdings ergeben, dass erst der Wert 0x000B4005 funktioniert...
 
Als ich muss zugeben das, das hier alles auf den ersten Blick sehr verwirrend ist. Berrechtigt oder? Aber auf den zweiten Blick versteht man es doch schon ein wenig mehr.

Nun toja, ich möchte deine Arbeitsweise sicherlich nicht in Frage stellen oder dich irgendwie schlecht machen, ich bin mir sicher das hier monatelange Arbeit dahintersteckt, aber auf SimCityPlaza wird etwas einfacher erklärt wie man Tunnel bauen kann mit dem Garten-Modus. Aber im Prinzip ist kein Unterschied zwischen den beiden Taktiken nur dass wenn man mit dem Garten-Modus arbeitet manchmal etwas mitzählen muss und bisschen genau hinschauen muss. Bei der Taktik ist das sicher, aber eben Zahlenreihen usw.

Aber echt klasses Tutorial wo echt noch Arbeit dahintersteckt.
 
Es geht ja nicht nur darum, überhaupt einen Tunnel zu bauen, sondern ihn so zu bauen, daß die Fläche direkt über dem Tunnelportal nicht verschwendet wird. Dazu muß man, wie Du sicher festgestellt hast, gehörig tricksen, und deshalb finde ich dieses Tutorial wirklich eine Bereicherung.
 
Es geht ja nicht nur darum, überhaupt einen Tunnel zu bauen, sondern ihn so zu bauen, daß die Fläche direkt über dem Tunnelportal nicht verschwendet wird. Dazu muß man, wie Du sicher festgestellt hast, gehörig tricksen, und deshalb finde ich dieses Tutorial wirklich eine Bereicherung.


Nichts anderes hab ich gemeint ;D
Auf SCP wird das auch gemacht.
 
@Rico: Zunächst einmal vielen Dank für deine Kritik - keine Sorge, hat mich nur ein Wochenende und ein bischen Nachdenken gekostet. Ich denke aber, du sprichst dieses Tunnelbaututorial auf SimCityPlaza an - das Problem, für das hier ein Lösungsvorschlag gemacht wird, wird dort allerdings nicht berührt.

Hier geht es eigentlich nur um das bzw. die beiden Felder direkt über dem Tunnelportal, die sich beim Tunnelbau dem Tunnelportal zuneigen und daher normalerweise nicht bebaubar sind. Auf dem ersten Bild des Tutorials kann man sich das ansehen. Nun kann man sich freilich darüber streiten, ob sich ein derartiger Aufwand für zwei Felder wirklich lohnt.

Grundsätzlich hast du aber natürlich recht, die Materie - insbesondere das Umdenken ins Hexadezimalsystem - ist sicherlich nicht leicht verdaulich. Daher ist dem zweiten Teil ja auch inzwischen eine Übersicht beigefügt, so dass man sich leicht einen für den eigenen Zweck passenden Lot basteln kann. Und vielleicht haben wir ja alle Glück und Andreas beschenkt uns bald mit einem neuen Lochgräber-/Bodenanheber-Set ;)
 
Nun kann man sich freilich darüber streiten, ob sich ein derartiger Aufwand für zwei Felder wirklich lohnt.
Natürlich! :scream:
_____

Es gibt da übrigens auch eine andere Methode, die vielleicht nicht so elegant ist: Tunnel bauen, wieder abreißen, die Böschungen, die derart entstanden sind, "fixieren" (z.B. mit Straßen, die länger als ein Feld sind - vielleicht geht das auch mit Fußgängerzonen) und das umliegende Gelände auf das derart festgelegte obere Niveau bringen. Dann müsste man Verkehrswege oben direkt am jeweiligen Tunnelportal* (zumindest bei einem der beiden) ziehen können.

Ich weiß jetzt nicht, ob GoaSkin das vorhin nicht eh schon so gemeint/geschildert hat. %) Der Nachteil wäre halt, dass man hierbei nicht von einem fixen Niveau ausgehen kann.
_____

*EDIT: Klarerweise muss da zuvor noch ein neuer Tunnel unter Verwendung der (hoffentlich auch noch) vorhandenen Böschungen gebaut werden. ;)
 
Zuletzt bearbeitet:
Natürlich! :scream:
_____

Es gibt da übrigens auch eine andere Methode, die vielleicht nicht so elegant ist: Tunnel bauen, wieder abreißen, die Böschungen, die derart entstanden sind, "fixieren" (z.B. mit Straßen, die länger als ein Feld sind - vielleicht geht das auch mit Fußgängerzonen) und das umliegende Gelände auf das derart festgelegte obere Niveau bringen. Dann müsste man Verkehrswege oben direkt am jeweiligen Tunnelportal* (zumindest bei einem der beiden) ziehen können.

Ich weiß jetzt nicht, ob GoaSkin das vorhin nicht eh schon so gemeint/geschildert hat. %) Der Nachteil wäre halt, dass man hierbei nicht von einem fixen Niveau ausgehen kann.
_____

*EDIT: Klarerweise muss da zuvor noch ein neuer Tunnel unter Verwendung der (hoffentlich auch noch) vorhandenen Böschungen gebaut werden. ;)

Das ganze geht sogar ohne Abreißen des Tunnels, wenn man die CDK-Leveler benutzt auf einer Seite über dem Tunnel (ist natürlich dann praktisch, wenn der Tunnel mindest 4Kästchen lang ist, sonst muss man doch wieder abreißen). Dann bis zur anderen Seite leveln (evtl. das umliegende Gelände auch auf das Niveau glätten), den Leveler abreißen und dann geht's mindestens auf einer Seite über dem Tunnelportal. Für die andere Seite ganz oben genannten Tipp nutzen. Fertig. Schnell, Minimalistische Arbeit (im Vergleich zur bisherigen Lösung ;) ).

Zusatz: Hab das ganze mit einem 15m hohen Plateau probiert, welches getunnelt wurde.

Zusatz2: Warum ist der normale Landstraßentunnel so verdammt hoch, während der Alletunnel fast nur die halbe Höhe besitzt. Und gibt es einen schönen rechteckigen Landstraßentunnel, welche eher bei normalen Unterführungen genutzt werden?
 
Sorry für die Wiedererweckung dieses Threads und gleichzeitig bedank ich mich für das tolle Tutorial.

Leider hab ich ein Problem. Wenn ich z.b. für Auto- oder Eisenbahn die Ziffern nach der Tabelle oben ändern will, kommt die Meldung "Value must be between [negative Zahl] and [Zahl]". Ich kann die Änderung nicht abspeichern. Wahrscheinlich ist euch das auch schon passiert, bloß wisst ihr, wie man damit umgeht. Ich weiss leider nicht, was ich jetzt tun soll.
 
Mit welchem Programm hast Du die Werte denn editiert, mit SC4Tool? Das ist für solche Modding-Angelegenheiten eigentlich nicht ausgelegt (sondern eher für die Bearbeitung von Gebäuden). Mit dem Reader sollte man allerdings mehr oder weniger jeden beliebigen Wert eingeben können, wobei man natürlich im Rahmen der Vorgaben bleiben muß, ansonsten funktioniert der Mod nicht korrekt.
 
Mit diesem Reader hat das jetzt funktioniert, allerdings zeigt sich im Spiel keine Wirkung. Ich habs mit versenkten Autobahnen und Eisenbahnen probiert. Da will einfach kein Tunnel entstehen, obwohl ichs nach Anleitung versucht hab und den SlopeMod rausgeworfen hab.
 
Mittlerweile enstehen sogar Tunnel. Aber
Auf einer Seite lässt sich jetzt ein Netzwerk ziehen, auf der anderen allerdings nicht... :(

ich kann auf beiden Seiten kein Netzwerk ziehen, sondern nur in der Mitte. Was zur Hölle mach ich bloß falsch? Ich hab exakt die Werte der Tabelle verwendet.

Edit: jetzt gehts, warum auch immer. Hab nichts verändert.
 
Zuletzt bearbeitet:
Hallo zusammen,
ich habe mir letztens einige Lochgräber bzw Bodenanheber Lots anhand dieses Tutorials gemacht. Habe ihnen eine Beschreibung verpasst, veränderte Icons etc. Als Grundlage hatte ich die Hole Digger and Raiser Lots benutzt, diese habe ich aber dafür nur mehrmals kopiert und anschließend die Werte bzw Namen etc geändert. Nun habe ich allerdings deswegen das Problem, dass nur zwei Lots im Spiel angezeigt werden.
Welchen Wert bzw welche Werte muss ich jetzt noch verändert damit das Spiel die einzelnen Dateien als unterschiedliche Lots erkennt?
Ich hoffe, mir kann jemand helfen
 
Du mußt die Lots unter einem anderen Namen im Lot Editor abspeichern, einfaches Kopieren und Umbenennen im Windows Explorer reicht nicht! Die Dateinamen sind SC4 schnurz, die interne ID zählt, und die läßt man am besten per Lot Editor automatisch beim Speichern des Lots generieren.
 
Okay, danke ;) Ich dachte es würde reichen bei den Lots im Reader von Lot zu Lot einen oder zwei Werte zu verändern, jetzt habe ich es allerdings so gemacht und es funktioniert
 

Zur Zeit aktive Besucher

Zurück
Oben Unten