vitesse d'un objet
RegulatorZ
Inscrit:
23/05/2004 07:11
De Metz
Post(s): 11300
salut à tous !

j'aimerais savoir comment récupérer dans une property la valeur de la vitesse d'un objet ? dois-je utiliser un script ?

et également si il est possible d'utiliser les contraintes comme TrackTo dans gameblender ? apparement ça ne fonctionne pas...

Contribution le : 06/02/2005 14:09
_________________
Portfolio
Créer un fichier PDF de la contribution Imprimer


Re: vitesse d'un objet
Touriste
Inscrit:
05/09/2004 23:14
Post(s): 8
Salut,

Pour avoir la vitesse d'un objet il faut utiliser Python, en particulier la méthode getLinearVelocity() qui retourne une variable de type liste[vx, vy, vz](les 3 coordonnées du vecteur vitesse). Pour obtenir une valeur scalaire(une valeur en km/h par ex), la méthode générale est la suivante:
Vitesse-Scalaire=RacineCarréeDe(vx²+vy²+vz²) enfin je crois...
Pour l'unité obtenue réellement, je ne suis pas sûr...P.ê. des mètres par secondes. J'ai lu que ça dépendait de la valeur de la constante de gravitation paramétrée dans "Sumo"...Vraiment sûr de rien là...

Tu peux trouver l'option "TrackTo" dans l'EditObjectActuator.

Une bonne adresse pour savoir ce qui peut se faire avec Python(Tout plein de choses à vrai dire )
Game Logic Python API
TSHAW!

Contribution le : 06/02/2005 18:15
Créer un fichier PDF de la contribution Imprimer


Re: vitesse d'un objet
RegulatorZ
Inscrit:
23/05/2004 07:11
De Metz
Post(s): 11300
merci MelFlasH, je vais tester ça tout de suite (c'est à dire essayer de réaliser mon premier script python, autant dire que ça va être rigolo...)

Citation :
Tu peux trouver l'option "TrackTo" dans l'EditObjectActuator.

Oui celle la je l'ai trouvé, mais ce qu'il me faudrait c'est plutot un CopyRotation ou un moyen de bloquer la rotation de ma camera : elle doit suivre le mouvement de mon actor mais pas sa rotation (style GTA1 et 2, Micromachines, etc)! avec l'actuator "camera" ça ne me donne pas l'effet voulu.

Merci aussi pour le lien je vais explorer ça.

Tout ça pour dire que j'aurais surement d'autres questions bientot !

Contribution le : 06/02/2005 18:21
_________________
Portfolio
Créer un fichier PDF de la contribution Imprimer


Re: vitesse d'un objet
RegulatorZ
Inscrit:
23/05/2004 07:11
De Metz
Post(s): 11300
bein comme prévu ça ne fonctionne pas

j'obtiens l'erreur suivante :
NameError : 'name get LinearVelocity' is not defined


j'ai trouvé ça dans la Library Reference :
Citation :
NameError
Raised when a local or global name is not found. This applies only to unqualified names. The associated value is the name that could not be found.


dois-je définir cette fonction avant de l'utiliser ? ou bien charger une bibliothèque ? ou bien simplement mon code est peut etre faux (c'est mon premier script...) :

getLinearVelocity(voiture)
print voiture

Contribution le : 06/02/2005 19:05
_________________
Portfolio
Créer un fichier PDF de la contribution Imprimer


Re: vitesse d'un objet
RegulatorZ
Inscrit:
23/05/2004 07:11
De Metz
Post(s): 11300
probleme
de NameError résolu ! j'étais loin du compte il faut d'abord importer le modeule Blender, puis GameLogic pour pouvoir utiliser les fonctions de GameBlender.
Ensuite ma syntaxe était fausse, voici le code corrigé :



         import GameLogic
           
           controller = GameLogic.getCurrentController()
           owner = controller.getOwner()
           
           vitesse = owner.getLinearVelocity()
           print vitesse



à bientot pour le prochain problème !

Contribution le : 06/02/2005 19:55
_________________
Portfolio
Créer un fichier PDF de la contribution Imprimer


