Creare Videogiochi - Game Developer

Versione completa: Step creare un modello per videogame [?]
Al momento stai visualizzando i contenuti in una versione ridotta. Visualizza la versione completa e formattata.
Ciao a tutti,

da quel che ho capito spulciando sul web, gli step per creare un modello per un videogame, con Blender e per Unity, sono questi:

- Creare un modello low poly simmetrico in posa T
- Triangolarlo
- Delineare i limiti dell'UVmap
- Unwrappare
- Usare il tool painting di Blender per la texture
- Creare un "armatura" (dargli uno scheletro insomma)
- Limitare le parti di deformazione della mesh per una giusta animazione
- Esportare

I miei dubbi sono questi:

1. Qual'è il limite di poligoni per rendere un personaggio "low poly"? E quelli consigliati per un videogame?

2. Triangolare è un'operazione necessaria anche se aumenta il numero di poligoni?

3. Se texturizzo su Blender, ho bisogno comunque di delineare la mappa UV? Se si, qual'è il metodo più ordinato e "automatico" per la disposizione dei pezzi di mesh sulla mappa?

4. Se volessi creare il mio personaggio nudo, in mutande, qual'è il giusto procedimento per potergli creare degli indumenti/armature/capelli e far si che seguano la mesh del personaggio?

5. Qual'è il miglior formato per esportare Modello-Texture-Ossa-Limiti per Unity?

Grazie mille per l'attenzione Heart
Ciao se ne vuoi sapere di più contattano su skype a questo nick: seidefi100.
defi100 questo è un forum pubblico, dove le varie esperienze vengono condivise tramite aiuti o altro.
Scrivere in privato mi sembra inutile, specialmente in una community.

1) il limite di poligoni dipende da molti fattori, 1° l'engine 3D che utilizzi... comunque in linea di massima tieniti sempre sui 1000/6000 poligoni max per personaggio, l'estetica la fai con le texture non con i poligoni.

4)Forse non ho capito bene, crei il modello nudo, poi crei un altro modello che sia una giacca adattandola al corpo, avendo nella stessa scena entrambi i modelli per vedere se combaciano.
Allora io me la cavo abbastanza bene con blender e sto creando anche io mesh per unity e ti so dare le risposte ai tuoi dubbi , allora :
1.

Tieni presente che la scena di unity , ovvero intendo quando guardi dalla telecamera che sia fps o terza persona , riesce a riprodurre senza problemi una mesh di circa 10000 poligoni , quindi se devi creare braccia per fps e armi tieniti 5000 poligoni ciascuno ovvero 5000 max per braccia e 5000 max per armi ; se invece utilizzi la terza persona 10000 sono perfetti 1000 max per arma e il resto per il corpo . Un personaggio low poly generico per unity può andare bene anche per 3000-4000 poligoni . Dipender poi che utilizzo ne fai .. low low poly 2000 ecco. Ma puoi andare anche sotto io parlo per mantenere un buon livello di dettaglio.

2.

TRiangolare non è un 'operazione di vitale importanza , poi dipende dalla tecnica che usi per modellare se usi il retopo (almeno mi pare si dica così , ovvero quando crei la mesh con tantissimi poligoni e poi la trasformi in una low poly utilizzando le mappe della hp) non serve a nulla triangolare . Io ad esempio non lo faccio maimi trovo meglio senza .

3.

Se utilizzi blender PER FORZA devi definire le uv map , che ti serviranno poi per texturizzare , il metodo più veloce e ordinato è smart uv project ma devi definire dei MARK SEAM , ovvero linee guide che blender utilizzerà per unwrappare ( ovvero definire le uv map) . Il metodo più accurato però è appunto unwrap ovvero l'operazione basilare per creare le mappe , ricorda che anche qua dovrai definire i mark seam.( per domande su questo apri una nuova discussione).

4.

Il migliore procedimento per creare gli indumenti è il seguente:
* Selezioni la parte del corpo che ti interessa per creare gli indumenti , ad esempio la maglia , allora selezioni tutta la zona dove vorrai che ci sia ..quindi dal collo in giù fino al bacino e una parte delle maniche .
*Ora estrudi con E , così crei delle facce della stessa dimensione.
* A questo punto devi mettere i vertici nelle posizioni migliori e scalare in base alle tue preferenze .
*una volta scalato e sistemato i vertici fuori zona gli dai uno SMOOTH giusto per fare constrasto e per lisciare le facce .

5.

Il miglior formato per esportare ossa e mesh da blender per unity è FBX , ma anche OBJ va bene in quanto unity li legge entrambi ma fbx è più sicuro per le esportazioni.

--
Spero di aver fatto un pò più di luce sui tuoi dubbi Wink
Cristallino, Skynet, grazie davvero tanto c:
Grazie anche a te, Friskon Big Grin
Heart
Se hai altri dubbi non hai che da chiedere
Le risposte di skynet sono già sufficienti, rispondo solo alla :
1. Dipende anche dal tipo di gioco, se i modelli serviranno per un RTS che prevede 100 personaggi in movimento per ciascuna parte in gioco e una camera piuttosto distante che permetta di gestirli agevolmente allora il conteggio dei poligoni è da riconsiderare al ribasso. Talvolta nel Game Design Document è prevista una nota tecnica per indicare la media di nr. di personaggi che saranno presenti contemporaneamente proprio per dare un'idea della quantità di poligoni in gioco oltre quelli necessari per il livello. Se stai modellando per un gioco in terza persona magari del tipo "avventura punta e clicca investigativa" è facile che proprio il personaggio sia l'elemento principale con una copertura del 40% dello schermo e che non siano mai presenti più di 3-4 personaggi, in quel caso è lecito abbondare.. insomma per riassumere.. dipende anche dal gioco Big Grin

