Svenska 3D-Tåg - Forum

Svenska 3D-Tåg - Forum (http://www.e-buzz.se/forum/index.php)
-   3D-design - Trainz (http://www.e-buzz.se/forum/forumdisplay.php?f=12)
-   -   Ångloksprojekt (http://www.e-buzz.se/forum/showthread.php?t=28644)

korvtiger 2021-06-08 20:37

Ah, väldigt snyggt! Jag ska se om jag kan knåpa ihop något liknande! :cool:

Fixade färdigt med scriptet för att öppna rätt lucka beroende på om det lastas kol eller vatten idag. Här är de relevanta delarna:

Kod:

class #### isclass STLSteamEngine {

    Asset coalAsset;
    Asset waterAsset;

    public void Init() {
        inherited();
       
        .... // Initialize STLSteamEngine things

        coalAsset = me.GetAsset().FindAsset("coal");
        waterAsset = me.GetAsset().FindAsset("water");
    }


    float BeginLoad(LoadingReport report) {
        int i;
        for (i = 0; i < report.srcQueue.GetProductList().size(); i++) {
            if (report.srcQueue.GetProductList()[i] == coalAsset) {
                // Öppna kolboxluckorna
            }
            else if (report.srcQueue.GetProductList()[i] == waterAsset) {
                // Öppna vattentankluckorna
            }
        }
        return 1.0;
    }


    float EndLoad(LoadingReport report) {
        int i;
        for (i = 0; i < report.srcQueue.GetProductList().size(); i++) {
            if (report.srcQueue.GetProductList()[i] == coalAsset) {
                // Stäng kolboxluckorna
            }
            else if (report.srcQueue.GetProductList()[i] == waterAsset) {
                // Stäng vattentankluckorna
            }
        }
        return 1.0;
    }

};

I min version har jag dock gjort så att man kan öppna luckorna manuellt genom menyn som dyker upp om man högerklickar på loket i driver och väljer "View details". Jag har gjort likadant på Lans Sb och B lok som finns på STLs hemsida.

Init är den metod som anropas först när man skapar ett lok av denna typen och den letar först reda på referenser till Assetsen för coal och water och sparar dem i variablerna coalAsset och waterAsset. Sedan är det BeginLoad och EndLoad som anropas före och efter lastningen sker. Dessa är väldigt lika. Jag har en for-loop som går igenom alla produkter som kommer att lastas enligt den LoadingReport som skickas med till dessa metoder. Sedan kollar jag bara att om någon av de produkter som lastas är coalAsset eller waterAsset så får man lägga till kod för att öppna/stänga luckorna. Det gör man antagligen med:

Kod:

SetMeshAnimationState("tank_lid", true);
för att öppna och
Kod:

SetMeshAnimationState("tank_lid", false);
för att stänga, ifall meshen heter tank_lid i mesh tablen. Dessa animerar till sista respektive första framen i animationen för meshen.

Antagligen har du redan ett script till ditt lok, så då är det bara att lägga till de nya delarna från exemplet ovan. Init metoden finns redan, så där räcker det med att kopiera in de två sista raderna med coalAsset = ...osv. BeginLoad och EndLoad är bara att kopiera och klistra in, samt lägga till kod för att faktiskt öppna eller stänga luckor och så vidare.
Om du skulle behöva hjälp att scripta loken sedan så är det bara att säga till så kan jag hjälpa till! :)

tanigardi 2021-06-09 16:37

Det var verkligen snabbt marscherat med "luck-scriptandet". :drool: Verkar ju inte särskilt komplicerat att lägga till i mitt loks script (i princip samma som till loket Thor).

Att kunna öppna luckorna manuellt verkar mycket intressant, hade faktiskt funderat på om det skulle vara möjligt. Blev inte riktigt klok på om det sista med "SetMeshAnimationState", gäller för manuellt öppnade eller hör till det automatiska.

Måste verkligen ta i tu med att börja sätta mig in i scriptande :oskyldig:, det finns ju grundläggande turorials någon stans på Aurans site.

Skulle vara oerhört tacksam om hjälp med scripten om jag skulle stöta på patrull (vilket jag förmodligen kommer att göra)

korvtiger 2021-07-10 02:09

Har suttit och grejat med fyrboxen bland annat sedan sist. Jag upptäckte att det finns ett väldigt välgjort lok QR PB15 i TRS2019 som har mycket snygga texturer och dessutom en väldigt snygg fyrbox! Jag kontaktade byggaren (GDennish) på det internationella Trainz-forumet och fick ett väldigt hjälpsamt tillmötesgående med massor av bra tips på hur man ska animera och texurera fyrboxar för att det ska bli snyggt. :)
Ett tips är att kolla på hans egna mesh-bibliotek som han nyss släppt. Finns på DLS:
<kuid:217537:2064>,<kuid:217537:2091>,<kuid:217537 :2333>,<kuid:217537:2039>

Jag tog med mig dessa idéer och vidareutvecklade dem lite ytterligare. Jag använder tre olika delar:
* En mesh för själva fyrboxen, vilket är en statisk mesh med emission
* En animerad eldsflamma-mesh som jag har satt ut 10 stycken av och som har Aurans gamla texture
* En statisk mesh som bara är en polygon som sitter i fyrboxöppningen med en semitransparent texture med emission för att förhöja känslan av värme inne i fyrboxen.
Alltså typ samma setup som på PB15-loket.

