Export coordonnées caméra anim

Ici on parle des scripts

Modérateurs : frez, Yadoob, stilobique, Matpi, ModSquad

Export coordonnées caméra anim

Message par FrouxRed » 14 Nov 2019, 10:50

Bonjour ! 8-)

:arrow: Je souhaite exporter les coordonnées de ma caméra en fonction de sa position dans le world.
Lorsque j'entre les lignes de code frame par frame, ca fonctionne mais quand il s'agit de lire une boucle dans un script, ca n'exporte que la valeur à la frame actuelle.

Code : Tout sélectionner
import bpy

scene = bpy.context.scene
CamCo = bpy.data.texts['TEST-123']
bpy.context.scene.frame_current = 0

for f in range(scene.frame_start, scene.frame_end + 1):
       
    myX = bpy.context.scene.camera.matrix_world.to_translation()[0]
    myY = bpy.context.scene.camera.matrix_world.to_translation()[1]         
    myZ = bpy.context.scene.camera.matrix_world.to_translation()[2]
   
    CamCo.write(str(myX)[:7]+","+str(myY)[:7]+","+str(myZ)[:7])

    if f+1%3:
        CamCo.write("/")
    else:
        pass

    bpy.context.scene.frame_current += 1


:idea: Si dessous quand je rentre à la main :
Image

Si quelqu'un a une solution ou peut trouver mon erreur, faites moi signe !
Merciii ! :D

[Blender v2.80.75]
FrouxRed
 
Message(s) : 3
Inscription : 14 Nov 2019, 10:27
Localisation : Rennes

Re: Export coordonnées caméra anim

Message par lapineige » 14 Nov 2019, 13:28

Je ne suis pas sûr de ce que tu veux faire avec ton modulo, et s'il est juste du coup: peut-être qu'il te faut des parenthèses
Code : Tout sélectionner
(f+1)%3
?
En l’occurrence il ne passera jamais au Else.
Mon terrier/blog: https://lapineige.fr/wp (l'ancien: le-terrier-de-lapineige.over-blog.com) | Mon GitHub: https://github.com/lapineige/Blender_add-ons | Lapineige's Tools: http://cgcookiemarkets.com/blender/all- ... ompilation
Avatar de l’utilisateur
lapineige
 
Message(s) : 3717
Inscription : 25 Juin 2014, 07:06

Re: Export coordonnées caméra anim

Message par FrouxRed » 14 Nov 2019, 14:05

Le modulo me sert à séparer les coordonnées avec un "/" par pack de 3 (X,Y,Z) de façon à retrouver un résultat sous la forme de : X,Y,Z/X,Y,Z/X,Y,Z/X,Y,Z/X,Y,Z/X,Y,Z...etc

Lapineige : J'ai ajouté les parenthèses mais je ne pense pas que ça viendra de là ^^

En revanche, j'ai pu analyser le soucis :idea: mais toujours pas de solution en vue.
Mon soucis serait donc :arrow: de mettre à jour la scène, les datas, entre chaque loop,

Auparavant il y avait, semble-t-il, le
Code : Tout sélectionner
bpy.ops.scene.update()

mais pour la 2.8 ça a été remplacé. Je lis
Code : Tout sélectionner
bpy.context.view_layer.update()
et
Code : Tout sélectionner
despgraph.update


Mais pour le moment pas de solution qui fonctionne ...
FrouxRed
 
Message(s) : 3
Inscription : 14 Nov 2019, 10:27
Localisation : Rennes

Re: Export coordonnées caméra anim

Message par Pullup » 14 Nov 2019, 18:14

Tente d'utiliser frame_set() plutôt que frame_current.

Frame_set déclenche une update du depsgraph normalement.
donc :
Code : Tout sélectionner
# bpy.context.scene.frame_current += 1
bpy.context.scene.frame_set(bpy.context.scene.frame_current + 1)
Pullup
 
Message(s) : 1
Inscription : 09 Mars 2016, 13:53

Re: Export coordonnées caméra anim

Message par FrouxRed » 15 Nov 2019, 11:11

Oh boy !
Thanks a lot mate ! Ca marche comme sur des roulettes :mrgreen: :!: :D

Merci beaucoup !
FrouxRed
 
Message(s) : 3
Inscription : 14 Nov 2019, 10:27
Localisation : Rennes


Retour vers Scripts - Python - OSL

Qui est en ligne ?

Utilisateur(s) parcourant ce forum : Aucun utilisateur inscrit et 1 invité

cron