sobota 3. listopadu 2018

Luka a hvozdy - mapa


Pozorného čtenáře už u minulého článku jistě napadlo, co když se něco nepovede a matrice nového objektu neodpovídá? Vyloučit to nemůžeme, vždyť Blender ve verzi 2.5x až dodnes například nemá oficiální importní plugin pro X soubory. A při exportu potřebuje tu "transformační opičárnu"...
Jak vidno z obrázku, nestane se nic horšího, než že některé stromy "popadají". Zaxxon pro tento případ vymyslel skript, který umí zdrojovému objektu nastavit potřebnou rotaci:
rota_x('nogood.x',[1 0 0;0 0 1;0 1 0]);
Nogood.x má samozřejmě reprezentovat  "nedobrý" soubor, který nás zlobí a napraví ho jeho dvojník nogood_rot.x, který bude skriptem vytvořen. Napravit ho ale může až potom, co zjistíme který to je. To asi bude chtít první test...
Takže - vycházíme ze situace, kdy máme trať v Blenderu a pár našich nových objektů ve formátu X. Je třeba je vyzkoušet a také rozhodnout, kde všude kolem tratě budou rozmístěny. Tak se do toho pustíme:
1) Vytvoříme adresář v rootu disku (stejně jako už máme "project") a pojmenujeme ho třeba track. V něm vytvoříme dva podadresáře s názvem objetos a plys.
2) Z Blenderu vyexportujeme trať ve formátu Custom ply. Zde bohužel uživatelé "Maxíka" trochu ostrouhají, protože Zaxxon upravil PLY exportér speciálně pro potřeby svých skriptů a ten mimo Blender prostě nepojede...
 Tak pro všechny připojím pár poznámek:
- celý model terénu ponechte tam, kde se při importu načetl. Žádné otáčení, žádné pozicování na nulové souřadnice. Materiálů by nemělo být více než textur, které jsme použili.
- přípravné práce jsou klasické - triangulace, svaření překrytých bodů a sjednocení normál (stejně jako minule). Samozřejmě také aplikování pozice a orientace objektu. Navíc je nastavení absolutní cesty textur objektu (File - External Data - Make All Paths Absolute). A už nic víc - transformaci už neprovádíme...
- exportní plugin se jmenuje plys_export26_colors.py a musí se spustit ručně (Open text block, Run script).
3) Exportujeme do c:\track\plys a v textovém editoru zkontrolujeme rozložení materiálů (je to úplně na konci). Zajímat nás zde budou materiály s texturou Placa2 a Placa3, které jsem použil na většině terénu (transpa patří na "konec lesa", PlacaX a PlacaXX jsou textury křižovatek).
4) Zůstaneme v textovém editoru a otevřeme v něm soubor Vegetacion.dat (nachází se v c:\tools). V tomto souboru by se měly nacházet všechny nastavení pro rozmísťování objektů. Přeuložíme jej do našeho adresáře Track a pustíme se do jeho úprav.
- První sloupec určuje, zda bude řádek ve skriptu zpracován, nebo ne.
- Druhý sloupec specifikuje osazení trávy (0 - není tráva, 1 - je tráva). Tráva totiž na rozdíl od stromů namusí nutně růst kolmo vzhůru.
- Třetí sloupec určuje hustotu osázení objektu. Doporučuji lehce experimentovat s původními hodnotami.
- Čtvrtý a pátý sloupec nastavuje vzdálenost osazování nejkrajnějších objektů zóny. První číslo je minimální, druhé zas maximální délka mezi středem cesty (driveline) a středem krajního objektu. Doporučuji brát zřetel také na velikost objektů, zvláště u keřů se stává, že pak zasahují do vozovky.
Platí, že driveline je hodnota 0 (nula), 0.0545 je okraj cesty, 0.0875 vnější okraj příkopu a 0.5 je konec terénu (tam, kde bude "konec lesa" a tedy kolizní stěna, zabraňující vypadnutí z hracího prostoru). Samozřejmě to platí na obě starny cesty.
Skript počítá s těmito hodnotami vzhledem k UV koordinátům, takže pokud by se vyskytly problémy, je potřeba použít čistý terén, tak jak jsme jej získali při prvním importu - bez úprav.
- Šestý a sedmý sloupec umožňuje náhodnou změnu velikosti objektů, aby nebyly všecky stromy stejně velké. Základní hodnota je 1, tedy původní velikost.
-Osmý sloupec specifikuje název použitého objektu.
-Devátý už je jaksi navíc a není nutno se s ním zabývat. Pravděpodobně určuje název objektů uvnitř výstupních souborů, tedy sem můžeme zkopírovat obsah předešlého sloupce.
5) Do pracovního adresáře nakopírujeme hned tři soubory Vegetacion.dat s označením 1, 2 a 3. Přidáme také všechny X-soubory a textury objektů, které jsou v nich uvedeny. A nakonec sem uložíme obrázek Ruido.bmp. Je to pomocná bitmapa a bude sloužit k lokalizaci těch tří vegetačních zón. Může vypadat třeba takto:
6) Spustíme Octave a vložíme odkazy:
addpath ("c:/tools", "-begin");
addpath ("c:/project/scripts", "-begin");

Přesuneme se do pracovního dresáře:
cd c:\track
A nakonec spustíme skript Vegeta - poprvé:
vegeta('plys/track.ply',1,1,0,1);
Jeho parametry jsou: cesta k souboru, dělení výsledného objektu v ose X a Y, kód materiálu terénu z PLY souboru (viz odstavec 3) a poslední je měřítko. Prakticky využijeme pouze kód materiálu, kdy zadáme poslední číslici z hodnoty mat00x. Funguje to i pro více materiálů, když je uvedeme do hranaté závorky (vegeta('plys/track.ply',1,1,[1 2],1);).
7) Skript vytvoří v pracovním adresáři mapu tratě Mapa.bmp kterou upravíme v grafickém editoru. Použít můžeme barvy: černou pro oblast Vegetacion1.dat, šedou pro Vegetacion2.dat a bílou pro Vegetacion3.dat. Vzorek najdeme v rohu mapy. Upravenou mapu uložíme zpět, tentokrát ale přepíšeme soubor Ruido.bmp.
8) Znovu spustíme Vegetu. Tentokrát, pokud je vše jak má být začne samotné osazování. Může to chvíli trvat, tak pokud se chceme ujistit o výsledku, stačí nakouknout do c:\track\objetos. A jestli už jsme zkoušeli export tratě do RBR hned při tvorbě terénu, tak můžeme rovnou vyzkoušet také import osázené zeleně. Jinak si budeme zatím muset vystačit s Blenderem.
Ale o tom zas příště...

3 komentáře:

  1. Ahoj,
    tak ostanem pri Maxovi a plugine Scatter. Ale systém mám asi rovnaký. Oddeľujem si geometriu podľa mapy na časti, kde bude tráva, kríky a stromy a tam to potom random scatter rozmiestni :) Ale aj tak ešte doplňujem a upravujem vo Wallaby podľa onboardov.
    Ale som rád, že to tu vysvetľuješ. Vždy si to rád prečítam a použijem. Díky !

    OdpovědětVymazat
    Odpovědi
    1. Zdar Miro,
      je mi jasné, že pro "Maxáky" to nebude tak výhodné, ale věřím, že se toho někdo chytí. Je to docela zábava a při dodržení postupu ani není nutné, aby se člověk detailně vyznal v těch skriptech. Má to sice ještě mušky, na které se zaměřím někdy příště, ale to se určitě vychytá.

      Vymazat
  2. Textúry terénu zo SAS Planet asi po starom.

    OdpovědětVymazat