Škola kartografie - 4. díl (skripty)

. Publikováno v Heroes 7. Zobrazení: 2194

Předchozí díly: Škola kartografie - 3. díl (objekty a budovy)Škola kartografie - 2. díl (tvorba terénu)Škola kartografie - 1. díl (seznámení s editorem)
Fórum: Škola kartografie (základní editor map)


V posledním díle věnovaném základnímu editoru map se seznámíte se základním skriptováním - vytvářením úkolů, událostí a textů a dialogů. Pokud rádi zkoumáte již vytvořené a učíte se z toho, co již bylo vytvořeno, můžete si zde stáhnout hotovou mapu a otevřít si ji přímo v editoru. Mapa je komprimována ve formátu ZIP, nejprve ji tedy extrahujte (např. programem WinRar) a poté přesuňte do složky pracovního místa editoru map, jak je popsáno níže.

Mapa: Prvni_2.umap Soubor: Prvni_2.zip (4,5 MB) Nahrát do: C:\Users\VašeJméno\Documents\My Games\Might & Magic Heroes VII\MMH7Game\EditorWorkspace

Teď, když je připraven povrch mapy a jsou rozmístěné budovy a objekty, je na čase "oživit" mapu nějakými úkoly a událostmi.
Klikněte tedy na ikonu skriptů Script Tool  čímž se vám otevře hlavní okno skriptů.

 

Najdete zde: Quests (úkoly), Events (události), Narration (texty), Scenes (scény). Vyberte první záložku. Máte-li zde předefinované úkoly, všechny je vymažte (kliknete pravým tlačítkem myši na úkol a dáte Delete).
Nyní klikněte pravým tlačítkem myši na Primary Quests (primární úkoly) a dejte vytvořit nový úkol (Add Primary Quest). Vyplňte detaily úkolu dle výše uvedeného obrázku:
Player - určuje hráče, kterému bude tento úkol zadán.
Title - nadpis úkolu (bude zobrazen ve hře, takže pište i s diakritikou).
Description - popis (krátký) úkolu.
Active at start - určuje, zda je úkol aktivní už od začátku (bude vám zadán hned po spuštění) nebo jej později aktivujete pomocí události.
Reward Text - popis odměny (zobrazí se po splnění úkolu).
Reward 1/2/3 - odměny za splnění úkolu.
If Quest completed do - pokud je úkol splněn, pak se stane...
If Quest failed do - pokud úkol nebyl splněn (selhal), pak se stane...

 

Nyní jste vytvořili jakousi schránku/obal úkolu, ale aby mohl fungovat, musí mít i nějaké cíle. Tyto cíle vytvoříte tím, že na název úkolu Astrální klíč kliknete pravým tlačítkem myši a zvolíte Add Objective.
Každý z cílů může být plněn buď paralelně (všechny cíle můžete plnit nezávisle na sobě a zobrazí se okamžitě) nebo sériově (můžete plnit jen první cíl a po jeho splnění se zobrazí cíl následující). Nejvíce se využívá sériové uspořádání cílů, kdy tak, jak plníte úkol, dostáváte nové a nové cíle.
Vyplňte tabulku dle obrázku výše:
Editor Title - pracovní název (zobrazuje se pouze v editoru, nikoliv ve hře).
Description - stručný popis cíle.
Activation Stage - pořadí aktivace cílů (1-2-3... = sériové, 1-1-1... = paralelní).
Ignore Fail - pokud cíl nesplníte správně, bude i tak považovaný za splněný (jinak ponechte hodnotu False).
Show on minimap - nad objektem na mapě se zobrazí "!" a na minimapě bude ikonka koruny (pro usnadnění hledání cílů úkolu).
Winning Condition - podmínka splnění (lze nechat prázdné a splnit podmínku pomocí události).
Losing Condition - podmínka nesplnění.
Aby hráč věděl, kde se nachází další cíl úkolu (tuto volbu je možno kdykoliv ve hře vypnout), vyberte z nabídky "Show on minimap" položku Custom, čímž určíte, že cíl bude označen manuálně a ne automaticky. Přidání označení cíle úkolu provedete kliknutím pravým tlačítkem myši na položku Objects for minimap trackings (těchto označení může být k jednomu cíli i více) a dáte Add.

 

