Dynaamiset täyttötasot kärryihin ShaderTippingin avulla

Hyödyllisiä ohjeita ja oppaita Farming Simulator 2013 peliin.
Alueen säännöt §1 Alue on tarkoitettu ainoastaan ohjeiden ja oppaiden julkaisuun.
§1.1 Ongelmat & Ratkaisut alueelle pääset tästä.

Kiitos. :D

Dynaamiset täyttötasot kärryihin ShaderTippingin avulla

ViestiKirjoittaja Ilta » 12.10.2014 15:32

Tässä ohjeet ShaderTippingin lisäämiseen FS2013:ssa suorakulmaisiin kärryihin. ShaderTippingin avulla kärryt eivät täyty tasaisesti joka puolelta, vaan kärryyn muodostuu kasoja – laitojen yli ei voi kuitenkaan ruikkia. :> Esimerkkikuvia ja videoita löytyy FS-UK:n foorumisivulta: http://fs-uk.com/forum/index.php?topic=145977.

Huom. FS2015:ssä näyttää esittelyvideoiden mukaan olevan jokin ShaderTippingia vastaava ominaisuus. En siis ainakaan toistaiseksi aio lisätä ShaderTippingia edes ”omiin” kärryihin, joten en tee lisäystä myöskään pyynnöstä.

Nämä ohjeet (PDF ja ODT), fruktorin ohjeet ”Explanations for ShaderTipping” sekä ShaderTipping.zip saatavilla täällä: https://www.dropbox.com/sh/lze37bb10wmt1uk/AADyF0YgCteOJE63OVJRNC7Pa?dl=0

Huom. alkuperäisessä ShaderTipping.lua:ssa on bugi, joka estää kippaamasta MR-kärryjä kokonaan tyhjiksi tietyissä olosuhteissa. Dropboxissa on versiossa korjattu versio, jossa ehkä sain tämän ehkä korjattua.

Lyhyet ohjeet
1. Otetaan Fortuna FTM 200 -kärryt malliksi ja kopioidaan dynPlaneShader.xml omaan modiin.
2. Kopioidaan ShaderTipping.zip omaan modikansioon.
3. Kopioidaan tasot omiin kärryihin (Export↔Import GE:ssä).
4. Valitaan lajike, josta aloitetaan, skaalataan se ja asetellaan taso omiin kärryihin.
5. Lisätään muokataan CustomParameter-arvot omien kärryjen mittojen mukaan.
6. Kopioidaan FTM200.xml:stä omaan XML:ään kohdat, joissa shaderTipping mainitaan ja korjataan fillPlane-kohdat.
7. Testataan pelissä.
8. Jos kaikki näyttää hyvältä, siirrytään kohtaan 3. ja lisätään loput lajikkeet.

