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.

20.06.2017 23:02:22
Jo, to je další možnost..že jsem barvoslepy, nebo úplně slepý :D ale tak byl to jen návrh:D
±0


20.06.2017 20:13:13
Udělej si test barvosleposti, já přečtu každou... :D
±0


20.06.2017 11:46:16
Měl bych takový návrh, při registraci jak je ten captcha kód, je to dělané velmi pěkně jako brushe :D ale ono to nejde přečíst vůbec, já jsem musel 30x změnit kód, abych to přečetl a bylo to správně =D
±0


19.06.2017 19:52:01
ok
±0


19.06.2017 00:25:14
Jak žijete lidi? :D Jestli teda žijete :@
±0


12.05.2017 22:22:13
Abych naštval Backapu, že má další práci, tak jsem mu tam hodil jednu prosbu.
Děkuji ;)
±0


11.05.2017 15:29:38
O hodně přicházíš :D
±0


11.05.2017 11:14:29
Jsem antisociál a na srazy nejezdím... :D
±0


10.05.2017 21:53:37
Už dlouho jsem to tu nenapsal, takže....
... zakalíme? Pívo? Dejvice nebo Jižák?
#TMsraz
±0


08.05.2017 19:32:50
dik moc
±0


Zapečená fyzikální simulace

(Oříšky)

Dnes budeme zapékat. Nejprve budeme potřebovat spoustu prazvláštních ingrediencí a pojedeme podle nekonvenčních receptů. Ke konci se dostaneme k našemu známému VHE, kde si ukážeme nový typ servírování.

Červenci jste mohli zahlédnout video, ve kterém jsem prezentoval možnost fyzikální simulace "přímo v mapě" - bez žádného módu. Nechtěl jsem o tom moc mluvit, protože jsem tento trik chtěl využít v mapě Pozdemí. Teď je na čase odhalit, jak to celé vlastně (ne)funguje.

Co budeme potřebovat?


Valve Hammer Editor
BSP Viewer
Blender
rba2ba
Blender SMD Tools
smdfix
Wally, pokud nepoužíváte vlastní textury.
studiomdl, je například uvnitř kHED balíčku

Příprava scény ve VHE


Ve VHE vytvoříme mapu a všechny objekty, které chceme aby se v simulaci hýbaly, převedeme na entity. Je v podstatě jedno, jaké entity zvolíme, protože nám jde jen o oddělení od brushů.
Jako ukázku jsem připravil pár beden stojících na dvou prknech, přičemž jedno z nich praskne.

baked_anim1

Mapu stačí zkompilovat pouze s CSG a BSP. U BSP je dobré použít parametr -subdivide 512, aby se nevytvořilo moc faců.
Zkompilované BSP otevřeme v BSP Vieweru. Důležité je, aby byl každý objekt ve své vlastní entitě, jinak by se provedly optimalizace a zahodily by se facy, které se dotýkají.

baked_anim2

V BSP Vieweru klepneme na File -> Export -> 3DS File. V okénku zaškrtneme Export Materials a uložíme 3ds soubor.

Simulace v Blenderu


Pokud je toto vaše první zkušenost s Blenderem, tak se připravte na to, že to bude kruté. Bude to horší jak práce s GIMPem, dokonce možná horší jak práce s Inkscape, a to je co říct.
Po nainstalování Blenderu je potřeba nainstalovat skripty rba2ba a SMD Tools, takže je nakopírujeme do složky Blender\verze\scripts\addons\ a následně je povolíme v File -> User Preferences -> Addons (je tam toho spousta, tak použijte hledání).

Teď naimportujeme náš soubor přes File -> Import -> 3D Studio (.3ds).
Na horní liště zvolíme místo Blender Render Blender Game. Dále roztáhneme pravý panel tak, abychom mohli klepnout na ikonku Physics.
baked_anim3
Nyní pro každý objekt nastavíme Physics type: Rigid Body, zaškrtneme Collision Bounds a vybereme typ Bounds. V našem případě to pro krabice a zadní prkno bude typ Box, pro části předního prkna použijeme Convex Hull.
Dále označíme všechny objekty, stiskneme intuitivní klávesovou zkratku Shift+Ctrl+Alt+C a zvolíme možnost Origin to Geometry. Přepneme na záložku World.
baked_anim4
Nastavíme Gravity: 800. Teď je čas zkusit simulaci, takže stiskneme klávesu P a posoudíme, jestli vypadá dobře, či ne. Pokud malé objekty padají skrz podlahu, nastavte větší počet Substeps. Pokud se vám aktuální simulace nelíbí, zkuste si trochu pohrát s gravitací. I malé změny gravitace ovlivní simulaci a lze nimi "opravit" všemožné bugy.

