2012. május 20., vasárnap

Hagen-Siegen magyar jelzőrendszerrel és sebességkorlát táblákkal

Nem mostanában csináltam, nyilvánvalóan kell hozzá a magyar jelzőcsomag, és talán bár ebbe nem vagyok biztos, a magyar vágánycsomag is kell hozzá.

Az egész cserét a lentebb tárgyalt replacer programmal csináltam, pár perc volt az  egész. Nagyjából valósághűen feleltettem meg a német jelzőket a magyarokhoz, de mivel nem teljesen ugyanolyan a két jelzőrendszer, nem lett tökéletes, de nagyjából jó.

Pálya letöltése

Copy of hagen siegen néven található meg. A hagen siegen-re való scenariok tökéletesen működni fognak, az alapok be is vannak rakva a csomagba, ami nem alap, azt be kell másolni ennek a scenario mappájába.

2012. február 4., szombat

Magyar route alap, ha pályát építesz olvasd el!

A a railworksben egy pályát (route) egy templateroute segítségével kell létrehozni, ami tartalmazza az ég textúrák, a föld textúrák, és az időjárás beállításait, és a pálya alap középpontját.
A középpont a legfontosabb. Ez egy valós földrajzi koordináta, amihez képes az rw számolja a tileokat. Tehát a tileokba nincs benne, hogy ezen és ezen a földrajzi koordinátán vannak, hanem csak az van benne hogy a pálya középponthoz képest hány tile-nyi távolsában vannak. Emiatt érthető hogy ha 2 pálya nem ugyanazzal a középponttal lett létrehozva (a középpont nem jelenti azt hogy onnan kell kezdened a pályát, elmehetsz 100 km-el odébb és onnan is építhetsz, de a referenciapont a lényeg, a pályaközéppont), akkor elég kicsi az esélye hogy azt a 2 pályát eggyé tudod alakítani. Viszont ha ugyan az a középpontjuk akkor össze lehet kötni a pályákat, így sok kis elszigetelt railworks route-ból 1 pályahálózatot lehet csinálni.

Lehet eleve közösen is dolgozni, mégpedig úgy hogy valamilyen módon (pl dropbox) megosztják a közösen dolgozók a pályát, de egyszerre ugyan azokon a tileokon csak 1 ember dolgozik. pl valakik csinálnak egy közös mucsaröcsöge-bivajbasznád routet, akkor az egyik bivajbasznádon építget, a másik mucsaröcsögén. és mondjuk naponta frissítik a megváltozott tileokat.
A vágányoknál jelzőknél, lassújeleknél ez bonyolultabb dolog, mert ezek az egész routen 1 fájlban tárolódnak, a tracks.bin-ben, nincsenek tileonként leosztva. Erre vagy az a megoldás, hogy a a vágányokat és a hozzájuk kötött dolgokat 1 ember babrálja egyszerre, vagy a routemerger nevű eszköz, de én inkább az 1 emberes vágánymunkát ajánlanám.
Minden más, (földtextúra, egyéb objektumok, utak, stb) tileonként külön fájlban tárolódnak, így ezeket egyszerűen össze lehet fésülni. 1 tile egyébként 1x1 km és a szerkesztőben alul írja a tile koordinátáit.

Azért hogy a magyar pályákat össze lehessen kötni, létrehoztam egy routealapot. Itt töltheted le, majd telepíteni kell az rwp-t ahogy szokás

 Használata egyszerű, tehát New Route és nézd a képet.
Majd create route és a szerkesztőn belül már beírhatod és ugorhatsz a koordinátára ahonnan építkezni akarsz, de a létrehozáskor nem szabad a kezdőkoordinátát megváltoztatni.

Ez a koordináta ugyan az mint a vmw-s magyarorszag nevű route és route template-é. Így az azokon alapuló pályákkal is össze lehet hozni.

Ha más kezdőponttal hoztál létre egy routet, 2 választás van:
-vagy dobod és újrakezded, ezzel a template-el, így össze lehet kötni a vmw-s és ennek az alapjain készülő pályákkal
-vagy nem dobod, de akkor marad egy elkülönült pálya, és nem lehet majd összegyúrni másik pályával.

2012. január 14., szombat

Magyar vágányok

2 féle magyar vágányt sikerült összehozni, a vmw pack textúráival (újra kellett csinálni, mivel nem volt meg az eredeti modell, és TS2012 fekete csík van a vágányokon).
Track rule is van hozzá, beállított magyarországra megfelelő ívtúlemeléssel.

