3. Simple konstruktioner - et diesellokomotiv - sjette del


Version 1.1 - 23.Juli 2002

Omdrejningspunkter

For at de animationer, som vi laver i det følgende, skal fungere rigtigt, og alle lokomotivets dele også vises på deres rette plads i MSTS, må vi sikre os, at alle pivotpunkter er, hvor de skal være.

Hjulsættenes og kobbelstængernes pivotpunkter er på plads. De må under ingen omstændigheder ændres mere.

For at positionere pivotpunkterne korrekt går vi ind i Hierarchy værktøjskassen og trykker på knappen Affect Pivot Only. Ved hjælp af forskydeværktøjet og Transform Type-In vinduet nulstiller vi efter tur positionstallene for alle delenes pivotpunkter, med undtagelse af hjul og kobbelstænger. De enkelte dele kan vælges efter tur via valglistevinduet (H-tast). Derefter inaktiveres Affect Pivot Only ved et nyt klik herpå.

Bemærk!

Skulle et af pivotpunkterne for hjul eller kobbelstænger ved et uheld blive nulstillet, kan vi rette fejlen ved, at vi for pågældende hjul eller kobbelstænger vælger Center to Object.


Hierarkiet fastlægges

For at TrainSimulator kan håndtere lokomotivet, må de enkelte dele stå i det rigtige, hierarkiske forhold til hinanden. For MSTS gælder: På det øverste hierarkiske niveau, det såkaldte Root- (rod-) niveau, må der kun findes ét objekt med navnet Main. Til dette objekt knyttes ("linkes") alle andre objekter.

Først markerer vi kobbelstængerne og klikker i hovedværktøjsbjælken på ikonen Select and Link, og trykker på H-tasten. Select Parent vinduet åbnes. Her vælger vi Wheels2 og klikker på Link. Herefter markerer vi et efter et alle lokomotivets øvrige dele, med undtagelse af Main, og linker dem på samme vis til Main.


Nu aktiverer vi igen markeringspilen i hovedværktøjsbjælken og trykker på H-tasten. Når vi sætter "hak" i Display Subtree, vises hierarkiet som følger:


Nu kommer animering ind i billedet

Efter at vi har lukket objektvalgs-billedet med Cancel, skal vi til at lave animationen. Vi åbner Time Configuration vinduet (uret for neden til højre). I sektionen Animation indstiller vi på følgende værdier:

  • Start Time: 0
  • End Time: 8
  • Length: 8
  • Frame Count: 9

Animationen af hjulrotationen foretages i trin, de såkaldte Frames (rammer). Firmaet Kuju, som har udviklet MSTS, foreskriver for hjulanimation 9 animationstrin à 45 grader, hvor det første trin (trin 0) skal være identisk med det sidste (trin 8). Under simulationen beregner MSTS selv mellemstillingerne.

Advarsel!

Det er muligt at animere hjulene med et andet antal trin, og dermed også en anden drejningsvinkel.

Dette fraråder jeg på det kraftigste!

MSTS er indrettet således, at hjulradius svarende til den foreskrevne animation i 45 graders skridt skal indsættes i den fil, som beskriver køretøjet (.eng-filen). Ved en animation med andre vinkler må denne værdi justeres tilsvarende, for at hjulet kan rotere med den rigtige hastighed i MSTS. Dette kan godt lade sig gøre. Da denne værdi (WheelRadius) i MSTS også indgår i køreegenskaberne, kan lokomotivets kørselsforhold påvirkes uheldigt.


Først hjulene ...

Vi aktiverer Left vinduet og klikker på knappen Animation for neden til højre. Vinduet får en rød ramme, og animationsknappen bliver rød. Det første animationstrin (trin 0) forbliver, som det er. Vi trækker skyderen under vinduet til stillingen 1/8 (trin 1 af 8 trin). Dernæst markerer vi alle tre hjulsæt. Hold Ctrl-tasten nedtrykket og marker hjulsættene efter hinanden.

Efter at vi har aktiveret vinkelmagneten og og rotationsværktøjet, peger vi med musen nøjagtigt på midten af det midterste hjul, og trækker med nedtrykket musetast langsomt nedad. Alle tre hjul skal nu dreje sig. Træk musen langsomt nedad, indtil Z-værdien viser 45 grader.

NB!

Da kobbelstangen er linket til det midterste hjulsæt, drejer den med. Det er som det skal være, og vi korrigerer det senere.


Derefter sætter vi animationsskyderen på 2/8 og drejer videre 45 grader.


Dette gentager vi for alle skyderindstillinger ...


... indtil vi er kommet tilbage til udgangsvinklen.


