Weertype voor een scenario

Hier vind je alle onderwerpen over scripting voor Train Simulator zoals LUA.
Gebruikersavatar
stfnkts
Berichten: 49
Lid geworden op: 05 apr 2020, 00:45
3
Gegeven waarderingen: 8 keren
Ontvangen waarderingen: 30 keren

Weertype voor een scenario

Bericht door stfnkts »

Inleiding
Het weer in een scenario heeft een grote invloed op de mogelijke uitdaging hiervan. Als je mijlenver kan kijken, kun je seingeving langs het spoor immers een stuk makkelijker te volgen dan wanneer je nauwelijks wat kan zien door bijvoorbeeld mist of hevige regen.
In TS is er een behoorlijke variëteit aan mogelijkheden voor weertypen. Maar het kan natuurlijk zijn dat ze het net niet helemaal zijn wat je wilt. Of je wilt de volgorde/duur toch net iets anders hebben. Dan is het ook mogelijk zelf een type te maken. Dat is echter niet heel eenvoudig, en het is ook niet heel erg geweldig gedocumenteerd door DTG. De eerste post van dit topic is dan ook nogal een longread, maar heb het geprobeerd wat te verdelen in stukken. En het is, wanneer je net met begonnen met TS / scenariobouw, niet aangeraden om hier direct in te duiken.

In dit topic ga ik een poging wagen de basis uit te leggen. Ik heb zelf enkele scenario's gemaakt en geüpload, welke een eigen weertype / patroon bevatten. De basis van hoe dit werkt heb ik nu redelijk onder de knie, al blijft het nog steeds veel "trial and error" om het echt goed te krijgen zoals je wilt hebben.

Allereerst is het handig om te weten hoe TS met weer om gaat. Het is makkelijker iets te maken, wanneer je een beetje weet hoe het op de achtergrond werkt, dan maar wat te doen en te hopen dat het maar werkt. Eerst komt er dus een uitleg hoe TS het weer afhandelt. Voordat er wordt ingegaan op hoe je zelf een weertype/patroon maakt. Met de info van hoe het in elkaar zit, kom je, als je al een beetje kennis hebt met het wijzigen van dit soort bestanden, al een heel eind. :D

Mocht je zelf de documentatie van DTG ook willen zien, deze is hier te vinden. :)

Waar vindt TS het weertype?
De data van wat voor weer TS moet gebruiken, moet ergens vandaan komen.

Een weertype voor een scenario is een 'property' van het scenario, welke je bij de scenario marker kiest. Je krijgt in TS een lijst met allerlei verschillende weertypes.
Afbeelding
Op de achtergrond hoort ieder weertype bij een apart bestand met info wat TS zal moeten doen met het weer in dat scenario. Bijvoorbeeld, het weertype "1. Clear" verwijst op de achtergrond naar "Assets/Kuju/RailSimulatorCore/Weather/RW_Clear.xml".
Afbeelding
TS slaat de keuze voor het weer op deze manier op in "ScenarioProperties.xml"

Hier staat echter geen .xml bestand, wel een .bin bestand. TS weet dat het dit .bin bestand moet gebruiken voor de data van het weer.

Het .bin bestand
Het .bin bestand bestaat in feite uit een aantal delen.
  • Display Name: de naam die in de editor weergegeven wordt bij het selecteren van een weertype
  • Weather Type xx: Het type weer met zijn parameters. Er zijn 4 typen:
    • Clear
    • Overcast
    • Rain
    • Storm
    Dat deze typen zo heten, hoeft niets te maken hebben met het eigenlijke weer wat er in afspeelt. Bijvoorbeeld: je kan in "WeatherTypeRain" zonnig weer neerzetten.
  • Precipitation xx: Het type neerslag, welke een parameter is in een type weer. Ook hier zijn weer 4 typen:
    • Rain
    • Sleet
    • Hail
    • Snow
    Ook hier geldt weer, de naam van het type, hoeft niets te betekenen voor het eigenlijke type neerslag. Je kan bijvoorbeeld sneeuw in PrecipitationRain neerzetten.
  • Cloud xx: Het type wolken/de densiteit van de wolken. Ook deze is weer een parameter in het type weer. Deze kent ook weer 4 typen:
    • Clear
    • Overcast
    • Rain
    • Storm
    En ook hier, de naam van het type maakt niet uit voor hoe je deze daadwerkelijk instelt. Je zou het dichtbewolkt kunnen zetten in CloudClear.
  • Weather Event: Hier komt de 'afspeellijst' die wordt doorlopen door TS. Hierin wordt verteld hoe lang welk type weer uitgevoerd moet worden in chronologische volgorde. Wanneer het einde van deze lijst bereikt is, zal het laatste type oneindig lang doorgaan.
  • Audio Control: Het geluid dat TS moet gebruiken voor wind, neerslag en dergelijke.

