![]() |
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. |
|
Registrera | Members Area | FAQ | Medlemslista | Community-ware/Modell-shop | Sök | Dagens inlägg | Markera forum som lästa |
![]() |
|
Ämnesverktyg | Visningsalternativ |
![]() |
#1 |
Medlem
Reg.datum: Sep 2009
Ort: Stockholm, Norrort
Inlägg: 264
|
![]()
Hej!
Jag har problem med Texture-replacement. Jag har skrivit rätt config och gjort en texturegroup. Men den finns inte på vagnen. När man klickar på vagnen och ska bytta texture, så saknas den rutan "Texture-replacement" Jag vet inte vad som är fel. Kod:
mesh-table { default { mesh "c22_x2000_ub2x_body/c22_x2000_ub2x_body.im" auto-create 1 effects { textures { kind "texture-replacement" texture "main_steering.texture" } } } }
__________________
Mvh RobertE. |
![]() |
![]() |
![]() |
#2 |
Medlem
Reg.datum: Jul 2011
Ort: Vingåker
Inlägg: 350
|
![]()
Hej Robert!
Ett enkelt svar är att det inte räcker att endast definiera texture-replacement i configen, utan det krävs en del scriptande också, men det kanske du redan vet? Om du inte vet det så visar jag ett par exempel nedan. Koden nedan är en del av configen för en vägkur som har två stycken manöverlådor. De använder samma modell men med olika texturer. Kod:
effects { fk { kind "texture-replacement" texture "varning.texture" } } Screen vsk.jpg Här kan man se "fk.tga" och "fk.texture.txt". Texture filen är den som ska användas vid byte av texturer, ett vanligt misstag som görs är att man använder bildfilen istället för texture filen. Om man bara behöver, som i det här fallet, byta ut en textur som inte finns i en texture-group, används denna funktion: SetFXTextureReplacementTexture(string effect, string texture); Kod:
public void Init(Asset ass) { inherited(ass); SetFXTextureReplacementTexture("fk", "fk.texture"); } Om man däremot behöver skapa valmöjligheter och/eller vill använda sig av textur-grupper så blir det genaste lite mer komplicerat och framförallt en massa mer kodande! Men jag tänkte ge ett ganska kort(!) exempel med lite config- och kod-utdrag. I HB T Systemgränstavlor kan man välja på lite olika typer av tavlor, bl.a. dessa tre: System H.jpgSystem M.jpgSystem S.jpg För att åstadkomma detta är texturerna inlagda i en textur-grupp som det finns en referens till i configens kuid-tabell. Den referensen används till att hämta textur-gruppens texturer. För att byta ut texturen används en annan version av samma funktion som tidigare: SetFXTextureReplacement(string effect, Asset texture_asset, int texture_index); Lite utdrag från Systemtavlans configfil: Kod:
mesh-table { default_effectsmesh { mesh-asset <kuid2:609407:100125:1> mesh "645x645 romb texture.trainzmesh" auto-create 0 effects { texture_645r { kind "texture-replacement" texture "baseyellow.texture" } } } // Flera mesher finns i mesh-tabellen } kuid-table { hb_signalscriptlibrary <kuid2:609407:100055:1> meshlibrary <kuid:609407:100125> infotavla645syst <kuid:609407:100089> infotavla510 <kuid:609407:100086> } Kod:
// Först lite defineringar av variabler. Asset mTextureAsset; // Textutgruppens asset string[] mTextureList = new string[0]; // Systemgränstavlans texturval hämtade från configen int mTextureIndex = 0; // Vald tavla string[] mChoices = new string[0]; // Systemtavlans val hämtade från configen Kod:
// Detta är en del av den kod som hämtar textur-gruppen och skapar dess listor Soup kuidSoup = ass.GetConfigSoup().GetNamedSoup("kuid-table"); string[] kuidString = new string[0]; for (i = 0; i < kuidSoup.CountTags(); i++) { kuidString[kuidString.size()] = kuidSoup.GetIndexedTagName(i); } // Hämtar systemtavlans texturer if (kuidString and TrainUtil.AlreadyThereStr(kuidString, "infotavla645syst")) mTextureAsset = ass.FindAsset("infotavla645syst"); else mTextureAsset = null; if (mTextureAsset ) { Soup speedSoup = mTextureAsset.GetConfigSoup().GetNamedSoup("textures"); for (i = 0; i < speedSoup.CountTags(); i++) { mTextureList[mTextureList.size()] = Str.Tokens(speedSoup.GetNamedTag(i),".")[0]; } for (i = 0; i < mTextureList.size(); i++) { fattarnoll = mStrings.GetString("infotavla645syst_" + i); if (fattarnoll != "") mTextureList[i] = fattarnoll; } } Kod:
// För att byta texturen används denna kod som är en del i en egen funktion som används till att uppdatera tavlans utseende, tilläggstavlor, fästen osv. if (mTextureAsset) { SetFXTextureReplacement("texture_645r", mTextureAsset, mTextureIndex); } Kod:
HTMLWindow.MakeLink("live://property/chooseboard", mChoices[mTextureIndex]) mChoices[mTextureIndex] talar om vilket val som är gjort, när koden i propertyrutan genereras. mChoices är de facto samma som mTextureList men med tydligare text för användaren. Hoppas detta kan vara till hjälp, det blir lätt mycket kod när man börjar pilla och ännu mera om man vill "göra det snyggt" också... mvh Håkan
__________________
Fd. signalreparatör på Banverket. Sjukpensionär bla pga Aspergers syndrom. Använder numera T:ANE på en iMac (Retina, 27", -15), 24GB, OSX Sierra 10.12.6 (25/9-17) Hemsida för nedladdning av mina objekt: https://blomsson4073.se/index.html |
![]() |
![]() |
![]() |
#3 |
Hjälpsamfotograf & Hedersmedlem
Reg.datum: Aug 2001
Ort: Huddinge, Sweden.
Inlägg: 6 376
|
![]()
Hade också problem med texturegrupp på X2000 Motorvagn/Manövervagn på Vovvens Start och Stopp. Fungerade på dom föregående.
Fick samma problem, med en utav vagnarna till Y6-familjen. Som Vovven fick titta närmare på. Det hade blivit ett fel i scriptet, som han fixade till. Misstänker att det är samma problem med X2000 Motorvagn/Manövervagn.
__________________
Bengan |
![]() |
![]() |
![]() |
#4 |
Medlem
Reg.datum: Jun 2010
Ort: Yxlan, Norrtälje
Inlägg: 1 338
|
![]()
Jag har missat att inkludera STL:s Texture behandling i mitt script. Gäller både X2000
motor- och manövervagn. Korrigering kommer senare i denna vecka. |
![]() |
![]() |
![]() |
Ämnesverktyg | |
Visningsalternativ | |
|
|