(VMW-s ütközőbakokat, és váltókapcsolókat használ, ezek mellékelve is vannak a letöltésben, de külön kell engedélyezni a kockában az editorban a vmw-s asseteket, különben ezek nem fognak látszódni)

2012. január 13., péntek

Script hívások

Találtam még néhány ismeretlen script parancsot:
Jelzőknél:
  • string Call( "GetId" ) A jelzőknél az id szövegdobozba írt szöveget adja
  • string Call ( "GetLinkApproachControl", linkszám ) a linkszámon beállított approach control checkbox értékét adja vissza. "1" a kijelölt, "0" az üres
  •  string Call ( "GetLinkLimitedAspect", linkszám ) ugyan az mint a fent csak a limited aspect értékét adja
Máshol:
  •  Call ("childnév:SetParameter", "SignalProgress", 0) ez valami olyasmi lehet mint a control value állítás csak nem járműveknél működék valami beépített control value szerűségekkel (pl signalprogress)
  • Call("childnév:Activate,(0/1)) pl lámpákat lehet vele kapcsolgatni.
  • Call("childnév:SetText, "szöveg", szám) child objekten megjelenítendő szöveg, a szám pedig 1 ha primary text, és 2 ha secondary.

2012. január 12., csütörtök

Jelzőcsomag frissítés

  • előjelző javítás
  • tolatásjelző működés
  • éberségi jelzéskép, és sebességkorlát küldés az elhaladó mozdonynak
  • bővebben a manualban

Letöltés
külön manual (bent van az rwp-ben is)

2011. december 23., péntek

Vonatbefolyásolás és az RW

Alapon sajnos az RW nem tud vonatbefolyásolást, tehát a jelzőképeket a mozdonyon megjeleníteni, sátorjelzőzni,  de nem is olyan nehéz a jelző scriptbe ezt berakni. Egyelőre a letölthető Magyar jelzőcsomag scriptjei nincsenek frissítve ezzel egyébként 1 sornyi kóddal jelzőfajtánként, kiadott jármű híján.

A jelzőképek használatához az engine scriptbe ennyit kell berakni:
function OnCustomSignalMessage ( arg )
  local messages=string.split(arg, "|") --| jelnél szétvágja az üzenetet
  local cabsignal=tonumber(messages[1]) --első darab az előjelzés
  speedlimit=tonumber(messages[2])*3.6 --2. darab az aktuális korlát, m/s-ben küldi a jelző
  if cabsignal<=6 or cabsignal>=0 then
   Call("*:SetControlValue", "CabSignal", 0, cabsignal)
  else
   Call("*:SetControlValue", "CabSignal", 0, 7)
  end
end

function string:split(delimiter)
  local result = { }
  local from  = 1
  local index = 1
  local delim_from, delim_to = string.find( self, delimiter, from  )
  while delim_from do
    result[index] = string.sub(self, from , delim_from - 1)
    from  = delim_to + 1
    delim_from, delim_to = string.find( self, delimiter, from  )
 index = index + 1
  end
  result[index] = string.sub(self, from)
  return result
end

Mint látható kell egy CabSignal nevű control value, aminek a max értéke 7 lehet (ha teljesen kikapcsolt állapotot is akarunk akkor 8).
Ezen kívül a modellben mindegyik jelzőlámpára/jelzésképre egy világító állapotú fénylap addatex materiallal.
A jelzésképek megjelenítését interior visibility objectek hozzáadásával lehet elérni. A lower és upper visibility threshold azt a tartományt jelöli aminél meg kell jelenítenie, a transform name-hez írt objektumot. Azon kívül elrejti. Az objektum nevét a lod paraméterek nélkül kell írni, így az 1_0000_max megjelenítéséhez csak annyit kell írni hogy max.

Elég egyértelműen leolvashatók a képről hogy a scriptből érkező melyik érték mit jelent. A képre nem fért rá még a 80-as, jelzés aminek száma 2, a 40-é 3, a 7-es kód pedig a nincs jel, vagyis fehér jelzést jelenti. Ezt a kódot adja a script, ha nem értelmezhető jelet kap, de bizonyos jelzők csak ezt a jelet adják (nem biztosított főjelző, tolatásjelzők).
Video milyen ez akcióban
Frissítés: sebességadatot is küldenek a jelzők, mint látható a speedlimit változóba kerül ez.

2011. december 22., csütörtök

Fények hozzáadása járművekhez/bármihez

TS2012-től kezdve vannak végre működő fények, amik még árnyékot is tudnak vetni. (igaz ezt a borzalmasan programozott optimalizálatlan grafikus motor miatt, nem ajánlott gyakran alkalmazni mert még játszhatatlanabbul fog futni a játék.)

Ugyan úgy kell a dolgokhoz hozzáadni, mint a füstforrásokat, vagy a hangokat, tehát child-ként.

Annyit kell csinálni, hogy létrehozunk egy spot light vagy point light blueprintet, meg lehet nézni melyik milyen fényt ad, mozdony reflektoroknál spot lightot szoktak használni.
A light component rész a lényeges, a többi általános blueprint beállítás.
Radius: nem éppen azt jelenti amit a szó jelentene, a terjedési távolságot állítja, tehát ez 70 méterig fog kivetülni.
Phi: szétterjedés szöge, milyen széles legyen a fénycsóva
Theta: halványodás átmenet értéke. Nagyobbnál fokozatosabban halványul, kisebbnél hirtelen.
Colour: elég egyértelmű
Alpha: nincs funkciója
Cast shadow: árnyékot vet (true) vagy nem (false), az árnyékvetés nagyon erőforrásigényes, pl mozdonynál csak a homlokfényszóróra állítanék be ilyet, a többi ne vessen árnyékot.
Day night cycle: ezt utcai lámpáknál érdemes használni, nappal lekapcsolja, éjjel meg fel.
Anim texture: animált textúra, pl mondjuk pislákolás, vagy valami, kérdés hogyan kell animált textúrát készíteni?
Projected texture: a beállított textúrát fogja kivetíteni a fény (volt is egy ilyen küldetés még a gta vice cityben ahol egy képet kellett kivetíteni egy felhőkarcolóra :D )

Ez után már csak childként hozzá kell adni valamihez.

Így valahogy. Az elnevezés fontos ha kapcsolgatni szeretnénk a H betűvel. Fwd_Headlight_XX a mozdony elejére, Bwd_Headlight_XX pedig a hátuljára való. Ez után az asset editorban lehet a helyükre mozgatni és forgatni a fényeket, mazochisták a koordinátamátrixot kézzel is szerkeszthetik.

2011. december 20., kedd

Magyar jelzőcsomag Railworkshöz a railsimulator.hu-n

Már jó ideje tölthető a MÁV jelzőcsomag a railworkshöz amit én és czkkrgbr hoztunk össze
Tartalmaz:
  • 4,3,2 és 1 fényű főjelzőket
  • kiegészítőfények
  • elő és ismétlőjelzőket utóbbit jelzőoszlop nélkül is jelzőhídra
  • dinamikus számozású szelvény és kilométerköveket (a pályaszerkesztőben lehet beleírni az értéket)
  • dinamikus sebesség jelző és előjelző táblák tehát arra a pályára beállított sebességet írják ki mindig amihez linkelték
  • moduláris felépítés, szóval blueprint editorral bárki rakhat össze olyan jelzőkonfigurációt amit akar

További információk az rwp railworksba telepítése után a manuals/HU/HunSignals.pdf-ben

Új script eventek

A legutóbbi október körüli updatenél beraktak 2 új script eventet, amit az engine scriptben lehet használni.
function OnCameraEnter(cabEndWithCamera, carriageCam)
-- cabEndWithCamera: 0 = none, 1 = front, 2 = back.
-- carriageCam: 0 if cab cam, 1 if carriage cam
-- no return value
Elég egyértelmű, ez akkor fut le, ha valami belső kamerára vált a user. Az első paraméterből kiderül melyik vezetőállásba váltott a játékos/nem vezetőállásba ennek értelmében kicsit érthetetlen a második paraméter hiszen az is arra való hogy megmondja hogy vezetőállás, vagy utaskamerára váltott, de ez az elsőből is kiderül.

Ez pedig akkor fut le ha külső kamerára vált
-- function OnCameraLeave()
-- no parameters, no return value

Ezekkel lehetséges külön vezetőállásból külön dolgok vezérlése, persze ez megint csak favágó módszer, inkább az lenne az értelmes ha a cabok control value-it el lehetne rendesen különíteni.