Themabewertung:
  • 0 Bewertung(en) - 0 im Durchschnitt
  • 1
  • 2
  • 3
  • 4
  • 5
Timeline Keyframes per Python generieren
#1
Hallo und guten Tag.

Ich versuche für ein markiertes Object die Keyframes für die Animation per Phyton zu generieren:



Code:
import bpy
bpy.context.scene.frame_start =  1
bpy.context.scene.frame_end  = 201

for f in range(2,12,2):
    bpy.context.scene.frame_current = 20*f
    bpy.ops.anim.keyframe_delete_v3d()

for f in range(2,12,2):
    bpy.context.scene.frame_current = 20*f
    px=0.0
    py=f
    pz=0.0
    bpy.context.object.location = (px,py,pz)
    bpy.ops.anim.keyframe_insert_by_name(type="Location")
Ich erwarte eigentlich, dass die einzelnen Keyframes mit unterschiedlichen Locations (y=2,4,6,...) versehen sind, aber im Ergebnis haben sie alle nur den ersten Positionswert.


Was denke ich falsch?



Ekkehard

Blender 6.4.0
   
Zitieren
#2
Zwar weiß ich noch nicht, was ich falsch gedacht habe, aber ich habe einen Weg für das aktive Objekt gefunden (Positionierung, Drehung und Skalierung):

Code:
import bpy, math

obj=bpy.context.active_object

# Alte Keyframes löschen
for f in range(2,12,2):
    bpy.context.scene.frame_current = 20*f
    bpy.ops.anim.keyframe_delete_v3d()

bpy.context.scene.frame_start   =   1
bpy.context.scene.frame_end     = 201
bpy.context.scene.frame_current =   1

for f in range(2,12,2):
    #+++++++++++++++++++++++++++++++++++++++++++++++++++++#
    px=0.0
    py=f*1.0
    pz=0.0
    obj.location = (px,py,pz)
    obj.keyframe_insert(data_path="location", frame=f*20)
    #+++++++++++++++++++++++++++++++++++++++++++++++++++++#
    rdx=0.0
    rdy=0.0
    rdz=f*10.0
    rex=rdx*math.pi/180
    rey=rdy*math.pi/180
    rez=rdz*math.pi/180
    obj.rotation_euler = (rex,rey,rez)
    obj.keyframe_insert(data_path="rotation_euler", frame=f*20)
    #+++++++++++++++++++++++++++++++++++++++++++++++++++++#
    sx=1.0
    sy=f*1.0
    sz=1.0
    obj.scale = (sx,sy,sz)
    obj.keyframe_insert(data_path="scale", frame=f*20)
    #+++++++++++++++++++++++++++++++++++++++++++++++++++++#

Ekkehard
Zitieren


Gehe zu:


Benutzer, die gerade dieses Thema anschauen: 3 Gast/Gäste