baked_anim5

Až se vám bude simulace líbit, zaškrtněte Game -> Record Animation. Po nahrání animace smažeme objekty, které sloužily pouze jako překážky - brushe.
Opět označíme všechny objekty, stiskneme mezerník, napíšeme rba2ba a klepneme na Rigid body anim to bone anim.

baked_anim6

Tím se nám vytvoří kosti potřebné pro export animace. Ještě musíme dát všechny objekty do jedné skupiny, takže je označíme a stiskneme Ctrl+G.
Nakonec exportujeme SMD přes File -> Export -> Source Engine, zvolíme Scene as configured a to je pro blender vše.

Kompilace MDL


Z Bledneru jsme sice dostali SMD, ale v něm potřeba udělat ještě několik úprav, takže spustíme smdfix.vbs Group.smd out.smd. Tím se zkonvertuje smd na starší verzi, opraví se názvy textur a UV mapy se jakž-takž zarovnají na texturu. Do složky s smd budeme potřebovat dostat textury použité na objektech ve formátu bmp. Pokud jste použili originální textury, vyexportujte je přes Wally. Ještě potřebujeme QC soubor, takže si jeden vytvoříme a dovnitř napíšeme:
$cd "."
$body "body" "out"
$sequence "idle" "anims/ArmatureAction" fps 50

Soubor uložíme a zkompilujeme přes studiomdl.exe.

baked_anim7

Spínaná animace ve VHE


Všude dobře, doma nejlíp. Vytvoříme entitu cycler, nastavíme jí náš model a otočíme / posuneme ji tak, aby se náš model překrýval s připravenou scénou. Entity, které jsou nyní součástí modelu, smažeme.
Entita cycler má oproti cycler_sprite dvě výhody:
- když je cycler sepnut (přes E nebo klasicky přes target), animace modelu se pozastaví / spustí
- když je cycler zasažen, přepne se animace na další v seznamu (spustí se další sequence)
Narozdíl od cycler_sprite má taky kolizní box o velikosti standartní postavy, který většinou překáží.
Vrátíme se do nastavení cycleru, nastavíme mu nějaké jméno, např. mdl_cycler; pak vypneme SmartEdit a přidáme:
sequence 1
framerate 1

Zvolením neexistující sequence dosáhneme toho, že je animace na začátku zapauzovaná.

Dále budeme potřebovat něco, co cycler zasáhne. Tady se dostáváme do bodu, kdy to začíná nefungovat. Někdy totiž funguje env_explosion, někdy trigger_hurt a někdy env_laser. Něco z toho si tedy vybereme a pojmenujeme to mdl_hit.

Vytvoříme multi_manager, pojmenujeme ho mdl_mm a přidáme hodnoty:
mdl_cycler 0
mdl_hit 0.01
mdl_cycler#1 2.35

Třetí číslo závisí na délce vaší animace, takže se vrátíme k souboru anim/ArmatureAction.smd, sjedeme až dolů, mrkneme se na poslední řádek začínající time a opíšeme si číslo posledního framu, v mém případě time 118. Toto číslo vydělíme fps uvedeným v našem QC souboru a zaokrouhlíme, pro jistotu můžeme odečíst jednu setinu. V mém případě (118/50)-0.01 = 2.35.

Nakonec budeme potřebovat něco na spuštění multi_manageru, já jsem použil non-solid button_target.

baked_anim8

Závěrem


Není problém místo Blenderu použít např. 3ds Max s Rayfire, výsledek by rozhodně vypadal lépe, nicméně je to komerční řešení.

Pokud se vám nelíbí pauzování na začátku a konci animace, je možnost vytvořit si dvě idle animace, kdy první bude počáteční stav, druhá bude vyexportovaná z Blenderu a třetí bude koncový stav. Pak stačí jen zasáhnout cycler při spuštění a při resetu animace.

