Veibygging med MaxScript

Dette er noe jeg har holdt på med for enklere å kunne lage baner til en bilsimulator kalt Racer. Det var også meningen at jeg ville lære MaxScript og hvilke ekstra muligheter det gir til 3D Studio.

Det jeg først oppdaget er hvilke begrensninger MaxScript egentlig har. Det er et veldig enkelt språk, med dårlig støtte for objektorientert programmering, og arrays kan ikke inneholde objekter genererert i et programm. Med slike begrensninger blir det tungvindt å lage script som skal generere flere objekter, og holde styr på dem i etterkant.

Et annet relativt stort problem som jeg møtte på ganske tidlig, er at det ikke er mulig og "Lofte" objekter med vanlig "Loft compound". Dette er kanskje ikke vanligvis et stort problem for mange, men for meg som skulle til å skrive et programm som egentlig er en litt annerledes "Loft" funksjon, så ble jeg ganske irritert. Det fantes en liten redning i det hele. Det finnes nemlig en "Follow path" funksjon, og det er denne i kombinasjon med andre funksjoner at jeg har klart og simulere en "Loft".

Forløpet i programmet er som følger:

Hvordan brukergrensesnittet fungerer.

 
  • Velg linje for å lage vei langsetter.
  • Segments: Antall segmenter langs linjen.
  • Constant velocity: Fast avstand mellom linjene eller tettere der punktene på linja er tettere.
  • Mapping: Generere "UVW Map" på veien.
    • Tiling: Hvis texturen er kvadratisk skal denne stå på en. Da repeteres texturen like ofte som veien er bred.
  • Banking: Setter krenging på veien som følger svingene.
    • Amount: Mengde Krenging.
    • Smothness: Krenging i overgangspartier.
  • Flip normals: Snur vein hvis den blir opp ned.

  • Ditch depth: Grøftdybde.
  • Ditch width: Grøftbredde.
  • Apply ditch: Hvilke side av veien en vil ha grøft på.
  • Apply rails: Hvilke side av veien en vil ha autovern på.

  • Sidewalk height: Hvor høy overgang mellom gangfelt og vei skal være.
  • Sidewalk width: Hvor bredt gangfeltet skal være.
  • Apply sidewalk: Hvilde side av veien vi vil ha gangfelt på.

  • Road width: Veibredde.
  • Make road: Lag veien.

Det ferdige resultatet kan jo se noe slik ut?

For å se nærmere på programmet kan du laste det ned her. Krever 3D Studio Max 5 for å kjøre.