Flamman har jag gjort tre olika animationer av, med tre olika storlekar på flammorna, så jag kan styra flammornas storlek enbart genom att med ett script byta animation på dem.
Dessutom använder jag texture-replacement för att byta ut Albedo-texturen på fyrboxens väggar så att de varierar mellan en rödare nyans när fyrboxen inte är så varm, en orangeare när den är medelvarm och en vitare när den är riktigt varm. Samma sak med eldsflammorna, fast med bara två nivåer, en orangeare när fyrboxen är kallare eller medelvarm och en med vitare flammor när fyrboxen är riktigt varm.
Så dessa två "dimensioner" av fyrboxen styr jag med hjälp av ett script. Färgen styrs baserat på Trainz interna parameter över hur varm fyrboxen är. Flammornas höjd styr jag baserat på draget i fyren, det vill säga en kombination av ifall hjälpblästern är på, samt trycket i ånglådan. Eftersom trycket i ånglådan går upp och ned med ångslagen så får jag dessutom en liten effekt att flammornas storlek fladdrar upp och ned mellan medel och höga flammor med ångslagen vid igångsättning, precis som de gör på riktigt (men då på grund av att avloppsångan som dras upp i skorstenen drar med sig extra mycket luft genom rosterna och fyren). Hur detta ser ut i verkligheten kan man se ganska tydligt på denna video: https://www.youtube.com/watch?v=-LXOLjCGPOM
https://i.imgur.com/o4TCJZq.jpg
De olika storlekarna på flammor samt de två varmare färgnyanserna

Själva animationen av flamman var lättare sagt än gjort att få till. :rolleyes: Men så här löste jag det till sist.

Jag har använt Aurans gamla flame-texture (Denna, fast i original-upplösning: https://online.ts2009.com/mediaWiki/...:CCG_Fire1.jpg) Jag har sedan gjort en animerad mesh med denna textur på en ensam flamma som jag med hjälp av attachments satt ut 10 stycken av i fyrboxen.
En sådan flam-mesh består av 8 planes, en för varje bild i textur-animationen. Varje plane är kopplat till en empty längst ned på flamman , b.r.flameX, som styr själva animationen. Sedan animerar jag Z-skalan på varje empty, så att Z-skalan är 0 när den är osynlig och 1 när den är synlig. Här kommer dock ett krux: Trainz interpolerar animationen, så om man använder 8 frames i Blender för sin animation(alltså en för varje bild i texturen), så kommer man se en massa tillfällen i Trainz när animationen är halvvägs mellan frame 1 och 2 till exempel, så man har två halvhöga flammor istället för en fullhög. Så det löste jag (med GDennish hjälp) genom att låta varje bild visas i 10 frames och att låta bilderna överlappa med en frame mellan varje bildbyte. Så att b.r.flame0 visas mellan frame 1 och frame 10. På frame 11 så har den Z-scale 0 och blir osynlig. Men redan på frame 10 kommer b.r.flame1 att börja visas och den är alltså dold på frame 9. Sedan visas den till frame 19. Och så vidare. Så i Blender kommer det vara vissa frames där två bilder syns överlappande, men det kommer inte att synas i spelet på grund av interpoleringen. Dessutom satte jag "interpolation" till "constant" i Blender.
Sedan ett tips om man animerar scale i Blender som jag också hade en massa trassel med. För att det ska fungera i spelet så måste man exportera mesherna på en frame där de har full skala (X-scale=1, Y-scale=1, Z-scale=1), annars dyker de kanske inte upp i spelet. Jättekonstigt, men så är det. Jag löste det genom att låta animationen gå från frame 1 till frame 73 och sedan lägga till en keyframe med alla b.r.flameX på frame 0, där de har full skala. Sedan måste man bara se till att stå på frame 0 när man exporterar. :rolleyes:
Därefter var det bara att göra tre sådana animationer och exportera, där jag varierade vilken Z-skala jag hade när flammorna var synliga.
Såhär ser det ut i Blender:
https://i.imgur.com/BpIep11.jpg

Sedan fick jag ett tips om en feature som jag inte visste om. Trainz stödjer HDR-texturer! :tumme_upp: Jaha, vad ska det vara bra till? Jo: i normala fall använder vi ju PNG-texturer vilka sparar varje färgkanal (RGB = Röd, Grön, Blå) som 8 bitar vardera, alltså som 256 färgnyanser per kanal. I spelet så finns det ju en effekt som kallas "bloom", alltså att ljusa färger smetas ut lite och "blöder över" i mörkare partier av en bild. Se exempel: https://learnopengl.com/img/advanced...om_example.png
Detta sker dock bara på pixlar som blir rendrerade i spelet till att vara ljusare än vad högsta ljusheten i emission på parameter-texturen kan åstadkomma med PNG, så jag trodde det bara fungerade när solen lyser på en yta och gör den ljusare och inte genom materialets egna emission som ju är begränsad av PNG-filens maxljushet. Men man kan istället för en 8 bitars PNG använda en 32 bitars .hdr-bild, vilken kan spara värden som är "ljusare" än vad som är möjligt i en PNG! Så jag tog in min PBR parameter-texture som jag hade gjort som en PNG och i Photoshop, bytte till 32-bitars färgdjup och ökade på nyansen i den röda färgkanalen (som motsvarar emission) till över 1.0, (vilket alltså motsvarar 255 i PNG) På det sättet så kommer ljusheten inne i Trainz att gå över tröskelvärdet som en pixel måste ha för att få den här bloomeffekten. Det tillförde rätt mycket till det hela faktiskt, se själva på följande gif som alltså är inifrån spelet :)

https://i.imgur.com/6AnpVEN.gif

tanigardi 2021-07-14 17:19

Fantastiskt :applad:, det här är något jag verkligen saknat, har levt i tron att det inte var möjligt i Trainz 19. Blir något att ta i tu med och implementera i Sexans hytt. Skall väl förhoppningsvis lyckas få till något, det är ju en otroligt utförlig och detaljerad beskrivning. Det är väl det där med scriptandet som blir problem kan jag tro.

korvtiger 2021-07-14 20:13

Scriptandet kan jag hjälpa dig med när du kommer dit! :) Vore ju kul att se ett färdigt svensk smalspårsånglok av toppklass! Om du vill använda mina texturer, eller tjuvkika på dem och sedan göra egna, så är det bara att säga till. :rolleyes:

Jockes 2021-07-17 23:11

Jäklar vad snyggt det blev! Tror nog det är något av det häftigaste jag sett till Trainz någonsin.

korvtiger 2021-07-25 10:55

Tackar ödmjukast för det berömmet! :ber:

---

Och vad ska det här bli då? :D

https://i.imgur.com/aHUG2Kf.jpg

tanigardi 2021-08-22 15:15

Spännande, skall väl bli tendern till ett normalspårigt ånglok kan jag tro.

