(1) 2 3 4 5 »


Simulateur d'entrepôt, script et BGE : - urgentissime - comment modifier dynamiquement une action ?
OverdOzed
Inscrit:
27/07/2005 12:25
De ce petit pays neutre avec des montagnes et du chocolat
Post(s): 4014
Salut la compagnie,
Je gamberge depuis plusieurs semaines autour d'un projet très différent de mes essais habituels.
Raison pour laquelle je me lance aujourd'hui en ouvrant un topic rien que pour ça.

En deux mot, il s'agira de lire des ordres et des coordonnées dans un fichier texte, de piloter une "fourche"
grâce à un script, de prendre et déposer des objets (cubes) avec cette "fourche", de voir fonctionner ça en temps réel,
et si possible de changer par exemple les paramètres d'accélération/freinage des mouvements de la fourche, etc.

Il s'agit de simuler (très basiquement pour le début) un système existant, dans le but éventuel de tester
des nouvelles stratégies ou simplement de montrer le système à des clients potentiels.

Visuellement, il s'agit d'un "truc" comme ça, mais automatisé.
http://www.transporama.be/images/newsletter/afbeeldingen/groot/77b40a6b0f2571edb580903ce8234714.jpg
http://www.transporama.be/images/newsletter/afbeeldingen/groot/15770cdb1f0f92489fa971a2d43234ee.jpg

Ce projet comprend deux difficultés majeures pour moi, donc deux défis intéressants aussi.
1) Je ne connais presque rien en Python, mais je "connais" la programmation d'une façon générale
2) je ne connais presque rien en BGE, mais... vous oui

Avant de pondre du code, je me pose quelques questions en vrac :
- Faudra-t-il créé des F-Curves pour pouvoir déplacer la "fourche" (ou y a-t-il une autre méthode dans le BGE) ?
- Si oui, tout changement de vitesse nécessitera de déplacer toutes les Keys ?
- Faut-il utiliser la "Physique" pour prendre et déposer les marchandises (cubes) ou faut-il prévoir des contraintes Location et Child ?

Comme je l'ai dit, le système existe, la syntaxe du fichier contenant les ordres et les coordonnées est donc fixe et imposée.
La fourche peut prendre au maximum deux cubes (en réalité des caisses en plastique).
Chaque emplacement peut également contenir deux cubes, et les emplacements se situent de part et d'autre de la fourche.
Il y a des dizaines d'emplacement en longueur et en hauteur (je n'ai pas les chiffres exacts en tête, mais peu importe).
Les "stratégies" dont je parle plus haut, sont les algorithmes qui déterminent les emplacements des cubes,
et par conséquent qui écrivent les ordres et les coordonnées dans le fichier texte que je devrai lire.
[edit]
Encore une fois, ce fichier existe, les stratégies, aussi, je n'ai pas à faire cette partie-là, mais à l'utiliser.
[/edit]

A ce stade, tout commentaire, question, suggestion, conseil seront bienvenus, parce que c'est tout nouveau pour moi,
et que j'ai de la peine à structurer ma base de départ pour ce projet. Merci d'avance, je vous rend l'antenne.

Contribution le : 18/08/2011 11:47
_________________
Sans difficulté il n'est point de progrès !
Créer un fichier PDF de la contribution Imprimer


Re: Simuilateur d'entrepôt : WIP, Python, BGE et quoi d'autre ?
Fou Furieux du Clan
Inscrit:
16/06/2010 18:25
Post(s): 177
Je n'est pas bien compris, on ecris les ordres dans un fichier texte que la fourche executeras? Sinon il n'y a pas besoin de fcurve mais python est obligatoire.

Contribution le : 18/08/2011 13:07
_________________
I love GameBlender

3DMagixPro, IllusionMage, 3DMagix : Scam !
Créer un fichier PDF de la contribution Imprimer


Re: Simulateur d'entrepôt : WIP, Python, BGE et quoi d'autre ?
OverdOzed
Inscrit:
27/07/2005 12:25
De ce petit pays neutre avec des montagnes et du chocolat
Post(s): 4014
Citation :

pierro8 a écrit:
Je n'est pas bien compris, on ecris les ordres dans un fichier texte que la fourche executeras?


C'est ça, mais ce fichier texte existe et sera ma source d'informations.
En gros ce sont des codes qui sont interprétés par la "fourche", et qui disent :
- Tu vas à l'emplacement X=10,Y=5,Z=2
- Tu charges la caisse en position 1
- Tu vas à l'emplacement X=20,Y=12,Z=4
- Tu charges la caisse en position 2
- Tu vas à l'emplacement X=1,Y=5,Z=1
- Tu décharges la caisse sur la position 1
- Tu vas à l'emplacement X=1,Y=6,Z=1
- Tu décharges la caisse sur la position 2
- Tu attend 20 secondes
- Etc.