Ze seznamu objektů vyberte NPC Vládce Bouří.
Podmínku pro úspěšné splnění tohoto cíle přidáte dle obrázku výše: Winning Condition > Add Hero Condition > Has Hero with Spell. Podmínkou bude tedy získat kouzlo, které se daný hrdina naučí.

 

Nyní klikněte pravým tlačítkem myši na nově vytvořenou podmínku Any Hero has any Spell a dejte Edit Condition, čímž si ji upravíme.

 

Spell nastavte na Ice Strike a Player na Player 1. Tím řekneme skriptu, že tato podmínka bude splněna jen pokud se kouzlo Ledový úder (Ice Strike) naučí jakýkoliv hrdina hráče 1. Pokud v Use Interacting Hero zvolíte True, pak bude kontrolován pouze hrdina, který tuto podmínku spustil.
Pozn.: bohužel aktuálně existuje chyba, která brání naučení se kouzla (byť i ze skriptu) hrdinou, který nemá danou magickou dovednost (ač má dostatek magické znalosti). Takže pokud například hrdina nemá dovednost Magie vody, nemůže se ze skriptu naučit kouzlo magie vody. Snad bude tato chyba brzy opravena, aby vše fungovalo tak, jako před tím.

 

Vytvořte druhý cíl dle obrázku výše, který se bude týkat poražení ohnivého démona. Nezapomeňte nastavit Activation Stage na Stage 2, aby se tento cíl spustil až po splnění cíle předchozího. Jinak by se oba zobrazili naráz.

 

Jako podmínka nám poslouží porážka konkrétní armády (hrdiny). Zvolte tedy Démona Ohně.

Abychom mohli pokračovat dál, bude třeba vytvořit strážce pro Astrální klíč. Přepněte se do podzemí a před klíč umístěte Světelné elementály. Klikněte na ně dvakrát myší a nastavte ve vlastnostech, aby za každých okolností bojovali: Negotiation Override > Fight.

 

Vytvořte další cíl (3) a dle obrázku jej připravte na hledání studny a následný boj se strážci. Opět použijte podmínku Armies defeated.

 

Nastavte jednotku Light Elemental.

 

Aby měl klíč co odemykat, vytvořte bránu. Z Neutral Buildings přetáhněte na ostrůvek Dimension Channel (portál).

 

A aby brána nevypadala tak obyčejně, změníme bravu na azurovou (Cyan) a přidáme vlastní jméno brány.

 

Zbývá už jen poslední cíl: aktivovat bránu a projít skrz. Samozřejmě bychom mohli vytvořit nějaký naskriptovaný mechanismus aktivace brány, ale pro ukázku bohatě postačí podmínka, že hráč vstoupil do brány.
Později si můžete vyzkoušet (v pokročilém módu editoru) vytvořit unikátní artefakt, který po rozkliknutí spustí nějakou událost, sešle kouzlo nebo přidá další předmět do inventáře.
Vytvořte tedy další cíl (4) dle obrázku výše a přidejte podmínku Has visited sites a zvolte objekt Vesmírná brána do jiného světa...

 

Když je základní kostra úkolů připravena, můžete začít vytvářet události. Přepněte se na záložku Events, klikněte pod ní pravým tlačítkem myši a vyberte Add new Event.

 

První událostí bude deaktivování brány, kterou následně aktivuje jiný skript v momentě, kdy hrdina získá klíč.
Události mají následovnou základní kostru:
Name - pojmenování události v editoru (ve hře se nezobrazuje).
Status (Active/Inactive) - udává, zda je událost aktivní či neaktivní. Aktivní událost bude přítomna ve hře hned od začátku a po každé akci se bude kontrolovat, zda nedošlo ke spuštění této události a ke splnění podmínek. Neaktivní událost lze později v průběhu hry aktivovat pomocí skriptu.
Execute - počet spuštění události: Once (jednou a dost), Multiple (vícekrát - specifikujte v položce Count), Always (opakovaná událost bez omezení).
Triggers - spuštěče (co se musí stát, aby se daná událost spustila).
Conditions - podmínky (co musí platit, aby se událost mohla spustit).
Actions - akce (co událost způsobí).
První tedy připravíme spouštěč a to v okamžiku, kdy se hra nahraje (Adventure Map Loaded). Je to ještě před tím, než získáte kontrolu nad hrdinou a provedete první tah.

 

