Visitor 3: Tvorba jednoduché krajiny
Z Armed Assault nápověda
Obsah |
Úvod
Tvorba mapy pro Armu je dokumentována na zdrojových datech a projektu ostrova Rahmadi. Tento tutorial neposkytuje vyčerpávající informace o tvorbě map, ale je spíše komentářem k existujícím datům pro intro mapu Army. Podrobné informace jsou obsaženy v následujících dokumentech:
Pracovní datová struktura
Název PBO je Desert.pbo, na pracovním disku se data nacházejí v adresáři P:\ca\desert\. V něm se nachází tyto soubory a adresáře:
[Data] [Source] config.cpp desert.wrp desert.hpp
Adresář Data obsahuje textury povrchů a textury povrchů generované Visitorem a je součástí PBO. Adresář Source obsahuje projekt, pomocné soubory a zdrojová data, ale součástí PBO není. WRP soubor obsahuje samotnou mapu, je generován spolu s HPP souborem. Ten je pomocí #include vkládán do třídy Names configu mapy a obsahuje názvy v mapě a mapové symboly (vkládané přes dialog Key Points).
Nastavení projektu
- Vytvořte nový projekt "Project -> New , Ctrl + N" a v okně Project paramaters nastavte:
- Velikost gridu (Terrain grid size) na 512x512. Jde o počet vertexů terénu.
- Velikost čtverce gridu krajiny(Terrain cell size) na 10, jedná se o vzdálenostz mezi vertexy v ose X/y v metrech.
- Velikost terénu (Terrain size) se nastaví automaticky na 5120x5120 (metrů^2).
- Velikost satelitní mapy(Satellite Grid) - klikněte na tlačítko "Calculator" a v dialogu Satellite grid calculator zadejte do velikosti obrazu (Image size) rozměr textury, kterou budete později importovat. Pokud 1 px vstupního rastru odpovídá 1 čtverečnímu metru, lze nastavit 5120. Calculator doplní potřebné hodnoty automaticky. Klikněte na Apply proposed a pak Close.
- Ujistěte se, že v Texture Layers je nastavena hodnota 40x40 m. Jde o čtverec, na který se mapují detailní textury (více dále)
Tip: Podrobnější popis Project parameters najdete zde:
Tvorba satelitní textury a masky
- V menu Tools vyberte Project Preferences a ve Folder - Textures zadejte cestu k adresáři, do něhož se budou generovat textury terénu - ca\desert\data a klikněte na "OK". Nastavení adresáře pro textury je důležité pro import textury povrchu.
Tip: Textury mohou být generovány do jiného adresáře a později baleny jako samostatné PBO.
- Uložte projekt (Project > Save, CTRL+S) třeba jako my_desert.pew.
Terén
Ve Visitoru existuje několik možností, jak importovat terén. Pro účely tutorialu je k dispozici XYZ soubor (text vygenerovaný pomocí MicroDEMu - MicroDEM Homepage) nebo PNG soubor s PBL param souborem. Optimální formát importovaného PNG jsou odstíny šedé(grayscale) s barevnou hloubkou 16bit. Poznámka: XYZ soubor zcela neodpovídá současné podobě terénu Rahmadi.
- V menu Project klikněte na Import Terrain from picture.
- Nalistujte PBL soubor ca\Desert\Source\Terrain\terrain.pbl. Ujistěte se, že ve stejném adresáři je i soubor terrain.png, na který tento soubor odkazuje.
Tip: Visitor umí terén do PNG také ukládat přes volbu "Project" > "Export Terrain into picture...". Někdy je praktické vytvořit hrubý terén a ten potom dále upravovat v editoru rastrů.
- Nyní se importoval terén. Pro kontrolu můžete zapnout vrstevnice (ikona Show contours) a upravit jejich rozsah pomocí nastavení zobrazení (ikona Actual preferences), kde lze nastavit interval a počáteční výšku kreslení (oboje v m).
- Barvy terénu, moře, vrstevnic a interval elevace lze nastavit ve View > Define configuration (Ctrl+F) v záložce Colors - height.
- Vykreslování terénu si můžete nastavit ve View > View settings, CTRL+Q nebo přímo v toolbaru.
Tip: Pro lepší představivost o členitosti terénu zaškrtněte "Show shadows".
- Import terénu z XYZ souboru přes Project > Import Terrain from XYZ.
Import satelitní textury a masky povrchů
Tento import probíhá pomocí Tools > Import satellite & mask. Doporučuje se neprovádět import s připojeným Buldozerem. Je třeba mít v adresáři Source připravena tato data:
- SatTextureName_lco.png (připraveno jako sat_lco.png)
- SatSurfaceMaskName_lco.png (připraveno jako mask_lco.png)
- layers.cfg
- mapLegend.png (soubor není třeba měnit)
V adresáři Data musí být připraveny soubory detailních textur povrchů. Každý povrch má stejné jméno s různými příznaky:
- surfaceName_MCO.png - mapa, která se mapuje na čtverec odpovídající satelitnímu gridu a jen se multiplikuje přes satelitní texturu
- surfaceName_LCO.png - detailní textura, která spolu s normálovou mapou na blízko nahrazuje satelitní a MCO texturu
- surfaceName_NOHQ.png - normálová mapa pro LCO texturu
Tyto povrchy mají odpovídající definici tzv. clutteru, malých objektů kamení nebo trávy, které se generují automaticky na daný povrch, není-li překryt Roadway LODem nějakého modelu.
Po úspěšném importu se ve složce Data pracovního adresáře mapy (např. P:\ca\Desert\Data\) vytvoří složka Layers, kam Visitor ukládá nařezané segmenty mapy a masky (PNG) a soubory RVMAT pro každý čtverec. Při přegenerovávání není třeba tato data mazat, Visitor je schopen rozlišit změněné čtverce a přepsat jen nový obsah, což zrychluje práci. Při startu Buldozeru se potom všechny PNG automaticky převedou do formátu PAA.
Satelitní textura
Tato textura se mapuje na terén. Ve hře existuje jako skupina překrývajících se čtverců. Jejich dělení a překryv kontroluje hodnota Satellite grid v Tools > Project Parameters.
- Připravte PNG soubor, jež bude mít rozměr určený při výpočtu hodnoty Satellite Grid v Project Parameters, v mapách v Armě 1 px odpovídá 1 m^2, takže velikost mapy v metrech je stejná jako velikost rastru v pixelech.
- Soubor by měl být vždy pojmenován s příznakem _lco, což zaručí jeho správnou konverzi.
Tip: Pokud s tvorbou satelitní textury experimentujete a často generujete novou, lze použít i příznak _draflco, který zajistí rychlejší, ale méně kvalitní převod segmentů do PAA.
Maska povrchů
- Velikost masky povrchů by měla být stejná jako velikost satelitní textury.
- Barvy povrchů by měly být diskrétní, bez rozmytých okrajů, antialiasingu apod. (ovšem plynulý přechod je možný, pokud je v přechodu dodržena posloupnost odstínů jako v mapLegend.png).
- Na 1 segment satelitní masky (Visitor masku a satelitní texturu dělí stejně) je možné použít jen 4 povrchy kvůli převodu segmentů masky do 4 odstínů (černá, červená, zelené, modrá). Zpočátku je lepší použít pouze 4 povrchy v celé mapě a přidávat až později, když je možné odvodit polohu švů a překryvů z již vygenerovaných segmentů.
Definice povrchů v layers.cfg
- Hodnoty RGB v layers.cfg musí odpovídat odstínům použitým v masce.
- Třída odpovídá 1 povrchu a odkazuje na vlastní set detailních textur.
- Pokud použijete stejné názvy povrchů jako v Armě, podle jména detailních textur se budou zobrazovat i tzv. cluttery.
class Layers ///List of layers used in map
{
class pisek
{
texture = "ca\desert\data\pisek_mco.png"; ///Multiplied overlay texture
material="ca\desert\data\pisek.rvmat"; ///File defining use of detailed textures
};
class travajih
{
texture = "ca\desert\data\travajih_mco.png";
material="ca\desert\data\travajih.rvmat";
};
class mesto2
{
texture = "ca\desert\data\mesto2_mco.png";
material="ca\desert\data\mesto2.rvmat";
};
class pole1
{
texture = "ca\desert\data\pole1_mco.png";
material="ca\desert\data\pole1.rvmat";
};
};
class Legend ///
{
picture="ca\desert\Source\mapLegend.png"; ///Path to mapLegend file
class Colors
{
///Color names should correspond to surface layer names
pisek[]={{255,255,0}};
travajih[]={{0,255,0}};
mesto2[]={{0,0,255}};
pole1[]={{99,55,0}};
}
};
Vkládání a editace objektů
Vložení do seznamu objektů - definice templatu
- Nejprve je nutné do seznamu objektů (Panel of objects) vložit objekty, které budete používat, pomocí menu Tools > Nature/Artificial Objects. V závislosti, do které skupiny objekt vložíte, se bude zobrazovat nebo skrývat při aplikaci zobrazovacího filtru na daný typ objektu, další význam toto rozdělení nemá.
- Objekty (*.P3D) je možné vkládat/smazat pomocí tlačítka Add/Browse. Ve Visitoru pak existuje jako tzv. object template, definovaný názvem, modelem a rozsahem znáhodnění při vkládání.
- Mazání objektů ze seznamu (Delete) je možné pouze pokud se template nevyskytuje v mapě.
- U vybraného objektu v okně "Defined Objects" můžete změnit jeho název (Name), způsob kreslení (Draw) a randomizaci velikosti, náklonu a orientace objektu (Randomize object).
Vložení objektu do mapy
- Vyberte objekt se seznamu (Panel of objects) a jednoduchým kliknutím (LMB) ho vložíte do mapy.
- Jednoduchým kliknutím označíte objekt, který pak lze:
- smazat (klávesa Delete)
- přemístnit tažením myší
- změnit jeho vlastnosti (Object properties) dvojklikem nebo klavesou Enter. Lze měnit:
- pozici objektu (Object position)
- natočení objektu kolem Z-ové osy (Rotate selected object)
- umístění objektu nad/pod terénem (Elevation)
- velikost objektu (Object size)
- Tažením LMB lze vybrat více objektů, s držením CTRL/SHIFT lze ubrat/přidat objekty ve výběru.
Tip: Pokud najedete nad požadovaný objekt kurzorem myši a zmáčknete klavesu O, v seznamu objektů (Panel of objects) se vybraný objekt zvýrazní.
Pojmenované selekce
- Pokud není panel selekcí aktivní, aktivujte View > Named Selections Panel.
- Když jsou vybrané objekty, je možné vytvořit z nich selekci, která se dá samostatně skrývat, zamykat apod.
- Kontextové menu pro obsluhu seznamu selekcí vyvoláte pomocí RMB.
Editace terénu a objektů v Buldozeru
- Jakmile skončí import textur a chcete začít s editací objektů, je možné spustit Buldozer. To je možné přímo ve Visitoru buďto z menu (Project > Connect to Buldozer), pomocí CTRL+F7 nebo kliknutím na ikonu s červeným vykřičníkem v toolbaru.
- Při prvním startu nebo pokud jste přegenerovali satelitní textury bude Buldozer převádět textury na formát PAA, což může chvíli trvat. I kdyby aplikace neodpovídala, nesnažte se ji ukončit a počkejte, až se textury převedou.
Ovládání:
- Pohyb po mapě je možný pomocí myši.
- Rotace kamery probíhá pomocí numerické klávesnice (2,4,6,8).
- Oddálení kamery od kurzoru pomocí +,-.
- Defaultní vzdálenost kamery pomocí 5 na num. klávesnici.
- LMB vybírá objekt (při výberu ve Visitoru se objekt automaticky vybere i v Buldozeru).
- Pomocí držení RMB a tažením do stran lze objektem otáčet (počátek otáčení je daný středem bíle krychle).
- Klávesa LShift akceleruje rotaci kamery a pohyb kurzoru.
- Pomocí H se zapíná šipka označující nejbližší vertex terénu.
- U/J zvýší/sníží výšku vertexu o 1 metr.
- I/K zvýší/sníží výšku vertexu o 5 metrů.
Tip: Pokud nevidíte editační kurzor a šipku označující vybrané objekty nebo vertexy terénu, nastavte si použití obsahu addonů UI.pbo v textovém souboru, který se načítá při spuštění Buldozeru. Popis najdete na stránce Visitor.
Pakování ostrova
- K tomu, aby bylo možné ostrov zabalit a prohlédnout si ve hře, je třeba mít funkční config.cpp a WRP soubor, textury ve formátu PAA a související RVMAT soubory.
- Používáte-li v mapě vlastní objekty, měly by být před spuštěním hry zabaleny do svého PBO souboru a přidány do ..\Arma\Addons\.
- Struktura zde popsaná je přizpůsobena pracovním strukturám a zvyklostem BI. Utilita sloužící k balení PBO zahrne do archivu všechny soubory v adresáři ..\ca\Desert, proto je vhodné mít zvláštní adresář připravený k balení a v něm uchovávat jen ty soubory, které jsou pro funkci addonu třeba.
Tip: Pokud z nějakého důvodu mapu nevidíte v nabídce ostrovů, po načtení do editoru misí hra padá nebo nevidíte textury povrchů, zkontrolujte cesty k souborům v config.cpp a RVMAT souborech detailních textur v adresáři Data. Ujistěte se, že soubory, na něž cesty odkazují, skutečně existují.


