![]() |
Om det här är ditt första besök, se till att gå till vår FAQ (finns även länk till FAQ i navigeringsmenyn ovan). Du kan behöva att registrera dig innan du kan posta (finns även en länk till registrering i navigeringsmenyn ovan). För att titta på inlägg, välj det forum som du vill besöka från de som är listade nedan. |
|
|
Ämnesverktyg | Visningsalternativ |
![]() |
#11 | |
Medlem
Reg.datum: Jul 2010
Ort: Uppsala
Inlägg: 562
|
![]() Citat:
2. Vad är det för animationer du har för ljuset i strålkastarna? Normalt brukar dessa bara vara oanimerade objekt i 3dsmax med materialet TrainEmissiveGlow(passar bäst för helljus) och/eller addTex(halvljus) som du gömmer/visar beroende på läget av ljusreglaget. Utan att ha koll på x2:ans alla strålkastarlägen så gör jag ett skriptexempel(ej komplett och troligtvis med en hel del fel eftersom jag inte har möjlighet att testa med trial/errror metoden) som kanske kan ge några ideer. Halvljus nedre med objekt 1_128_HLHalvNedre Helljus nedre med objekt 1_128_HLHelNedre Halvljus övre med objekt 1_128_HLHalvOvre Helljus övre med objekt 1_128_HLHelOvre Slutljus med objekt 1_128_Slutljus Eftersom slutljuset ska slås på i en helt annan vagn så kommer man att behöva skicka ett meddelande från lok->manövervagn och vice versa när dessa ska vara av/på. Kod:
--GLOBALS animationTimer=0 animationONTime=0.9 --hur länge lampan lyser i animationcykeln(kan ej exakta värden) animationOFFTime=1.1 --hur länge lampan är släckt i animationcykeln animationON=false slutljus_msg_id=1000 slutljusON=false gInit=false --END GLOBALS function Initialise () Call("BeginUpdate") end --Vissa saker går ej att göra i bas Initialse funktionen då tex child-objekt i blueprinten ofta inte är registrerade vid den tidpunkten när skriptet körs. --Denna funktion körs första gången skriptet kör Update() och då kan man vara säker på att alla objekt/kontroller kan sättas som man vill function safeInitialise() LightsOFF() end function LightsOFF() Call("*:ActivateNode","HLHalvNedre",0) Call("*:ActivateNode","HLHelNedre",0) Call("*:ActivateNode","HLHalvOvre",0) Call("*:ActivateNode","HLHelOvre",0) Call("*:ActivateNode","Slutljus",0) Call("*:SendConsistMessage",slutljus_msg_id,0,1) --skicka meddelande om slutljus av till manövervagnen end function LightsON(hlcontrolpos) LightsOFF() --Resetta alla lampor innan den nya konfigurationen slås på if hlcontrolpos==1 then --halvljus ovre/undre Call("*:ActivateNode","HLHalvNedre",1) Call("*:ActivateNode","HLHalvOvre",1) Call("*:SendConsistMessage",slutljus_msg_id,1,1) elseif hlcontrolpos==2 then --halvljus övre, helljus nedre Call("*:ActivateNode","HLHelNedre",1) Call("*:ActivateNode","HLHalvOvre",1) Call("*:SendConsistMessage",slutljus_msg_id,1,1) elseif hlControlpos==3 then --helljus övre, helljus nedre Call("*:ActivateNode","HLHelNedre",1) Call("*:ActivateNode","HLHelOvre",1) Call("*:SendConsistMessage",slutljus_msg_id,1,1) --elseif.....för eventuella andra lägen end end function SlutljusAnimate(dtime) if not slutljusON then if animationON then Call("*:ActivateNode","Slutljus",0) animationON=false animationTime=0 end return end animationTimer=animationTimer+dtime if not animationON and animationTimer>animationOFFTime then Call("*:ActivateNode","Slutljus",1) animationON=true animationTime=0 elseif animationON and animationTime>animationONTime then Call("*:ActivateNode","Slutljus",0) animationON=false animationTime=0 end end function OnControlValueChange ( name, index, value) if Call( "*:ControlExists", name, index ) then if name=="LiveInjectorWater" then LightsON(value) end end Call( "*:SetControlValue", name, index, value) end function OnConsistMessage(msg,argument,direction) --Ta emot meddelande om slutljus i loket skickat från manövervagnen --Denna funktion måste även speglas i skriptet för manövervagnen så att slutljuset i tänds när man styr från loket if msg==slutljus_msg_id then if argument==0 then --slutljus av slutljusON=false else --slutljus på slutljusON=true end end Call("SendConsistMessage",msg,argument,direction ) --Skicka alla meddelanden vidare end function Update(dTime) if gInit==false then gInit=true safeInitialise() end SlutljusAnimate(dTime) end För att meddelanden ska kunna skickas genom tåget så måste även alla vagnar ett skript. Så i varje vagn behövs minst... Kod:
function OnConsistMessage(msg,argument,direction) Call("SendConsistMessage",msg,argument,direction ) --Skicka alla meddelanden vidare end P.S. X2:an ser helt grymt ut! Fantastiskt snyggt jobbat! D.S.
__________________
Försöker bygga Älvsjö godsbangård men svär mest över UVW mappning. Senast redigerad av Mawkish den 2014-06-29 klockan 13:01. |
|
![]() |
![]() |