Podmínky zde nebudou třeba, takže rovnou nastavíme akce: Add Destructible Action > Manipulate Destructible State. Řekneme tak skriptu, aby v momentě nahrání mapy zničil (u brány spíše deaktivoval) teleport.

 

Zničit/opravit můžete buď objekty (mosty) nebo místa (teleporty, brány do podzemí). Vyberte tedy Vesmírnou bránu a operaci Destroy.

 

Druhou událostí bude aktivování brány. Spouštěčem zde bude okamžik, kdy hrdina sebere Astrální klíč. Zvolte tedy Add Hero Trigger > Hero picked up item.

 

Vyberte předmět a opět hráče 1. Pokud budete chtít, aby se událost spustila i pro ostatní hráče, tuto podmínku vynechejte a hrdina, který jako první předmět vezme, spustí událost.

 

Akce bude podobná té předchozí, pouze Operation zvolte Repair.

 

K událostem se ještě vrátíme. Teď se podíváme na další záložku a tou je Narration (texty). Klikněte pravým tlačítkem myši na Dialogues (dialogy) a dejte Add new Dialogue.

 

Dialogy mají v sobě jeden malý bug a to je způsob, jak přidávat jednotlivé texty k postavám. Prozatím to není možné u volby HDG - Hero Dialogue, takže je třeba použít malý trik. Vyberte Dialogue Type CIN - Council Intervention a vytvořte si prozatím prázdná pole na budoucí texty.

 

Přidání textů (řádků dialogu) provedete kliknutím pravého tlačítka myši na název dialogu a výběru Add new line to Dialogue (to proveďte 6x).

 

Nyní změňte typ dialogu na HDG - Hero Dialogue. Tímto trikem získáte klasické okno s portréty protagonistů, kteří se budou střídat v textech (přímých řečech). Prozatím není možné do hry importovat tzv. voiceover, nebo-li dabing, ale tato volba je v editoru přístupná (i když nefunkční). Do budoucna snad bude možné přidat i hlas.

 

Teď již můžete dopsat dialogy. Nezapomínejte přepínat portréty mluvčího (Speaker) a pozici (Position).
Důležitá poznámka: pokud si vytváříte vlastního hrdinu, pak volte vždy takové jméno, aby neobsahovalo diakritiku! Editor neumí tyto znaky přiřadit k dialogům a nebude možné takového hrdinu zvolit kvůli portrétu a jménu do dialogového okna. Takže náš Vládce Bouří bohužel nepůjde vybrat. Naštěstí jej můžeme nahradit starým dobrým Solmyrem. Pokud byste chtěli použít vlastní portrét i ikonu, pak pojmenujte hrdinu například Stratos (bez háčků a čárek) a to, že jde o vládce bouří můžete zmínit v dialogu.

 

Vyberte tedy Solmyra a pozici vpravo (Right). Takto se budou hrdinové střídat.

 

Po dialozích si ještě vyzkoušejte klasické textové okno, jak jej znáte z předchozích dílů Heroes.
Název je opět jen pracovní a používá se pouze v editoru. Text je to, co hráč nakonec uvidí ve hře.

 

Když máme texty a dialogy připravené, můžeme se vrátit zpět k událostem.
Vytvořte událost dle obrázku výše a jako spuštěč použijte Add Hero Trigger > Talked to NPC, který se spustí v okamžiku, kdy si "promluvíte" s NPC na mapě. Ono mluvení je de facto jen setkání se s NPC, které má nastavený režim mluvení a je nad ním malá bílá bublina.

 

Jako NPC army zvolte Vládce Bouří a opět hráče 1.

 

Akce bude naučení kouzla pro hrdinu, který se s NPC setká.

 

Kouzlo vyberte Ice Strike a Use interacting army nastavte na True. Nezapomeňte poté zkontrolovat, zda hrdina umí magii vody.

 

Další akcí bude zaměření kamery na vstup do podzemí, který se po naučení kouzla zpřístupní/aktivuje.

 

Camera target nastavte na Kamennou bránu. Follow target zajistí, že kamera bude sledovat cíl (dobré zvláště u pohybujících se hrdinů) a Take camera control from player zase na chvilku zamezí, aby hráč pohyboval kamerou a přerušil tak pohled spuštěný přes skript.

 

