tvorbamap.cz

tvorbamap.cz

Navigace

bullet.gif

Domů


bullet.gif

Články


bullet.gif

Ke stažení


bullet.gif

Fórum


bullet.gif

FAQ



bullet.gif

Herní server


bullet.gif

Chat


bullet.gif

Převod jednotek



bullet.gif

Soutěž


bullet.gif

Síň slávy



bullet.gif

Podpořte nás


bullet.gif

Kontakt


bullet.gif

Vyhledávání


bullet.gif

RSS


Herní server

Shoutbox

Pro přidání zprávy do shoutboxu, musíte být přihlášeni.

30.08.2024 13:05:52
Ano, slouží od toho lights.rad file (případně jiný název). Nastavuje se v RAD sekci.
±0


12.05.2024 22:40:06
existuje v goldsrc možnost textur ktoré vytvárajú osvetlenie?
±0


13.01.2024 19:02:53
bohužel je rozmanitost map dost limitována enginem
±0


13.01.2024 19:01:49
na kotelně už je přes 10 let rc cars mód :)
±0


19.12.2023 22:14:07
Viděl jsem Rally mod na GoldSRC ale mod přímo na serveru v CS 1.6 mě teda překvapil :)

PS.: Já tak nemám rád ty nové shorts videa na výšku co se nedají posouvat.
±0


07.11.2023 12:13:08
Rocket League v CS 1.6? Kam se hrabe BMod...
https://www.youtu...svJz-FS8Yo
+1


04.11.2023 19:11:48
Jedli ste už niekto fritovaný snickers? je to pecka.
-1


15.12.2022 15:52:59
ako kto, praví Bruti mladnú :D inak aj napriek tomu, že je to tu už mrtve, všetko najlepšie;)
±0


13.12.2022 12:35:18
Zítra to bude 13 let od založení tohoto portálu.
To já jen tak, abyste si uvědomili, jak rychle stárnete.
±0


07.09.2022 23:43:14
Ahojte, po siedmich rokoch som sa nostalgicky pozrel spat na toto forum a ono este stale existuje :) Nedokazal som si obnovit stary ucet, email uz je zruseny tak aspon takto sa hlasim ;)
±0


VHLT 2. díl - Entity vrhají stín

(Pokročilejší tvorba)

Vítejte u druhého dílu ze série o VHLT - mocných kompilačních nástrojích.
Dnes si ukážeme, jak donutit entitu (brushovou), aby vrhala stín, dále jak tento stín vypnout/zapnout a nakonec se vyblbneme na barevných a blikajících stínech.

Opaque entity


Tato funkce byla teoreticky implementovaná už v ZHLT, ale byla totálně nepoužitelná. Entity stín sice vrhaly, ale naprosto náhodným směrem. To byla vždy zábava hledat kam se tentokrát poděl. Naštěstí tyhle doby jsou již za námi a my můžeme využívat Vluzacnovy skvělé kompilátory.
Nejdřív si vytvoříme mapu, na které můžeme dělat pokusy. Já udělal první místnost se světlem veprostřed, spawn a tři krabice, které budou vrhat stín. Každou převedeme zvlášť na func_wall. Pokud bychom mapu skompilovali, nevrhaly by žádný stín, světlo by procházelo skrz ně. Proto vlezeme do nastavení entity a všem nastavíme Light Flags na Opaque (Blocks light) (mimochodem opaque znamená neprůhledný nebo neprůsvitný). Nyní když mapu skompilujeme, tak uvidíme, že krabice vrhají stín. Nikdo by do nich neřekl, že jsou to entity. Z Light Flags nás bude vždy zajímat jenom defaultní normal, tzn. žádný stín, a Opaque (Blocks light), neboli vrhat stín. Ostatní hodnoty nic speciálního nedělají, jsou ještě ze starého ZHLT, kde stejnak nefungovaly.

Výhody opaque


