2016-04-03 11 views
-2

Ich habe das doppelt überprüft. Jede Zeile scheint einen Sinn zu ergeben. Ich kratze mich am Kopf, ich war den ganzen Nachmittag hier. Können Sie herausfinden, was vor sich geht?Nicht Schlüsselwort Arg Nach Schlüsselwort Arg Python

Vielen Dank im Voraus :)

# Program to create 64 cubes for an animation suite, named blender. 

import bpy 
#make 64 of the following thing. 

for i in range (0,64): 

    # Step 1 - make a plane, move along a bit ready for the next one. 

    # Make a plane. 
    bpy.ops.mesh.primitive_plane_add(location = (i+(i*0.5)),(0,0)) 
    # Move the cursor to the active object. 
    bpy.context.scene.cursor_location = bpy.context.active_object.location 
    # Move the cursor along y, minus 1 space. 
    bpy.context.scene.cursor_location.y -= 1 
    # Set the object origin to the cursor. (What?) 
    bpy.ops.object.origin_set(type='ORIGIN_CURSOR') 

    # Step 2 - Size the plane how you want. 

    # Scale the new plane you made. 
    bpy.context.active_object.scale.x = 0.5 
    bpy.context.active_object.scale.y = 20 
    # Do a transformation, only use scale. 
    bpy.ops.object.transform_apply(location=False, rotation=False, scale=True) 

    # Step 3 - Add 2 keyframes for an F curve. (Function Curve) 

    # 
    bpy.ops.anim.keyframe_insert_menu(type='Scaling') 
    #initialise 2 types of scaling. 0 is x, 2 is z(?) 1 is y. y is used at the end. 
    bpy.context.active_object.animation_data.action.fcurves[0].lock = True 
    bpy.context.active_object.animation_data.action.fcurves[2].lock = True 

    #Opens Graph Editor 
    bpy.context.area.type = 'GRAPH_EDITOR' 



    #sets how the block reacts by giving numbers to those keyframes. 

    #l or LOW is the highest frequency the block reacts to. 
    l = i**2 + 20 

    #h or HIGH is the highest frequency a block reacts to. 
    #add one to 1, incrementing it 
    h = (i+1)**2 + 20 

    #puts strings into the console. 
    print (str(i) + str(l) + str(h)) 

    #Render. or "Bake" as we are calling it here. Feed the song into the oven, too! nom. 
    #Also, set the low and high settings of the sound bake program to l and h. 

    bpy.ops.graph.sound_bake(filepath=r'~/PlayMax/Blender/sawwipe.mp3', low = (l), high = (h)) 

    # Initialise the y axis [1] 
    bpy.context.active_object.animation_data.action.fcurves[1].lock = True 

    # That's it! All ready to repeat 63 more times. 
+1

Es wäre nützlich zu wissen, was der Fehler Linie auf –

Antwort

1

über Ihren Code Glossing sieht es aus wie die Codezeile ist die folgende:

bpy.ops.mesh.primitive_plane_add(location = (i+(i*0.5)),(0,0)) 

Wenn Argumente Stichwort Argument Senden erwartet Argumente kommen nach die nicht durch ein Schlüsselwort angegeben sind. Sie setzen also location=... nach (0,0).

Auch bei *args and **kwargs? suchen könnte nützlich sein:

+0

Dank auftritt! Ich weiß nicht, ob du wieder helfen könntest? :) Ich habe etwas anderes versucht und es wird immer noch nicht funktionieren. (location = (0, 0, (i + (i * 0.5)))) - Ich bekomme das non-Schlüsselwort nicht mehr nach arg, aber es wird immer noch nicht ausgeführt. Gibt diesmal keine spezifischen Fehler an – aerotortoise

+0

Haben Sie versucht, die Zeile als Antwort einzufügen? Es sieht so aus, als hättest du 'location = (i + (i * 0.5))' mit '(0,0)' verschmolzen, was wahrscheinlich einen Fehler verursacht, weil du diesen Parameter nun zu einem Tupel von Werten gemacht hast, das wahrscheinlich nicht erwartet wird. – Pythonista

+0

Behoben Linie! Vielen Dank! : D – aerotortoise

Verwandte Themen