V článku neuvádím jak na kolizi. V Podzemí jsem ji řešil přes func_wall_toggle, také by šla řešit přes func_train, dělat ji ale manuálně by byla spousta práce, takže pokud by si to někdo chtěl vyzkoušet, mohl bych se pokusit napsat utilitku na vygenerování path_cornerů z SMD animace.

Pokud je animace tak velká, že ji studiomdl odmítne zkompilovat, je potřeba se vrátit do blenderu a zmenšit scale časové osy. Samozřejmě je to pak potřeba vyrovnat snížením fps v QC souboru.

Komentáře

#1 |
Dominio dne 07.10.2012 13:35:01 |
±0
Vypadá to šíleně, ale je to ještě šílenější. Rozhodně to ale vypadá pěkně. Výbornej článek. Musím někdy vyzkoušet...
#2 |
XXL_cz dne 07.10.2012 21:02:43 |
±0
Další výbornej článek.
#3 |
Gordon Freeman dne 08.10.2012 17:38:30 |
±0
nezdá se mi to tak složité když si nad tím trochu popřemejšlím
dost se to hodí na nějaké scény za ¨okném¨

například mě by se to hodilo do mapy de_mesa po výbuchu c4, pouze bych musel ještě doplnit clip kterej by po výbuchu zmizel.
#4 |
Gravitr dne 28.09.2015 20:11:11 |
±0
Zdravím, možná je to tu už trochu mrtvý, ale co, zkusim to - je možnost to do blenderu vyexportovat i s texturama? Popř. jak
Díky
#5 |
Backup dne 28.09.2015 20:54:13 |
±0
Když do mapy includneš všechny textury (parametr -nowadtextures u CSG), tak je pak můžeš z BSP Vieweru vyexportovat přes File -> Export -> Bitmaps. Když je vyexportuješ do stejné složky kde máš to 3ds, tak je pak uvidíš i v Blenderu. Je tam ale nějaký háček - když jsem to renderoval, jen pár faců bylo ve finále opravdu otexturováno.
i.imgur.com/UHYpAVm.png
Co má být koncový výsledek? Možná existuje lepší řešení než takovéhle krkolomné.
#6 |
Gravitr dne 30.09.2015 16:27:57 |
±0
Cíl by měl být minimálně dostat ty textury do blenderu tak, jak byly v hammeru, ideální by bylo aby fungoval i ten render. Zkusím to co jsi psal, jestli se to dobře vyrenderuje.

Edit: Tak z 50% úspěšnost, textury se mi sice do blenderu přidaly, ale zřejmě v invertním provedení (na obr. je zobrazení "texture" ). Na render to pak vypadá asi tak jako na tom tvym obrázku.
Textury ve složce s .3ds souborem mají normální barvu.

oi62.tinypic.com/ng7ksj.jpg
#7 |
Backup dne 01.10.2015 02:26:20 |
±0
i.imgur.com/c6x4Joj.png
Teď jak na to:
1, Stáhni si Crafty.
2, Stáhni si http://tvorbamap....meInfo.csf a n ahraď tím soubor Program Files/Nem's Tools/Crafty/Specifications/GameInfo.csf
3, V nastavení Crafty nastav složku se steamem a pokud v seznamu UserName nebude na výběr tvůj účet, napiš tam common.
4, V Crafty dej Setup -> Profiles -> Counter-Strike
5, Otevřeš mapu a dáš Export, export do .obj.
6, Obj importneš do Blenderu a správě otočíš.
Pokud tam nebudeš mít textury, zkontroluj si, že v nastavení Crafty záložka Exporting máš zaškrtlé Textures.

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% [4 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

Problém se zbra...

(Backup)
bullet.gif

batch compiler

(Backup)
bullet.gif

problem s RAD

(Backup)
bullet.gif

problém s .pts

(Backup)
bullet.gif

Mapa se...

(Gordon Freeman)
bullet.gif

nazdar

(Backup)
bullet.gif

osvět...

(Dominik Rozporka)
bullet.gif

spawn...

(Dominik Rozporka)
bullet.gif

BOMBA

(Gordon Freeman)
bullet.gif

SourceMod Tvorb...

(EMINEM)

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: 1

bullet.gif Členové on-line: 0

bullet.gif Registrovaní členové: 911
bullet.gif Nejnovější člen: NoobYT