PDA

Voir la version complète : Question Création d'un script pour exporter les donnée camera



philippe BEAU
01/02/2012, 09h04
Bonjour, à tous j'aurais besoin de votre aide pour me guider et me conseiller

J'utilise C4d depuis presque 10 ans et je n'ai encore jamais eu besoin de créer des scripts, mais voila comme tout arrive je suis aujourd'hui confronté à ce problème .

J'aurais besoin de créer un script qui me permet de récupérer les valeurs de ma caméra dans un fichier texte

- positionx , positiony, positionz, rotationx, rotationy, rotationz, fov, frame

Par où je commence

Cordialement, Philippe BEAU

actarus
01/02/2012, 09h12
Salut,
tu veux récupérer les données pour les utiliser dans quel soft?

oli_d
01/02/2012, 10h12
salut,

Je ne sais pas si j'ai tout compris, tu veux récupérer pour chaque frame la position/rotation de la camera (c'est quoi le fov?)

Si tu es sur la r12 ou r13 un début de script à coller dans le menu Script/Gestionnaire de scripts, puis bouton exécuter

C'est juste un exemple pour la camera active sur la frame active


import c4d



def main():
#boite de dalogue pour le chemin du fichier
fn = c4d.storage.SaveDialog()
if not fn : return
#ouverture/creation du fichier texte en mode eciture
f = open(fn,'w')

#recuperation de la vue de rendu du doc
bd = doc.GetRenderBaseDraw()
#recuperation de la camera de rendu
camera = bd.GetSceneCamera(doc)

#position
#on recupere...
pos = camera.GetAbsPos()
#et on ecrit dans le fichier en convertissant en string et
#en rajoutant un saut de ligne a la fin
f.write(str(pos.x)+'\n')
f.write(str(pos.y)+'\n')
f.write(str(pos.z)+'\n')

#rotation (attention en radians)
rot = camera.GetAbsRot()
f.write(str(rot.x)+'\n')
f.write(str(rot.y)+'\n')
f.write(str(rot.z)+'\n')

#propriete de la camera (faire glisser le nom du champ dans l'editeur pour avoir le nom entre crochet)
#exemple distance focale
dist_foc =camera[c4d.CAMERA_FOCUS]
f.write(str(dist_foc)+'\n')


#fermeture du fichier
f.close()
if __name__=='__main__':
main()

actarus
01/02/2012, 13h05
(c'est quoi le fov?)

[/PHP]

C'est le field of view, champs d'ouverture en rapport avec la focale. En tout cas merci pour le script, faudrait le mettre dans la nouvelle section dédiée.

oli_d
01/02/2012, 18h05
Merci pour la définition du fov,
Pour le script ce n'est pas vraiment utilisable tel quel c'est juste pour montrer le principe de récupération de données c4d et d'écriture dans un fichier texte en python

philippe BEAU
01/02/2012, 19h52
Ok super merci pour le script

Pour répondre à la question c'est pour quel soft, c'est pour exporter dans Unigine

Unigine est un moteur de temps reel 3d que je test en cemoment

Cordialement,
Philippe BEAU