Vad gäller fyrboxen med animation, har jag börjat titta lite på det (Efter att ha haft 6 veckors paus från Trainz). Skulle vara väldigt tacksam om möjlighet att kika på dina texturer. Förmodar att eldsflammorna skall ha ett m.pbrmetalmasked-material. Har inte riktig fått kläm på det här med flammorna och hur det skall utföras. Animeras alla "planen" i respektive flamm-mesh som en enhet eller vart och ett separat? Gissar att animationen av flammorna i kall fyr skalas upp ganska lite, mer i varm fyr och fullt i het fyr. Det här är hur långt jag kommit i mina funderingar, har inte börja moddelera än :confused:

benkegbg 2021-08-23 15:41

Hej!
Tittade in här och är häpen över vad man kan göra (programmera) och skapa för Trainz. Följer på SVT Play en dokumentär om "Det svenska spelundret" som handlar just om att svenska "datanördar" ligger bakom de bästa och främsta dataspelen idag.
Kanske TrainzSimulator kommer att bli "svenskt" i framtiden med så duktiga och skickliga programmerare som finns på det här forumet :applad::applad::applad:
Bra jobbat, fortsätt med det. :tumme_upp:
Hälsningar

rely 2021-08-25 09:48

Detta projekt tar tågsimulering i Trainz till en ny nivå av realism!

korvtiger 2021-08-25 23:43

Tack så mycket för beröm! :ber:

-----

Normalspårig tender stämmer ;)
Men vad det är för speciellt med denna tender var det ingen som kläckte. Den som tittar riktigt noga ser att det sitter vanliga buffertar i båda ändarna på tendern. Och för den som har bra minne (eller som har bläddrat tillbaka ett par sidor i denna tråden :rolleyes:) så minns ni kanske att de Sa-lok som gick på Bohusbanan mellan Göteborg och Strömstad gick med ombyggda f.d. Kd-tendrar under 1930-talet. Sa 1277 som jag bygger är ett av de loken och det är just en sådan ombyggd Kd-tender som jag håller på med. Jag har utgått från en ritning på en vanlig Kd-tender och sedan byggt om den enligt vad jag kunnat se på de få och ganska dåliga bilder jag haft till godo. Bakskärmen är borttagen, ramen är avkapad med någon decimeter och en främre buffertplåt med koppel har satts dit.
Två bilder från Järnvägsmuseets samling på Sa-lok med Kd-tender på Bohusbanan:
https://digitaltmuseum.se/0210181424...-angar-ut-fran
https://digitaltmuseum.se/0210181424...-angar-ut-fran

https://i.imgur.com/IwajOT0.jpg
SJ Kd tender 684 under texturering i Quixel Mixer

-----

Tanigardi:
Jag använder faktiskt m.glass för eldsflammorna. Tror jag testade med m.pbrmetalmasked, men vill minnas att de inte ville Z-sortera sig korrekt (sorteras i djupled, för de bakre flammorna renderades framför de främre).
Är inte helt med på vad du menar, men försöker mig på en förklaring:
En mesh i mesh-tablen innehåller bara en animerad flamma, sedan har jag totalt 8 flammor i mesh tablen. På dessa 8 mesher i mesh-tablen kan jag byta både animation (för att göra mer eller mindre höga flammor) och texture med hjälpa av scriptet. Men det är alltid bara 8 mesher som alla refererar till samma .trainzmesh-fil. En flamma ser ut såhär:
https://i.imgur.com/RtUDwZN.jpg
Sedan är den animerad så det egentligen är 8 planes, en med varje bild i "texture-animationen" och med lika många emptys, en per plane.
Man skulle säkert kunna ha flera flammor i samma mesh, vilket var hur jag gjorde i mina första försök. Men jag hade en del problem med det, så jag övergick till att försöka med bara en flamma per mesh och bytte aldrig tillbaka när jag fick det att fungera.

Så jag använder en .trainzmesh fil med tre stycken .kin-filer, en för varje höjd på flammorna. Detta gör man helt enkelt genom att exportera en .fbx med animation, ändra höjden på flammorna, exportera nästa .fbx med animation med ett annat namn, ändra höjd och slutligen exportera med ett tredje namn. Då får man tre .fbx:er som man måste konvertera till tre separata namn till .trainsmesh + kin i CM. SJälva mesherna (.trainzmesh) kommer vara identiska eftersom det bara var animationen man ändrade på, så därefter kan man kasta bort två av .trainzmesherna och använda den tillsammans med alla de olika animationerna.

I mesh-tablen ser ut såhär:
Kod:

  fire0
  {
    mesh                                "meshes/fire.trainzmesh"
    att                                "a.fire0"
    auto-create                        1
   
    effects
    {
      anim_0_large
      {
        kind                            "animation"
        anim                            "meshes/fire_large_scene.kin"
        looped                          1
        speed                          9
        animation-starts-active        1
        animation-has-random-start-position 1
      }
     
      anim_0_medium
      {
        kind                            "animation"
        anim                            "meshes/fire_medium_scene.kin"
        looped                          1
        speed                          8
        animation-starts-active        1
        animation-has-random-start-position 1
      }
     
      anim_0_small
      {
        kind                            "animation"
        anim                            "meshes/fire_small_scene.kin"
        looped                          1
        speed                          8
        animation-starts-active        1
        animation-has-random-start-position 1
      }
     
      fire0_albedo
      {
        kind                            "texture-replacement"
        texture                        "fire_albedo.texture"
      }
    }
  }

  fire1 {...}
  fire2 {...}
osv...

Så här har jag exporterat fire_large_scene.fbx, fire_medium_scene.fbx och fire_small_scene.fbx och sedan bytt namn på en av .trainzmesh till fire.trainzmesh, medan jag behållt namnen på .kin-filerna. Genom att ha animation-has-random-start-position kommer animationerna på de olika mesherna att starta på olika ställen. Dessutom kan man justera speed för att få mer variation.

Att byta mellan animationerna gör jag med scriptet.

Ska packa ihop texturer och skicka till dig imorgon eller så, så kan du kika på dem/använda dem själv. :)