Yksityiskohtaisemmat ohjeet
Nämä ohjeet on koostettu tutkimalla itse FTM 200 -kärryjen toteutusta, lukemalla saksankielisiä foorumeita sekä ShaderTippingin tekijän (fruktor) ns. virallista ohjetta (http://www.fileswap.com/dl/IsuYTPR7pY/). Jos joku keksii kätevämpiä tapoja tehdä joitain askelia, niin vinkkejä otetaan vastaan.

Tarvitset:
    * GIANTS editorin (GE)
    * tekstieditorin (suosittelen Notepad++:aa)
    * paljon tupakkia.

1. Aloita lataamalla Fortuna FTM 200 -kärryt sivulta http://www.farming-simulator.com/mod.ph ... mod_id=389 ja ShaderTipping-modi samalta sivulta kohdasta ”additional required mods” tai Dropbox-kansiosta. ShaderTipping.zip asennetaan FS2013:n modikansioon, ja sitä saa vapaasti levittää oman modin mukana (ei-kaupallisessa tarkoituksessa).

2. Pura omat kärrysi ja FTM 200 eri hakemistoihin. Kopioi FTM 200:n hakemistosta tiedostot FTM200.i3d, FTM200.i3d.shapes ja dynPlaneShader.xml sekä tekstuurihakemisto texturen/ omien kärryjesi hakemistoon.

3. Avaa FTM200.i3d GE:ssä. Avaa kohta Fortuna_FTM_200 → chasis → body → fillPlanes (ks. kuva 1). fillPlanes näyttää, kuinka korkealle huiput voivat maksimissaan nousta. Lajikkeet (FTM:ssä kaikki nimellä pCube2) kannattaa nimetä uudelleen nyt, jotta lajikkeet on helpompi löytää GE:ssä. Valitse fillPlanes ja vie se omien kärryjesi kansioon (File → Export Selection...).

Kuva
Kuva 1: tasojen sijainti Scenegraphissa.

4. Avaa omien kärryjesi i3d-tiedosto toisessa GE:ssä, tuo fillPlanes omiin kärryihisi ja korvaa sillä kärryjen alkuperäinen taso eli siirrä ryhmä tismalleen samaan paikkaan kuin alkuperäinen.

5. ”Tasoryhmä” asetellaan kärryihin. Ensin fillPlanes siirretään Y-akselia pitkin tasolle, jolla renkaat lepäävät.

6.
a) Valitaan lajike, jonka lisäämisestä aloitetaan. Tässä esimerkissä aloitetaan vehnästä, joten valitaan Scenegraphissa fillPlanesin alta ensimmäinen objekti.
b) Kasa pitää nyt siirrellä ja skaalata siten, että se istuu laitojen sisälle sopivasti. Ensin siirrellään ja skaalataan kasa X- ja Z-suunnassa kokeilemalla sopivia Scale-arvoja.
c) Skaalataan kasa Y-suunnassa, mutta samalla kasan myös pitää olla oikealla korkeudella. Tämä tarkoittaa sitä että ns. 3D-manipulaattori asetetaan lavan pohjalle (ks. kuva 2). Jos pohjaa on vaikea nähdä, lisää valoja ja klikkaa Visibility-kohdasta kaikki kasat näkymättömiksi. Jos kasa ei näytä muotonsa puolesta hyvältä, joudut valitettavasti etsimään sopivan muodon toisista kärryistä tai veistämään sopivan muodon 3D-mallinnusohjelmassa (Sketchup, Maya, Blender jne.).

Kuva
Kuva 2: tason asettaminen säiliön pohjalle

d) Tärkeää: skaalan pitää lopuksi olla 1:1:1. Kasan objektia klikataan Scenegraphissa hiiren oikealla napilla, valitaan Freeze Transformations... ja valitaan kohta Scale (ks. kuva 3).

Kuva
Kuva 3: kasan skaalaaminen.

e) Tallennetaan i3d-tiedosto GE:ssä.

7.
a) Avataan omien kärryjen i3d-tiedosto tekstieditorissa, esim. Notepad++:ssa. Tiedostoa on helpompi lukea, kun syntaksivärjäyksen klikkaa (suomenkielisessä) Notepad++:ssa päälle valikosta Koodikieli→XML.
b) Korjataan dynPlaneShader.xml viittaamaan oikeaan polkuun. Tallennetaan i3d-tiedosto tekstieditorissa, suljetaan kärryä varten avattu GE ja avataan se uudelleen. Jos GE valittaa, että jotain tiedostoa ei pystytä avaamaan, korjataan polut kunnes virheitä ei ole.
c) Etsitään materiaaleista vehnä (wheat). Huom. FTM 200:ssa on virheellisesti kaksi materiaalia nimellä wheat – jos et löydä oikeaa kohtaa, muokkaa molempia materiaaleja. Materiaalin alla pitäisi nyt näkyä seuraavat CustomParameter-rivit:
Koodi: Valitse kaikki
<CustomParameter name="lb" value="0 0 0 0"/>
<CustomParameter name="lf" value="0 0 0 0"/>
<CustomParameter name="ls" value="0 1.01 0.5 1.175"/>
<CustomParameter name="p1" value="1.25 1 3.07 1"/>
<CustomParameter name="p2" value="1 1 1 1"/>
<CustomParameter name="p3" value="1 1 1 1"/>
<CustomParameter name="uvScrollSpeed" value="0 0 0 0"/>
<CustomParameter name="yMax" value="0 0 0 0"/>