Možná si říkáte, proč to nenechat jako brush a zbytečně přidělávat entity, když výsledek je stejný. V tomhle případě máte pravdu. Krychlovou krabici, pokud je zarovnaná do mřížky, je lepší nechat jako brush. Avšak opaque func_wall příjde nařadu, když je třeba optimalizovat VIS. Například válec stojící na zemi (třeba barel) nám rozřeže podlahu šíleným spůsobem (asi jako carve) a VIS se z toho může .... . Řešení bývá většinou posunutí o 1hu nahoru anebo! převedení na entitu. Entity totiž nekrájí facy, ani VIS leafy. A když máme sud na func_wall, tak proč mu nezapnout vrhání stínu, že? Na optimalizaci visu je lepší pseudoentita func_detail, která je dostupná ve VHLT od verze 25. Mimochodem, ten stín se počítá stejně jako se počítají stíny brushům, takže kompilace by se neměla zpomalit v tomhle ohledu.
Když už jsme u func_wallu, tak nemůžu nezmínit "modré" textury. Pokud zapnete vrhání stínu u func_wall s "modrou" texturou, tak bude zkrz entitu procházet světlo pouze tam, kde je "modrá". Což je hodně hodně dobrá věc, ale realita není vždy tak růžová. Vzhledem k tomu, že velikost bodu lightmapy je 16x16 nebo 8x8 (záleží na scale textury (v texture application toolu)), detailní stín drátěného plotu zrovna nečekejte. U větších děr to však dobrý efekt má.
Dalším faktem je, že opaque nemusíme nastavovat pouze func_wallům, ale jakékoli jiné brushové entitě. To se hodí nejvíce u func_breakablů, zvlášť ve spojení s vypínatelným stínem (viz dále). Samozřejmě můžeme stín nastavit i entitám jako je func_train, ale tam to nemá moc smysl, protože když vlak odjede, stín zůstane na místě, což by nevypadalo nejlépe.
A poslední, ale o nic menší výhodou je, že stín můžeme různě upravovat a hrát si s ním.

Vypínací/zapínací stín


Asi největší využití přepínacích stínu nelezneme u breakablů. To taky použiji jako první příklad. Vezměme jednu bednu a namísto func_wall jí předěláme na func_brakable. Bednu nějak pojmenujem (třeba "cube1") a v rychlosti nacvakáme materiál, strength, samozřejmě light style na opaque a jdeme rovnou na stín. Pokud jste si správně nastavili nové fgd, měli byste mít v seznamu pointových entit light_shadow. Vložíme ji kamkoli do mapy a podíváme se na nastavení. První položka je Target solid entity, tam napíšeme jméno entity, jejíž stín chceme ovládat, v našem případě "cube1". Name je klasické jméno, které budeme targetovat a tím přepínat stín, napíšeme třeba "cube1_shadow". Appearance a custom appearance probereme dále. Coring of this style jsem nikde nenašel, co to má dělat, ale souvisí to s těmi Appearance a custom appearance. Experimentálně jsem zjistil, že hodnoty se pohybují od 1 do 2 (možná i více) a čím větší je číslo, tím více se stín jakoby ukrojí. Nicméně defaultní 0.1 funguje, takže není co řešit. Kdyby někdo objevil, co to přesně dělá, ať mi prosím napíše.
Poslední položka je Classname in game, ale abyste pochopili, k čemu vlastně je, musíte pochopit jak vlastně ten přepínací stín funguje. Entita light_shadow v mapě nebude vůbec light_shadow. Half-life engin žádnou takovou entitu nezná. Tahle entita se při kompilaci přepíše na obyčejné světlo (light nebo spotlight) a nastaví se jí, aby svítila tam, kde je stín, který potřebujeme přepnout. Vlastně se jí přiřadí určitá lightmapa. Takže Classname in game není nic jiného, než výběr, na co se entita light_shadow přemění. Já jsem nenašel žádný rozdíl mezi oběma možnostmi, takže můžeme nechat light. Když to nyní skompilujeme, budeme mít v mapě kostku, která vrhá stín a přidané světlo, které vysvicuje přesně oblast toho stínu. Takže vlastně žádný stín neuvidíme :-). Vrátíme se zpátky do Hammeru a napravíme to tak, že ve flags u entity light_shadow zaškrtneme initially dark. Takže naše fake světlo bude zhasnuté a my uvídíme stín krychle. Paráda, takže teďka akorát do targetu bedny napíšeme jméno entity light_shadow, tedy "cube1_shadow" a máme hotovo. Když do bedny střelíme, rozsvítí se světlo a stín zmizí. Jak to vypadá se můžete podívat na výsledném videu.

