« 1 2 3 (4)


Re: Bonne pratiques pour le jeux vidéo & optimisation.
OverdOzed
Inscrit:
19/03/2016 16:30
De Belgique
Post(s): 1416
Petite mise à jour:

Les armatures:

Tout ceux qui aurons testés comme moi le savent: quand vous avez un personnage qui à +/- 60 bones multiplié par les personnages environnants, la fluidité du jeu est dramatiquement réduite.

Cela est dû à un manque d'optimisation du code source de Blender (je suppose) et j'ignore encore si c'est le cas pour l'upBGE.

Donc, pour optimiser cela, il vaux mieux compléter (voire remplacer) avec des shape keys.

Un exemple: pour rigger une main (humaine), il faut environ 16 bones (soit 1 bone pour le poignet et 3 bones pour chaque doigts).

Multipliez ce nombre par le nombre de mains (si ce n'est pas un humain) et cela vous fait monter les chiffres et je n'ai pas encore compter les bones pour le reste du corps, plus les animations faciales.

C'est là que les shape keys interviennent: a-t-on besoin d'animer les doigts n'importe comment en jeu ? A-t-on besoin d'animer le visage tout le temps en jeu ?

Posez-vous cette question dans le cas ou vous créez un jeu sous Blender.

Une dernière chose: j'avais indiqué dans le premier post que les contraintes peuvent être problématiques durant le jeu. Il semble que non mais je n'ai pas testé. Cela dit, cela ne justifie pas l'utilisation à outrance de bones, contraintes ou non.

Donc, pour résumer: Utiliser une armature complète pour configurer les shape keys & autre joyeusetés puis une version simplifiée pour le mode jeu.

Ce que j'avance là reste théorique car je dois expérimenter ça mais dans le lien que j'ai donné plus haut, on en parle dans le chapitre "animation" donc je reste confiant sur mes dires.

Contribution le : 25/02 11:03:47
_________________
Mon projet jeu vidéo
Mes tutos
Créer un fichier PDF de la contribution Imprimer


Re: Bonne pratiques pour le jeux vidéo & optimisation.
OverdOzed
Inscrit:
27/12/2012 00:15
Post(s): 386
Salut mon ami.

Je te conseille vivement de créer deux armatures.

L'une complète avec autant de contraintes et IKs que tu le souhaites, l'autre, avec les bones uniquement.

En effet, les contraintes et surtout les IKs sont extrêmement coûteuses en ressources.

Blender permet de Baker les animations d'une armature à une autre!


Amicalement,

Contribution le : 26/02 09:49:24
_________________
Blog ; http://anarchie-jeu.over-blog.com
Créer un fichier PDF de la contribution Imprimer


Re: Bonne pratiques pour le jeux vidéo & optimisation.
OverdOzed
Inscrit:
19/03/2016 16:30
De Belgique
Post(s): 1416
Salut Anarchy62 !

Apparemment, les contraintes ne seraient pas problématique, mais le nombre de bones oui, car il est dit que certaines contraintes sont "compatibles" avec le BGE, donc exploitable, tel que le "rigid body joint".

Pour le reste, on est d'accord.

Contribution le : 26/02 16:17:09
_________________
Mon projet jeu vidéo
Mes tutos
Créer un fichier PDF de la contribution Imprimer


Re: Bonne pratiques pour le jeux vidéo & optimisation.
OverdOzed
Inscrit:
27/12/2012 00:15
Post(s): 386
En effet, cetaines contraintes sont compatibles mais cela reste beaucoup plus gourmand. Je n'ai jamais utilisé le rigide body alors je ne serais juger. Les IKs, largement plébiscités, consomne beaucoup.
Je pense que pour avoir une qualité supérieur, il faille passer par le baking. C'est une autre organisation mais cela vaut le coup.

Contribution le : 27/02 09:36:40
_________________
Blog ; http://anarchie-jeu.over-blog.com
Créer un fichier PDF de la contribution Imprimer


Re: Bonne pratiques pour le jeux vidéo & optimisation.
OverdOzed
Inscrit:
19/03/2016 16:30
De Belgique
Post(s): 1416
Nouvelles:

Quand vous avez un objet avec plusieurs matériaux, sur certains de ces objets, il est nécessaire de changer la couleur de la texture.

Donc, ça veux dire que vous allez avoir la même texture mais sous des ton de couleurs varié, ce qui fait beaucoup, point de vue travail pour la carte graphique...

...Et l'utilisation de "l'object color" n'est pas envisageable car il n'y a pas qu'un seul matériel, "l'object color" s'applique sur tous, du moment que vous activiez l'option qui s'y rapporte.

C'est pourquoi il faut alors se tourner vers le système nodal. En effet, vous pouvez changer la couleur de la texture voulue, sans répercuter sur les autres, à l'aide du node correspondant.

Conséquences: vous gardez une texture (et une seule !) de couleur neutre (préférence en blanc-gris) et il vous suffit simplement de changer le ton de couleur souhaitée. Vous pouvez ainsi optimiser le nombre de textures et la taille de votre fichier blend au passage !

Contribution le : 13/03 13:24:48
_________________
Mon projet jeu vidéo
Mes tutos
Créer un fichier PDF de la contribution Imprimer


Re: Bonne pratiques pour le jeux vidéo & optimisation.
OverdOzed
Inscrit:
19/03/2016 16:30
De Belgique
Post(s): 1416
Nouvelles découvertes sur le BGE:

Cela concerne le module Libload, en python, qui permet d'importer de façon dynamique, un blend dans un autre. Il se trouve que ce module n'est pas au point: problèmes d'optimisation, crash du jeu quand on ajoute certaines briques logiques (plus haute que 2.70) et augmentation significative de performances sur certains points non explicable (erreur de codage ?). J'ai découvert que faire un import d'un blend à un autre, via un link, "remplace" le libload, de façon propre et fonctionnel. C'est à dire que, en gros, libload importe le contenu du blend de façon automatisé et pendant le jeu, tandis qu'avec le link, il faut faire à la main et c'est chargé avant le lancement du jeu (soit à l'ouverture du blend).

Par exemple, j'avais un soucis avec mon script "mouselook", importé via libload, je passais de 60 à 20-25 fps. Avec link, c'est de 60 à 50 fps pour 5-10% pour le process logic, contre 40 % avec libload.

Si l'on à un personnage et que l'on doit changer constamment son arme (ou son mesh), il n'est théoriquement pas possible de trouver sa trace (du mesh de l'arme) dans un blend qui n'existe pas... sauf si on l'importe indirectement !

En effet, j'ai fais un groupe d'instance de mon personnage, en y incluant les vêtements et les armes et j'ai pris soin de rendre visible uniquement le calque ou se trouve mon personnage contrôlable. J'ai ensuite fais un link sur mon terrain de jeu, pointé le groupe "joueur", et l'ai placé où je le voulais. Quand j'ai lancé le jeu, j'ai constaté qu'il retrouvait les vêtements et les armes que j'avais assigné, comme si ils étaient présent quelque part. Je les ai exclus du groupe pour tester et ça réagi comme je le pensais, python m'indique que l'objet n'existe pas.

Pareil pour les scripts: blender importe que les script des contrôleurs en mode script mais pas en mode module, il faut créer une brique dans un calque vide et indiquer le script entier pour qu'il soit importé ou le faire sois-même, manuellement. Même principe pour les animations...

Par contre, à chaque changements effectué à la source, il faut recharger le blend cible, à savoir le terrain (donc bien sauvegarder avant de faire un refresh si l'on a ajouté de nouveaux éléments).

J'ai testé avec d'autres versions, pour voir comment ça se comportait, et là, je vois que ça se passe comme un charme, hormis quelques "imperfections" solvable facilement. Je reste prudent, car j'ai pas fini de reconditionner mon projet, mais après quelques essais sur situations réelles, je n'ai plus de problèmes, donc j'en conclu que cette méthode est la bonne.

Du coup, avec tout ça, j'ai constaté qu'il n'était pas nécessaire de faire toutes les collisions sur le terrain de jeu, car la présence du module libload semblait fausser les informations des statistiques.

C'est à dire que, toujours avec des groupes d'instances, j'importe des arbres, des bâtiments, en mode collisions statiques, et visiblement, ça ne ralentis pas, contrairement à ce que je m’attendais.

Par contre, bien entendu, tout ce qui est soumis à une physique dynamique, elle, est consommatrice de performances si mal contrôlée... (donc désactiver à une certains distance de la vue du joueur)

Enfin, je précise que cette idée m'est venue en jetant un coup d’œil sur le jeu yo frankie, qui est découpé comme des assets.

Contribution le : 08/06 16:44:48
_________________
Mon projet jeu vidéo
Mes tutos
Créer un fichier PDF de la contribution Imprimer



 Haut   Précédent   Suivant
« 1 2 3 (4)




Enregistrer votre réponse
Compte*
Nom   Mot de passe   Authentification
Message:*



[Recherche avancée]



Sujets récemment répondus
Forums Sujets Réponses Lus Dernières contributions
Questions & Réponses Comment retrouver les textures d'un mesh créé avec 2.79 dans 2.80 et les faire apparaitre 2 35 Aujourd'hui 11:12:39
Bibi09 
Le coin des geeks config pour projet d'environ 30 000 000 de vertex 9 380 Aujourd'hui 11:07:50
Bibi09 
[WIP] et travaux terminés Goatster 1 32 Aujourd'hui 10:02:01
moonboots 
[WIP] et travaux terminés Une locomotive ...    [1][2] 10 249 Aujourd'hui 00:20:48
busanga 
Questions & Réponses Display number of users of this data 5 108 19/11 20:57:13
Machaon 
Questions & Réponses UV editing, mes translations sont saccadées. 2 86 19/11 19:49:58
Homarus 
Questions & Réponses [non résolu] Livre Blender 2.8 7 1044 19/11 16:25:56
Mikeyavel 
Questions & Réponses problème shader emission 2.8 4 104 19/11 13:50:32
moonboots 
Questions & Réponses Longueur d'une courbe de béziers ? 7 342 19/11 12:25:59
Eleonor-e 
Questions & Réponses [résolu] Découper un modèle sur Blender 3 112 19/11 09:59:22
Twi7 
Le coin des geeks Fonctionnement blender avec plusieurs cartes graphiques 2 104 18/11 15:01:06
Bibi09 
GIMP La crème de Gimp    [1][2][3][4] 33 38830 18/11 12:48:39
jackwilshere 
Questions & Réponses fusionner plusieurs matériels en un seul 1 93 18/11 11:14:18
moonboots 
Questions & Réponses Labels 3 158 17/11 22:45:48
Bibi09 
Questions & Réponses [résolu] Impossible de faire un bevel regulier 9 330 16/11 22:33:51
pat72 
Moteur de jeu GameBlender et alternatives [résolu] Programmer un archer à cheval    [1][2][3][4] 34 1235 16/11 11:38:45
Bibi09 
Questions & Réponses Trace bizzarre sur un objet 6 173 15/11 14:10:05
moonboots 
Python & Plugins [WIP] Tracer une courbe et obtenir son équation 7 180 15/11 11:51:13
busanga 
Questions & Réponses Besoin d'aide simulation de vent sur des plantes (système particules) 0 264 14/11 17:50:55
B3nD 
Questions & Réponses Contrainte en édition 1 127 14/11 13:57:05
naeco 

Qui est en ligne
86 utilisateur(s) en ligne (dont 35 sur Forums)

Membre(s): 2
Invité(s): 84


PaulaLempr, papillon, plus...
Nouveaux membres
Elliot70Y2 21/11/2019
VirgieSout 21/11/2019
PhilLucero 21/11/2019
PaulaLempr 21/11/2019
DoyleVelez 21/11/2019
julien_costa 21/11/2019
Homarus 19/11/2019
babine 18/11/2019
Twi7 18/11/2019
jackwilshere 18/11/2019
Dernier Ajout
2019-11-05 01.JPG

Evènements à venir
Dec 29
Anniversaire d'ebrain
Jan 11
BUG de Lyon
Fev 15
Anniversaire de Dany
plus 277 plus d'élément(s)
 Par Mickaël Guédon [ebrain] © 2003-2019 The Blender Clan - hébergé par TuxFamily - Site déclaré à la CNIL sous le numéro 1155445