d) Kuvaan 4 merkityt arvot (ls- ja p1) on säädetty FTM 200:n mittojen mukaan. Omien kärryjen säiliön leveys ja pituus pitää mitata GE:ssä: liikuta kasa X- ja Z-suunnassa säiliön ulkopuolelle ja laske koordinaattien erotus.

Kuva
Kuva 4: arvot muutetaan säiliön sisämittojen mukaan.

e) p1:n ensimmäinen arvo on säiliön leveys jaettuna kahdella. Kolmas arvo on säiliön pituus jaettuna kahdella.
f) ls:n toinen arvo on säiliön leveys pohjalla. Kolmas arvo kertoo, millä korkeudella kasa levitetään koko säiliön leveydelle (etäisyys säiliön pohjasta, ei pelkkä Y-arvo). Neljäs arvo on säiliön täysi leveys jaettuna kahdella (huomasit ehkä, että FTM 200 levenee ylöspäin).
8. Arvot on nyt syötetty. Tallenna i3d tekstieditorissa ja avaa kärryjesi XML toiseen välilehteen.

9. Lisää seuraavat rivit XML:ään:
Koodi: Valitse kaikki
<shaderTipping>
   <plane node="0>4|0|3|0" width="1.25" length="3.07" />
</shaderTipping>

10. plane node korvataan GE:stä arvolla, joka lukee vehnän Index Pathin kohdalla GE:ssä ja leveys sekä pituus korvataan vastaavilla p1-arvoilla.

11. XML:stä etsitään kohta tipAnimations ja lisätään seuraavat rivit kuvan 5 osoittamalla tavalla (joissain kärryissä on vain yksi kippausanimaatio):
Koodi: Valitse kaikki
<shaderTipping side="back" uvSpeed="0 -0.1" scalePS="false" />

Koodi: Valitse kaikki
<shaderTipping side="back" uvSpeed="0 -0.01"/>


Kuva
Kuva 5: ShaderTippingin lisääminen kippausanimaatioihin.

12. Etsitään kohta fillPlanes XML-tiedostosta. Pitäisi löytyä jotain tällaista:
Koodi: Valitse kaikki
<node index="0>3|0|0|6|0">
   <key time="0"   y="1.3202" scale="1 0 1"/>
   <key time="0.205" y="1.3202" scale="1 0.205 1"/>
   <key time="1"   y="1.3202" scale="1 1 1"/>
</node>


13. Korvataan key time -kohdat alla näkyvillä riveillä ja asetetaan uusi y:n arvo sen mukaan, mitä GE:ssä lukee korkeuden kohdalla, kun vehnäkasa on valittuna. Jos fillPlanen alla on useampia nodeja, alemmat ovat todennäköisesti kippauksen pölyanimaatioita, joiden paikan voi säätää myöhemmin. Tallenna XML.
Koodi: Valitse kaikki
<key time="0" y="1.47886" scale="1 1 1"/>
<key time="1" y="1.47886" scale="1 1 1"/>

14. Nyt kärry on valmis testattavaksi eli
a) kopioi muokkaamasi modi zippaamattomana modikansion alle ja käynnistä peli.
b) täytä kärryt vehnällä siilosta tai kauhalla
c) kokeile eri täyttöasteita
d) testaa kuorman kippaamista.

15. Jos kuorma puskee laitojen läpi tai kärri ei ala täyttyä tarpeeksi nopeasti tms., tee hienosäätöjä arvoihin ja tarkista kasan sijainti kärryissä. Huomaa kuitenkin, että ShaderTipping bugaa joskus, kun kärryt eivät ole aivan täynnä, ja silloin kuorma tulee laitojen läpi.

16. Jos kaikki näyttää toimivan vehnän kanssa niin kuin pitää, voit onnitella itseäsi, siirtyä kohtaan 6. ja soveltaa ohjetta lopuille lajikkeille. Viittaukset tasoihin ovat todennäköisesti hieman muuttuneet, joten korjaa fillPlane-kohdat kärryn XML:ssä tai siirrä tasot oikeille paikoille GE:n Scenegraphissa.

17. Ylimääräiset FTM 200:sta tuodut tiedostot eli FTM200.i3d, FTM200.i3d.shapes ja ylimääräiset tekstuurit voi nyt poistaa. Tupakit voi heittää roskiin.