DisplayName
DisplayName is de naam die in de editor wordt weergegeven bij het selecteren van een weertype. In het geval van het eerdergebruikte voorbeeld:
Afbeelding


WeatherTypeXx
WeatherType bevat alle parameters voor wat voor type weer deze heeft. Alle 4 de typen (Clear, Overcast, Rain en Storm) hebben dezelfde parameters:
  • WindDirection: De richting van de wind in graden. 0 graden is noord, 90 oost etc.
    Deze variabele heeft invloed op hoe de neerslag valt en welke kant op de wolken bewegen.
  • WindSpeed: Hoe hard het waait. In m/s (meter per seconde).
    Dit heeft invloed op hoe snel de wolken zich verplaatsen, en hoe de neerslag valt. Waait het heel hard, kun je verwachten op een wat meer horizontale verplaatsing van neerslag.
    -
  • PrecipitationType: Wat voor type neerslag er gebruikt moet worden. De typen worden verderop uitgewerkt.
  • PrecipitationDensity: Hoe stevig de neerslag is. Dit is een waarde tussen 0 en 1. Waarbij 0 geen neerslag betekent en 1 een stevige neerslag.
  • PrecipitationSpeed: De verticale snelheid van de neerslag in m/s.
    -
  • FogOverride: In TS zit een 'default' mist. Deze boolean geeft aan of deze 'default' mist gebruikt moet worden of dat mist gebruikt moet worden welke door de volgende paar parameters is ingesteld. Bij een waarde eFalse wordt de 'default' mist gebruikt. Bij een waarde 'eTrue' worden de parameters gebruikt om mist te creëren.
  • FogColour: Deze bevat een RGB waarde voor de kleur van de mist. Een waarde tussen de 0 en 1 voor iedere kleur. De Alphawaarde heeft geen effect. Deze parameter wordt genegeerd wanneer FogOverride 'eFalse' is.
  • FogStart: De afstand in meters wanneer er mist begint. Deze parameter wordt genegeerd wanneer FogOverride 'eFalse' is.
  • FogEnd: De afstand in meters waar de mist eindigt. Alles achter deze afstand is niet meer zichtbaar vanuit.
    Als je mist heel geleidelijk over grote afstand wilt hebben lopen, zal FogStart een kleine waarde krijgen, en FogEnd een grotere waarde. Wanneer een soort "muur" van mist gewenst is, moeten de waarden FogStart en FogEnd dicht op elkaar zitten.
    Deze parameter wordt genegeerd wanneer FogOverride 'eFalse' is.
    -
  • LightningDensity: Is volgens de documentatie inactief.
  • LightningFrequency: Is volgens de documentatie inactief.
    -
  • BlendInTime: De tijd in minuten om over te gaan van een ander weertype tot dit weertype. Wanneer dit het eerste weertype is dat wordt afgespeeld, wordt deze genegeerd.
    -
  • CloudType: Het type/de densiteit van de wolken. De typen worden verderop uitgewerkt.
Voorbeelden weertype:
Eerst wordt hetzelfde voorbeeld van "1. Clear" wordt hier weer gebruikt.
Afbeelding

In "1. Clear" Ziet het weer er als volgt uit, stap voor stap:
  • De wind staat naar 0 graden, dus noord, met een snelheid van 2.2352 meter per seconde
  • Er is geen neerslag (PrecipitationDensity staat op 0, de PrecipitationType en PrecipitationSpeed hebben geen invloed)
  • De 'default' fog wordt gebruikt. De waarden van FogColour, FogStart en FogEnd worden genegeerd.
  • Wanneer dit type niet de eerst is in de cyclus, duurt het 15 minuten om van het andere type volledig over te gaan naar dit type.
  • Het type "clear" wordt gebruikt voor bewolking.
In de game ziet dit er als volgt uit:
Afbeelding

Voorbeeld 2: "6. Foggy Rain"
Afbeelding
  • De wind staat op 1.5708 graden, met een snelheid van 0.34112 meter per seconde
  • Het regent, Density van 0.2, het type "Rain", en iedere druppel heeft een valsnelheid van 31.2928 meter per seconde.
  • Parameters hier ingesteld voor fog worden gebruikt (FogOverride is eTrue):
    • RGB van 0.529412 op iedere kleur (grijzig)
    • Mist begint op 200 meter van de POV, eindigt op 500 meter van de POV.
  • Wanneer een overgang naar dit type plaatsvind, duurt de overgang 1 minuut.
  • Wolken van het type "Overcast" worden gebruikt.