Druhý příklad - dveře


Jedna z dalších možností, kde můžete pomocí vypínacího stínu dosáhnout dobrého efektu, jsou dveře. Já jsem na ně použil "modrou" texturu branky, abyste viděli i stín zkrz průhledný brush. Samotné dveře si nastavte jak chcete, ale musíte jim dát jméno (třeba "dvere"). Tím nám vznikne problém, protože dveře se jménem jdou otevřít pouze přez nějaký trigger. Nedá se nic dělat, musíme před ně dát trigger_multiple, nastavíme mu target na "dvere" a Delay before reset na nějakou menší hodnotu (nejlépe kolik máme delay before close u dveří). Dále vložíme opět light_shadow a nastavíme podle potřeby. Tedy Target solid entity bude "dvere", jméno třeba "dvere_shadow" a ve flags zaškrtneme initially dark. A pak stačí nastavit dveřím do target jméno light_shadow, tedy "dvere_shadow". A tím je to hotovo, když hráč přijde ke dveřím, spustí trigger_multiple, ten otevře dveře a ty, jak se otevřou, vypnou si stín. A když se zpátky zavřou, targetnou znova light_shadow a stín se jim objeví. Samozřejmě, že by to šlo i jinak, přez multimanager a správně to načasovat, ale tohle mi přijde nejjednoduší.

Kolísající stín


Zatím jsem nepřišel na praktické využití tohoto efektu, ale rozhodně to vypadá zajímavě. Jak jsem zmínil, light_shadow se chová jako obyčejné světlo, takže mu půjde nastavovat kolísání. Tedy vytvoříme nový light_shadow, přiřadíme ho ke druhé krychli (pojmenované třeba "cube2"), ale nezaškrtáváme initially dark! Samotného efektu potom docílíme výběru z možostí Appearance, nesmíme ale entitu pojmenovávat, nebo vytvoříme vlastní vzor pomocí Custom appearance, v tomhle případě musíme nastavit i name. Nebudu tu popisovat, jak to nastavit, pouze vás odkážu na můj článek o hořícím sudu, kde jsem to již vysvětloval. Musím ale zmínit, že pokud nastavíte plný rozsah, tzn od a do z nebo vyberete z Appearance, tak se dosáhne většího osvětlení, než tam, kde stín není.
Avšak toto světlo se dá pouze vypnout, takže nemůžete přepínat mezi kolísajícím a žádným stínem. Alespoň nijak jednoduše, což je škoda.

Barevný stín


Ano, je to možné, můžete nastavit barvu stínu jakkoli si přejete. Můžete ho udělat černý, jasně bílý, tmavě modrý nebo svítivě fialový. Má pouze jedinou nevýhodu a to, že se nedá ovládat pomocí light_shadow. Vlastně to není ani technicky možné. Když nastavíte bílý stín, těžko ho světlem ztmavíte. A jak ho tedy obarvit? Úplně jednoduše. Vlezeme do nastavení entity (func_wall třeba), nastavíme jí zase opaque a koukneme se na položku Custom shadow. Barvu stínu určíme pomocí modelu RGB s tím, že každá barva má rozmezí od 0 do 1. Tedy černá bude "0 0 0", bílá "1 1 1", tmavooranžová "0.2 0.2 0" nebo jasná fialová "1 0 1". Pokud RGB model neznáte (styďte se!), můžete použít například Color picker, vybrat si barvu a čísla R, G a B a vydělit 255. Ale zase se dost dobře může stát, že to přepálíte a stín bude svítit.
Tento efekt se dá využít když chcete udělat nejhnusnější mapu na světě, nebo když chcete, aby například červená látka vrhala slabší stín zbarvený do červena (hodí se až budete dělat třeba mapu fy_prádelna).

