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

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): 4021
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
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): 4021
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): 4021
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): 4021
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 bonjour 2 166 Hier 20:12:18
Melodicpinpon 
Questions & Réponses vertex weights 1 707 Hier 20:08:02
Melodicpinpon 
Questions & Réponses [non résolu] Rendu vide pour une simple animation 1 526 Hier 20:03:29
Melodicpinpon 
Questions & Réponses Export png de mauvaise qualité 1 652 Hier 20:01:49
Melodicpinpon 
Questions & Réponses Objets non visibles 1 79 Hier 20:00:01
Melodicpinpon 
Questions & Réponses Déplacer une vertex ou une edge parallèlement à une autre edge 1 74 Hier 19:56:56
Melodicpinpon 
Hors Sujet !! bande-annonce des petits poissons dans l'aquarium 0 60 19/11 17:40:16
xorturion 
Questions & Réponses Comment percer une forme courbe 1 668 17/11 17:16:05
sam90 
Questions & Réponses Remplissage objet 3 917 17/11 17:04:38
sam90 
Questions & Réponses Mirroring light 0 332 02/11 07:51:49
Melodicpinpon 
Questions & Réponses Animation cycle de marche Fall Guys - Rigify 2 1202 03/10 08:42:06
Ediuire 
Hors Sujet !! Tuto Tips - Faire des coutures dans Blender - fabriquer un pouf 1 1461 27/09 14:34:24
perrin34 
Hors Sujet !! Alors elle est PUNK cette bande-annonce de palette CMJN 0 1049 24/09 15:33:07
xorturion 
Questions & Réponses Effets sabre laser image par image 2 713 23/09 07:27:45
muthesaint 
Questions & Réponses [non résolu] comment engendrer un mouvement selon un autre dans un simple système 1 657 18/09 17:10:37
doraynico 
Questions & Réponses [non résolu] Comment fusionner deux fichiers .blend ? 2 727 18/09 16:53:07
doraynico 
Questions & Réponses Comment mettre un délai sur une animation contenue dans une instance de collection? 0 8067 18/09 16:31:16
doraynico 
[WIP] et travaux terminés [WIP] Super Blenderello.    [1][2][3]...[7] 60 38046 05/09 14:50:01
albron 
Questions & Réponses bagapie 0 722 31/08 16:12:59
zilou 
[WIP] et travaux terminés [terminé] Tracking pour Ovni 0 642 29/08 09:48:46
vinceproduc 

Qui est en ligne
95 utilisateur(s) en ligne (dont 58 sur Forums)

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


plus...
Nouveaux membres
Clark76W6 29/11/2023
AshleyDixs 29/11/2023
ManieDugge 29/11/2023
VirgieElle 29/11/2023
HRWStewart 29/11/2023
SharylBuri 29/11/2023
Gracie54D 29/11/2023
FloyNord9 29/11/2023
MiriamMach 29/11/2023
JorgeSalin 29/11/2023
Dernier Ajout
2020-09-24.jpg

Evènements à venir
Dec 29
Anniversaire d'ebrain
Jan 6
BUG de Lyon
Fev 15
Anniversaire de Dany
plus 215 plus d'élément(s)
 Par Mickaël Guédon [ebrain] © 2003-2021 The Blender Clan - hébergé par TuxFamily - Site déclaré à la CNIL sous le numéro 1155445