Demande d'aide sur le scripting python (BGE)

Posté par Galidraan le 8/8/2016 13:14:14
Bonjours tout le monde.
Voila déjà quelque temps que j'essai de faire un petit jeu sous le blender game engine.

Pour mieux que vous comprenez, mon objectif est de créer un minecraft like ou n'importe qui pourrai créer du contenu (blocs, mobs, ...) facilement en disposant des .blend dans des sous dossiers.

Bien que je trouve que blender est assez puissant sous cet angle (pour ce que je veux faire), les briques logique seule ne suffise pas.
Pour cela il faut utiliser des scripts ou des modules pythons.
Bien que je connaisse les base de python, je ne connaît absolument rien au module bge.

Jusque la j'ai réussi a trouver les script dont j'avais besoins sur internet ou ailleurs, a les comprendre (du moins l'essentiel), et a les modifier pour faire ce que je voulais.

Malheureusement, je trouve pas toujours la syntaxe de la commande dont j'ai besoins, en effet la documentation est assez rare sur certain sujets.

C'est pour cela que je poste ce sujets.
Si ç’a ne dérange personne j'aimerai pouvoir poster toutes mes futures questions ici afin de ne pas faire trop de sujets (oui, il risque d'en avoir quelques unes). En espérant que je n'aille pas a l'encontre des règle du site.


Pour commencer voila ma première question : (RÉSOLU)

1-Comment faire pour appliquez une texture depuis python ? Je m'explique, j'ai une texture déjà chargée mais pas appliquée, et je voudrais pouvoir l'appliquer a n'importe quel objet de ma scène (peu importe l'uv mapping) seulement a certain moments définit dans le script.


Voila, il a pas fallut longtemps pour que je retombe sur un autre problème : (RÉSOLU)

2-Je voudrais que quand je casse des blocs, ils deviennent plus petits (pour ça je pense pas qu'il n'y ai de probleme) et soient soumis a la gravité.
Au départ je pensais qu'il fallait changer le physic type en "rigid body", mais apparemment c'est impossible en cour d’exécution.
Je pense qu'il faudrait en faire une copie mais en changeant le physic type, or je ne trouve pas comment.

Encore un autre problème :

3-En exécutant un sript, la console me renvoi : "Blender Game Engine data has been freed, cannot use this python variable", sur une ligne de code qui n'a aucune raison de ne pas marcher.
Le pire, c'est que j'ai déjà eu affaire a une erreur comme ça et je n'ai jamais compris pourquoi.
La dernière fois mon code marchait jusqu’à ce que rajoute une ligne qui comportait un problème. La console m'avait renvoyé cet erreur pour une ligne de code tout a fait normale qui n'avait rien a voir avec la ligne buguée.
La dernière fois c’était facile je savait a partir de quand l'erreur était arrivée mais maintenant, l'erreur pourrait être partout.

Et encore un autre plus compliqué :

4-J'ai plusieurs problème avec la portée de mes variables dans mes class. Je pense que le mieux de de vos fournir directement le .blend, j'ai mis de commentaires en majuscule devant les lignes causant problèmes.
Tans qu'a faire j'en profite pour présenter des petit problèmes qui sont la depuis quelque temps mais que je n'ai jamais pris la peine de présenter : 1 Certaine animation (celle qui ont été importer avec un objet) ne peuvent pas être effacées et les animations de mouvement de mon personnage se bloquent parfois.
.blend : https://drive.google.com/open?id=0B0lTbNQbmMMsYXdQbXJ6dVVKOTQ

5- Pendant mon "développement", j'ai rencontrer plusieurs problème que je n'ai pu régler et auquel j'ai fait l'impasse dessus. Sauf que maintenant, je trouve qu'il y en a un peu beaucoup, et je préfère pas continuer avec. Du coup je viens chercher des solutions ici.

Le .blend : https://drive.google.com/open?id=0B0lTbNQbmMMsbWRIcHFnb2V2OWM

Les problèmes (n'oublier d'aller vous rasez lorsque vous aurez fini de lire la liste ) :

-1 Le plus gros, lorsque une animation est jouée, ma caméra qui est parenté a l'os "head" ne va pas toujours suivre cet os. C'est bien gênant puisque que l'on retrouve souvent la camera a l’intérieur du perso ce qui est pas cool ... Vous pouvez parenter un objet a la caméra pour suivre ses mouvements

-2 Le plus compliqué, alors la j'ai rien compris : les mouvement de la têtes du perso est géré par python dans la fonction mouselook avec une methode "join_rotation". Ça marche très bien.
Je veux faire de même avec le bras lorsque le bouton gauche de la souris est enfoncé. Ça marche très bien pour les mouvement de droite a gauche, par contre ça pars en boulette pour les mouvement de haut en bas.

-3 Sur mon armature, les axes sont inversé (Z et Y), c'est pas tant gênant que ça mais j'aime pas trop, j'aimerai au moins savoir pour quoi

-4 Ma boite de collision s’enfonce dans le sol de quelque cm

-5 Le plus vieux (je crois que je l'ai depuis le début), certaine animations inutilisées ne peuvent pas être supprimées Il s'agit de x et y dans mon .blend, mais j'ai déjà rencontré ce problème dans d'autre .blend

-6 Lorsque l'animation "idle" est joué il n'y pas toujours de fondu du coup c'est pas beau (je comprend pas pourquoi, j'ai 60 frames pour le blendin)

Cette contribution était de : http://blenderclan.tuxfamily.org/html/newbb/viewtopic.php?forum=3&topic_id=46250&post_id=556554