Další akcí bude spuštění dialogu pomocí Add Quest Action > Start Dialogue. V následném okně vyberte předem vytvořený dialog hrdiny s Vládcem bouří.

 

Jelikož se akce přidávají postupně, ale spouští se odshora dolů, bude třeba dialog přesunout tak, aby se spustil jako první.
To provedete kliknutím pravým tlačítkem myši na poslední položku akcí a poté dvakrát vyberete Move Action Up.

 

A nyní ještě přidejte akci pro opravu/zprovoznění brány do podzemí. Přidáte Manipulate Destructible State a vyberete Kamennou bránu a Repair.

 

A jako poslední přidejte zobrazení textu (stejně jako dialog, pouze zvolíte Text) pro naučení kouzla.

 

Další událostí bude zničení/deaktivování vstupu do podzemí, aby se hráč nedostal pod zem dříve, než bychom tak chtěli. Spouštěč bude při nahrání mapy a akce bude zničení Kamenné brány.

 

Pokud chcete, aby se počítačem řízený hráč, resp. NPC nepohybovalo a vůbec nevyvíjelo aktivitu, existuje způsob, jak mu v tom zabránit. Vytvořte událost pro uspání démona a v akci mu nastavte tzv. Hibernation State for Hero AI. Je to vlastně jakési "zmražení", aby NPC zůstalo na stejném místě, kde jste jej nechali a nepobíhalo po všech čertech.

 

Ve specifikaci nastavte nový hibernační stav (New Hibernation State = True) a jako Target army vyberte Démona Ohně (hráč 2).

 

Užitečným pomocníkem pro skriptování a spouštění událostí vůbec jsou jakési nášlapné plošinky, které se následně propojí s událostmi a ke spuštění dojde, jakmile hrdina vstoupí nebo opustí danou oblast.
Z nabídky Editor Objects vyberte Cell Trigger Tile, což je jedna dlaždice a umístěte ji podle obrázku výše. Všimněte si, že je umístěna tak, aby jí hrdina musel projet (z obou stran je pohyb blokován).

 Pro tento účel vytvořte další událost a spouštěč dejte: Add Hero Trigger > Cell Event.

 

Outcome má dvě volby: OnArmyEnter a OnArmyExit. Vyberte první, která se spustí jakmile někdo vstoupí na dlaždici (druhá se pak spouští až po opuštění dlaždice). Asignee je ona dlaždice, rozlišující se čísly. Pro náš případ tedy 0. Hráč opět 1. Tímto se spustí tato událost v momentě, kdy hrdina vstoupí na dlaždici. Jelikož chceme uvolnit cestu dále, přidáme podmínku, aby byl Démon ohně poražen (jinak by se událost spustila dříve).

 

Jako akci vyberte Add Hero Action > Remove Heroes/Armies, čímž odstraníme NPC blokující cestu.

 

Target army vyberte Vládce Bouří, který bude skriptem odstraněn.

 

Na chvilku si odskočíme do záložky textů, kde vytvoříme krátký text pro uvolnění cesty (viz obrázek výše).

 

Nyní text vložíme jako další akci (Add Quest Action > Start Text).

 

Jelikož by se měl text objevit ještě před tím, než NPC zmizí, posuňte jej nahoru.

 

Poslední neprozkoumanou záložkou jsou scény (Scenes). Přepněte se a vytvořte scénu, která nahradí "průlez" hrdiny studnou do podzemí. Vytvoříme si vlastně takovou malou režijní zkratku.
Přidejte akci Add Hero Action > Move to Tile, díky čemuž necháme hrdinu, aby se přemístil na námi danou značku.

 

Můžete buď udat přesnou polohu pomocí koordinátorů X, Y a indexu mřížky (povrch, podzemí), ale jelikož už máme připravenou značku, využijeme jí (Use tile marker as target). Zvolte Tile Marker 0, Teleport = True (hrdina nepůjde, ale teleportuje se), Camera follows = True (kamera následuje hrdinu) a Use Interacting Army = True (bude použit hrdina, který spustil akci).

 

