(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): 4018
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): 4018
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): 4018

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): 4018
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): 4018
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): 4018
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): 4018
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 Blender : le bon logiciel ?    [1][2][3] 20 2634 Hier 21:46:14
Rimpotche 
Questions & Réponses Problème de collision dans un player FPS 4 114 Hier 19:33:24
vegetalain 
Hors Sujet !! Le petit déjeuner à la Française - série de tutos - 2.9 6 77 Hier 18:03:25
meltingman 
Questions & Réponses impression 3d avec blender et créatily 2 76 Hier 09:14:58
Lady 
Hors Sujet !! Quels secteurs exploite l'impression 3D ? 3 92 28/10 15:56:59
Sziuny 
Hors Sujet !! Un poisson clown low poly - 15 mm - Tutoriel - 2.9 3 97 28/10 13:09:07
debutant 
Questions & Réponses Affiner les contours d'un feu 1 410 28/10 13:09:01
Melodicpinpon 
[WIP] et travaux terminés [terminé] Scène de Pti dej à la Française - EVEE a donf - 2.9 Blender    [1][2][3]...[5] 44 661 27/10 20:44:23
meltingman 
Questions & Réponses Peindre des voxels 3D: Est-ce possible? 0 45 27/10 17:23:30
Melodicpinpon 
Questions & Réponses Disparition de matériaux après système de particule 2 75 27/10 12:43:02
Zarathoustra 
Questions & Réponses Esalier avec ARRAY 4 64 27/10 11:04:28
francerf 
Questions & Réponses [résolu] Modificateur Curve sur une courbe multiple 3 77 27/10 09:29:38
oliviertij 
[WIP] et travaux terminés [WIP] Teeny Tiny - Story    [1][2][3]...[13] 125 10214 27/10 01:53:31
meltingman 
The Blender Clan 'tchat Pour les arboriculteurs 3D 2 161 26/10 21:47:01
iet 
Questions & Réponses [résolu] Placer sa camera sur un HDRI    [1][2] 11 427 26/10 14:38:31
Crocodile_13 
Questions & Réponses [WIP] Problème Rétopo    [1][2] 10 163 26/10 09:53:59
Laorz 
Questions & Réponses Prioriser la visibilité d'un objet ? 2 94 25/10 17:31:26
Rimpotche 
[WIP] et travaux terminés image couteau dans caillou qui saigne 2 97 25/10 07:03:37
Crocodile_13 
[WIP] et travaux terminés [terminé] Chaussures Très Réalistes (.bend disponible) 5 197 24/10 21:23:47
Crocodile_13 
Le coin des geeks gain de fluidité viewport entre ryzen 3900X et 3950X    [1][2][3] 28 1511 24/10 15:45:54
papillon 

Qui est en ligne
236 utilisateur(s) en ligne (dont 61 sur Forums)

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


plus...
Nouveaux membres
MargaritoS 30/10/2020
GarnetBlun 30/10/2020
CarltonRox 30/10/2020
SherrylMar 30/10/2020
MonroeDenn 30/10/2020
JosephQuin 30/10/2020
Shelly8861 30/10/2020
ColumbusHo 29/10/2020
Micheline4 29/10/2020
BebeDavila 29/10/2020
Dernier Ajout
mirages-preview~0.jpg

Evènements à venir
Nov 18
Anniversaire de RichDeg
Dec 29
Anniversaire d'ebrain
Jan 9
BUG de Lyon
plus 264 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