Connexion
Menu Principal
Recherche
Menu secondaire
Image Aléatoire
mauser_sr.png
Publicité
Formation Blender ElephormBlender 3d Elephorm


     




(1) 2 3 4 ... 15 »


Demande d'aide sur le scripting python (BGE)
Clan Afficionado
Inscrit:
29/06/2016 19:04
Post(s): 79
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)

Contribution le : 08/08/2016 14:14
Créer un fichier PDF de la contribution Imprimer


Re: Demande d'aide sur le scripting python (BGE)
Touriste
Inscrit:
18/06/2015 16:06
Post(s): 9
Bonjour Galidraan

voila un très bon site pour la syntaxe python du Blender Game Engine:

http://tutorialsforblender3d.com/

pour les textures:
cliquer sur "bge python"=> chapître game materials et/ou video texture

Il y a quelque chose de gênant dans cet phrase:
"pouvoir l'appliquer a n'importe quel objet de ma scène (peu importe l'uv mapping)"

"peu importe l'UVmapping", pour moi c'est impossible.(bon, ok, je suis niveau débutant...)
Les objets ont-ils la même forme?
Je demande un peu plus d'explications.

L'animation de texture et l'actuator ACTION pourraient faire l'affaire si c'est impossible en python.

Contribution le : 08/08/2016 16:19
Créer un fichier PDF de la contribution Imprimer


Re: Demande d'aide sur le scripting python (BGE)
OverdOzed
Inscrit:
19/03/2016 16:30
De Belgique
Post(s): 639
Salut,

Je recommande également TutoForBlender.

Voici un tuto fait maison qui t'expliquera comment procéder pour programmer avec le BGE.

Citation :

Comment faire pour appliquez une texture depuis python ?


Ce que tu veux faire est faisable avec le module VideoTexture. Il y a quelques exemples dans TutoForBlender.

Techniquement, si, on peut appliquer une texture dynamiquement peu importe la carte UV mais le résultat ne sera pas toujours le même selon l'objet.

Il n'y à pas d'autre façon d'appliquer une texture dynamiquement hormis en python (à ma connaissance).

Contribution le : 08/08/2016 17:27
Créer un fichier PDF de la contribution Imprimer


Re: Demande d'aide sur le scripting python (BGE)
OverdOzed
Inscrit:
21/08/2013 20:12
De CH [+]
Post(s): 1433
Salut,

Tant qu'on y est, si on te donnait aussi l'adresse officielle de la doc de l'API?

https://www.blender.org/documentation/blender_python_api


EDIT: à noter que, si ce que tu utilises est une texture très basique (couleur unie, shader, etc.), il pourrait y avoir des moyens plus efficaces et/ou simples de changer en cours de jeu.

Alternativement, tu pourrais aussi créer un material par texture à l'avance et changer les matériaux appliqués aux objets (pour autant que les textures soient définies avant le lancement du jeu).

Encore une autre chose, je remarque que les meshes ont une méthode transformUV. J'ai pas testé, mais peut-être pourrais-tu mettre tout ou partie de tes textures sur une seule et ensuite sélectionner durant le jeu la partie à utiliser par objet.

Tu as même la possibilité de modifier les coordonnées UV par vertex.


Bref y'a plein de pistes.

Contribution le : 08/08/2016 17:47
_________________
BAddons, La Collection d'Addons de Matpi: https://github.com/qwenger/BAddons
Développeur Blender quand j'en ai le temps...

Créer un fichier PDF de la contribution Imprimer


Re: Demande d'aide sur le scripting python (BGE)
Clan Afficionado
Inscrit:
29/06/2016 19:04
Post(s): 79
Merci a tous pour m'avoir répondu aussi rapidement, ainsi que pour les liens que vous m'avez envoyés.

Pour l'histoire de la texture et de l'UV mapping, c'est qu'en fait la texture a appliquer est une texture avec de transparence qui représente des fissures. Je doit pouvoir l'appliquer sur un très grand nombres d'objets, c'est pour c'a que je n'utilise pas d'animations. Cette texture doit être appliquée a n'importe quels objets donc même si l'UV mapping n'est pas parfait, tant qu'on voit des fissures j'estime que c'est bon.

Contribution le : 08/08/2016 22:46
Créer un fichier PDF de la contribution Imprimer


Re: Demande d'aide sur le scripting python (BGE)
OverdOzed
Inscrit:
19/03/2016 16:30
De Belgique
Post(s): 639
Ah, ça change tout !

Si ces objets sont identiques dans ta scène, tu peux faire un replace mesh.

Je te conseillerai le ReplaceMesh (dans actuator edit object) car si tu utilises le module VidéoTexture, tu vas avoir une micro-freeze à chaque changements opérés. Ce serai moins grave si c'était pour un personnage ou pour initialiser une scène...

Et là, tu na plus a t’inquiéter des carte UV puisque les meshes seront différents.

Contribution le : 09/08/2016 08:39
Créer un fichier PDF de la contribution Imprimer


Re: Demande d'aide sur le scripting python (BGE)
Clan Afficionado
Inscrit:
29/06/2016 19:04
Post(s): 79
Je ne suis pas sur que vous avez vraiment compris mon but (en même temps je ne suis pas très explicite)

En fait mon projet est un minecraft like mais ou tout le monde pourrai facilement ajouter du contenu (des blocs ou autres).

Je cherche a rajouter des fissures sur les blocs quand on les casses.
Au départ je comptais superposer un autre bloc carré avec les fissures sur le bloc.
Mais comme dans minecraft, certains objets ne sont pas cubique, et donc la superposition ne sera pas exacte. Impossible de créer une objet de texture pour chaque object non cubique car sinon rajouter du contenu serai bien plus difficile.

