Blender (jusqu'à 2.49)
Python
Copier les positions trackto 
vers  ipo v2
    Début   Index
précédentScript Python
Script Python Suivant

Interface en popup, v2 pour constrain exclusivement :
 

#------------------------------
# Track2ipo script V2
# (c) jmsoler 23/11/2006

#  Ce script cree des courbes ipo a partir 
#  des mouvements de rotation  effectue par 
#  l'objet SELECTIONNE' quand il traque un autre 
#  objet uniquement sur un constrain de type 
#  trackto . 
#  une fenetre de typ emenu popup permet de 
#  choisir l'image de depart et de fin
#
#  Le old Trackto donnera des resultats 
#  chaotiques 
#------------------------------

import Blender
from Blender import Scene,Object, Ipo, BezTriple, Mathutils

SF = Blender.Draw.Create(Blender.Get('staframe'))
EF = Blender.Draw.Create(Blender.Get('endframe'))
tog = Blender.Draw.Create(0)

block = []

block.append(("startFrame: ", SF, 0.0, 100.0))
block.append(("EndFrame: ", EF, 0, 100))

retval = Blender.Draw.PupBlock("Track 2 Ipo", block)

for f in range(SF.val,EF.val) :
 Blender.Set('curframe',f)
 time= Blender.Get('curtime')

 OBJ=Object.GetSelected()[0]

 if OBJ.getIpo() :
  IPO=OBJ.getIpo()
 else: 
   IPO=Ipo.New('Object', 'ObIpo')
   IPO.addCurve('RotX')
   IPO.addCurve('RotY')
   IPO.addCurve('RotZ')
   OBJ.setIpo(IPO)

 MATRIX=OBJ.getMatrix()
 EULER=MATRIX.toEuler()

 ipoX = IPO[Ipo.OB_ROTX] 
 point=BezTriple.New()
 point.pt=(time, EULER[0]/10.0)
 point.handleTypes=[1,1]
 ipoX.append(point)

 ipoY = IPO[Ipo.OB_ROTY]
 point=BezTriple.New()
 point.pt=(time, EULER[1]/10.0)
 point.handleTypes=[1,1]
 ipoY.append(point)

 ipoZ = IPO[Ipo.OB_ROTZ]
 point=BezTriple.New()
 point.pt=(time, EULER[2]/10.0)
 point.handleTypes=[1,1]
 ipoZ.append(point)
 

Interface en popup, v3 pour constrain et old trackto :
 

#------------------------------
# Track2ipo script V3
# (c) jmsoler 23/11/2006

#  Ce script cree des courbes ipo a partir 
#  des mouvements de rotation  effectue par 
#  l'objet SELECTIONNE' quand il traque un autre 
#  objet uniquement sur un constrain de type 
#  trackto . 
#  une fenetre de typ emenu popup permet de 
#  choisir l'image de depart et de fin
#
#  Plus adapte' au old Trackto qui necessite un 
#  retrait du lien qui unit l'objet a sa cible
#------------------------------

import Blender
from Blender import Scene,Object, Ipo, BezTriple, Mathutils

endframe = Blender.Get('endframe')
staframe = Blender.Get('staframe')

SF = Blender.Draw.Create(staframe)
EF = Blender.Draw.Create(endframe)

untrack = Blender.Draw.Create(0)

block = []

block.append(("startFrame: ", SF, staframe, endframe))
block.append(("EndFrame: ", EF, staframe, endframe))
block.append(("Untrack", untrack, "remove trackto"))

retval = Blender.Draw.PupBlock("Track 2 Ipo", block)

if retval :
 POSLIST=[]
 for f in range(SF.val,EF.val) :
  Blender.Set('curframe',f)
  time= Blender.Get('curtime')

  OBJ=Scene.getCurrent().getActiveObject()

  if OBJ.getIpo() :
   IPO=OBJ.getIpo()
  else: 
    IPO=Ipo.New('Object', 'ObIpo')
    IPO.addCurve('RotX')
    IPO.addCurve('RotY')
    IPO.addCurve('RotZ')
    OBJ.setIpo(IPO)

  MATRIX=OBJ.getMatrix()
  EULER=MATRIX.toEuler()
  POSLIST.append([time,EULER])

 if POSLIST :
  for P in POSLIST :
   ipoX = IPO[Ipo.OB_ROTX] 
   point=BezTriple.New()
   point.pt=(P[0], P[1][0]/10.0)
   point.handleTypes=[1,1]
   ipoX.append(point)

   ipoY = IPO[Ipo.OB_ROTY]
   point=BezTriple.New()
   point.pt=(P[0], P[1][1]/10.0)
   point.handleTypes=[1,1]
   ipoY.append(point)

   ipoZ = IPO[Ipo.OB_ROTZ]
   point=BezTriple.New()
   point.pt=(P[0], P[1][2]/10.0)
   point.handleTypes=[1,1]
   ipoZ.append(point)

 if untrack.val==1 : OBJ.clearTrack(1,1) 
 


 
précédentScript Python
 Script Python Suivant
Vers le  Haut de page

Les questions concernant cette page  peuvent être posées sur  :
 news://news.zoo-logique.org/3D.Blender

 
Livre en français
Blender : apprenez, pratiquez, Créez, livre, Ed. Campus Press, coll. Starter Kit
Blender Starter Kit

Forum
FAQ
Lexique
Didacticiels
Compilations
Blender2KT
Débuter
Modelage
Blender python
Materiaux
Lumière
Animation
API python (eng)
Archives nzn
Statistiques
Doc flash Sculptris
Galerie Sculptris

mon site de démos sur youtube