# Nimmt die Bezierkurven aus myspline und erzeugt # die Bahn und die Kamera-Animation # Import in Blender 2.8 (see https://devtalk.blender.org/t/2-80-using-multiple-internal-scripts-breaking-change/6980 ) Bezier = bpy.data.texts["bezier.py"].as_module().Bezier obj = bpy.data.objects['mySpline'] # Kurvenpunkte auslesen mypoints=[] if obj.type == 'CURVE': for subcurve in obj.data.splines: curvetype = subcurve.type if curvetype == 'BEZIER': for bezpoint in subcurve.bezier_points: mypoints.append(bezpoint.handle_left) mypoints.append(bezpoint.co) mypoints.append(bezpoint.handle_right) # Sammlung von Bezierkurven erzeugen mySplines = [] numpoints = len(mypoints) totalLength = 0 for i in range(numpoints//3): mySplines.append(Bezier((mypoints[i*3+1], mypoints[i*3+2], mypoints[(i*3+3)%numpoints], mypoints[(i*3+4)%numpoints]))) totalLength+=mySplines[-1].length() # Bahn erzeugen try: bpy.ops.collection.objects_remove(bpy.data.collections['Rails']) except: pass railsCol = bpy.data.collections.new('Rails') linksCol = bpy.data.collections.new('RailLinks') railsCol.children.link(linksCol) bpy.context.scene.collection.children.link(railsCol) abstand = 0.2 # Bahnpunkte ldone = 0 # Erledigte Bahnstrecke i=0 # Aktuelle Bezierkurve t = 0 # Aktuelle t-Parameter g = Vector(0,0,-9.81) # Gravitationbeschleunigung hmax = 40 # Hoehe fuer v=0 # Bahnpunkte: Ctrl-Links, Knoten, Ctrl-Rechts railspts=[[],[],[]] # Bahnpunkte, Schiene L, Schiene R, Träger while(ldone