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 4. díl - Kopírujeme, co se dá

(Pokročilejší tvorba)

Oproti předchozím dílů seriálu, které byly vždy uceleně o jednom tématu, bude tento díl o různých možných vychytávkách, které přináší balík VHLT a které by se vám mohly hodit.

zhlt_usemodel


Jak je nám dobře známo, stařičký GoldSrc engine, na kterém csko běží, má spousty různých omezení. Některá z těchto omezení se týkají takzvaných MapModelů, neboli zjednodušeně brushových entit. Během kompilace se každý brushová entita rozdělí na mapmodel a entitu. Můžeme říct, že point entity jsou vlastně brushové entity bez mapmodelu. Jak entity vypadají po zkompilování si můžeme prohlédnout např. v BSPEditu nebo BSPVieweru. Takto je například zapsána jedna z func_wall entit:

{
"model" "*3"
"zhlt_lightflags" "2"
"rendermode" "4"
"rendercolor" "0 0 0"
"renderamt" "255"
"classname" "func_wall"
}


Může vám to připomenout natavení entity při vypnutém SmartEditu, máme zde stejné dvojice key-value, typ entity dostal vlastní klíč classname a také se objevil řádek model. Co tu ale dělá, když modely přece patří do cycler_sprite a jsou to soubory typu mdl, ne nějaká hvězdička a číslo? Tohle je právě ten mapmodel, konkrétně číslo tři. Většinou je tolik mapmodelů, co je brushových entit, takže první entita dostane model *1, druhá *2, atd.

Občas se ale může stát, že máme brushových entit hodně a to dokonce tak moc, že nám naráží na nějaké limity, ať už je to MAX_MAP_MODELS (400 nebo 512) při kompilaci, nebo pak Precache limit (512) při spouštění mapy. První zmíněný limit se váže přímo k počtu mapmodelů, do druhého limitu se započítávají navíc ještě jiné věci, které se při startu načítají, namátkou jsou to studio-modely (tzn. tentokrát opravdu ty mdl soubory, jak je známe), zvuky, sprity, ...

Takovýmto chybám buďto můžeme předejít tím, že budeme skromnější při vymýšlení mapy, nebo se vytáhneme s nějakým trikem. Můžeme například sloučit všechny func_wall s "modrou texturou" do jedné, ale to není moc pěkné, protože tím zvyšujeme wpoly. A u většiny entit ani takovýto trik nemůžeme použít, například žebříkům nebo vodě se to obzvlášť nelíbí.

Nejhezčí trik, který můžeme použít je právě zhlt_usemodel z VHLT. Jde o to, že brushová entita využije modelu cizí entity. Řekněme že máme v mapě dvě nebo více brushových entit, které jsou prakticky naklonované - jen jsme je vzali se shiftem a hodili na nové místo, neotáčeli jsme, neškálovali, nekosili, jen přesouvali. Při kompilaci by se pro každou tuto entitu vytvořil vlastní model, přestože je velice podobný, ba možná totožný. A my se proto rozhodneme, že všechny tyto entity budou využívat jeden a ten stejný model.

Jedna brushová entita se stane vzorem. Její model se zachová a bude použit ostatními. Vzor musí splňovat dvě podmínky. Musí obsahovat ORIGIN brush, stejně jako například otáčecí dveře. Tento brush určí střed entity. Dále musí být vzor pojmenovaný, takže hurá do vlastností entity a nastavíme nějaký Name.

Každá entita, která chce využívat cizí model, musí také splňovat dvě vlastnosti. Opět musí obsahovat ORIGIN brush, určující střed entity, a tento brush by měl být umístěn ve stejném místě, jako je brush ve vzoru, tzn - pokud je ve vzoru origin uprostřed entity, i v kopii dáme origin doprostřed entity. Dále musí říkat, čí cizí model chce použít, a toho dosáhneme následovně. Otevřeme vlastnosti entity, vypneme smartedit a přidáme novou dvojici, kde Key bude zhlt_usemodel a Value bude jméno vzoru.

