|
| 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 |
|
|
|
|
#1 |
|
Medlem
Reg.datum: May 2013
Ort: Skåne
Inlägg: 396
|
Gav TrainGlassWeatherEffect ett försök, råkade få den att bugga ur sig men å andra sidan kanske det nu finns ett material man kan använda för spegling?
01.jpg02.jpg
__________________
X2000 LATEST BEST 5TH JUNE |
|
|
|
|
|
#2 | |
|
Medlem
Reg.datum: Feb 2013
Ort: Skåne
Inlägg: 134
|
Citat:
Kom nyss att tänka på att eftersom det är ganska svårt(omöjligt?) att se backspeglarna inifrån hytten så kanske man kunde fästa "head-out camera"-vyn så den tittar in i backspegeln. Men det är bara en tanke - det kan finnas bättre lösningar.
__________________
//Hamp3 ![]() SJ InterCity (X31K) |
|
|
|
|
|
|
#3 |
|
Medlem
Reg.datum: May 2013
Ort: Skåne
Inlägg: 396
|
Den där interiören är INTE den som kommer laddas när man sitter och dricker kaffe i Bistron, bara så att ni är med på det. Det är grunden till den interiör man kommer se exteriört
![]() Två frågor: 1: Call(“*:ActivateNode”, “<Node Name>”, "<RN>") Gör denna funktion en del av geometrin synlig/osynlig? 2: Jag får inte animationerna att hända alls...och jag förstår inte varför. Tycker detta borde vara ett idiotsäkert skript?! Default value funkar bra, om den är satt till 1 är lamporna påslagna, vice versa med ett default value av 0. 03.jpg Provade även lite andra idéer men som inte riktigt heller gick vägen. Denna är överexplicit där jag försökte göra en "push button" som alltid ger reella hela tal och därav skapa en cykel för de olika lamp-lägena. PHP-kod:
__________________
X2000 LATEST BEST 5TH JUNE |
|
|
|
|
|
#4 |
|
Medlem
Reg.datum: May 2013
Ort: Skåne
Inlägg: 396
|
Sagt det förr och säger det igen, är ingen höjdare på stolar. Håller på att piffa upp kupén och här är en lite bättre stol.
Ny till vänster, gammal till höger. ~2000polys/paret men kommer kunna trimma bort en hel del. 04.jpg
__________________
X2000 LATEST BEST 5TH JUNE |
|
|
|
|
|
#5 | |
|
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 14:01. |
|
|
|
|
|
|
#6 |
|
Medlem
Reg.datum: May 2013
Ort: Skåne
Inlägg: 396
|
Det gör saken betydligt smidigare! Jag hade två "plattor" som skulle växla plats beroende på läge. Skall testa detta i eftermiddag.
__________________
X2000 LATEST BEST 5TH JUNE |
|
|
|
|
|
#7 |
|
Medlem
Reg.datum: May 2013
Ort: Skåne
Inlägg: 396
|
Okej, såhär ser det ut nu. Det funkar betydligt bättre! Och trainemessive är verkligen natt och dag för lamporna. Tack för tipset Mawkish
1. Jag kör LogMate, men får inte ut något debugmeddelande från skriptet. Vart går print eller hur får jag meddelandena att dyka upp i LogMate? Försökte göra som i class390. 2.hlcontrolpos == 0 och hlcontrolpos == 1 funkar, hlcontrolpos == 2 eller högre ändrar inget. Lamporna stannar i konfigurationen som ges av lightsOFF(). Jag hade innan 6st konfigurationen men har bantat ner det till 3 för att debugga. Kontrolvärdet har: name: Headlights default value: 0 min value: 0 max value: 2 ..och en internal notched lever med 3 notches. 3. Funkar Activate Node på child objekt också, dvs kan jag använda det för att slå av/på ljuset? Fortsätter testa mig framåt ![]() PHP-kod:
05.jpg
__________________
X2000 LATEST BEST 5TH JUNE Senast redigerad av Kungsfisk den 2014-06-30 klockan 12:42. |
|
|
|
|
|
#8 |
|
Medlem
Reg.datum: Jul 2011
Ort: Stockholm
Inlägg: 27
|
Det ser riktigt, riktigt bra ut.
|
|
|
|
|
|
#9 | |
|
Medlem
Reg.datum: Jul 2010
Ort: Uppsala
Inlägg: 562
|
Citat:
Kod:
--GLOBALS
--lägg till
logfile=nil
--ENDGLOBALS
function Initialise()
--lägg till
logfile = io.open("C:/RW_LOGS/scriptdebug.txt", "w");
end
function DebugPrint(dbgmessage)
if DEBUGGING then
if logfile~=nil then
logfile:write(os.date("%X")..": "..dbgmessage.."\n")
logfile:flush()
end
end
end
2. elseif hlControlpos==2 --> elseif hlcontrolpos==2 OBS. stort och litet "c" Jag skulle dock undvika kontrollnamnet Headlights som är någon slags semi-hårdkodad kontroll i TS med lägen "ljus av"/"ljus på"/"byt riktning" dvs 3 lägen som inte går att ändra vad jag vet. Gör hellre en egen kontroll med "LiveInjectorWater" med de lägen du behöver och koppla sedan ihop vad som händer i "Headlights" kontrollen och vice versa. Då får ett fungerande knapp i UI:t för grundljuset(av/på/ändra riktning) + trycka "L" för att finlira med ljusen. 3. För att visa/gömma childobjekt så används Call("Childnamn:Activate",1/0) så det går utmärkt att styra lamporna med detta och du kan tom ställa in olika parametrar på lamporna i skriptet med Call( "Headlight:SetRange", 60) --Headlight är här ett child objekt av typen spotlight Call( "Headlight:SetUmbraAngle", 25) Call( "Headlight:SetPenumbraAngle", 15)
__________________
Försöker bygga Älvsjö godsbangård men svär mest över UVW mappning. Senast redigerad av Mawkish den 2014-06-30 klockan 14:56. |
|
|
|
|