2D Animation von Pulsen
#2
Hallo Guther,

also wenn ich das Ziel richtig verstehe, sollen unter der Kurve "animiert" kleinere Amplituden durchlaufen und sich praktisch am jeweiligen Punkt der X-Achse am Maximum der "großen" Amplitude orientieren

Die "update_amplitude"-Funktion weiß nach meiner Einschätzung nach nicht, wo/in welchem Frame "wir" gerade sind. Also müsste noch Frame und mu übergeben werden?! und dann die 1.001-Punkte neu abgespeichert (also nicht wirklich nur die Location)

Code:
def update_amplitude(curve_object, A_new, x=0.0, sigma=.05, frame=0):
    spline = curve_object.data.splines[0]


    for point in spline.points:
        x = point.co.x

        y = A_new * math.exp(-(x)**2 / (2 * sigma**2))
        point.co.y = y
        #NEU:
        point.keyframe_insert("co", frame=frame)

Beachte (Wertübergabe):
frame=0
und ganz unten
point.keyframe_insert("co", frame=frame)

bei keyframe_insert "nur" die "location" zu verwenden wirft die y-Werte über den Haufen, deswegen "co" verwenden, dann werden die individuellen Punkt-Standorte berücksichtigt. Location beschreibt einfach nur wo sich das Objekt befindet. Also müsstest du oben noch irgendwie point.co.x = "k.A." reinstricken.

Ach' so, und ganz unten hatte ich noch etwas angepasst:
Code:
for frame in range(120, 151):
    for curve_object in curve_objects[0:1]:

        x = 0+frame/150/2

      
        A_new =  A_main * math.exp(-(x)**2 / (2 * sigma_main**2))
        print(A_new)
      
        update_amplitude(curve_object, A_new, x, 0.05, frame)
       
        #ALT
        #curve_object.location.x = x
        #curve_object.keyframe_insert(data_path="location", frame=frame)


Gruß Hobbyblenderer  Hä?
Zitieren


Nachrichten in diesem Thema
2D Animation von Pulsen - von Guther - 01.03.2025, 06:22 PM
RE: 2D Animation von Pulsen - von Hobbyblenderer - 17.03.2025, 02:03 PM

Gehe zu:


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