Zpět na záložku událostí a vytvořte další událost pro přesun do podzemí pomocí studny dle obrázku výše. Hero visits Shell zde využije onen modrý krystal, který se umí maskovat za cokoliv jiného a hrdina jej může navštívit (jak jsme si ukazovali dříve). Zde se maskuje za studnu a při navštívení přesune hrdinu do podzemí na ostrov.

 

Pomocí akce aktivujeme NPC scénu, kterou jsme si před chvilkou připravili.

 

Na začátek mapy dejte hrdinu a nějaké jednotky, ať můžete celou mapu otestovat bez zbytečného zdržování (nezapomeňte vybrat hrdinu s magií vody v dovednostech).

 

Pokud jste tak ještě neučinili, v nastavení mapy () v poslední záložce vypněte všechny standardní podmínky výhry/prohry (Disabled). Tím si zajistíte, že se mapa bude řídit vašimi úkoly a nikoliv těmi standardními.

 

Tím pádem musíte ještě vytvořit úkol, který nahradí podmínku prohry. Zde to bude ztráta hrdiny.

 

Jednoduchá podmínka může být moment, kdy hráč nemá žádného hrdinu (Add Player Condition > Player has no hero). Což nám poslouží dostatečně. Ovšem pokud si hráč může díky startovnímu městu najmout více hrdinů, pak už tato podmínka nestačí. Pokud chcete, aby prohra nastala v okamžiku, kdy konkrétní hrdina zemře, pak použijte následující: Add Army Condition > Armies Defeated (Armies to Defeat - Add - konkrétní hrdina). Všimněte si, že pokud přidáte více podmínek, vytvoří se mezi nimi logický operátor OR/AND. Můžete tak nastavit, že aby hráč prohrál musí platit obě podmínky (AND) či alespoň jedna z uvedených (OR).
Nyní si zkuste otestovat mapu 

Co se stalo? Naše milé NPC Vládce Bouří se nám utrhl ze řetězu a zabil nás (alespoň si tím otestujete podmínku prohry :) ). Zapomněli jsme mu totiž nastavit hibernaci, aby zůstal pěkně na místě.

 

Vytvořte novou událost a nastavte nové NPC properties: NPC army = Vládce Bouří, NPC = True a Talks = True. Tímto si zajistíme, že budeme moci s Vládcem Bouří mluvit (NPC, Talks).

 

Druhá úprava je hibernace, která je shodná, jako uspávání démona.

Když spustíte mapu znova, NPC už bude stát na svém místě a při setkání s vámi se aktivuje dialog (bohužel jméno Vládce Bouří nelze použít kvůli diakritice, takže zůstal Solmyr).

A pokud budete pokračovat dál, při vstupu do portálu vás čeká sladké a zasloužené vítězství :)

Touto kapitolou se uzavírá minisérie Škola kartografie, ve které jste se seznámili se základy tvorby map v editoru pro Heroes VII. Sami jste viděli, že to není nic těžkého a pokud byste chtěli vytvořit pouze mapu pro více hráčů bez skriptů a úkolů, pak by to bylo ještě jednodušší a rychlejší.

Samozřejmě jsme vynechali a zjednodušili spoustu věcí. Editor totiž po přepnutí do tzv. Unreal módu nabízí téměř nekonečné možnosti úprav všeho, na co si jen vzpomenete. Jen namátkou to, co je možné v tomto pokročilém režimu vytvářet:

  • vlastní hrdiny s unikátními dovednostmi, specializacemi, portréty
  • vlastní jednotky se speciálními schopnostmi
  • vlastní artefakty a kouzla
  • vlastní města a neutrální budovy
  • velitelské (boss) jednotky na způsob Heroes VI několikanásobně větší než ostatní jednotky na mapě
  • puzzle (hádanky)
  • měnit počasí a denní dobu
  • a mnohé další...

K tomu už ale budete potřebovat další programy na úpravu obrázků, textur, 3D modelů.

Někdy v budoucnu vám poodhalím i roušku složitějšího modování, třeba na příkladu vytvoření úhlavního nepřítele (boss) z běžné jednotky.

Na shledanou v Univerzitě kartografie ;)

Tags: Heroes VII Mapa Editor

Komentovat články mohou pouze registrovaní uživatelé. Zaregistrujte se / přihlašte se na stránkách pro odesílání komentářů.