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.