(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 Je bloque sur la modélisation de ce verre! Avez-vous une solution? 7 137 Aujourd'hui 21:33:52
titisteph 
Questions & Réponses [non résolu] cloth: déformation bizzarre au rendu 3 50 Aujourd'hui 09:21:18
Arielboid 
Questions & Réponses les cheveux longueur 1 36 Hier 19:53:18
Rimpotche 
Questions & Réponses ADDON MB - Lab 0 37 Hier 15:29:23
GI-jo13 
Questions & Réponses [résolu] en sculpt mode 5 148 04/08 18:21:10
prometheusx 
Questions & Réponses [résolu] Array circulaire 2 124 04/08 15:22:46
Redstar 
[WIP] et travaux terminés [WIP] Teeny Tiny - Story    [1][2][3]...[5] 40 3879 04/08 07:18:00
Bibi09 
Moteur de jeu GameBlender et alternatives [WIP] DeadSigns FPS horreur - Première version disponible !    [1][2][3]...[58] 576 97981 03/08 11:11:32
Hook 
Questions & Réponses Addon pour textures procedurales 2 126 02/08 20:11:35
Crocodile_13 
Questions & Réponses avis animation marche :)    [1][2][3][4] 34 651 02/08 20:03:14
prometheusx 
[WIP] et travaux terminés [terminé] court métrage 2020    [1][2] 13 839 02/08 15:28:29
flahaut 
Questions & Réponses [résolu] Générique, sous-titres etc 3 134 02/08 09:18:02
Corpia 
Questions & Réponses [résolu] Scène prend la couleur du fond    [1][2] 11 252 02/08 08:20:32
Arielboid 
Questions & Réponses [non résolu] Problele d'addon 0 104 02/08 01:52:30
nayther 
Questions & Réponses Addon pour textures procedurales 1 94 01/08 12:22:52
moonboots 
Questions & Réponses hair densité sélection de polys 9 231 30/07 23:18:21
lenogre 
Questions & Réponses [résolu] graph editor et location key frame 7 190 30/07 16:41:18
math_ 
Questions & Réponses les graphs editor :/ 4 176 30/07 11:19:07
prometheusx 
[WIP] et travaux terminés [WIP] Tutoriel vidéo et création de mon prochain court métrage 2 170 29/07 20:32:46
Bibi09 
Le coin des geeks pc bas prix    [1][2][3][4] 38 1832 28/07 21:14:56
Bibi09 

Qui est en ligne
67 utilisateur(s) en ligne (dont 35 sur Forums)

Membre(s): 3
Invité(s): 64


RodneydeLa, UZJCameron, WhitneyFre, plus...
Nouveaux membres
MasonWindh 7/8/2020
GitaVanmet 7/8/2020
LoraKelsey 7/8/2020
AvisRansom 7/8/2020
CamillaZaj 7/8/2020
MCTGuiller 7/8/2020
RodneydeLa 7/8/2020
EnriqueMis 7/8/2020
UZJCameron 7/8/2020
BobJaques 7/8/2020
Dernier Ajout
mirages-preview~0.jpg

Evènements à venir
Aou 7
anniversaire Cem47
Aou 13
Anniversaire Siskas
Sep 8
Anniversaire de ang
plus 267 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