Musíme si uvědomit, že model u kopie je jednoduše zahozen a nahrazen modelem vzoru, to znamená, že je naprosto jedno, jak je entita kopie natočená, zvětšená, zkosená, jakou má texturu, nebo jestli je to jen samotný origin brush, model bude nahrazen.

vhlt_entityfun1.jpg

Nahrazen bude ale až v hotové mapě - všechny kopie budou stejně osvětlené.

vhlt_entityfun2.jpg

Všechny kopie také sdílí decaly, které na nich jsou. Ať už decaly, které jsme tam umístlili my, nebo decaly ze hry - zčernalá zem od výbuchu, díry po kulkách, nebo i spray loga hráčů.

vhlt_entityfun3.jpg

Je to určitá daň se kterou je potřeba počítat. Usemodel můžeme ale beztrestně použít u neviditelných entit - triggerů, žebříků, apod. - i u nich se vytváří mapmodel a pokud ho zkopírujeme přes tento fígl, ušetříme limity a hráč si ničeho nevšimne.

Ještě jednou z nevýhod je hláška Entity (...) has unused keyvalues v Map -> Check map for problems, která nás ale vůbec nemusí vzrušovat, protože víme, že jde právě o ten řádek s zhlt_usemodel.

zhlt_copylight



Nyní zpět k studio modelům, neboli mdl modelům, neboli ne-mapmodelům. :)
Občas vytvoříme cycler_sprite, přiřadíme mu nějaký model, vložíme do mapy, zkompilujeme a bum - model je černý jako bota, nebo naopak svtí přes celou mapu.
To je zbůsobeno tím, že modely si berou informaci o osvětlení z podlahy - podívají se pod sebe, vidí že podlaha je osvícená žlutě, tak budou taky žluté.

vhlt_entityfun5.jpg

Jsme v situaci napravo a chceme se dostat do situace nalevo. A k tomu nám pomůže speciální textura black_HIDDEN. Najdeme ji v zhlt.wad z balíku VHLT. Tato textura je neviditelná a neblokuje světlo, ale umožňuje aby na ni světlo dopadalo. Vytvoříme si krychličku s touto texturou a vložíme ji pod náš model. Na krychličce se spočítá světlo a to použije i model, protože to je nejbližší podlaha pod ním. Abychom to dotáhli do dokonalosti, otexturujeme zbylé stěny texturou CONTENTEMPTY, což nám zajistí, že krychlička bude navíc ještě průstřelná a průchozí.

vhlt_entityfun6.jpg

Může ale nastat případ, kdy je zdroj světla v nevhodné pozici a my nejsme schopni umístit blok s texturou black_HIDDEN tak, aby na něj dopadalo potřebné světlo a zároveň byl pod modelem. V tomto okamžiku přichází do hry vlastnost zhlt_copylight. Stejně jako u zhlt_usemodel budeme mít nějaký vzor a nějaké kopie. Vzorová entita může být jakákoli point entita, např. info_null nebo libovolná entita co je právě poblíž. Jediným požadavkem na tuto entitu je, aby byla pojmenována. U kopií vypneme smartedit a přidáme dvojici, kde Key bude zhlt_copylight a Value jméno vzoru.

Při kompilaci se pak provede následující. RAD se podívá pod vzorovou entitu, zkopíruje si informace o osvětlení a ty vloží pod všechny kopie.

vhlt_entityfun4.jpg

Zprava doleva vidíme: vzorový model, model bez jakýchkoli úprav, model s zhlt_copylight a model, který bychom ve finále chtěli.

Důsledek zkopírování je zjevný - pod modelem vznikl nepěkný světlý bod. Tohoto světlého bodu se ale jednoduše zbavíme aplikováním předchozího postupu s blokem black_HIDDEN. Ten vložíme pod model do kterého kopírujeme světlo a tím se zbavíme i toho světlého bodu pod tím (ten se místo toho vytvořil na tom černém neviditelném bloku).

Opět vznikne hláška Map -> Check map for problems, ta nás ale zase vůbec nezajímá.

Se vším si můžete pohrát v příkladové mapě.

Komentáře

Zatím nikdo nekomentoval. Buďte proto první a vložte svůj komentář.

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% [3 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: 26

bullet.gif Členové on-line: 0

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