rely 2021-08-26 15:28

Åh, intressant med tendern! Undrar hur man i praktiken förde vatten från tendern till loket, Sa hade väl ingen ejektor? Fast på 30-talet hade man väl tillgång till hyfsade lösa pumpar. Eller satte man kanske en koppling med anslutning för slang på rören från vattenförrådet bak till sidotankarna?

Något som slår mig av bilden från digitalmuseum är det lätt överfyllda kolförrådet. Jag undrar vad en lokmästare hade sagt om det, hälften av det som är över luckan lär väl trilla ner och hamna på marken. ;)

tanigardi 2021-08-26 17:06

Otroligt snyggt texturerad tender :applad:. Tyvärr är Bohusbanan och dess ånglok en vit fläck på kartan för mig, men lite lustigt att man använt en tender till ett tanklok.
Är lite nyfiken på hur många material/texturer du använt för loket,tendern och interiören och storlek på texturerna och hur du tänker vad gäller frame rate vs. utseende. När jag kollat på GDennish PB15 så verkar han ha använt många stora texturer, vilket ju definitivt skulle göra att modellen skulle se väldig fin ut i Trainz, men samtidigt väl skulle påverka "frame raten" negativt.

Tack för utförlig förklaring av flammorna, nu tror jag att jag (trögskallen) fattat hur det fungerar. Det som fortfarande jag har lite funderingar om är, om attachmentsen. Varje "flame0, 1 etc till 8 har ju sin egen attachement, men sen funderar jag på det där med att sätta ut 10 st. flame-mesh i fyrboxen :confused:

korvtiger 2021-08-26 23:02

Insåg att jag råkat kopiera in samma länk två gånger i förra posten. :D Den andra bilden jag tänkt visa var denna, från Dingle, där man knappt ser tendern:
https://digitaltmuseum.se/021018037271/dingle-station
Notera ytterligare en spännande detalj, att första vagnen efter tendern är en Hs-vagn, alltså en kylvagn, där man expressfraktade fisk. :rolleyes:

Rely:
Precis som du är inne på så kopplade man ihop lokets tankar med tenderns, vilket ger samma resultat som med ett tenderlok. Sa-loken har två stora balansrör under hytten, på var sida om loket. Dessa förbinder baktanken med den sidans sidotank. När man anordnade med dessa Kd-tendrar så satte man ventiler baktill på dessa balansrör. Sedan var det bara att koppla ihop med en slang, precis som på vanliga tenderlok. Så jag antar att vattennivån i tendern och i lokets tankar blev synkroniserat med detta.

En närbild på arrangemanget på Sa 1277 i modern tid finns här:
https://www.jvmv2.se/forum/index.php?id=26776
Jag tror att det är den vänstra av dessa som kopplades till tendern. Den andra är nog en ursprunglig tappventil när man ska tömma det sista ur tankarna. Måste ha varit ett blött göra att koppla på tendern om loket hade vatten i tankarna, för det ser inte ut att sitta någon ventil där, så vattnet lär ha forsat ut tills man skruvat dit slangen. ;) Men jag antar att det satt någon slags lös ventil där förr i tiden.

Den enda hyfsat detaljerade bild från tiden det begav sig finns här:
http://i120.photobucket.com/albums/o...ad19350809.jpg
Det råkar också vara Sa 1277 på vändskivan i Strömstad den 9:e augusti 1935. Här ser man vattenslangen ganska tydligt.

Intressant nog så verkar det väldigt vanligt att (åtminstone på Sa-loken) lasta mer kol än att man kan stänga luckorna. Det finns mängder med bilder på det. Vissa individer fick en extra uppbyggnad av trä i höjd med hyttens tak. Det var väl på maskinsektioner där lokmästaren tröttnat på svinnet ;):D

----

Tanigardi:

Det är inte en särskilt känt och inte så vanligt. Jag känner inte till något annat sådant arrangemang på normalspår, men det har funnits på flera smalspåriga linjer. NVHJ och SÖJ hade tanklok med extra vattentender. Vad jag vet levererades loken med detta och hade det hela sin aktiva tid. Ibland dessa SÖJ 6 som ju är nära släkting till BLJ 6 som du bygger på. :rolleyes:

SÖJ 6 när den var uppställd i Borgholm på 60-talet, notera slangkopplingarna både på tender och lok!:
https://digitaltmuseum.se/0210180516.../media?slide=0
https://digitaltmuseum.se/0210180516.../media?slide=0
Här verkar det dock sitta någon slags ångdriven pump precis nedanför ångdomen som pumpar in vatten i sidotankarna.
Vad jag förstår det som ska denna vattentender vara bevarad i Västervik idag tillsammans med loket.

Och en bild på SÖJ 2 där man ser slangkopplingen. Även här verkar det vara en pump:
https://digitaltmuseum.se/0210180937...olands-jarnvag

----


I nuläget har jag följande texturer:
Sa interiör: 2048x2048 för de stora delarna i hytten, 2048x2048 för alla armaturer, 2048x2048 för exteriöra modellen av loket, 1024*128 för flammorna (i två varianter, men man använder bara en åt gången), 1024x1024 för eldstaden, 256x256 för glödeffekten i eldstadhålet, 256x256 för glas och vatten
Sa lok: 2048x2048 för loket, 1024x1024 för luftpumpen och 512x512 (med parallax) för kol, 256x256 för vatten och glas samt i nuläget de båda interiör-texturerna i 2048x2048, men dessa ska jag nog skala ned till 1024x1024 sedan.
Sa drivhjul: 1024x1024
Sa löphjul: 1024x1024

Kd tender: 2048x2048 för tendern, 256x256 för vatten och glas
Kd tender hjul: 1024x1024 (samma textur som till lokets löphjul)

Har 8 attachments i interiörens mesh som bestämmer var flamm-animationen skall placeras ut. Skickar mail med detaljer. :)

rely 2021-08-27 01:33

Citat:

Ursprungligen postat av korvtiger (Inlägg 320687)
Här verkar det dock sitta någon slags ångdriven pump precis nedanför ångdomen som pumpar in vatten i sidotankarna.
Vad jag förstår det som ska denna vattentender vara bevarad i Västervik idag tillsammans med loket.