Dit ziet er in de game weer als volgt uit:
Afbeelding


PrecipitationXx:
Precipitation bevat de info voor het type neerslag (Rain, Sleet, Hail en Snow). Waar vind TS de texture voor een type neerslag, zoals een regendruppel, of een sneeuwvlok. Hoe ziet dit eruit en dergelijke.

Hoe de eerste paar parameters (BottomLeftViewSpaceOffset, TopRightViewSpaceOffset, BottomLeftUV, TopRightUV) werken, weet ik eerlijk gezegd niet heel goed, in ieder geval onvoldoende om dit goed uit te kunnen typen hier. Ze hebben te maken met de vorm van de texture van de neerslag. Ik heb hierbij tot nu toe altijd copy-paste uit andere weertypen gebruikt. Als je hier echt iets meer over wilt weten, verwijs ik je door naar de documentatie van DTG. :)
  • AlphaTop & AlphaBottom: Deze waarden hebben te maken met hoe zichtbaar / doorzichtig het type neerslag is. Een waarde van 0 levert een doorzichtigheid van oneindig, je ziet het niet. Een waarde van 255 levert een zichtbaarheid van 100%, je kunt niet achter de neerslag kijken. AlphaTop is voor de bovenkant van de texture, AlphaBottom onder. De Alphalaag wordt gelijkmatig verdeeld. (Wanneer je een AlphaTop hebt van 0 en een AlphaBottom van 100, zal precies in het midden de Alpha 50 zijn.)
    -
  • ParticleStreakMultiplier: Dit geeft in feite aan hoeveel neerslag er visueel moet vallen. De standaardwaarde is 1. Wanneer je 10 neerzet, zullen er 10 keer zoveel vallen. Hoeveel er uiteindelijk valt, is ook afhankelijk va de ParticleDensity. Een hogere Density levert meer neerslag.
  • TextureID: Hier komt een pad naar de texture van de desbetreffende neerslag. Het startpunt is hierbij Assets.
Voorbeeld Precipitation:
Afbeelding
Hieruit blijkt ten minste:
  • De bovenkant van de texture is onzichtbaar
  • De onderkant van de texture heeft een alpha van 100 (~61% doorzichtigheid)
  • De streak multiplier is 4.
  • De texture voor de neerslag is te vinden op Assets\Kuju\RailSimulatorCore\Weather\split_raindrop.
In de game ziet 1 regendruppel er dan zo uit (binnen het omcirkelde), de streak multiplier is eromheen af te leiden (de density in weather type is 0.2):
Afbeelding


Cloudxx:
De Cloud typen (clear, overcast, rain, storm) bevatten welke lagen wolken er zichtbaar zijn in de lucht. Bij wat dichtere mist is van deze lagen niets te zien.
Er zijn 3 soorten lagen:
  • Wispy Afbeelding
  • Thick Cloud Afbeelding
  • Storm Afbeelding
Al deze lagen worden getoond via een Alphalaag. Waarbij 0 onzichtbaar is, en 1 volledigzichtbaar.
Daarnaast is er ook de "ColourDarkeningIntensity". Deze maakt de lucht donkerder. Bij 0 blijft de lucht gelijk, bij een waarde 1 is de lucht donkerder. Waarden tussen 0 en 1 zijn ook mogelijk.
Afbeelding
ColourDarkeningIntensity = 1


WeatherEvent:
Deze sectie van het bestand bevat in feite de 'afspeellijst' van het weer. Het bevat welk(e) weertype(n) hoe lang uitgevoerd moeten worden. Wanneer het het einde van de lijst haalt, blijft de laatste oneindig lang doorlopen.

Voorbeelden:
In het "1. Clear" weer blijft het weertype gelijk.
Afbeelding

In de "6. Foggy Rain" weer veranderd het weertype nog wel eens.
Afbeelding
In dit geval start de eerste 'rain', na 5 minuten begint de overgang naar overcast, weer 5 minuten later naar clear, 6 minuten later terug naar rain etcetera. De overgangstijd zit binnen deze tijd. Als de overgang naar overcast 1 minuut duurt, zit het weer 4 van de 5 minuten volledig in overcast.

AudioControl Verteld waar de audio vandaan moet komen, zoals regen en windgeluiden. Het nut van de "Name" is mij hier niet bekend.
Als voorbeeld:
Afbeelding