Je n'ai pas encore étudié tous les ordres possibles, ni leur syntaxe, donc c'est juste une explication de principe.

Citation :

pierro8 a écrit:
Sinon il n'y a pas besoin de fcurve mais python est obligatoire.


J'espère bien. Mais sans les F-Curves, ça marche comment tout ça alors ?

Contribution le : 19/08/2011 11:20
_________________
Sans difficulté il n'est point de progrès !
Créer un fichier PDF de la contribution Imprimer


Re: Simulateur d'entrepôt : WIP, Python, BGE et quoi d'autre ?
OverdOzed
Inscrit:
27/07/2005 12:25
De ce petit pays neutre avec des montagnes et du chocolat
Post(s): 4014

Je remonte ceci pour essayer d'avoir quand-même quelques conseils avant d'attaquer le truc.
D'autant que, comme je l'ai dit, je ne sais pas trop par quel bout l'attaquer, ce fameux truc.

Contribution le : 20/08/2011 19:58
_________________
Sans difficulté il n'est point de progrès !
Créer un fichier PDF de la contribution Imprimer


Re: Simulateur d'entrepôt : WIP, Python, BGE et quoi d'autre ?
OverdOzed
Inscrit:
27/07/2005 12:25
De ce petit pays neutre avec des montagnes et du chocolat
Post(s): 4014
I'm a poor lansome blendboy...

Bon, sérieux.

J'ai une mini avancée :
Je peux lire un fichier texte qui contient deux lignes :
1 2 3
4 5 6

Et créer deux cubes aux coordonées [1, 2, 3] et [4, 5, 6]

Wouahh, me direz-vous si vous n'êtes pas programmeur.
Si vous l'êtes, arrêtez de rire deux secondes, svp.

Jusqu'ici j'ai appris :
- Comment écrire la syntaxe d'une boucle 'for'
- Comment lire un fichier
- Comment déclarer des variables pour stocker les valeurs lues dans le fichier
- Comment convertir les caractères lus en floats pour les transmettre à une fonction

Ce que je n'ai pas réussi à faire :
- Trouver la syntaxe pour le chemin relatif de mon fichier (il est dans le même répertoire que le fichier .blend)

Ce que j'aimerais faire ensuite :
Lire des coordonées et déplacer les cubes dans le Game Engine (parait-il sans les F-Curves, mais je ne sais toujours pas comment).
J'aimerais obtenir un mouvement avec accélération et freinage, exactement comme le fait une F-Curve par défaut.

Merci de votre soutien, ... éventuel
Avis aux modos : faudrait-il déplacer dans le forum du BGE ?

Contribution le : 23/08/2011 16:52
_________________
Sans difficulté il n'est point de progrès !
Créer un fichier PDF de la contribution Imprimer


Re: Simuilateur d'entrepôt : WIP, Python, BGE et quoi d'autre ?
OverdOzed
Inscrit:
12/11/2009 19:15
De quelque part entre la chaise et l'ordi
Post(s): 799
Je te préviens tout de suite , je ne sais pas programmer (je rentre dans un IUT infos dans quelques jours, je saurais alors dans quelques temps )

Si tu sait faire apparaître un cube selon les coordonnées de ton fichiers texte tu na qu'a mettre un track to a ta fourche pour quelle aille sur ton cube une fois que la fourche est a la même position que ton cube tu le supprime.

Exemple qui veut sûrement rien dire mais c'est dans l'esprit la:
if var.destination==var.fourche
puis tu supprime ton cube
else delete cube.

Ensuite tu lis ta seconde ligne de commande (4 5 6) et tu y ajoute ton cube majestueux ou tous les noob dans mon genre font waaaouuuhhh si quelqu'un en fait apparaître un
la fourche ira alors sur le cube qui vient d'être rajouter ensuite tu re récupère la position de la fourche et tu les compare (4 5 6 = 4 5 6) et pis si avec de la chance ta compris et que avec encore plus de chance ca t'aide et ben c'est que c'est moi qui ait eut de la chance en débitant ce qu'il me passait par la tête.


Bon blend mcBlyver et bonne déprime

Contribution le : 23/08/2011 19:29
_________________
Ce n'est pas parce qu'on s'acharne à suivre une direction que c'est la bonne.
Créer un fichier PDF de la contribution Imprimer