Och en bild på SÖJ 2 där man ser slangkopplingen. Även här verkar det vara en pump:

Det som syns på SÖJ 6 är en ejektor (även kallad strålpump, alltså inga rörliga munstycken) som bygger på ungefär samma princip som de tidigaste injektorerna för lågtryckspannor.
SJ hade nog inte det som standard på sina större linjelok, men förekom säkert på mindre lok för bibanor.
Lok utrustade med ejektor var desto vanligare på enskilda järnvägar, en del banor hade ju inte ens några vattenkastare utan bara brunnar med en slang som låg vid sidan av. Fram till nyligen användes ejektor för vattentagning på Ohsabanan. https://www.youtube.com/watch?v=R1je-g7uUL4 (spola till ungefär 2:15).

På denna bild tagen vid förlängningen av NAEJ kan man se en slang lagd på loket NAEJ 3, Axel E Lindvall. https://digitaltmuseum.se/0210184622.../media?slide=0
Och här en bild på Stafsjö Järnvägs lok 2 Virå (världens vackraste lok om någon frågar mig :D) så kan man se ejektorn med anslutning för slang, går ett rör även till andra sidan, under pannan. Ejektorn drivs sedan med en anslutning vid sotaren i detta fall.
https://digitaltmuseum.se/0210180411.../media?slide=0

Slutligen en bild på en lös ejektor som vi gjorde lite lätt service på när vi renoverade delar av JGJ 9. http://museijarnvagenimariefred.se/w...105_145951.jpg (Hoppas länken funkar) :D

korvtiger 2021-08-27 19:47

Okey! Tack för bilderna och informationen! :)

Har aldrig riktigt fattat vad som skiljer en injektor från en ejektor. Är det användningsområdet, att en injektor suger upp vatten ur en tank och matar in det i pannan den tog ångan ifrån, medan en ejektor bara är en ångdriven pump som suger upp vatten och får det att rinna ut någonstans, typ i vattentankarna (men inte in i något som är under tryck, så som pannan)? Eller är det konstruktionen? För rent tekniskt skulle man väl kunna koppla vattenröret till en Gresham-injektor från en tankvagn likt med ejektorn på filmen du länkar, eller till och med från en sjö/vattendrag. Skillnaden blir ju att man matar pannan direkt istället för att fylla på vattentankarna, så man löser ju inte problemet om man tuffat slut på vatten i tankarna. :rolleyes:

Tyvärr fungerade inte sista bilden, den är antagligen på föreningens interna hemsida. :)

korvtiger 2021-11-09 21:28

Hallåj i höstmörkret! :D

Det var ett tag sedan sista uppdateringen, men verkstaden har inte stått still för det! Jag har filat på engine-specs, modellerat skyffel och kol till interiören, gjort ett lock till Friedmannpumpen och skriptat så att den fylls på när man öppnar, scriptat veven till Friedmann-pumpen så man manuellt kan pressa ut olja, färdigställt Bahr-tendern, fixat kopplingsslangar och scriptat dessa, LOD:at alla mesher på loket och Bahr-tendern(puh!) samt fixat hundra småsaker. Att-göra-listan bockas av sakta men säkert.

Ytterligare en sak som jag fixat sedan sist är att skapa lite ljus i hytten. Mer om det senare.

Det fanns lite intresse tidigare i tråden om hur jag tänkte göra med LOD och resultatet blev som följer. Jag har enbart använt LM-tekniken, där man har en text-fil där alla LOD-nivåer för varje mesh står listade och alltså inte använt mig något av mesh-table-lod-transition-distances-varianten i configen. LOD:ningen är gjord med en blandning av Decimate-modifiern och manuellt edge- och vertex-slidande i Blender. Det gick faktiskt snabbare än vad jag hade befarat, även om det tog tid. :D

Och nedan antalet trianglar på varje LOD-nivå, enligt Blender.

Loket (Exteriöra modellen, inklusive det som syns av hytten utifrån, exklusive animerade delar som dörrar och fönster):
LOD0: 84891, LOD1: 68782, LOD2: 15224, LOD3: 6034, LOD5: 370
Jag hoppade över LOD4 ifall jag skulle vilja klämma in en till nivå mellan 3 och 5. Sista nivån dumpar alla attachments, så modellen innehåller även hjulen och dörrar m.m. Inte för att de syns på det avståndet men ändå.

Drivhjulen:
LOD0: 12845, LOD1: 7439, LOD2: 3767, LOD3: 726, LOD4: 456

Löphjulen (per styck):
LOD0: 1776, LOD1: 1216, LOD2: 472, LOD3: 256

Alla animerade delar (dvs dörrar, fönster, kol- och vattenluckor, takluckan, samt kol- och vattenytan) LOD:ades med mellan 2 och 3 nivåer, beroende på hur komplicerade mesherna var. Alla animerade delar har tillsammans på LOD0 3372 trianglar. Till detta kommer några extra mesher, som glasrutor och kopplingsslangarna till Bahr-tendern.

Enligt Trainz innebär detta att loket består av runt 108 000 trianglar när man kollar på det från några meters avstånd. Typ 8 gånger mer trianglar än vad jag använde på mina teak-personvagnar med andra ord. :rolleyes:

Såhär ser modellen ut om man kollar på den i Preview Asset-verktyget i CM och ändrar LOD-distance:
https://i.imgur.com/0TMit2i.jpg

Notera att jag har missat att droppa löphjulen i sista steget, det måste jag fixa. :D

Det svåraste har varit stora rundade ytor, som domen, skorstenen och hörnen på vattentankarna. Det märks väldigt tydligt när dessa hoppar mellan LOD-steg, så där har jag varit väldigt försiktig med att minska antalet trianglar i de första nivåerna.

------------------------