1b. Spesso è gradita la capacità di fornire una versione normale del modello (per es. da 10k poly) e almeno una più LOW. Tanti engine in fase di caricamento creano fittiziamente delle versioni LOW con cui fare LOD oppure offrono la possibilità di fornire fin da subito un set di modelli (LOD1, LOD2, ecc..) che insistono sullo stesso oggetto e che l'engine userà in base alla distanza per ottimizzare http://docs.unity3d.com/Manual/LevelOfDetail.html (la mia fonte sono le richieste lavorative che si trovano su riviste di settore UK o in rete).

2. Con gli engine moderni è ininfluente, molti triangolano in fase di caricamento del modello stesso strippando i poligoni troppo complessi, e comunque le sk-video moderne gestiscono poligoni oltre il triangolo.
Per implementare ciò che ha detto CHIP , che è corretto , in un gioco c'è una tecnica utilizzata per il risparmio dei poligoni e per l'aumento della resa , il nome non lo ricordo ma sta nel diminuire i poligoni degli oggetti lontani e se si avvicinano aumentarli in modo da aumentare il livello di dettaglio quando è richiesto ma questa è solo una curiosità.
Si chiama LOD skynet, quello che ha linkato Chip Big Grin
Avete ragione, il LOD è il concetto generico, indica solo quella serie di accorgimenti e algoritmi per gestire un Il Livello di Dettaglio, appunto Level Of Detail: LOD.

Ce ne sono di vari tipi, essenzialmente è diviso in due famiglie, quello dinamico e poi quello statico.

Il primo prevede una semplificazione del modello tramite un calcolo in tempo reale, nei giochi è al momento limitatamente utilizzato tranne che per la gestione dei terreni. Mi viene in mente il ROAM che crea i triangoli sui terreni ma ce ne sono molti altri; si parte dalla mappa 2D a scale di grigi ma non mi dilungo oltre (non è un caso che molti engine abbiano sempre un proprio editor di heightmap).

Il secondo presuppone che il modello semplificato sia già pronto perché precalcolato in fase di caricamento del modello (che appesantisce la partenza del gioco) e qui si possono usare anche algoritmi specifici, tanto perdere 0.5sec a modello non uccide nessuno. I risultati però non sono garantiti specie per i modelli riggati. Altrimenti si fanno fare ai modellatori direttamente (e se non vogliono farli si può sempre prenderli a cinghiate Cool ). Altrimenti è usato per la manipolazioni di modelli 3D medici o architetturali per fare veloci preview ecc..

Solitamente si prevede una trasformazione su un dominio lineare tra 0 e 1 o max e min (l'algoritmo non lo è occhio) e poi dipendente dalla distanza tra la camera e l'oggetto, il che rende più morbido l'effetto di pop-in sulle superfici mentre ci si muove.

Altrimenti (nel secondo caso) è un calcolo discreto per definizione e abbiamo tipo 1-2-3 modelli HI-MID-LOW con due distanze entro cui i livelli devono vivere.
Se stiamo entro A usiamo il modello HI, se stiamo tra A e B si usa il MID e se siamo oltre il B ma comunque fino al piano di FOG e/o del clipping del FOV allora si passa al LOW; poi l'oggetto è clippato e tante grazie.
(vedere la schermata di UnityPro per il LOD per avere una idea http://docs.unity3d.com/Manual/class-LODGroup.html )

Non tutto deve avere un LOD, mentre giocate buttate un occhio alle case, castelli, foreste, nemici, ecc.. notate il pop-in dei dettagli e capirete cosa ha un LOD e cosa no. Nei giochi spaziali stile EVE-Online si vede benissimo (oltretutto l'algoritmo per ridurre le sfere-pianeti è banalissimo).

Immaginando il continuo calcolo delle distanze dalla camera e gli oggetti spesso non si fa uso della distanza euclidea che con le radici quadrate è troppo pesante ma si usano forme più semplici e approssimate, come la distanza Manhattam, che mantengono l'errore entro certi valori e quindi un risultato stabile.

Altra cosa e ultima perché sono completamente OT, si tende a fare gruppi di LOD quantizzando gli oggetti troppo densi, per es. se abbiamo una foresta di 2500 alberi è probabile che questi siano divisi con una struttura ad albero un quad per es. e che si applichi il LOD solo a quelli che stanno nei quad dentro il FOV e solo di questi ci mettiamo a fare le distanze, magari a grappoli di 2-3 alberi alla volta, ecc..

Fonti e legenda
Corsi universitari e ho lavorato per un centro studi oncologico al trattamento delle immagini
FOV: Field of View (tronco di piramide che rappresenta il campo visivo della camera)
LOD: Level of Detail
ROAM: Real-time optimally adapting mesh, algoritmo di livello di dettaglio dinamico usato per le mesh di terreni a partire da una heightmap.