Alle onderdelen voor een weertype / patroon zijn nu genoemd.

Hoe maak je zelf een weertype/patroon?

Een weertype staat opgeslagen onder de Assets map van Railworks, wanneer je er zelf een gaat maken, is het het handigste om deze in een eigen map op te slaan. In het geval van mijn eigengemaakte weertypen heb ik een map in de assetsfolder voor mezelf, zoals hier:
Afbeelding

Wanneer er een weertype is wat al aardig in de buurt ligt van het gewenste weer is, is het het makkelijkste deze bestaande te kopiëren en vervolgens deze aan te passen naar het gewenste resultaat. Met de bovengenoemde info over wat elke parameter inhoudt en wat trial en error zal dit moeten lukken.

Er is ook de mogelijkheid helemaal van scratch te beginnen. Het makkelijkste hiervoor is gebruik te maken van de -door TS meegeleverde- blueprint editor.
Afbeelding
Hiervoor is in de railworksfolder een folder "Source" nodig. Deze zal aangemaakt moeten worden wanneer deze nog niet bestaat. Verder komt hier hetzelfde in als in de Assets folder. De blueprint editor zal dit ook op die volgorde exporteren.

Om een nieuw weertype/patroon toe te voegen, volg de volgende stappen.
  1. Ga naar de folder waar het nieuwe weertype/patroon moet komen
  2. Rechtermuisklik op deze folder -> add -> new Item
    Afbeelding
  3. Navigeer naar blueprint, selecteer "Weather pattern BP" en geef deze een naam die je wilt met .xml extensie. (In onderstaande afbeelding 'demopattern.xml')
    Afbeelding
Wanneer je op Ok heb gedrukt, is het bestand aangemaakt en ook gelijk klaargezet om in te vullen.
Afbeelding
Vanaf hier kun je alle parameters verder invullen met de eerder gegeven info over wat iedere parameter betekent.

In geval van datavakjes bestemd voor locaties binnen Assets. De blueprint editor herkent paden buiten de Source map niet. Wanneer je dus iets van bijvoobeeld Kuju invult, zal de blueprint editor dit als fout weergeven. De blueprint editor gaat uit van je eigen provider / product en zal daar ook proberen een pad te linken. Het beste is om deze parameters via het .bin bestand te wijzigen.
Afbeelding

Wanneer je tevreden bent met je gemaakte weertype/patroon, kun je deze gaan exporteren.
Rechtermuisklik op het bestand -> export -> export with references of export this only.
Afbeelding

Wanneer dit is geslaagd, zal je pattern als bin bestand te vinden zijn in je assetsfolder. Ook zal er een .xml en 2 .tgt bestanden bij komen. Deze kunnen weg worden gegooid.
Afbeelding

Wanneer het weertype toch nog niet helemaal gewenst is, kun je rustig in de blueprint editor wijzigingen maken en opnieuw exporteren. De blueprint editor zal deze overschrijven. Ook kan je in het .bin bestand zelf aanpassingen maken.


Hoe selecteer ik mijn weertype?

Je weertype is, wanneer je bovenstaande stappen gevolgd hebt, in de assetsfolder in een eigengemaakte folder gezet. Deze staat hoogstwaarschijnlijk niet geactiveerd als een locatie waar TS mag zoeken voor assets. Dit is eigenlijk hetzelfde proces als wanneer je een trein neer wilt zetten, die niet direct geactiveerd staat. Zoek je provider en product op en vink deze aan. Wanneer deze aangevinkt staat. Zal je eigengemaakte patroon tussen de lijst met keuzes voor weer moeten verschijnen.


Dat is het ook wel ongeveer. Het is een hele lap tekst. Mocht er iets niet duidelijk zijn of niet kloppen, dan kun je dit hier rustig vragen / aangeven. Ik heb geprobeerd om het zo duidelijk mogelijk te maken. Maar wat ik duidelijk vind, hoeft een ander niet duidelijk te vinden natuurlijk :P

Ik weet ook nog lang niet alles van de verdere mogelijkheden die er nog zijn met het weer in TS. Dit is ongeveer de basis / het meest essentiële.

En veel meer heb ik eigenlijk ook niet te melden :D Doe ermee wat je wilt zou ik zeggen xD
Afbeelding
Deze gebruikers waarderen stfnkts voor dit bericht (totaal 11):
SkylinesBuilderMarkARobertF68MarklinMVVGamerrommy136TjoeTjoeAeolusMilko80Wadlopertje en een andere gebruiker

Plaats reactie

Terug naar “Scripting”