Sedan, på tal om höstmörker, så har jag fixat en till sak. Nämligen belysning! Inne i hytten sitter det tre små gaslyktor som ska lysa upp eldarmanometern och vattenståndsglaset, samt förarens manometrar, hastighetsmätare och omkastarskalan. Jag klurade ju ut ett sätt att fejka belysning inne i hytten när vi höll på med Lans Sa och B-lok. Metoden går ut på att man gör en kopia av de mesh-delar i interiören som blir upplysta och flyttar ut varje polygon en millimeter framför den vanliga meshen. Sedan gör man nya texturer till den kopierade meshen och bakar in ljusinformation med hjälp av en riktigt path-tracer-renderingsmotor, i mitt fall Cycles som följer med Blender. Sedan är det väldigt enkelt att visa eller dölja den meshen med hjälp av lite scriptande inne i spelet. Jag fixade det på både Sa och B-loken, så jag tänkte att det inte skulle vara så svårt att greja på mitt lok. Men här visade det sig vara lite krångligare än vad jag tänkt på grund av PBR-texturerna som ju använder alphakanalen. Och Blender kan inte på något enkelt sätt baka till alpha-kanalen. Men med lite bollande med Tanigardi så lyckades jag lösa det. Hela tillvägagångssättet ser ut som följer:

1. Kopiera de mesher som kommer att lysas upp av lyktorna och flytta dem till en egen collection.
2. Jag har mappat interiören på två olika texturer, så ungefär hälften av ytorna kom från vardera texture. Jag vill bara ha en textur till ljus-texturen och dessutom utnyttja ytan ordentligt så här måste jag mappa om och sedan baka över allt och kombinera det till en texture.
3. Jag joinar alla mesher som tillhör samma textur, så jag får två mesher, en för vardera textur. Sedan skapar en ny UV-map på båda dessa mesherna.
4. Med den nya UV-mappen på båda mesherna så UV-mappar jag om alla trianglar och packar allt till en ny ljus-textur på 2048x2048 pixlar. Nu har de båda mesherna varsina två UV-mappar, den gamla mappningen för respektive gamla texturer och en gemensam mappning för den nya ljus-texturen.
5. Jag bakar alla tre PBR-texturerna (albedo, normal, parameter) till nya texturer med den nya gemensamma UV-mappningen. Detta gör jag till exempel genom att koppla in den gamla armatur-texturens albedo i Base color på shadern, och baka till ljus-texturens albedo. Se till att man använder gamla UV-mappen i det man bakar från och den nya till det man bakar. Detta får jag göra först för ena meshen och sedan för den andra, eftersom den använder olika texturer att baka från. Sedan gör jag det för albedo, normal och parameter. Den sista fick jag dela upp eftersom Blender inte kan baka alpha enkelt. Jag bakade därför bara ut Roughness och Metalness, eftersom jag inte har använt AO eller Emission på interiörens texturer. Var noga här med att ställa in "Linear" (tror att "Non-color" fungerar också) både i från och till-Image-texture noderna för normal och parameter-texturen. Annars kommer de att gammajusteras, vilket blir fel. Resultatet blir alltså fyra texturer, albedo, normal, roughness och metalness med innehållet från de båda gamla texturerna med med den nya UV-mappningen.
6. Sedan kopierar jag båda mesherna för att ha som backup, och på kopiorna kastar jag bort de gamla UV-mapparna, så bara ljus-texture-UV-mappen är kvar och joinar dem till en mesh.
7. Den nya meshen måste nu få alla ytor utflyttade med ca en mm för att de inte ska krocka med den vanliga, underliggande hyttens mesher. Detta är busenkelt genom att markera allt och i edit-mode trycka Alt-S (eller leta reda på verktyget Shrink/Fatten). Skriv in 0.001 för 1 mm och vips så är det färdigt!
8. Därefter så bakade jag ut en lightmap, alltså en grå texture som bara innehåller färg och intensitet från lamporna. Så jag satte jag upp ljus (använde point lights med en aning gul ton med hjälp av en blackbody nod på 3800 Kelvin) , satte materialet till att ha en mellangrå Base color, och satte upp Cycles. Därefter bakade jag (Diffuse, kryssa i Direct och Color för att få bara diffust ljus och få med färginformationen från lamporna) till en ny textur. Jag fick skruva upp antalet samples till 2000 för att få ned bruset, så det tog ett par minuter att baka.
9. Därefter satte jag ihop texturerna i Mixer. Här skapade jag bara en ny mix, kopplade in albedo, normal, roughness och metalness som jag fick ut i steg 5 i base-lagret, samt lade in lightmap:en som AO (jag bakar aldrig ut denna som AO, jag bara utnyttjar det "lagret" i Mixer eftersom jag inte använder AO på interiören). Därefter lade jag till ett nytt Solid layer med bara lightmap:en som albedo. Den mixar jag sedan in med multiply för att lägga till ljusinformationen som jag bakade med Cycles på den den vanliga albedon. Jag drog ned opaciteten på detta lager till ~40% för att det skulle smälta ihop bättre med omgivningen i spelet och inte bli för kontrastrik.
10. Sedan exporterade jag Albedo, Normal och Parameter-texturerna, precis som Trainz vill ha dem. Här gjorde jag dock två kluriga saker: Jag exporterade AO-lagret (alltså light-mappen i gråskala) som alpha på albedon (så ljusstyrkan kontrollerar genomskinligheten på materialet) och så exporterade jag även AO-lagret som emission (R-kanalen) på parameter-texturen för att göra materialet självlysande i spelet där lamporna har lyst upp enligt lightmappen.
11. Sedan är det bara att sätta upp ett m.pbrmetalmasked material i Blender och splitta meshen i tre delar, en för varje lykta så att man kan styra dem individuellt i spelet, exportera till Trainz, lägga till lite script och så är det klart. Lätt som en plätt! :D


Såhär ser det ut i Trainz:
https://i.imgur.com/hR9QpHu.jpg
Helt okey tills de lägger till stöd för riktiga point-lights i spelet någon gång i en avlägsen framtid. :D

Jag har dessutom lagt till flammor i lykthusen som man kan se om man öppna den bakre lyckan på lyktorna. I bilden är de två till vänster öppna och den till höger, på eldarsidan är stängd. Till dessa har jag använt samma trick med en 32-bitars texture som på flammorna i fyrboxen, för att få till bloom-effekten.

