3D et Animations : Débat

[Résolu]
Signaler
Messages postés
246
Date d'inscription
mercredi 5 janvier 2005
Statut
Membre
Dernière intervention
11 mars 2012
-
Messages postés
1329
Date d'inscription
vendredi 15 août 2003
Statut
Membre
Dernière intervention
16 juin 2010
-
Voila ma question. Après, à vous de juger de sa pertinence (voir de sa redondance).
Dans tous les jeux vidéos que je connais. On peut voir dans les fichiers de ressource d'énormes quantités d'animations pour chaque personnage, chaque élément du décor, retraçant ainsi la totalité des mouvements possibles d'un personnage, par exemple, dans toutes les situations possibles du jeu. C'est une méthode de faire, et je pense sûrement très réfléchie pour que nombre de jeux fonctionnement sur ce principe.
Mais je pensais à une autre méthode (peut être a-t-elle déjà été refusée par avant, je ne sais pas), qui consisterais à definir un personnage, par exemple, comme une tête, un corp, deux avant et (arrières ?) bras, deux avant et (arrières ?) jambes, même si je n'emploi peut être pas les bons termes. A partir de la chaque membre ainsi créé ne possèderais, mis a part ses faces et sommets propres, que des points d'attache et un point donnant le sens de rotation, comme par exemple l'arrière bras pourraitâlors être symbolisé uniquement par un triangle, constitué des attaches avec l'avant bras et le tronc.
Dans ces conditions, pendant une animations 3D, il suffit de déplacer ces points pour chaque partie du corps, les faces et sommets étant calculés alors relativement à ces derniers.

J'espère m'être expliqué clairement car ce n'est déjà pas facile à mettre en mots.

La question final serait, pourquoi personne ne fait de cette manière ?
S'agit-il d'un problème de rapidité de calcul et donc de fluidité ? Car cette méthode permettrais par ailleurs de faire un gain de temps et de mémoire lors des chargements.

J'attend avec impatiences vos réponses. Merci d'avance !

4 réponses

Messages postés
1329
Date d'inscription
vendredi 15 août 2003
Statut
Membre
Dernière intervention
16 juin 2010
2
ce a quoi tu pense existe et est utilisé dans 99% des jeux actuels, si si

en fait t'as un squelette avec des articulations; les vertices sont
"fixés" aux os. du coup t'as qu'a bouger les articulations avec
quelques SLERPs ou plus simplement interpo linéaire (mais moins beau)
pour que le reste suive

ca permet également d'économiser unmax de mémoire puisqu'au lieu de
stocker 200 modeles tu stockes 1 modele et 200 squelettes, BEAUCOUP
plus petits

inconvénient: ben point de vue modélisation 3d, t'as intéret a gérer 3dsmax ^^...

et c'est un chouia moins rapide que les modeles a la .md2



++

ad

_______________________


Omnia vincit labor improbus
Messages postés
1787
Date d'inscription
lundi 22 novembre 2004
Statut
Membre
Dernière intervention
31 janvier 2009
2
En faite tu veux décomposer un personnage en plusieur objet comme si on décomposer une maison en meuble, en tapisserie etc... lol la comparaison qui tue...

Bé j'suis pas un pro de ce qui est gestion de mémoire mais bon si ton jeux c'est un jeu de stratégie tu risques vite de saturer lol ( tous les guerriers avec des avants bras )

Mais j'pense quand même que ça risque d'être long à calculer...
Un bras qui bouge, c'est pas d'un point à l'autre, c'est compliquer les mouvements en faite...

Faut tester, si ta le courage, le temps, la patience et les compétences lol mets nous au courant

void Aurevoir( void ); //Bonne journée
Messages postés
294
Date d'inscription
samedi 5 février 2005
Statut
Membre
Dernière intervention
24 juillet 2015

Ton idé est deja utiliser dans un certain type de jeu ^^



parexemple sous opengl on peu faire cela facilement et controler le
mouvement de chaque item(bras,tors,pied...) par les fonction
glpushmtrix et glpopmatrix + les fonction pour la retation et la
translation ( glretation,gltranslation)

++
Messages postés
246
Date d'inscription
mercredi 5 janvier 2005
Statut
Membre
Dernière intervention
11 mars 2012

mais d'un point de vue rapidité, mémoire utilisée et temps de chargements, qu'en pensez vous ? En fait le but final pour moi est d'essayer de programmer un jeu de stratégie visant à un très grand nombre d'unités (style cossack 2), et il est donc essentiel de gagner de la mémoire et de la rapidité de tous les côtés pour avoir un programme final assez léger et capable de tourner sur des machines n'ayant pas obligatoirement des caractéristiques super élevées !