script pour même changement trajectoire à chaque collision

Ici on parle des scripts

Modérateurs : frez, Yadoob, stilobique, Matpi, ModSquad

script pour même changement trajectoire à chaque collision

Message par Wogesjan » 18 Mars 2018, 00:57

bonjour,

Mon but est de créer des collisions successives d'une balle sur un groupe défini d'objets comme dans un jeu de casse-briques.Cette balle a une trajectoire rectiligne et une vitesse initiale.

Lorsque la balle entre en collision avec un premier objet de ce groupe, le coefficient de direction de la trajectoire suivant la collision est multiplié par -1, et ceci pour chaque collision sur un objet du groupe d'objets.

Je pense que dans Game Engine, il n'est pas possible de faire cela même si vous savez comment faire des collisions. J'ai donc besoin d'aide pour développer un script python en le réalisant

Une aide sérieuse?

Merci de votre aide
Wogesjan
 
Message(s) : 27
Inscription : 16 Mars 2018, 13:58

Re: script pour même changement trajectoire à chaque collis

Message par jemian » 18 Mars 2018, 10:19

Sur le discord du forum t'auras + d'aide pour ça
Avatar de l’utilisateur
jemian
 
Message(s) : 2780
Inscription : 03 Fév 2014, 01:52
Localisation : Brest

Re: script pour même changement trajectoire à chaque collis

Message par cedric » 18 Mars 2018, 10:30

Pas sur c'est vraiment spécifique, les fx, à part cohoyt, je ne vois pas qui connait bien.
Il aura surement plus de chance sur la page FB.
Cédric Lepiller, Freelance 3D Pitiwazou.com, Mes Addons, Asset Management, Speedflow
Avatar de l’utilisateur
cedric
Administrateur
 
Message(s) : 7037
Inscription : 03 Août 2013, 21:36

Re: script pour même changement trajectoire à chaque collis

Message par zeauro » 18 Mars 2018, 11:21

Il y a des logiques briques pour détecter la collision et gérer la vitesse. Ca doit être possible de trouver un exemple de casse-briques pour le game-engine, de lancer le jeu et de faire un record animation pendant le jeu pour exploiter l'animation après.

On peut utiliser les rigid bodies hors game-engine. Après un petit test, il semble qu'à partir du moment où on n'a que des collisions shapes Box sans friction et une bounciness à 1, ça peut le faire aussi. Tant que les faces des boites physiques qui se rentrent dedans sont parralèles, sans friction, il n'y a pas de raison que la boite de la balle change de trajectoire.

Il y a probablement aussi moyen de se débrouiller avec les animations nodes avec le noeud ray cast, également.

Donc, il doit être possible de créer un script ou addon spécifique. Mais forcément, toutes ces façons de faire sont assez techniques. Si on n'a jamais fait un tel travail, c'est pas évident de te pondre un tuto sans prendre sa journée.
Surtout qu'on ne sait pas combien d'obstacles sont concernés et comment ils bougent.
Si c'est pour une dizaine de collisions, t'auras plus vite fait d'animer la balle à la main.
Dans le cas que tu décris, la plupart des gens ne va pas chercher la difficulté. Ils vont animer l'aller d'un trajet de collision, puis vont mettre un modifier Cycles sur la f-curve correspondante.
zeauro
 
Message(s) : 929
Inscription : 21 Août 2013, 15:47

Re: script pour même changement trajectoire à chaque collis

Message par Wogesjan » 19 Mars 2018, 02:32

Je n'arrive toujours pas à réaliser des collisions comme ceci:
angle <trajectoire aller- normale au rectangle>=angle<trajectoire retour-normale au rectangle>

cf image au lien suivant:
https://drive.google.com/file/d/1wzrWSe ... sp=sharing

merci
Wogesjan
 
Message(s) : 27
Inscription : 16 Mars 2018, 13:58

Re: script pour même changement trajectoire à chaque collis

Message par zeauro » 19 Mars 2018, 11:47

La scène par défaut étant paramétrée pour le cas le plus fréquent : faire rapidement des objets qui chutent.
Il me paraissait inutile de dire qu'il fallait évidemment désactiver la gravité.
Mais j'aurai pu préciser qu'il faut mettre l'amortissement à zéro.
Par défaut, il doit être à 0.4 pour la translation et 0.1 pour la rotation.

Comme tu avais écrit "trajectoire rectiligne", j'ai pensé aller et retour sur la même ligne droite.

Avec un peu d'intuition physique, on comprend que faire du bolide une boîte n'est pas une bonne chose dans ce cas là.
Pour ce type de mouvement, il vaut mieux que la surface de contact soit réduite à un point. Et pour ça, il faut que la collision shape du bolide soit une sphere et pas une box.

Mais encore une fois, je peux répondre à côté car je ne sais pas vraiment ce que tu fais.
Là, j'approfondis le point que j'ai le plus développé.
Mais sI ce que tu balances sur le groupe d'obstacles correspond à des milliers d'objets qui doivent se comporter comme des sphères, il y a un quatrième existant qui peut être l'utilisation de particules.
zeauro
 
Message(s) : 929
Inscription : 21 Août 2013, 15:47

Re: script pour même changement trajectoire à chaque collis

Message par Wogesjan » 20 Mars 2018, 02:07

Si,au lieu de passer classiquement par les champs et boutons de Blender,je pouvais tout rédiger en python,je ferais en python la chose suivante pour résoudre ce problème:
-insertion d'image clé cubeaction1 sur l'objet sur lequel est initialisé la trajectoire rectiligne
-attribution des valeurs(c1,c2,c'1,c'2) et de variables(a,b initialisées et nouvellement attribuées, x=frame)(faisable qu'en python à mon avis) de la F-courbe associée à cubeaction1:
Xposition : y=c1 + a*x
Yposition : y=c2 + b*x
Zposition : y=0
-un tour dans le BGE pour écrire en python l'équivalent d'ajout de capteurs,actuateurs "action",controleurs relatifs aux rectangle et à l'objet collisés
-dans cette actuateur action relatif à l'objet,l'animation ciblée est cubeaction2
-attribution des valeurs de la F-courbe associée à cubeaction2:
Xposition :y=c'1 - a*x
Yposition: y=c'2 + b*x
Zposition: y=0
et le tour serait joué !!

Seul gros problème,je ne sais implémenter tout ceci en python sur Blender(sachant tout de même que la plupart des clics(pas tous) engendrent automatiquement des scripts dans la console python) alors que je suis sûr que c'est faisable et simple.
Wogesjan
 
Message(s) : 27
Inscription : 16 Mars 2018, 13:58

Re: script pour même changement trajectoire à chaque collis

Message par zeauro » 20 Mars 2018, 12:02

Wogesjan a écrit :Seul gros problème,je ne sais implémenter tout ceci en python sur Blender(sachant tout de même que la plupart des clics(pas tous) engendrent automatiquement des scripts dans la console python) alors que je suis sûr que c'est faisable et simple.

Si ton seul problème est de trouver comment ce que tu sais faire se traduit en python, il te suffit de consulter la référence de l'API.
Tu vas dans le menu Help de Blender. Tu cliques sur Python API Reference et tu devrais trouver ce que tu cherches.
zeauro
 
Message(s) : 929
Inscription : 21 Août 2013, 15:47


Retour vers Scripts - Python - OSL

Qui est en ligne ?

Utilisateur(s) parcourant ce forum : Aucun utilisateur inscrit et 2 invité(s)

cron