Tyvärr blir kanten mellan det synliga och genomskinliga i ljus-meherna lite taggigt, vilket man tydligt ser till vänster och under fönstret. Detta verkar vara en kombination av att den lightmappen som jag bakade ifrån Cycles fortfarande är ganska brusig och att Trainz gör ganska abrupta alphaövergångar. Det kanske går att mildra genom att brusreducera den bakade lightmappen, men vi får se om jag orkar fixa det. :rolleyes:

rely 2021-11-09 21:53

Du har verkligen lyckats återskapa atmosfären i en ånglokshytt efter mörkret lagt sig! Det gäller att ha stenkoll på var man har alla reglage så man inte bränner sig..
I de lite mindre loken som jag tjänstgör på har vi ingen hyttbelysning alls. Då kan man ställa upp eldstadsluckan ett par cm för att få lite ljus i hytten som ofta är tillräckligt för att se vattenståndsglas och manometrar. Är det riktigt klart och ingen dimma kan man i bästa fall se ca.15 meter framåt med fotogenbelysningen. Då gäller det att ha stenkoll på banan så man vet exakt var man befinner sig hela tiden.
Upplevelsen att åka på ett ånglok i mörker är svår att återge i tal eller text.. det måste nästan upplevas. Av allt jag sett i någon simulator hittills så är bilden du just publicerat det som bäst återskapar atmosfären.. VÄLDIGT SNYGGT! :ber:

Vänersborgs_Stinsen 2021-11-10 13:30

Säger bara wow! Detta känns som ett enormt steg för ångloken i Trainz! :tumme_upp::tumme_upp:

tanigardi 2021-11-10 16:54

Som vanligt så har Korvtiger kommit med supereleganta lösningar på saker som Trainz behandlat styvmoderligt (hyttbelysning) :tumme_upp: :applad:.
Måste också tacka för den detaljerade och pedagogiska beskrivningen av tillvägagångssättet av metoden.
Har av en händelse själv börjat klura på hyttbelysningen till mitt projekt (BLJ 6), så det här inlägget kom som en skänk ifrån ovan. Får väl klura lite på metoden eftersom jag gör all texturering i Blender, enbart.

Jockes 2021-11-15 15:02

Oj, tänk vad man missar ibland när forumet ligger nere! Riktigt snyggt, korvtiger. Ser helt fantastiskt ut verkligen!

ekankal 2021-11-15 21:03

Vårat eget ångloks geni (eller vad man ska titulera dej som nu för tiden) har gjort det igen, överträffat allt annat man har sett i Trainz tidigare.
Känns som att du sätter en ny standard på allt du producerar i den däringa verkstan du har, imponerad (x10) blir man i alla fall :tumme_upp:.

korvtiger 2022-01-06 12:43

Tackar ödmjukast för att beröm! :ber:
Kul att det påminner om verkligheten, det är ju den jag har som referens ;)


Har inte så mycket nytt att tillägga sedan senaste gången, men börjar så sakteliga känna mig nöjd med detta projekt, så jag hoppas att jag kan släppa det inom en inte alltför snar framtid. :rolleyes:
Håller på att skriva lite dokumentation om loket, både historian som jag presenterat i denna tråden och lite förklaringar till hur saker i hytten fungerar. Såklart måste jag hela tiden överträffa det jag gjorde förra projektet, så denna gången håller jag även på att översätta manualen till engelska, om nu skulle hända att någon där ute skulle få lust att rulla runt i ett svenskt ånglok. :D

Och så en bild på loket ifrån simulatorn:
https://i.imgur.com/4ZRrhxt.jpg

God fortsättning!

Mazz 2022-01-06 15:10

himmel o plättar... "påminner"??? :grin: Närmare verkligheten i en simulator tror jag inte går...

jösses amalia va snyggt!

vovven47 2022-01-07 10:46

Ursnyggt!
Inspirerande att kolla in.
Har du visat upp detta på N3v forum?

Totte 2022-01-07 11:57

Oj, va fint ånglok! Mycket bra gjort!:applad:
Jag vill gärna ha det till Railworks. Är det för mycket jobb att konvertera loket?:drool:

Bengan 2022-01-08 13:50

Vackert.

Bara att instämma med övriga. Att det är svårt och tro, att bilden kommer från en tågsimulator.

korvtiger 2022-01-08 14:52

Haha, tackar så mycket! Ja, vi har kommit en bra bit med realismen i tågsimulatorerna sedan jag började på TRS2006-tiden. :D

Vovven: Nej inte än, men jag lade upp den i European screenshots-tråden på N3vs forum nyss, så vi se om de är lika imponerade där. :D Finns ju en hel del folk där som är bra mycket bättre på att ta snygga bilder än vad jag är, Ekan och Rely för att bara nämna några. ;)

Totte: Att konvertera kräver att det finns någon Railworks-byggare som har erfarenhet av att bygga ånglok. Det är väldigt mycket små mesher och grejer som i sådana fall behöver konverteras. Det rör sig nog om närmare 200 separata mesher! För att inte tala om att alla animationer, inte minst på slidstyrningen antagligen måste göras om från grunden för att Railworks animerar annorlunda än Trainz. Sedan vet jag inte om Railworks använder PBR-texturer. Om inte måste man göra om alla texturerna helt också. Listan kan nog göras lång! Så som svar på frågan, antagligen långt mycket mer jobb än vad man tänker sig, tyvärr. :rolleyes:

Totte 2022-01-08 15:20

Tack för svaret, Korvtiger! Ok, jag förstår nu bättre.

Jockes 2022-01-08 19:42

Helt otroligt vackert! Du har verkligen en enorm talang korvtiger! :tumme_upp:

korvtiger 2022-02-06 14:55

Sådär, nu är SJ Sa 1277 uppladdad på STLs hemsida, så det är bara att ladda hem och köra! :D
http://www.banbyggarna.se/stl/lok/anglok/page1.html