Vinkkejä
1. Kun teet tasojen mittoihin liittyviä hienosäätöjä, älä tallenna i3d:tä GE:ssä ennen kuin olet uudelleenkäynnistänyt GE:n, sillä se ei huomaa arvojen päivittämistä reload-napilla ja jyrää uudet arvot vanhoilla arvoilla.

2. Varsinkin silloin, kun muokattavia tasoja on useita, nopein tapa taso-objektien muokkaamiseen on muovata yksi taso kärryihin sopivaksi GE:ssä, ja kopioida siitä koordinaatit muihin (Ctrl-Shift-C ja Ctrl-Shift-V). Tämän jälkeen i3d-tiedosto avataan tekstieditorissa ja muutetaan kaikkien tasojen shapeId viittaamaan samaan ID:hen.

3. Tekstieditorin avulla ShaderTippingin voi lisätä materiaaleille, joita FTM 200:ssa ei ole. Etsitään vain materiaali, lisätään sille parametri customShaderId="XXX" ja korjataan ID. Sitten CustomShader-parametrit kopioidaan jo lisätystä materiaalista.

4. Tarkemmat selitykset eri parametreille löytyvät fruktorin oppaasta. lb-, lf- ja yMax-arvoja tarvitsee ilmeisesti muuttaa vain jos kärryt ovat suppilomalliset etu- tai takaosasta.

5. Lisää modDesc.xml:ään seuraava rivi, l10n-osaan, niin lokiin tulee ilmoitus, jos ShaderTipping.zip ei ole asennettuna:
Koodi: Valitse kaikki
<text name="WARNING_SHADERTIPPING">
   <de>ShaderTipping.zip fehlt im mods Ordner!</de>
   <en>ShaderTipping.zip missing in mods folder!</en>
</text>


6. Muutenkin jos tulee ongelmia (jäätymisiä tms. – tein aluksi lisäykset kippausanimaatioihin väärälle riville, niin peli tavallaan jäätyi kipatessa), niin kannattaa tarkistaa, onko log.txt:ssä jotain ihmeellistä.

7. FTM 200:n kasan muoto ei sovellu kärryille, joissa etureuna on läpinäkyvä ikkunan tai verkon takia, koska muodossa ei ole etureunaa eli siitä näkyy läpi. Jos kuitenkin kärryssä on kippausta varten pölyanimaatio, muodon voi kääntää ympäri, jolloin läpinäkyvä kohta peittyy suht mukavasti, joskin tässä tapauksessa kasan kippausanimaatio näyttää hassulta (sisältö siirtyy kärrissä eteenpäin). Muista myös ns. tehdä kierroksesta pysyvä eli vastaavasti kuin skaalatessa (kuva 3), mutta valitaan Rotate.

Tämän ohjeen kopiointi, korjaaminen, uudelleenjulkaisu (esim. siinä tilanteessa, että katoan jonnekin :D) yms. on ehdottomasti sallittu.
Ilta
 
Viestit: 139
Liittynyt: 10.06.2014 17:59
Paikkakunta: Lappeenranta

Re: Dynaamiset täyttötasot kärryihin ShaderTippingin avulla

ViestiKirjoittaja Ruzi » 12.10.2014 16:14

Voi jumalautatta vaikuttaa monimutkaaselta. :D
Kuva
"Mä en oo vahva, mä oon kusipää. En ollu aiemmin, mut must tuli tää."
Ruzi
 
Viestit: 7945
Liittynyt: 07.04.2011 15:48
Paikkakunta: Ristijärvi / Ruukki

Re: Dynaamiset täyttötasot kärryihin ShaderTippingin avulla

ViestiKirjoittaja Simppa » 12.10.2014 16:22

Ruzi kirjoitti:Voi jumalautatta vaikuttaa monimutkaaselta. :D

Samaa kattelin, mutta kokeilla ainaki pitää. :D
Kuva
Avatar
Simppa
 
Viestit: 4625
Liittynyt: 24.05.2012 13:53


Paluu Ohjeet ja oppaat

Paikallaolijat

Käyttäjiä lukemassa tätä aluetta: Ei rekisteröityneitä käyttäjiä ja 1 vierailijaa