Re: vitesse d'un objet
Touriste
Inscrit:
05/09/2004 23:14
Post(s): 8
Hum, je crois que j'arrive trop tard...
Tant mieux dans un sens mais j'ai passé tellement de temps à taper ce post que je serais trop frustré de ne pas l'envoyer!

Salut,
je crois qu'il va falloir que je reprenne au début...

Alors, au début il y a eu un grand BOUM, ...

Blague à part, il faut commencer ton script en important le module GameLogic comme ceci:
import GameLogic ou from GameLogic import *
ou from GameLogic import all
(toutes déclarations sont équivalentes)
Remarque: il semble que dans la version 2.36 de Blender, le module soit chargé d'office car il n'est plus nécessaire de faire cette déclaration.

Une fois que tu as ton module chargé, tu as accés à un certain nombre de méthodes dont la méthode getCurrentController() qui permet d'accéder aux méthodes du "PythonController" qui porte le script:
MaVariableController=GameLogic.getCurrentController()#les parenthèses signifient que c'est une méthode(fonction), celle-ci ne prend pas de paramètre mais certaines en prennent qu'on mettra entre celles-ci.

Ta nouvelle variable de type controller possède des méthodes permettant d'accéder à ses Sensors et Actuators ainsi qu'à son propriétaire(l'objet concerné), ex:
Proprio=MaVariableController.getOwner()#variable de type "object"
MySensor=MaVariableController.getSensor("NomDuSensor")#variable de type Sensor
MySensorList=MaVariableController.getSensors()#variable de type liste [Sensor0,Sensor1,Sensor2,Sensor3,...]

Les variables de type "object" ont une méthode getLinearVelocity(), donc dans notre cas je pourrais récupérer la vitesse linéaire de "Proprio" de cette manière:
VitesseLinéaire=Proprio.getLinearVelocity()#attention résultat de la forme [x,y,z]

Contribution le : 06/02/2005 20:14
Créer un fichier PDF de la contribution Imprimer


Re: vitesse d'un objet
RegulatorZ
Inscrit:
23/05/2004 07:11
De Metz
Post(s): 11300
merci pour cette réponse très complète ! elle me permet de comprendre un peu mieux le pourquoi et le comment de tout ceci.
je suis maintenant face à un autre problème. Le but de mon script est de gérer le déplacement d'un véhicule, plus précisément sa rotation : si le véhicule est en mouvement, il peut tourner, si il est arrété il ne peut pas.

ça fonctionne presque mais le problème c'est que une fois la rotation lancée, elle ne s'arrète plus !

voici mon script :
import math
import Blender
##import sys
import GameLogic


print "."
print "."
print "script test lancement"


controller = GameLogic.getCurrentController()
owner = controller.getOwner()


vitesse = owner.getLinearVelocity()
print vitesse

a = (vitesse[0]*vitesse[0] + vitesse[1]*vitesse[1] + vitesse[2]*vitesse[2])

print a

v = math.sqrt(a)

print v

gauche = controller.getActuator("a_gauche")

if (v<0.5):
	print "vitesse nulle (ou presque)"

else:
	GameLogic.addActiveActuator(gauche, 1)
  


il est lié à un sensor keyboard Leftarrow, et à un actuator a_gauche qui donne à la voiture un couple sur l'axe z.

Contribution le : 06/02/2005 21:57
_________________
Portfolio
Créer un fichier PDF de la contribution Imprimer


Re: vitesse d'un objet
Touriste
Inscrit:
05/09/2004 23:14
Post(s): 8
Salut,

ton problème peut se résoudre assez simplement, voit la portion de script modifiée ci-dessous:
Citation :
if (v<0.5):
[TAB]print "vitesse nulle (ou presque)"
[TAB]GameLogic.addActiveActuator(gauche, 0)#désactiver l'actuator
else:
[TAB]GameLogic.addActiveActuator(gauche, 1)


Je pense que l'exemple ci-dessus est assez explicite pour ce cas précis, mais d'une manière plus générale, il faut savoir que le PythonController est assez fainéant car non seulement il ne désactive pas les actuators implicitement mais aussi il execute son script à chaque impulsion de l'un des sensors qui lui sont attachés, que ces impulsions soit positives ou négatives... C'est important à savoir. Je me suis pas mal arraché les cheveux avant de comprendre çà.
Keep Blending!
TSHAW

Contribution le : 07/02/2005 22:25
Créer un fichier PDF de la contribution Imprimer


Re: vitesse d'un objet
RegulatorZ
Inscrit:
23/05/2004 07:11
De Metz
Post(s): 11300
salut MelFlasH !
merci mais j'avais déja essayé cette méthode et ça ne fonctionne pas non plus... je vais continuer à chercher grace aux précisions que tu m'a fourni !

Contribution le : 08/02/2005 12:30
_________________
Portfolio
Créer un fichier PDF de la contribution Imprimer



 Haut   Précédent   Suivant




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
[WIP] et travaux terminés [WIP] Teeny Tiny - Story    [1][2][3]...[5] 46 4074 Hier 22:50:02
Bibi09 
Questions & Réponses Comment nettoyer le LNA ? 0 14 Hier 20:54:50
Meltingman2 
[WIP] et travaux terminés [WIP] Tutoriel vidéo et création de mon prochain court métrage 5 238 Hier 20:25:01
Meltingman2 
Moteur de jeu GameBlender et alternatives [WIP] DeadSigns FPS horreur - Première version disponible !    [1][2][3]...[58] 577 98355 Hier 17:24:51
Hook 
Questions & Réponses switch entre IK/FK 4 51 08/08 18:54:05
prometheusx 
Questions & Réponses Je bloque sur la modélisation de ce verre! Avez-vous une solution? 8 269 08/08 13:23:47
debutant 
Questions & Réponses [non résolu] cloth: déformation bizzarre au rendu 3 73 07/08 09:21:18
Arielboid 
Questions & Réponses les cheveux longueur 1 58 06/08 19:53:18
Rimpotche 
Questions & Réponses ADDON MB - Lab 0 66 06/08 15:29:23
GI-jo13 
Questions & Réponses [résolu] en sculpt mode 5 204 04/08 18:21:10
prometheusx 
Questions & Réponses [résolu] Array circulaire 2 164 04/08 15:22:46
Redstar 
Questions & Réponses Addon pour textures procedurales 2 163 02/08 20:11:35
Crocodile_13 
Questions & Réponses avis animation marche :)    [1][2][3][4] 34 795 02/08 20:03:14
prometheusx 
[WIP] et travaux terminés [terminé] court métrage 2020    [1][2] 13 912 02/08 15:28:29
flahaut 
Questions & Réponses [résolu] Générique, sous-titres etc 3 169 02/08 09:18:02
Corpia 
Questions & Réponses [résolu] Scène prend la couleur du fond    [1][2] 11 322 02/08 08:20:32
Arielboid 
Questions & Réponses [non résolu] Problele d'addon 0 128 02/08 01:52:30
nayther 
Questions & Réponses Addon pour textures procedurales 1 127 01/08 12:22:52
moonboots 
Questions & Réponses hair densité sélection de polys 9 272 30/07 23:18:21
lenogre 
Questions & Réponses [résolu] graph editor et location key frame 7 235 30/07 16:41:18
math_ 

Qui est en ligne
134 utilisateur(s) en ligne (dont 78 sur Forums)

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


plus...
Nouveaux membres
KeeshaQ213 10/8/2020
Marty55G89 10/8/2020
GonzaloSwa 10/8/2020
Quincy04I 9/8/2020
MinervaEst 9/8/2020
MollieAnde 9/8/2020
Daniella38 9/8/2020
SuzannaCul 9/8/2020
MilagroF76 9/8/2020
MichelleMc 9/8/2020
Dernier Ajout
mirages-preview~0.jpg

Evènements à venir
Aou 13
Anniversaire Siskas
Sep 8
Anniversaire de ang
Nov 18
Anniversaire de RichDeg
plus 266 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