Jag rekommenderar att ni kör med minst TRS19 SP4, då det i tidigare Service Packs av TRS19 fanns en bugg som gjorde att hela spelet kraschade om man tog bort Sa:n i Surveyor under vissa förutsättningar. Loket fick till och med ett omnämnande i release-loggarna till SP4 för detta! :D
Dessutom rekommenderar jag att ni drar upp texturkvalitén till max för att få ut det mesta av modellen, förutsatt att era grafikkort klarar det såklart. :rolleyes: Inställningen finns under Trainz Settings>Performance>Texture detail från launchern. :)

---

När jag kollar tillbaka på filerna som jag har i projektmappen, så är den äldsta från juni 2016, så det har alltså tagit nära 6 år att färdigställa denna modell, men då har jag tagit flera långa pauser från byggandet vid ett par tillfällen. Men den som väntar på något gott ;) Totalt har jag 3.3 GB med filer i byggmappen (och det är utan Mixer-filerna som sparas på något annat ställe). Modellen är byggd helt i Blender. Tror att jag började med version 2.73, men har under resans gång uppdaterat i steg till 2.93.1 som jag kör nu. Texturerna är till största delen gjorda med Quixel Mixer 2020.1.6, med bumpmaps och lite märkning ritad för hand i Photoshop. Vissa delar av texturer är även genererade med Blenders inbyggda renderingsmotor Cycles.

Skulle vilja passa på att tacka Tanigardi för mycket hjälpfullt bollande av idéer under resans gång, samt för att han har betatestat det hela. :ber:
Vill också tacka GDennish på internationella forumet för tips och tricks runt HDR-texturer och fyrboxanimationen. :)

Och såklart, tack till er som tålmodigt väntat och hejat på längs vägen! :tumme_upp:

tjatte34 2022-02-06 15:48

tack för loket
 
hoppas på fler modeler :Yeah:

Vänersborgs_Stinsen 2022-02-06 18:55

Ooo va trevligt! Då får jag köpa TRS19 då :grin::grin::grin:

rely 2022-02-06 20:51

Sa lok i Abisko.. Borde man kanske ta tag i Bohusbanan igen? :visslar:

Oavsett, tack för detta fantastiska lok!

https://i.imgur.com/PxgYaLJ.jpg

rely 2022-02-07 21:06

Har hunnit testköra lite, mycket imponerad av loket! Pumpen i sig är ett konstverk! :D

Har dock upptäckt att fönsterramen på den vänstra dörren försvinner när jag närmar mig loket, det verkar vara samma oavsett inställningar i Trainz, har även prövat att installera om loket ett par gånger.
Sedan så saknar jag ljud från luftpumpen.

Men som sagt, verkligen otroligt arbete!

https://i.imgur.com/j8mrGtt.jpg

tanigardi 2022-02-08 10:40

Förmodar att problemet med fönsterramen beror på "flippade" normaler i lod0 av dörrmeshet i exteriöra modellen. Har inte observerat det själv när jag testkört loket:mad:

korvtiger 2022-02-08 11:49

Stinsen:
Antingen det, eller om du väntar en månad tills TRS2022 kommer ut, där lär den fungera också. ;)

Rely:
Då får du skynda på! En annan har ju redan dragit spår till Kragenäs från Strömstad! Inte för att landskapet är något mer än grått rutmönster, så det lär väl inte ta dig någon tid att hinna ikapp och dessutom bygga snyggare än vad jag lyckats med.. :D;)

Fönsterramen hade jag helt enkelt missat att exportera i LOD0 nivån. Konstig att varken jag eller Tanigardi lyckats se det. Ljudet till luftpumpen hade jag helt glömt bort! Mycket grejer att hålla koll på när man bygger ånglok, det vill jag lova! :rolleyes:

Båda dessa sakerna är nu åtgärdade och det finns en version 1.1 av loket att ladda ned från hemsidan :)

vovven47 2022-02-08 16:51

Det var väldigt intressant att läsa dina noteringar om S-loken och då speciellt delen som enbart handlade om Sa 1277.
Tack för detta!

Varifrån har du fått ALLA dessa uppgifter?

Har själv alltid velat sätta in mig i individuella ångloks historia, men var hitta de data, som du luskat fram?

PS. Jag har TRS22 och skall testa vid tillfälle. Är för tillfället på annan plats.

korvtiger 2022-02-10 17:03

Ja, det är från både här och där jag hittar information. Mycket pusslande blir det. Information om ombyggnader och större ändringar (bromssystem, belysning, vedeldning, distriktstillhörighet) är framförallt från Särtryck 77/420: http://samlingsportalen.se/all/sj_sa...077_o_420.html
Man får hoppa mellan olika år och jämföra. Notera att den som heter exempelvis 1930 är utgiven 1 januari 1930 och alltså beskriver ändringarna som gjordes (eller i alla fall hann bokföras) under 1929, osv.

Information om pannor finns lite om på framlidne Stig Lundins gamla hemsida. Exempel, sidan om 1277:
http://www.stiglundin.se/anglok/sj/lok/1250/1277.htm
Ganska kryptiskt, men det betyder att mellan 1916 och maj 1929 hade den panna S 1375 och hade sedan fram till februari 1941 panna S 1378, osv. Tabellerna är inte alltid kompletta, som synes. Klicka man på någon pannas nummer kan man se vilka lok den låg i under vilka tider.

Sedan mycket om Bahr-tedrarna har jag hittat på Järnvägshistoriskt forum genom att pussla ihop information från olika trådar där, samt ifrån Str77 där man kan se numren på de tendrar som var ombyggda.

Sedan underlättar det nog mycket att Sa 1277 är bevarad och har varit under ånga under de senaste åren, det gör att intresset och därmed informationen om just den lokindividen är lite vanligare än för vissa andra individer. :rolleyes:

Vore kul att veta att loket fungera i TRS22 också, du får gärna rapportera om det fungerar när du provkört det! :)

vovven47 2022-02-10 22:17

Tack för svar!

Jo då, jag TR22 testade loket idag.
Inga problem, utom vänstra dörr fönstret som du redan känner till.


Alla tider är GMT +2. Klockan är nu 04:55.

Powered by vBulletin® Version 3.7.5
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
Svensk översättning av: Anders Pettersson
© Svenska 3D-Tåg 2001-2009