« 1 2 3 (4)


Re: Bonne pratiques pour le jeux vidéo & optimisation.
OverdOzed
Inscrit:
19/03/2016 15:30
De Belgique
Post(s): 1573
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/2019 10:03
Créer un fichier PDF de la contribution Imprimer


Re: Bonne pratiques pour le jeux vidéo & optimisation.
OverdOzed
Inscrit:
26/12/2012 23:15
Post(s): 394
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/2019 08:49
_________________
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 15:30
De Belgique
Post(s): 1573
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/2019 15:17
Créer un fichier PDF de la contribution Imprimer


Re: Bonne pratiques pour le jeux vidéo & optimisation.
OverdOzed
Inscrit:
26/12/2012 23:15
Post(s): 394
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/2019 08:36
_________________
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 15:30
De Belgique
Post(s): 1573
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/2019 12:24
Créer un fichier PDF de la contribution Imprimer


Re: Bonne pratiques pour le jeux vidéo & optimisation.
OverdOzed
Inscrit:
19/03/2016 15:30
De Belgique
Post(s): 1573
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/2019 15:44
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
[WIP] et travaux terminés Les fonds de mes rendus 0 18 Aujourd'hui 15:06:56
3dlone 
Questions & Réponses Problème avec le nodes Color Ramp 2 57 Aujourd'hui 13:00:58
Elliott42 
Questions & Réponses Comment faire une boucle infinie (animation) 9 100 Aujourd'hui 13:00:46
3dlone 
Moteur de jeu GameBlender et alternatives hARMful engine    [1][2][3]...[7] 64 5984 Aujourd'hui 01:54:45
Bibi09 
Moteur de jeu GameBlender et alternatives [WIP] Jeu "Iron Man Collapsing"    [1][2][3] 27 8720 Aujourd'hui 01:39:39
Bibi09 
Questions & Réponses [non résolu] Problème d'importation de svg 4 145 Hier 22:07:43
Joknox 
Questions & Réponses Disparition des Mesh.. 2 44 Hier 19:09:09
Loan20 
Questions & Réponses Animation NLA probleme origine 8 127 Hier 16:45:50
prometheusx 
Questions & Réponses alleger le poid de mon modele 5 76 Hier 16:39:51
Rimpotche 
Questions & Réponses Ajouter un raccourcis a un addon. 0 29 Hier 13:35:40
pierre-y 
Python & Plugins Pouvoir choisir l'outil actif avec python 1 60 Hier 13:20:16
pierre-y 
Questions & Réponses Exporter en FBX sur un ordi Japonais 1 117 Hier 13:01:33
tsurubaso 
Mes premières images sous Blender (débutants) Kame-House    [1][2] 15 531 Hier 08:17:56
Huildecoude 
Questions & Réponses transparence image as plane 3 123 24/05 21:48:30
ansic 
Le coin des geeks Multi-GPU Eevee 0 53 24/05 19:41:55
Poutrator 
Questions & Réponses Conseils pour modéliser un corps 0 61 24/05 18:00:46
GFC 
Python & Plugins Slider sur une shapekey en python.    [1][2] 13 273 24/05 17:44:19
Rimpotche 
Questions & Réponses [non résolu] Usage du CPU (hors rendu) 6 224 23/05 21:16:49
lapineige 
Questions & Réponses [non résolu] Artefacts après textures PBR 0 65 23/05 18:47:13
Laorz 
Python & Plugins [non résolu] Un équivalent de "break" et "continue" pour une boucle ? 3 139 22/05 14:47:21
lucky 

Qui est en ligne
77 utilisateur(s) en ligne (dont 30 sur Forums)

Membre(s): 0
Invité(s): 77


plus...
Nouveaux membres
Osziy_ 26/5/2020
Elliott42 25/5/2020
Ben3D 25/5/2020

Octopus
24/5/2020
aguqaf 23/5/2020
Joknox 21/5/2020
jmperu 21/5/2020
digistef 21/5/2020
LesBulles 20/5/2020
FancyCalf 19/5/2020
Dernier Ajout
mirages-preview~0.jpg

Evènements à venir
Jui 30
Anniv des Jedi :-D
Jui 11
BUG de Lyon
Jui 23
Anniv du BlenderClan !
plus 270 plus d'élément(s)
 Par Mickaël Guédon [ebrain] © 2003-2020 The Blender Clan - hébergé par TuxFamily - Site déclaré à la CNIL sous le numéro 1155445