Zobrazit předchozí téma :: Zobrazit následující téma |
Autor |
Zpráva |
abuki
Založen: 31. 07. 2012 Příspěvky: 507 Bydliště: Praha
|
Zaslal: 15. listopad 2013, 12:38:25 Předmět: Převod hry do Unity |
|
|
Ahoj,
koukám, že Unity tu nemá sekci (nebo jsem ji nenašel) tak to dávám sem.
Z několika důvodů bych potřeboval svojí hru Ahoooj (která je paradoxně už téměř před dokončením a kterou jste tady na fóru i jinde asi už viděli) zkusit převést do Unity. Dělám to v Game Makeru a všechno je v pohodě až na to, že optimalizace pro iPhone 4 nebo některé androidy je prostě peklo (ale to možná Unity nevyřeší) a protože potřebuju kvůli komiksu co tam máme použít nějaké animační timeliny, bez kterých tam nedostanu ten komiks v takové kvalitě jak bych chtěl. Navíc, když už teda tam dali i ty tooly pro 2D tak bych si je rád vyzkoušel (to prosím berte kdyžtak v patrnost při diskuzi, že bych rád použil co nejvíc přímo 2D nástroje Unity než nějaké 3D workaroundy, které asi byly potřeba dříve).
Unity jsem otevřel, mám zhruba představu jak se to používá, ale než se do toho ponořím naplno, rád bych od někoho zkušenějšího věděl pár věcí, které jsem řešil i v GM projektu.
1) Nechtěl by mi s tím někdo pomoct? Levely si tam stvořim sám a předloha je víceméně hotová, ale s tím jádrem hry - jak řešit některé specifické věci, bych potřeboval pomoct, jinak to bude hroznej bastl. Rád zašlu podrobnější info zájemcům. Můžu nabídnout podíly z prodeje a mám rozjednané i další projekty, které by se případně v Unity dělaly. Toť OT a teď k tomu Unity.
2) Jak se řeší skejlování na různý zařízení? V GM jsem to řešil tak, že jsem si sprity a pozadí nahrával ve dvou velikostech, pozadí byly tily 1024x1024 resp. 2048x2048 a tomu proporčně spritové animace též ve dvou rozlišeních. V editoru jsem pracoval s vyšším rozlišením a při exportu jsem nastavil, že pro desktop se to nechá a pro iOS a Android se použijí sprity a pozadí s nižším rozlišením, pozice objektů se při startu vydělí dvěma, sníží se rychlosti apod. čímž jsem dosáhl dvou výsledných rozlišení. Trochu opruz byl nahrávat assety dvakrát, ale i to by se dalo bejvalo zautomatizovat. Kamera a zobrazení se následně přizpůsobilo velikosti displeje - vždy se roztáhlo view na šířku a výška byla dle poměru stran. Pixel perfect abych to měl pixel na pixel myslim fakt nepotřebuju, takže tohle zjednodušení mi naprosto vyhovovalo. Jak by se podobná věc řešila v Unity? Chtěl bych, aby mi hra běžela na PC v HD (1920x1080), ale mobily to většinou neutáhnou, takže co s tim tam?
3) Další problém byla fyzika. Loď je fyzikální objekt a když narazí do břehů musí se nějak odrazit, otočit, nějak ji unáší proud, takže bez fyziky to myslím v tomto případě nejde, nebo by to bylo příliš komplikované. Na druhou stranu břeh a loď jsou jediné fyzikální objekty (krom občasných pohybujících se překážek). V GM se používá box2d, který má limit jedné fizikální fixture 8 vrcholů a navíc musí být polygon konvexní, takže jsem použil jakýsi Physics Editor, břehy jsem si v tom naklikal, vyexportoval data jako jednoduché pole konvexních polygonů a naimportoval do GM, kde jsem to při startu vytvořil jako neviditelný fixures přes pozadí. Bál jsem se, že to bude problematické na výkon, ale zdá se, že i když mají levely okolo 2048x48000px a loaduju všechny fixtures hned na začátku tak to není moc problém. Opět tedy dotaz - jak by se řešila tato věc v Unity? Byl by tam problém s výkonem?
4) Podotázka k fyzice - loď musí být unášena proudem. V GM jsem to řešil tak, že v každém framu jsem lodi dával impulz (jeden na střed, že by loď mohla mít různé síly na špičku nebo záď jsem ignoroval, i když by to bylo asi pěkné, ale zároveň by to vyžadovalo i čitelnější směr proudu v grafice). Do zatáček dávám triggery, který má každý svůj nastavený úhel. Sečtu a zprůměruju úhel všech kolidujících triggerů. Případně ještě můžu triggeru nastavit, že přidává navíc sílu. Jak byste tento konstantní proud (sílu), který má ale v zatáčkách měnit směr řešili v Unity?
5) Velká rastrová pozadí. Tady to bude asi největší boj. Hádám, že mě budete přesvědčovat ať z toho udělám vektory. To je možná spíš jako podotázka, mě by zajímalo, zda by to šlo udělat těma rastrama, protože to máme celý v rastrech hotový a předělávat to, by byl děs - z mnoha důvodů. Jde tedy o to že klasický level má 20 až 24 dílků pozadí buď 1024x1024 nebo 2048x2048 (viz výše). Teoreticky musí být nahrána v paměti jen 3 v jednu chvíli (ta kde je loď a před a po), ale nevím, zda se to dá nějak za běhu přepínat, jak se s tím pracuje apod. V GM jsem to ne/vyřešil tak, že jsem prostě celej level narval do paměti. Což mi fungovalo na iPadu 3 a na PC, ale na iPhonu 4 to nerozjedu a androidy taky padaj. Designové řešení je přidat do levelů šlajsny (krátké minihry), které budou na nové scéně a rozdělí tak level na menší díly, které se načtou zvlášť. To by mi pak vycházelo zhruba 8 dílků v jednom úseku, větší četnost šlajsen by už kazila hru.
Zkoušel jsem i různé triky jak zmenšit ty dílky - tedy vypustit tu alfu kterou mají všude uprostřed kde je řeka (která je modrá, protože je modré pozadí). Například rozsekat dílky ve čtvercové síti a vyhodit všechny čtverce co mají všechny pixely jen průhledné. To vedlo ke snížení počtu dílků, ale bohužel to zase bylo náročnější na vykreslování a tak to vyšlo zhruba nastejno.
Jak byste to řešili v Unity? Jak to co nejlíp optimalizovat?
6) Atlasy. V GM tomu říkají texture pages. Předpokládám, že jejich optimalizace je alfou a omegou úspěchu, jinak mi bude hra padat kvůli plné paměti (jak se to ostatně děje právě docela často i v GM). Proto mě překvapuje, že se na webu píše, že featura co dovede atlasy nějak inteligentně vytvářet podle štítků a objektů je až v PRO verzi. Je to skutečně tak a bez PRO si nevrznu?
V GM jsem to řešil tak, že jsem si prostě sdružoval sprity podle levelů a každému spritu jsem přiřadil atlas podle levelu. GM pak vzal všechny sprity se stejně nastaveným atlasem a naházel je k sobě. Když se nevešly, udělal atlasů víc. Ve většině levelů se mi vejdou sprity na jeden atlas, plus mám ještě jeden univerzální atlas na loď, vlnky a GUI. Pokud jsem potřeboval nějaké sprity použít ve více levelech ale ne ve všech, tak jsem je prostě duplikoval a přiřazoval jim různé atlasy a přizpůsoboval u objektů jejich sprity dle levelu.
Jakým způsobem se pracuje v Unity s atlasy, jak moc na tom záleží výkon a na co si dát pozor?
7) Komiks. Jednotlivé příběhy má oddělovat relativně jednoduchý komiks. Ale aby to vypadalo trochu cool tak je to potřeba trochu rozhejbat, což se bez nějaké animační timeline dělá blbě. Opět jsou to rastrové objekty, je jich docela dost a často jsou i velké. Měl jsem to řešeno spritama, které jsem se snažil nějak rozhýbat/ukazovat/skrývat, vypadalo to ale trochu prkenně a navíc to zabíralo docela dost atlasů, takže to i padalo. Na to je asi podobná odpověď jako na předchozí otázku.
Mě by ale ještě zajímala jedna věc. Mám kamaráda, co mi ten komiks může velmi snadno a velmi pěkně naanimovat v after effects. Napadá někoho způsob jak to tam dostat, aniž bych to musel ručně přeanimovávat? Z AE se dají exportovat údaje o key framech pomocí nějakých pluginů, také se dá vyexportovat swf video a koukal jsem, že na to je zase například tento plugin: https://www.assetstore.unity3d.com/#/content/3630 ale zajímalo by mě zda s tím čirou náhodou nemá někdo zkušenost? Nebo prostě cutscény animujete v Unity přímo a importovat cokoli je blbost?
Pak určitě existuje spousta drobnějších problémů, ale tohle jsou takové obecné základní věci. Nerad bych se ptal na věci co se najdou v manuálu, ale většinu tohohle nevím jak bych hledal, jde spíš o to jak Unity použít a co řiká zkušenost z praxe.
Kdyby mi s tím někdo chtěl pomoct, budu rád, jak jsem již psal v úvodu.
A pokud jste dočetli až sem, tak už jen za to vám patří díky! _________________ Twitter @abukac
www.amanita-design.net
www.circusatos.com |
|
Návrat nahoru |
|
|
Ladis
Založen: 18. 09. 2007 Příspěvky: 1536 Bydliště: u Prahy
|
Zaslal: 15. listopad 2013, 13:03:06 Předmět: |
|
|
Nižší rozlišení obrázků a k nim podělení hodnot pozic, animací a fyziky nemusíš dělat ručně, můžeš si na to udělat utilitu, která ti to z plné velikosti vygeneruje. Dokonce to můžeš mít v rámci načtení scény a žádná předpočítaná data tak na disku nemusí být (ušetříš 1/4 velikosti, když na disku nebudeš potřebovat ty menší obrázky). Takto by šel řešit iPhone a Android - když to spadne na nedostatek paměti (můžeš to i pro iPhone a Android rovnou předpokládat), tak načteš scénu znovu s parametrem "1/4 rozlišení" (a poznamenáš si to, abys příště nezdržoval loading pokusem o plnou kvalitu). Downsample obrázků je dávno rychlostně zadarmo přes renderování do textury (GPU-akcelerovaný downsampling) - žádný pomalý procházení bajtů v CPU. _________________ Award-winning game developer |
|
Návrat nahoru |
|
|
Mem
Založen: 28. 07. 2007 Příspěvky: 1959 Bydliště: Olomouc
|
Zaslal: 15. listopad 2013, 13:34:38 Předmět: |
|
|
V Playito děláme v Unity hlavně 2D včetně spritových animací, všechno je to ale ruční práce, tj. do textur si děláme ty atlasy (typicky 1024x1024) ručně a potom jen na materiálu nebo v kódu nastavujeme správné offsety a tiling (pro animované sprity máme samozřejmě skripty, které ten tiling a časování řeší automaticky, ale vesměs jsou to jen loopy). S Mecanimem a jinými pokročilými nástroji jsem tam zatím nedělal, stejně tak nevím, co umí ty 2D nástroje v novém Unity (kromě uzamčení viewportu a podobných detailů, ale reálně to samozřejmě pořád zůstává 3D), např. to kombinování více spritů v animaci by pro tebe mohlo být zajímavé.
O tu vlastnost pro generování Atlasů ve verzi Pro jsem se nezajímal, protože máme starší verze případně nové Free, takže to budeš muset omrknout sám, pokud jsi ochotný investovat za licenci (případně kdybys chtěl vyvíjet (jen) pro Xbox One, tak v příštím roce má být pro registrované vývojáře k dispozici Unity Pro s Xbox One pluginem zdarma).
Co se týče použití více velkých textur najednou a omezené paměti, jak jsi sám správně napsal, jedním z řešení by mohlo být rozsekání her do jednotlivých levelů a jejich nahrávání (Application.LoadLevel). Nevýhodou je, že hra je chvíli zaseklá, obraz se neaktualizuje, maximálně hraje hudba na pozadí.
Jestli a jak umí Unity řešit nedostatek paměti, když má všechny textury natažené, nevím. Setkali jsme se ale na Androidu s tím, že při velkých texturách se ztratil za běhu jejich obsah (byly černé), případně framebuffer problikával. Ale možná na to bude existovat nějaké 3rd party řešení, zkus prohledat Assets Store.
Jednou z dalších možností je řešit si dohrávání assetů ručně. Používá se to třeba pro inapp obsah, který tvůrci stahují z vlastních serverů. Tímhle způsobem se dají stahovat textury i celé scény (levely).
Tohle téma mě taky zajímá, tak se určitě pochlub s tím, co objevíš |
|
Návrat nahoru |
|
|
]semo[
Založen: 29. 07. 2007 Příspěvky: 1526 Bydliště: Telč
|
Zaslal: 15. listopad 2013, 13:36:26 Předmět: |
|
|
Ad 3)
2D fyzika se v Unity dělá tak, že prostě zamkneš jednu osu. Takže je sice 3D, ale toho se z hlediska výkonu neboj. Ten břeh bych asi seskládal klasicky z boxů, nebo spíš s z plejnů. Jinak, v Unity je i mesh collider. Použil jsem ho a na PC s rychlostí taky nejsou problémy (ale většinou mám jen raycasty od kol aut, což nejsou uplně plnohodnotné kolize). No já bych hlasoval pro ty boxy a plejny :-).
Ad 4)
Triggery se mi nelíbí. Co třeba použít "zóny"? Daly by se udělat třeba na základě colliderů + raycastů v jiné vrstvě. Loď by mohla mít nějaké body, třeba právě na přídi a zádi, které by se dotazovaly raycastem na rychlost proudu a podle toho by aplikovaly sílu na loď (klasický odpor prostředí).
Jinak, teď mě napadá, že těma triggerama si myslel možná právě tohle :-)
Jo..a to stejné by samozřejmě šlo udělat jako velocity (flow) mapu. _________________ Kdo jede na tygru, nesmí sesednout.
---
http://www.inventurakrajiny.cz/sipka/
Aquadelic GT, Mafia II, simulátory |
|
Návrat nahoru |
|
|
Rampage
Založen: 30. 08. 2012 Příspěvky: 23
|
Zaslal: 15. listopad 2013, 15:29:24 Předmět: |
|
|
Už jsem ti před několika měsícema psal do PM, kdy si hledal někoho na výpomoc s GM, aby si to dělal přes unity.
Jestli si tu praci chceš ulehčit, tak použí tenhle asset
http://u3d.as/content/tasharen-entertainment/ngui-next-gen-ui/2vh
Snižuje drawcally a všeobecně to ulehčuje práci.
Rozlišení si zjistíš přes Screen.height a Screen.width, podle toho by sis nascaloval co potřebuješ.
Ale nevím jestli ti to pomůže, protože android má hodně možných rozlišení. Takže na nějakým zařízení by to bylo ok a na jinym by to bylo rozmazaný buď v šířce nebo dělce textury.
Já bych to řešil tak, že pravý břech(texturu) bych si přichytil k pravý straně obrazovky a levý k levý straně obrazovky. Tohle umožňuje právě ngui přes "anchory". Takže by se zvětšovala akorát plocha řeky na různých zařízeních. Tedy že by na vyšších rozlišeních řeka zabírala větší plochu a na nižších menší.
3)nejpíš pomocí toho impulsu s nějakým uhlovým omezením, aby nedošlo k tomu, že by se ta kanoj obrátila o 180°
5)s velkejma textura myslim unity nemá problém, kdyžtak stačí vypnout renderer, aby se to tom ulohčilo u objektů, který nejsou na obrazovce.
6)atlasy umí dělat ngui automaticky.
7)Na sprite animace exitujou taky assety na storu, ale nový unity by to mělo už umět samo |
|
Návrat nahoru |
|
|
abuki
Založen: 31. 07. 2012 Příspěvky: 507 Bydliště: Praha
|
Zaslal: 15. listopad 2013, 16:32:37 Předmět: |
|
|
Ahoj, díky moc všem, musím se tím pořádně probrat, zatím jen reakce na konkrétní věci co mě napadly.
]semo[ napsal: |
Jinak, teď mě napadá, že těma triggerama si myslel možná právě tohle
Jo..a to stejné by samozřejmě šlo udělat jako velocity (flow) mapu. |
Musím se podívat co to jsou ty raycasty ale mám tam prostě obdélník a když s nim loď koliduje, tak se jí to započítává. Když koliduje s více, tak se to průměruje. Takže asi myslíme něco podobného.
Jak bys dělal tu flow mapu? Když už jsme u toho, tak by bylo pěkný, kdyby ten proud působil třeba na tři místa na lodi (příď, střed, záď) - bylo by to realističtější. Nicméně grafická reprezentace proudu je dost zjednodušená, to by se muselo vymyslet jak to názorně do té hry nakreslit.
Rampage napsal: |
Já bych to řešil tak, že pravý břech(texturu) bych si přichytil k pravý straně obrazovky a levý k levý straně obrazovky. Tohle umožňuje právě ngui přes "anchory". Takže by se zvětšovala akorát plocha řeky na různých zařízeních. Tedy že by na vyšších rozlišeních řeka zabírala větší plochu a na nižších menší. |
To si myslím nemůžu dovolit. Šířka řeky částečně určuje obtížnost a tedy hratelnost. Navíc na břehy jsou připnuté i nějaké animace, což by teda zrovna asi šlo řešit, ale nepřijde mi to jako úplně šťastné.
Rampage napsal: |
7)Na sprite animace exitujou taky assety na storu, ale nový unity by to mělo už umět samo |
Jo to jo, mě jde o to, že mám třeba 10 objektů, které chci nějak docela složitě animovat, aby najížděli, mizeli apod. Prostě si zkomponovat takovej úplně jednoduchej filmeček z pár objektů. Můžu to mít připravené v AE, ale jde mi o to, zda to pak budu muset podle předlohy přeanimovat v Unity, či zda je nějaký jednoduchý způsob jak to tam dostat, když už to jednou bude připravené. _________________ Twitter @abukac
www.amanita-design.net
www.circusatos.com |
|
Návrat nahoru |
|
|
Rampage
Založen: 30. 08. 2012 Příspěvky: 23
|
Zaslal: 15. listopad 2013, 16:49:32 Předmět: |
|
|
Tak to můžes udělat tak, aby si měl ten poměr výšky ku délce textury přesně daný. Kdyby to rozlišení bylo větší, tak by se zobrazila na pozadí nějaká větší textura(třeba jednobarevná).
Jestli si tam chceš udělat nějakou animaci se sprity, tak se můžes kouknout na nějakej tutorial na youtube jak se dělaj animace v unity. Ten tab pro animování otevřeš, když klikneš třeba na záložku game>add tab>animation |
|
Návrat nahoru |
|
|
Mem
Založen: 28. 07. 2007 Příspěvky: 1959 Bydliště: Olomouc
|
Zaslal: 17. listopad 2013, 13:28:26 Předmět: |
|
|
]semo[ napsal: |
2D fyzika se v Unity dělá tak, že prostě zamkneš jednu osu. Takže je sice 3D, ale toho se z hlediska výkonu neboj. |
V poslední verzi Unity 4.3 se už zmiňuje integrace Box2D, takže asi alternativa k PhysX |
|
Návrat nahoru |
|
|
]semo[
Založen: 29. 07. 2007 Příspěvky: 1526 Bydliště: Telč
|
Zaslal: 18. listopad 2013, 10:58:11 Předmět: |
|
|
abuki: Raycasty jsou prostě to, že vezmeš (polo)přímku a zjistíš její průsečík s nějakým kolizním objektem. Je to pojem z 3D, v tvým 2D případě to je přesně to, co si psal: testování bodu vůči (třeba) obdélníku.
Udělat to působení na kánoi ve více bodech je i s tím tvým systémem snadný. Jen bych definitivně doporučoval opustit impulzy a nahradit to stálým působením sil (přes ten vzorec odporu prostředí):
kód: |
F = 0.5 * ro * c * S * v^2. |
Kde F síla, ro hustota vody (1000kg/m3), c součinitel odporu (konstanta, např. 1.2), S povrch tělesa - stačí odhadnout, v^2 rychlost vody na druhou. Realistickou fyziku nechceš, tak ti stačí F = C * v^2 (C bude parametr, který můžeš experimentálně ladit).
Flow mapu můžeš udělat nějakým toolem (možná tenhle: http://algoholic.eu/another-flow-field-editor-update/), nebo s pomocí představivosti ve Phothoshopu :-). Je to jako normal mapa, ale každý pixel obsahuje směr a rychlost proudu: R=128, G=128, B=0 bude nulový proud, R=0, G=128, .. bude maximální proud do leva, R=255 maximální doprava, ....atd. Taková mapa se dá použít kromě fyziky i v shaderu pro grafickou reprezentaci. Ale asi sem to s tímhle nápadem přehnal, tvoje hra má stylizovanou grafikou a je v tomhle směru spíš jednoduchá.
Mem:
Vida, to sem nevěděl. _________________ Kdo jede na tygru, nesmí sesednout.
---
http://www.inventurakrajiny.cz/sipka/
Aquadelic GT, Mafia II, simulátory |
|
Návrat nahoru |
|
|
abuki
Založen: 31. 07. 2012 Příspěvky: 507 Bydliště: Praha
|
Zaslal: 21. listopad 2013, 12:08:15 Předmět: |
|
|
]semo[ napsal: |
Jen bych definitivně doporučoval opustit impulzy a nahradit to stálým působením sil. |
Já se omlouvám, nejsem prvotně programátor, takže mi některé věci trochu trvají nebo je nevyjádřím jasně - v každém framu aplikuju na loď sílu (apply force ne apply impulse jak jsem psal - sorry) v určitém směru. A pak mám nastavený prostě nějaký tření toho objektu. GM používá box2d. Předpokládám, že to je v podstatě to samé. Jen možná jedno z toho je efektivnější? Nevím..
Ten tvůj vzorec řeší jen sílu- úhel by se stejně tedy buď nějak průměroval nebo by se nechalo na loď působit ve více místech předpokládám.
Ta flow mapa je fakt zajímavej nápad, dík za něj, nějak jsem si to dřív nedokázal představit jak bych to dělal, ale ještě se nad tím chci pořádně zamyslet a když na to najdu čas a sílu tak i zkusit implementovat.
Co se týče toho samotnýho převodu do Unity, tak stále váhám, je to spousta práce a přeci jen je hra skoro hotová v GM, tak nevím, zda to není blbost a mám dost obavu z toho zpracování grafiky, že nastavit si správný workflow, aby z toho byl pěknej obrázek v HD i na mobilech prostě nebude tak jednoduchý jak se to napíše. Nakupilo se mi teď dost jiný práce, takže to zas trochu odsouvám s tím, že kdyby se v GM objevily slibované animační tooly (a nedej bože tam někdo dodělal live preview hry bez nutnosti buildu), tak by to pro mě byl asi dostatečný nástroj. Samozřejmě, kdybych měl k ruce zdatného programátora, tak neváhám ani chvíli, ale to je jiný příběh.
Nicméně bych si ale Unity tak jako tak rád lépe vyzkoušel (i kdybych tam tento projekt nepřeváděl), takže jsem si přečetl všechny manuály k grafické optimalizaci pro iOS a android, dokážu si představit že tam tu hru udělám, ale stále mi není úplně jasných pár věcí. Správnou práci s grafikou vidím jako hlavní problém proč se zatím ještě zdráhám přejít.
Ještě jednou - sorry nejsem programátor, tak kdyžtak zkuste na mě trochu selsky.
Sprity
- v každém levelu mám nějaké sprity nebo i spritové animace, musím si tedy pro každou scénu vytvořit ručně atlasy? Koukal jsem, že ten texture packer co tam teď mají nový tohle fakt umí řešit (dá se nastavit co jak k sobě má poskládat), ale je jen v PRO verzi, to mi přijde trochu šílený, abych kvůli tomu platil 3x1500$ když chci pc, ios, android verzi hry.
- Rampage psal o jednom toolu co to umí http://u3d.as/content/tasharen-entertainment/ngui-next-gen-ui/2vh - jak to funguje? Můžu pracovat se spritama přímo v unity a tohle mi z toho pak jen vytvoří ty správní atlasy? Nebo si kutim ty sprity a atlasy někde vedle a pak je jen importuju?
- Mem: co používáte za tool a jak to pak importujete do Unity?
- na GM mi přišlo fajn, že si tam prostě nahážu sprity, označim do jakýho atlasu patřej a při kompilaci se ty atlasy správně utvořej, má to cache takže se vytvářej jen když je tam změna. V podstatě žádná starost. Když jsem pak potřeboval změnit nějakou animaci, přidat atd tak jsem prostě upravil nebo přidal sprite, označil atlas a při kompilaci se udělaly nový atlasy a hra jela. Tento způsob se mi zdá ideální. Trošku mě děsí představa, že při každé takové změně budu odcházet do nějakého toolu na textury, tam si ladit sprity, pak to importovat do Unity a ještě to v Unity nastavovat. Nebo mi něco uniká?
Rozlišení
- jestli jsem to správně pochopil, tak například bych importoval všechny sprity a pozadí v rozlišení 2048x2048 a u každé textury (nebo někde globálně?) pak nastavil, že pro iOS a Android se mají textury zmenšit na 1024x1024.
- stejně tak bych tedy nějak automaticky všechny objekty tedy zmenšil a zmenšil i scénu, to už není problém.
- Ladis naznačoval něco co si nejsem jistý zda jsem pochopil - jakože bych měl všechny textury tedy 2048x2048 i pro iOS a Android a na konkrétním zařízení dle nastavení nebo výkonu by se mi z toho při načítání do paměti generovaly textury poloviční (resp. 1/4)? To by bylo možná fajn, docela by to mohlo řešit snadnou možnost například pro ipad retina displej ve stejné appce jako pro iphone (ale zas iphonysti by chudáci stahovali grafiku co nevyužijou, protože se jim vždy downscaluje)
Fyzika
- když si udělám ten obrovskej terén přes celou mapu (těch cca 48000px na výšku), tak to bude ok na výkon? když ten objekt co s tim bude kolidovat bude jen jeden (nebo jich bude třeba 5-10)?
- v GM to takto mám udělané a nezdá se to myslím jako problém
Atlasy a paměť
- máte někdo zkušenost s tim, že je potřeba hodně atlasů v ios/android aplikaci? To moje velké pozadí rozdělím zhruba na 24 textur 2048x2048, vykreslovat v jednu chvíli stačí tři. Problém v GM byl, že v paměti musí být všechny, protože načítání dalších zablokuje zhruba na půl vteřiny aplikaci.
- jak to řešit? Narvat to tam všechno a Unity si s tím nějak kouzelně poradí? Nebo se dají ty textury nějak postupně načítat aniž by aplikace zamrzla? Jak?
- příp. jak testujete kolik atlasů na scénu už je moc nebo prostě jak odhadujete kolik můžete použít grafiky? U androidu je to asi dost složitý, ale u iOS toho hardwaru není přece tolik a přece jse nikde nenašel nějakou tabulku co by říkala kolik atlasů můžu mít v paměti než aplikace crashne.
- 24 textur mám na pozadí, zrhuba jednu texturu mi zabere loď a GUI a tak jednu nebo dvě potřebuju na animace v levelu. Takže mi to vychází že potřebuju skoro 30 atlasů na scénu. Z toho zhruba 3 spritové vykreslovat stále + 3 na pozadí stále + zbytek mít v záloze.
Ještě jednou moc díky všem za rady! _________________ Twitter @abukac
www.amanita-design.net
www.circusatos.com |
|
Návrat nahoru |
|
|
Rampage
Založen: 30. 08. 2012 Příspěvky: 23
|
Zaslal: 21. listopad 2013, 17:07:20 Předmět: |
|
|
citace: |
"Můžu pracovat se spritama přímo v unity a tohle mi z toho pak jen vytvoří ty správní atlasy? Nebo si kutim ty sprity a atlasy někde vedle a pak je jen importuju?" |
Atlasy se vytvářejí z importovaných obrázků v unity
citace: |
"Koukal jsem, že ten texture packer co tam teď mají nový tohle fakt umí řešit (dá se nastavit co jak k sobě má poskládat), ale je jen v PRO verzi, to mi přijde trochu šílený," |
myslim že všechny věci z 2d z nový verze jde dělat i v tý verzi zadarmo, tedy i atlasy.
Funguje to tak, že si naimpotuješ všechny obrázky do unity. Z toho si uděláš atlasy. Pak si tam můsíš taky importnout fonty a z toho udělat taky atlas. Je to prostě asset pro tvorbu GUI, lepší jak to co je teďka v unity. Lepší to je v tom, že tam je už dost věcí hotová (ukázkový scény). A o dost to snižuje drawcalls. Ale potom co jsem se koukal znova na to video o 4.3, myslím že ti bude stačit to, co je novýho v 4.3.
citace: |
"jak to řešit? Narvat to tam všechno a Unity si s tím nějak kouzelně poradí? Nebo se dají ty textury nějak postupně načítat aniž by aplikace zamrzla? Jak?" |
načte se všechno, co je na scéně. Objektům co nejsou vidět vypneš komponentu renderer nebo dáš setActive na false ve vlastnosti objektu v kodu.
citace: |
"příp. jak testujete kolik atlasů na scénu už je moc nebo prostě jak odhadujete kolik můžete použít grafiky?" |
statistiky scény za zapneš v okně Game. Tlačítko Stats. Vedle jsou tlačítka Maximaze on Play a Gizmos. Tam vyčteš kolik maš FPS, drawcalls atd |
|
Návrat nahoru |
|
|
abuki
Založen: 31. 07. 2012 Příspěvky: 507 Bydliště: Praha
|
Zaslal: 24. listopad 2013, 16:10:04 Předmět: |
|
|
Tak sem si řek, že místo dalších přiblblejch otázek to prostě v tom Unity zkusim udělat. Terén, pozadí a loď už tam mám a vypadá to moc dobře. Výkon jak fyziky tak vykreslování se zdá být lepší než v GM, což mě plní optimismem. Přesto je pořád GM fajn nástroj na jednoduché hry i třeba kvůli tomu, že umí HTML5.
Bojuju s nějakejma detailama, ale snad se to srovná. Na Unity fóru se mi ozvali nějaký programátoři, tak uvidíme i co z toho bude. Blbý je, že se prostě zas to vydání odsune, ale zas je to příležitost si to Unity pořádně osahat. Tak doufám, že až to doděláme, že to bude ještě někoho zajímat.
Všem díky za tipy! _________________ Twitter @abukac
www.amanita-design.net
www.circusatos.com |
|
Návrat nahoru |
|
|
]semo[
Založen: 29. 07. 2007 Příspěvky: 1526 Bydliště: Telč
|
Zaslal: 25. listopad 2013, 11:12:17 Předmět: |
|
|
A já doufal, že to doklepneš v tom GM. Ale Unity je mocný nástroj. Nemám ho rád, nerad to zapínám, ale dělá se v něm rychle, takže tvá hra bude snad taky rychle hotová :-). _________________ Kdo jede na tygru, nesmí sesednout.
---
http://www.inventurakrajiny.cz/sipka/
Aquadelic GT, Mafia II, simulátory |
|
Návrat nahoru |
|
|
abuki
Založen: 31. 07. 2012 Příspěvky: 507 Bydliště: Praha
|
Zaslal: 25. listopad 2013, 15:53:42 Předmět: |
|
|
Proč si doufal?
Jak říkám - ono by to šlo, ale musel bych odstřihnout iPhone 4 a většinu androidů. Čistých a plynulých 60fps byl občas také problém a ten komiks by tam musel vypad dost stroze, protože pořádně zanimovat by bylo šílený.
Ale jak jsem psal, GM si stále nechávám na menší projekty a tam kde potřebuju html5, není to špatnej nástroj. _________________ Twitter @abukac
www.amanita-design.net
www.circusatos.com |
|
Návrat nahoru |
|
|
]semo[
Založen: 29. 07. 2007 Příspěvky: 1526 Bydliště: Telč
|
Zaslal: 25. listopad 2013, 17:05:43 Předmět: |
|
|
Proč jsem doufal? No, že by snad někdo něco zase dodělal, místo věčnýho předělávání :-). _________________ Kdo jede na tygru, nesmí sesednout.
---
http://www.inventurakrajiny.cz/sipka/
Aquadelic GT, Mafia II, simulátory |
|
Návrat nahoru |
|
|
|