Blueprints Visual Scripting

Z Wikipedie, otevřené encyklopedie

Blueprints Visual Scripting (Vizuální skriptování pomocí rozhraní Blueprints) je dle svého názvu systém pro skriptování založený na vizualizaci. Přesněji řečeno, jedná se o systém vytvořený pro účely skriptování her, který je založen na koncepci node-based. Pod pojmem node-based si můžeme představit rozhraní, které je tvořeno diagramy, jež jsou vzájemně propojeny vazbami. Stejně jako u jiných skriptovacích jazyků se Blueprinty používají k definování objektově orientovaných tříd nebo objektů v herním enginu, v případě blueprintů se jedná o jeden z nejlepších herních enginů současnosti, Unreal Engine.

Flexibilita a extrémní výkon jsou hlavními výhodami blueprintů, které výrazně usnadňují práci herním designérům a programátorům, kteří se starají o často složitou herní logiku. Výhody použití vizuálního skriptovacího jazyka jsou řešeny tím, že blueprinty jsou vytvářeny jako již hotové koncepty a nástroje nebo dokonce již hotová řešení, které jsou plně modifikovatelné pomocí jazyka C++, nejběžnějšího jazyka pro vývoj multiplatformních her jak pro platformu PC, tak konzole od Nintenda, či PlayStationu od Sony nebo Xboxu od Microsoftu napříč všemi generacemi.

Anatomie Blueprintů[editovat | editovat zdroj]

Blueprints můžeme jako částečně hotové řešení, které lze plně modifikovat. Toto řešení musí mít nějakou strukturu. Tuto strukturu nazýváme anatomie Blueprintů, která je na rozdíl od anatomie člověka nebo zvířete na úrovni kyberpunku, a to díky téměř neomezenými možnostmi rozšíření pomocí jazyka C++.

Anatomie Blueprintu je tvořena z dvou základních částí, Komponent a grafů.

Komponenty[editovat | editovat zdroj]

Někdy se stává, že Blueprinty nemusí obsahovat skript a nemusí mít přidělenou interakci na scéně. Příkladem může být zeď, která ohraničuje úroveň a vymezuje její koridory. Taková zeď je pěkným reprezentativním příkladem toho, že tento asset (tzv. hard-surface asset) potřebuje pouze síť (tzv. mesh) a nějakou texturu.[1] Vzhledem k tomu, že zeď je již definována blueprintem, má kolize a hráč jí nemůže projít.

Použití komponent umožňuje rychlejší tvorbu úrovně. Samozřejmě existují komponenty, které jsou již hotové a mají naskriptované jádro, které umožňuje interakci s hráčem nebo jinými objekty.[2]

Grafy[editovat | editovat zdroj]

Grafy lze definovat jako část, která zastřešuje herní chování. To, co je navrženo, v podstatě představuje chování výsledné hry. Každý graf obsahuje návrhový skript, který se spouští za seznamem komponent při vytváření instance. To znamená, že umožňuje uživateli dynamicky měnit vzhled objektu nebo aktéra.

Event Grafy – Grafy událostí[editovat | editovat zdroj]

EventGraph obsahuje node graf, který používá události a funkce k provádění reakcí na herní události, které jsou propojeny s Blueprinty. EventGraph slouží k definování funkcí, nastavení interaktivity a dynamických reakcí. Používá se jako vstupní bod pro přidání jedné nebo více událostí a jejich následné propojení pomocí omezení pro určení řízení toku.

Konstrukční skript[editovat | editovat zdroj]

Konstrukční skript se spouští po seznamu Komponent, když je vytvořena instance třídy Blueprintu. Obsahuje node graf, který se spustí a umožní instanci třídy Blueprint provádět inicializační operace.

Funkce[editovat | editovat zdroj]