Så sætter vi animationsskyderen tilbage til 1/8 og markerer kobbelstangen. Denne drejer vi nu -45 grader i hvert trin, således at den hele tiden forbliver vandret.


Når vi er færdige med dette, inaktiverer vi igen animationsknappen. Med skyderen kan vi nu iagttage animationen.


Forberedelse af eksporten til MSTS

Vi bruger de originale data for GP38 til vores lokomotiv. Først laver vi under stien C:\Programmer\Microsoft Games\Train Simulator\TRAINS\TRAINSET\ en mappe med navnet gtd1. Hertil kopierer vi mapperne SOUND og CABVIEW samt filerne gp38.eng og gp38.sd.


Så omdøber vi filen gp38.eng til gtd1.eng, og gp38.sd til gtd1.sd, og åbner filen gtd1.sd med en Unicode Editor (i Win2000 kan man bruge Notepad (Notesblok), i andre systemer WordPad). Her ændrer vi oplysningerne i tredie og syvende linie som følger:

  • shape ( gtd1.s
  • ESD_Bounding_Box ( -1.5 0.3 -5.5 1.5 4.8 5.5 )

Oplysningen ud for shape angiver, hvad den fil hedder, som indeholder modellens 3D-data. Det er den såkaldte Shape- (form-) fil. Den kan kendes på, at den ender på .s. Tallene i ESD_Bounding_Box definerer en usynlig kasse, som omslutter lokomotivet. Den tjener blandt andet til kollisionskontrol. Tallene angiver fra venstre til højre:

  • -1.5 venstre side (i kørselsretningen)
  • 0.3 underkanten, denne værdi skal ligge over skinneoverkanten, da køretøjet ellers kolliderer med sporet
  • -5.5 bagkanten, her kan man finindstille, hvor stor afstanden til tilkoblede vogne skal være
  • 1.5 højre side
  • 4.8 højde
  • 5.5 forkant

Så gemmer vi filen.


I filen gtd1.eng, som beskriver køretøjet, ændrer vi følgende linier således:

  • WagonShape ( gtd1.s )
  • Engine ( gtd1
  • Wagon ( gtd1 )
  • Name ("gtd1")
  • Description (
    "gtd1 - Diesellok aus dem gmax Tutorial von Volker M. Bollig"
    )

Linierne er spredt vidt omkring i gtd1.eng-filen.

*) "Diesellok aus dem gmax Tutorial von Volker M. Bollig" = Diesellokomotiv fra Gmax-vejledning af Volker M. Bollig

NB!

Sæt parenteserne nøjagtigt som vist ovenfor.

Gem filen og kopier derefter filen gtd1.ace til folderen C:\Programmer\Microsoft Games\Train Simulator\TRAINS\TRAINSET\gtd1.


Lokomotivet synliggøres

For at lokomotivet skal kunne ses i MSTS, må MSTS vide, ved hvilken afstand fra betragteren de enkelte flader i lokomotivet skal indlæses i grafikkortets arbejdslager. Da alle køretøjets detaljer alligevel ikke kan ses på større afstande, behøver alle flader heller ikke at indlæses på en gang. Dette kunne føre til den frygtede, sekundlange stilstand i simulationen. Kuju anbefaler at indlæse store dele ved 500 - 1000 meters afstand, og derefter mindre dele efterhånden, med aftagende størrelse. F.eks.:

  • Main, overbygning og understel ved 1000 m
  • Tag og pufferplanker ved 500 m
  • Hjulene ved 200 m
  • Kobbelstænger og puffere ved 50 m

Dette opbygger vi ved hjælp af den såkaldte Level of Distance Manager (LOD-Manager), i vinduet Trainsim 1 LOD Tool. Det finder vi under menupunktet Train Simulator:


Først markerer vi det komplette lokomotiv og klikker i LOD Tool på det store plus-tegn (Add LOD Level). Så indtaster vi i feltet LOD Distance værdien 50.


Denne proces gentager vi med de andre værdier 200, 500 og 1000. Statuslinien i LOD Tool viser nu Level (niveau) 4 af 4.


Nu er afstandene indtastet. Så skal vi fortælle MSTS, hvilke flader der skal vises ved hvilke afstande. I MSTS indlæses lokomotiver for det meste, før de kommer ind i kameraets synsfelt. Derefter skal der med aftagende afstand hele tiden vises flere og flere flader. Kører lokomotivet bort fra kameraet, så fjernes fladerne efterhånden igen. Det er ud fra sidstnævnte situation, at vi betragter fladernes tilstand i LOD-Manager.

Først betragter vi altså det tilfælde, hvor lokomotivet har nået den korteste afstand (indtastning i LOD-Manager). Dette var 50 meter. Her skal alle flader vises. Derfor skal der heller ikke ændres noget i modellen her.

Med pilene i LOD-Manager bladrer vi til Level 200 meter.


Her fjerner vi nu alle flader, som ikke mere skal være synlige på en afstand større end 50 meter (forrige niveau). I vores tilfælde er det fladerne i kobbelstængerne og pufferne. Efter tur markerer vi objekterne, går i polygontilstand, markerer alle polygoner eller faces med en markeringsramme, og sletter dem med Delete-tasten. Hvis Gmax spørger, om isolerede vertices skal slettes (Delete Isolated Vertices?), svarer man Ja.

Advarsel!

Fjern aldrig objekter, kun polygoner.

I det næste billede kan vi ikke se puffere og kobbelstænger mere, men i LOD-Manager's hierarki-vindue ser vi som før oplysningerne om objekterne Cylinder01 og -02 (pufferne) samt kobbelstængerne (Kuppelstangen).


Bladrer vi tilbage til Level 50 meter (med pilene), ser vi, at puffere og kobbelstænger stadig er der. Men på afstande mellem 50 og 200 meter vil de nu være skjult.


Nu skifter vi til LOD Level 500 meter og fjerner på samme måde ikke alene puffere og kobbelstænger, men også hjulene. Det vil sige, at kommer vi nærmere lokomotivet end 200 meter, indlæses og vises hjulene.


Ved LOD Level 1000 meter fjerner vi yderligere fladerne i tag og pufferplanker.


I statuslinien ser vi, hvor mange polygoner der vises ved de forskellige afstande. Ved 1000 meter er det kun 68 polygoner ...

(Man skal bladre en gang tilbage og frem igen med pilene for at få ajourført dette tal. O.a.)


... ved 500 meter er det 160 polygoner ...


... ved 200 meter helt op på 592 polygoner ...


.. og så ved 50 meter alle 1640 polygoner.


(En lidt nemmere måde at lave disse LODs på er at lave niveauerne ét ad gangen. Altså først niveau 1 med det hele. Så tilføjer man niveau 2 og tager polygoner ud, inden næste niveau tilføjes. Så tilføjes niveau 3 o.s.v. På den måde slipper man for at tage de samme polygoner ud flere gange, for den kopierer fra forrige niveau, når et nyt laves. O.a.)

Sammenlægning af ikke-animerede objekter

For yderligere at hæve billedfrekvensen (Framerate) i MSTS, kan vi slå ikke-animerede objekter sammen. Så eksporteres de i en fælles "matrix". Det betyder, at selv om objekterne fortsat er separate objekter i Gmax, behandles de i grafikkortet som ét. Så behøver grafikkortet ikke at beregne objekternes pivotpunkter m.v.  hver for sig. Det sparer værdifuld beregningstid.

For at opnå dette behøver vi blot, ligegyldigt i hvilket LOD-Level vi er, at markere objekterne Fahrgestell, Aufbau, Dach og pufferne Cylinder01 og Cylinder02 ét ad gangen i listen i LOD-Manager, og sætte et hak i Collapse Node for hvert.


Med File - Export to .S eksporterer vi modellen til mappen C:\Programmer\Microsoft Games\Train Simulator\ TRAINS\TRAINSET\gtd1, under navnet gtd1.s.

Husk at gemme arbejdet!

(Her er der vist en fejl i Gmax MSTS Game Pack: Det er bedst at gemme FØR man eksporterer - ellers risikerer man, at programmet bryder ned. Og et tip: Man bør bladre tilbage til LOD Level 1, før man gemmer. O.a.)


Prøvekørsel

Til prøvekørslen må vi først lave en togstamme, en såkaldt Consist, eller downloade den her. Consist-filen gtd1_solo.con kopierer vi til mappen C:\Programmer\Microsoft Games\Train Simulator\TRAINS\CONSISTS.

I MSTS udvælger vi lokomotivet gtd1 og begiver os ud på prøveturen.


Til lykke!

Vores første lokomotiv kører!

Uuuups....

... vi har jo rent glemt lygterne. ;-)
Men nu skulle det jo ikke længere være noget problem for os.

Kapitel 3, simple konstruktioner - et diesellokomotiv er hermed slut. Den nøjagtige rækkefølge af de følgende emner har jeg endnu ikke fastlagt præcist.

Det ville glæde mig i en ikke alt for fjern fremtid at se en eller anden model, som er lavet med udgangspunkt i denne vejledning.

Spørgsmål til denne vejledning og til MSTS-Lok- og objektbygning, så vel som forslag hertil, kan fremsættes i forumet på Sebastian Frey eller pr. e-mail til mig.

God fornøjelse