Simulateur d'entrepôt, script et BGE : comment faire bouger un objet ?
OverdOzed
Inscrit:
27/07/2005 12:25
De ce petit pays neutre avec des montagnes et du chocolat
Post(s): 4014
Merci de ton aide jimmydu54, mais ta proposition ne résoud pas la question du temps.
Comment je gère l'accélaration, et le freinage de la fourche dans ton histoire ? (variation de la vitesse en fonction du temps).
Et puis une fois que la fourche sera vers le cube, je ne devrai pas le supprimer, mais le soulever, le déplacer et le reposer.
(Mais je n'en suis pas encore là)

Les essais que j'ai fais hier, ne représentent pas forcément avec exactitude ce que j'ai besoin d'obtenir,
ce sont plutôt des tests de principe. C'est à dire des petits morceaux du problème qui doivent me permettre d'avancer
étape par étape.

Pour illustrer celà, on pourrait dire que j'apprend d'abord à construire un mur de briques, mais peut-être qu'au final
je me contenterai d'un mur en bois. Dans les deux cas, il faut penser aux fondations, avant de construire vers le haut.

Pour rappel :
Avis aux modos : faudrait-il déplacer dans le forum du BGE ?

[edit]
Mon but actuel est le suivant : faire un script qui me permet de déplacer un cube dans le BGE.
Les coordonnées de départ et d'arrivée ainsi que la durée doivent être définines dans le script.
Toute aide est bienvenue, parce que là, je nage total.

Contribution le : 24/08/2011 09:31
_________________
Sans difficulté il n'est point de progrès !
Créer un fichier PDF de la contribution Imprimer


Re: Simulateur d'entrepôt, script et BGE : comment faire bouger un objet ?
OverdOzed
Inscrit:
27/07/2005 12:25
De ce petit pays neutre avec des montagnes et du chocolat
Post(s): 4014
Je continue mon parcours solitaire en espérant qu'un jour quelqu'un m'apperçoive au milieu de mon océan de questions.

Mon essai du jour (sans python) :
- Un cube 'Base' représentant la base roulante de la fouche, déplacement gauche/droite.
- Un cube 'Ascenseur' enfant de 'Base' pour les déplacements haut/bas

Afin d'avoir des mouvement naturels (commandes au clavier) j'utilise pour 'Base' un Actuator Motion avec une Force de 5.
La même chose sur 'Ascenseur' n'a aucun effet, je suis obligé d'utiliser le paramètre Loc de l'Actuator Motion.
Les deux cubes sont en Physic Type Dynamic, et la seule différence notable entre les deux est que 'Base' n'a pas de Parent.

Est-ce normal ?
Dans mon script Python, est-ce avec un Actuator Motion qu'il faut que je déplace mes objets ?
Ou faut-il plutôt agir directement sur la position LocX, ou DeltaX par exemple ?

Contribution le : 25/08/2011 12:27
_________________
Sans difficulté il n'est point de progrès !
Créer un fichier PDF de la contribution Imprimer


Re: Simulateur d'entrepôt, script et BGE : comment faire bouger un objet ?
OverdOzed
Inscrit:
18/03/2007 16:25
De + De = Quat?
Post(s): 416
Salut!
A priori, tu pourrais agir directement sur la position sans que ça te pose de problème de physique, puisque ce n'est pas un jeu que tu développes.

Pour ton souci d'accélération\décélération, une solution relativement simple consisterait à utiliser une fonction sinuosidale ou parabolique (genre de type y=1-(x-1)^2). En gros, ça consisterait à faire un calcul de ce genre :
vitesse fourche = vitesse max * f(x)
où x est l'avancement de ta fourche par rapport au trajet à parcourir,
x = distance parcourue/distance à parcourir
et f(x) par exemple définie comme ça :
f(x) = 1-(2x-1)^2

Et donc au final tu auras ta vitesse qui variera en suivant une parabole Je m'excuse si je dis n'importe quoi, d'abord parce que je n'ai pas beaucoup réfléchi à ce problème, vu qu'avec flash et unity on a une library itween qui s'occupe automatiquement de ce genre de cas, ensuite parce que j'espère qu'en disant n'importe quoi ça va rameuter les vrais programmeurs qui pourront t'aider, et enfin parce que j'espère que ça t'encouragera d'avoir du retour.

Edit: de façon simple, tu pourrais coder un truc du genre (là ça vaut pour un seul axe bien sûr):
if( locX < positionArrivee ):
    avancement = (locX - positionDepart)/(positionDepart - positionArrivee)
    locX = locX + (1 - (2 * avancement - 1)^2)/4


Enfin, c'est juste un exemple pas testé, et certainement faux niveaux syntaxe... ça serait plus simple que tu saches déjà comment faire déplacer un objet avant de te préoccuper de faire des accélérations...

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


Re: Simulateur d'entrepôt, script et BGE : comment faire bouger un objet ?
OverdOzed
Inscrit:
27/07/2005 12:25
De ce petit pays neutre avec des montagnes et du chocolat
Post(s): 4014
Ourah, je ne suis plus seul. Effectivement c'est encourageant.

Didiou, faudra que je me remette un peu les équations dans la tête, ça va m'être utile.

Ce n'est effectivement pas un jeu que je développe, mais certaines fonctionalités du BGE me seront certainement
bien utiles pour ne pas ré-inventer quinze fois la roue, ceci à condition de connaître le BGE bien sûr, et c'est pas gagné.
Par exemple pour prendre et déposer des objets, avec les détections de collision, ça pourrait à priori se faire tout seul.

J'ai encore essayé un script qui ajoute simplement 1 à DeltaX, et ça marche dans la vue 3D mais pas dans le BGE.
Il manque un rafraichissement ou quelque chose dans le genre.
J'ai simplement relié un Sensor Keyboard 'S' à un Controller Python, avec le nom de mon script.
Quand je lance le BGE et que j'appuie sur S, il ne se passe rien, mais lorsque je quitte le BGE mon cube avance de 1 BU.

Allez les pros, siouplais, un ch'tit coup de main (ou de pied ?)

[edit]
Oracle, je viens d'essayer ton edit dans un autre soft et j'obtiens une boucle infinie.
Et en plus l'objet que j'utilise ne bouge pas d'un poil.
Mais je n'ai pas essayé de comprendre, j'ai juste copié, alors j'ai peut-être raté quelque chose.

[edit2]
Ca y est j'ai compris en faisant du Debug, au départ LocX = PositionDepart, donc avancement = 0, donc tout reste à 0

[edit3]
Même en utilisant LocX > PositionDepart, rien ne bouge.

Contribution le : 25/08/2011 15:17
_________________
Sans difficulté il n'est point de progrès !
Créer un fichier PDF de la contribution Imprimer



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




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 [non résolu] Problème IK : pied qui tourne au lieu d'être fixé au sol 4 45 Aujourd'hui 18:09:00
mly 
Questions & Réponses appliquer une animation NLA 1 18 Aujourd'hui 16:16:13
prometheusx 
Moteur de jeu GameBlender et alternatives [WIP] DeadSigns FPS horreur - Date de sortie 1er juillet 2020    [1][2][3]...[51] 504 87040 Aujourd'hui 13:08:43
Hook 
Questions & Réponses affichage progressif bevel de courbe 5 99 Aujourd'hui 10:25:23
jlf 
The Blender Clan 'tchat Free addon Modélisation procédurale par nodes 1 44 Aujourd'hui 08:47:52
WinZs 
[WIP] et travaux terminés [WIP] Alpaga in love 7 155 Aujourd'hui 00:20:08
Bibi09 
Questions & Réponses Problème de rendu (débutant) 1 42 Hier 16:16:59
Rimpotche 
Questions & Réponses Grosse différence d'éclairage sur le rendu final VS le mode Rendered 9 148 29/05 21:42:20
Crocodile_13 
Questions & Réponses Problème avec le nodes Color Ramp 5 177 29/05 20:59:01
JaAlVir657 
Python & Plugins Comment renommer "Key" ? (le chef des shapekeys)    [1][2] 18 463 29/05 19:06:29
lucky 
Questions & Réponses [résolu] théorie lowpoly / highpoly 3 72 29/05 17:53:57
moonboots 
Moteur de jeu GameBlender et alternatives hARMful engine    [1][2][3]...[7] 65 6323 29/05 16:40:53
Bibi09 
[WIP] et travaux terminés Les fonds de mes rendus 4 156 29/05 14:05:18
Crocodile_13 
Python & Plugins [résolu] obtenir un résultat fixe suite au déplacement souris 1 106 28/05 14:28:07
Bibi09 
Moteurs de rendu rendu Povray sous Blender 2.6 + trace de log 7 12113 28/05 00:25:30
MauriceRaybaud 
Questions & Réponses [non résolu] Personnage et CAT5 - VRCHAT 0 82 27/05 22:31:10
Muffet 
Questions & Réponses Conseils pour modéliser un corps 4 178 27/05 17:48:43
moonboots 
Questions & Réponses Comment dupliquer une face autour d'un axe? 1 86 26/05 19:05:12
moonboots 
Questions & Réponses Comment faire une boucle infinie (animation) 9 176 26/05 13:00:46
3dlone 
Moteur de jeu GameBlender et alternatives [WIP] Jeu "Iron Man Collapsing"    [1][2][3] 27 8866 26/05 01:39:39
Bibi09 

Qui est en ligne
209 utilisateur(s) en ligne (dont 133 sur Forums)

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


plus...
Nouveaux membres
Samux 30/5/2020
titisteph 29/5/2020
Muffet 27/5/2020
MadK 26/5/2020
Osziy_ 26/5/2020
Elliott42 25/5/2020
Ben3D 25/5/2020

Octopus
24/5/2020
aguqaf 23/5/2020
Joknox 21/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