Funkce jsou typem node grafů patřící k určitému Blueprintu, které lze spustit nebo zavolat z jiného grafu v rámci Blueprintu. Funkce mají jediný vstupní bod označený pomocí node s názvem funkce obsahujícím jediný výstup. Když je Funkce volána z jiného grafu, výstup se aktivuje a způsobí spuštění připojené sítě.[3]

Proměnné[editovat | editovat zdroj]

Proměnné jsou vlastnosti, které obsahují hodnotu nebo referenci na objekt nebo aktéra ve světě. Tyto vlastnosti mohou být přístupné interně pro Blueprint, který je obsahuje, nebo mohou být přístupné externě, takže jejich hodnoty mohou upravovat návrháři pracující s instancemi Blueprintu umístěnými v úrovni.[4]

Typy Blueprintů[editovat | editovat zdroj]

Blueprinty mohou být několika typů, z nichž každý má své specifické použití, od vytváření nových typů přes skriptování událostí na úrovni až po definování rozhraní nebo maker, která mají být použita jinými Blueprinty.[5]

Blueprintová třída[editovat | editovat zdroj]

Třída Blueprint, často zkracovaná jako Blueprint, je aktivum, které umožňuje tvůrcům obsahu snadno přidávat funkce nad stávající herní třídy. Blueprinty se vytvářejí v editoru Unreal Editor vizuálně, nikoli psaním kódu, a ukládají se jako prostředky v balíčku obsahu. V podstatě definují novou třídu nebo typ aktéra, který lze poté umístit do map jako instance, jež se chovají jako jakýkoli jiný typ aktéra.

Blueprint obsahující pouze data[editovat | editovat zdroj]

Blueprint obsahující pouze data je třída Blueprint, která obsahuje pouze kód (ve formě node grafů), proměnné a komponenty zděděné od svého rodiče. Ty umožňují tyto zděděné vlastnosti upravovat a měnit, ale nelze přidávat žádné nové prvky. Jsou v podstatě náhradou archetypů a lze je použít k tomu, aby návrháři mohli upravovat vlastnosti nebo nastavovat prvky s variacemi.

Blueprinty pouze pro data se upravují v kompaktním editoru vlastností, ale lze je také "převést" na plnohodnotné Blueprinty jednoduchým přidáním kódu, proměnných nebo komponent pomocí plnohodnotného editoru Blueprintů.[6]

Blueprint úrovně[editovat | editovat zdroj]

Blueprint úrovně je specializovaný typ Blueprintu, který funguje jako globální graf událostí pro celou úroveň. Každá úroveň v projektu má ve výchozím nastavení vytvořen vlastní Level Blueprint, který lze upravovat v editoru Unreal Editor, avšak prostřednictvím rozhraní editoru nelze vytvářet nové Level Blueprinty.

Události vztahující se k úrovni jako celku nebo ke konkrétním instancím aktérů v rámci úrovně se používají k vyvolání sekvencí akcí ve formě volání funkcí nebo operací řízení toku. Ti, kdo znají Unreal Engine 3, by měli tento koncept dobře znát, protože je velmi podobný tomu, jak v Unreal Engine 3 fungoval Kismet.

Level Blueprints také poskytují mechanismus ovládání pro streamování úrovně a sekvencer a také pro vazbu událostí na aktéry umístěné v úrovni.[7]

Blueprintové rozhraní[editovat | editovat zdroj]

Rozhraní Blueprint je kolekce jedné nebo více funkcí – pouze název, bez implementace – které lze přidat do jiných modrotisků. Každý Blueprint, který má přidané rozhraní, bude mít zaručeně tyto funkce. Funkce Rozhraní mohou mít danou funkčnost v každém z Blueprintů, který je přidal. V podstatě se jedná o obdobu konceptu rozhraní v obecném programování, které umožňuje, aby více různých typů Objektů sdílelo společné rozhraní a mělo k němu přístup. Zjednodušeně řečeno, rozhraní Blueprint Interfaces umožňují různým Blueprintům vzájemně sdílet a posílat si data.