Závěr


Doufám, že se vám dnešní díl líbil a že jste se něco nového naučili. Kdyby cokoli, nebojte se zeptat v komentářích pod článkem, případně na fóru/shoutboxu.
Na závěr přidávám video s příkladovou mapou, kde si můžete prohlédnout výsledek.

↓ Příkladová mapa ↓


Omlouvám se za horší kvalitu videa, ale z nějakého důvodu mi nejde nahrávat frapsem v OpenGL módu, musel jsem přepnout na DirectX.

Komentáře

#1 |
tom711 dne 21.08.2011 20:54:56 |
+1
Fy_pradelna jdu na to :D

Ale ne clanok za jedna Xpun len tak dalej mame radi VHLT :)
#2 |
Dominio dne 21.08.2011 21:13:12 |
+1
Super! Takhle často by to chtělo vydávat články :D
Musím říst, že jsem se zas něco naučil :) +1
#3 |
XXL_cz dne 21.08.2011 23:58:16 |
±0
Další výbornej článek, jak to můžeš tak rychle za sebou psát? Ten barevnej stín a blikající stín sem neznal, možná to někde použiju.
#4 |
Gordon Freeman dne 22.08.2011 05:13:18 |
±0
vybornej clanek to s tema dverma sem videl v xxelovo mape dark_night v tom podzemi a me porad vrtalo hlavou jak na to ted uz to aspon vim
#5 |
Dominio dne 22.08.2011 07:55:51 |
±0
Mám otázku. Lže nějak udělat, aby na entitu, která má nastaveno RenderMode na Texture, byly stíny? Aby ve tmě tolik "nesvítila" .?
#6 |
Habax dne 22.08.2011 08:31:08 |
±0
Coring of this style jsem nikde nenašel, co to má dělat, ale souvisí to s těmi appearance a cunstom appearance.
máš tu chybu, vymaž n
#7 |
Xpun dne 22.08.2011 09:37:21 |
+1
Habax: Díky za upozornění, opraveno.
dominio: To bohužel nejde, engin neumí částečnou průhlednost a stíny zároveň.
#8 |
Lentilko dne 23.08.2011 06:51:23 |
±0
Supeer, to použiju :) za 1 :)

Přidat komentář

Pro přidání komentáře musíte být přihlášený.

Hodnocení

Pro hodnocení musíte být registrovaný.

Prosím přihlašte se nebo se zaregistrujte.

Výborné! Výborné! 100% [10 Hlasů]
Chvalitebné Chvalitebné 0% [Žádné hlasy]
Dobré Dobré 0% [Žádné hlasy]
Dostačující Dostačující 0% [Žádné hlasy]
Nedostačující Nedostačující 0% [Žádné hlasy]

Přihlášení

Jméno

Heslo



Nejste členem?
Zaregistrujte se!

Ztracené heslo?

Seznam článků

Diskuze fóra

Nejnovější příspěvky


bullet.gif

Ako zmeniť predvo...

(BRUT)
bullet.gif

Neexistují...

(Asiimovicek)
bullet.gif

Miznúce objekty

(Gyuki)
bullet.gif

trigger

(nifty)
bullet.gif

Chyba kompilace...

(Backup)
bullet.gif

Svetlo sa nec...

(boxolop1)
bullet.gif

map change fa...

(boxolop1)
bullet.gif

Svetlo

(boxolop1)
bullet.gif

MAPY

(Slivka)
bullet.gif

Pády serveru př...

(latins)

Odkazy

Kotelna Mix-Arena.eu - Gaming portál AMX Mod X nonsteam.cz - seznam CZ/SK Non-Steam Counter Strike serverů

Twitter & FB


Kdo je on-line

bullet.gif Hosté on-line: 29

bullet.gif Členové on-line: 0

bullet.gif Registrovaní členové: 949
bullet.gif Nejnovější člen: verseludes