Je pense donc que le seul moyen est comme tu le dis Redstar d'utiliser le module VideoTexture.
Pour le moment j’essaie n'analyser le script createtexture trouvé sur le site officiel de l'API mais je ne saisi pas tout.

Désoler si je suis un peu lourd j’espère ne pas vous désespérer, c'est vrais que ma demande n'est pas évidente.

Contribution le : 09/08/2016 13:23
Créer un fichier PDF de la contribution Imprimer


Re: Demande d'aide sur le scripting python (BGE)
OverdOzed
Inscrit:
19/03/2016 16:30
De Belgique
Post(s): 639
Je vois. En effet, c'est assez complexe.

Le mieux serait effectivement de tester avec VideoTexture. Mais si tu constates une micro-freeze, ça sera gênant à long terme .

Du coup, les autres techniques énoncées par Matpi me semble plus appropriée, maintenant que tu nous as donné tout les détails .

Á toi de faire les test qui s'imposent

Contribution le : 09/08/2016 13:49
Créer un fichier PDF de la contribution Imprimer


Re: Demande d'aide sur le scripting python (BGE)
Clan Afficionado
Inscrit:
29/06/2016 19:04
Post(s): 79
Pour le moment j'en suis encore a essayer d'appliquer dynamiquement une autre texture sur un mesh.

Je pense que le script final devrait ressembler a quelque chose comme ça :
import bge


cont = bge.logic.getCurrentController()
own = cont.owner

tex_fissures = bge.texture["Fissures_colors"]

for mesh in own.meshes :
__for mat in mesh.materials :
____mat.bge.texture.add(tex_fissures)


Mais évidement celui ci ne marche pas et j’espère (encore une fois) de l'aide.

Contribution le : 09/08/2016 15:10
Créer un fichier PDF de la contribution Imprimer


Re: Demande d'aide sur le scripting python (BGE)
OverdOzed
Inscrit:
19/03/2016 16:30
De Belgique
Post(s): 639
Je suis d'accord à partir de la ligne 3 mais après, il te manque des variables sources (comme le materialID, la texture) et des arguments dans ton code.

Je t'invite à observer les 2 exemples dans l'api, au début de la page.

Contribution le : 09/08/2016 17:14
Créer un fichier PDF de la contribution Imprimer



 Haut   Précédent   Suivant
(1) 2 3 4 ... 15 »




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 Ralentissement avec un modèle au nombre de polygones éleve 1 22 Aujourd'hui 00:49:33
Ihluvathar 
Questions & Réponses Plusieurs matériaux attribuer à un objet en fonction de la hauteur (RenduCycles) 6 328 Hier 23:26:18
76MPaul 
Questions & Réponses Raccord d'objet torsadé 0 46 Hier 18:02:02
airamacnaib 
Questions & Réponses Réparation avec impression 3D 8 330 Hier 15:29:00
Europrimus 
Concours Les Défis du Clan 2017 - S.21 - Thème : "Ça pique" 4 298 Hier 13:30:44
BILL 
[WIP] et travaux terminés [WIP] Création d'une prothèse pour impression 3D    [1][2] 11 727 Hier 12:26:28
Redstar 
Questions & Réponses Texture fonction du niveau de gris 2 151 Hier 11:35:32
Philelopez 
Mes premières images sous Blender (débutants) [WIP] Dalek    [1][2] 15 887 26/05 23:21:18
bathal 
The Blender Clan 'tchat [BUG PARIS] RDV en 2017 !    [1][2][3]...[66] 656 135779 26/05 13:45:17
manchukito 
Moteur de jeu GameBlender et alternatives [WIP] Tales Of Rain nouvelle version 3D    [1][2][3]...[5] 47 3555 26/05 13:25:19
timeman13 
Questions & Réponses Probléme d'ajout de bone supplémentaire lors de l'exportation 0 114 26/05 00:47:16
tpexstyle 
Questions & Réponses [non résolu] Probleme rigging 2 141 25/05 21:46:01
McAsulys 
Questions & Réponses [non résolu] Comment recompiler un script osl a chaque frame lors d'une animation. 0 119 25/05 18:18:27
Gandi 
Questions & Réponses Additionner deux actions : vraiment bizarre... 5 240 25/05 16:05:56
Ran 
Questions & Réponses [non résolu] Gravures en creux sur surfaces arrondies ? 2 228 25/05 09:15:33
Sebastien1979 
Concours Les Défis du Clan 2017 - S.20 - Thème : "Nourriture et/ou Astronomie" - [Votes Ouverts]    [1][2] 16 964 24/05 20:12:39
Jimoke 
Mes premières images sous Blender (débutants) Les Blends de Megeon    [1][2][3]...[29] 280 42059 24/05 14:22:36
timeman13 
The Blender Clan 'tchat Le topic des trucs à voir    [1][2][3]...[301] 3006 676104 23/05 17:34:20
rikoo 
[WIP] et travaux terminés [WIP] Projet Tales & Legends - phase test 2    [1][2][3]...[9] 87 15361 23/05 16:03:08
Redstar 
Questions & Réponses problème Edit prop + Edge rail ? 2 241 23/05 11:50:54
DaWaaaaghBabal 

Qui est en ligne
47 utilisateur(s) en ligne (dont 41 sur Forums)

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


plus...
Nouveaux membres
Ihluvathar 28/5/2017
ErvinLipsc 28/5/2017
JeannetteR 27/5/2017
Gamabar 26/5/2017
tpexstyle 26/5/2017
caiico 25/5/2017
Ran 25/5/2017
Sebastien1979 24/5/2017
rhody 23/5/2017
italo 23/5/2017
Dernier Ajout
7.jpg

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