Rozhraní Blueprint Interfaces mohou tvůrci obsahu vytvářet prostřednictvím editoru podobně jako ostatní Blueprinty, ale mají určitá omezení v tom, že nemohou:

  • Přidávat nové proměnné
  • Upravovat grafy
  • Přidávat komponenty[3]

Blueprint Macro Library – Blueprintová knihovna maker[editovat | editovat zdroj]

Knihovna Blueprintových maker je kontejnerem, který obsahuje kolekci maker nebo samostatných grafů, které lze umístit jako uzly do jiných blueprintů. Ty mohou ušetřit čas, protože mohou uchovávat běžně používané sekvence nodeů doplněné vstupy a výstupy pro provádění i přenos dat.

Makra jsou sdílena mezi všemi grafy, které na ně odkazují, ale při kompilaci se automaticky rozšiřují do grafů, jako by se jednalo o sbalený uzel. To znamená, že knihovny maker Blueprint není třeba kompilovat. Změny v makru se však projeví v grafech, které na toto makro odkazují, až když je překompilován Blueprint obsahující tyto grafy.[8]

Blueprint Utilities – Blueprintové Utility[editovat | editovat zdroj]

Blueprint Utility (zkráceně Blutility) je Blueprint určený pouze pro editor, který lze použít k provádění akcí editoru nebo k rozšíření funkcí editoru. Mohou vystavovat Události bez parametrů jako tlačítka v uživatelském rozhraní a mají schopnost vykonávat jakékoli funkce vystavené pro Blueprinty a působit na aktuální sadu vybraných Aktérů na obrazovce.[9]

Reference[editovat | editovat zdroj]

  1. HIRTLE, Nathan O.; STEPANUK, Julia E. F.; HEYWOOD, Eleanor I. Integrating 3D models with morphometric measurements to improve volumetric estimates in marine mammals. Methods in Ecology and Evolution. 2022-11, roč. 13, čís. 11, s. 2478–2490. Dostupné online [cit. 2022-12-09]. ISSN 2041-210X. DOI 10.1111/2041-210X.13962. (anglicky) 
  2. Justin Plowman. 3D Game Design with Unreal Engine 4 and Blender. 3. vyd. [s.l.]: Packt Publishing Limited, 2016. 252 s. ISBN 1785881469. 
  3. a b Blueprints Visual Scripting Overview. docs.unrealengine.com [online]. [cit. 2022-11-19]. Dostupné online. (anglicky) 
  4. SHAH, Ryan. Mastering the Art of Unreal Engine 4 - Blueprints. 2. vyd. [s.l.]: Lulu.com, 2014. 121 s. ISBN 9781291906103. 
  5. Blueprints Visual Scripting Overview. docs.unrealengine.com [online]. [cit. 2022-11-25]. Dostupné online. (anglicky) 
  6. MARQUES, Gonçalo; PEREIRA, David. Game Development Projects with Unreal Engine. 2. vyd. [s.l.]: Packt Publishing Limited, 2020. 822 s. ISBN 1800209223. 
  7. WHITTLE, Stephen; SHERIF, William. Unreal Engine 4.x Scripting with C++ Cookbook. www.amazon.com [online]. Packt Publishing Limited, 2019, 2019-03-29 [cit. 2022-11-19]. Dostupné online. (anglicky) 
  8. RACHEL, Cordone. Unreal Engine 4 Game Development Quick Start Guide. 1. vyd. [s.l.]: [s.n.], 2019. 202 s. ISBN 1789950686. 
  9. VALCASARA, Nicola. Unreal Engine Game Development Blueprints. 3. vyd. [s.l.]: [s.n.], 2015. 352 s. ISBN 9781784397777. 

Související články[editovat | editovat zdroj]

Externí odkazy[editovat | editovat zdroj]

C++, Unreal Engine, Objektově orientované programování, Blender