我仔细检查过这个。每条线似乎都有意义。我挠挠头,整个下午都在这里。你能帮忙弄清楚发生了什么吗?
提前致谢:)
# 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.
答案 0 :(得分:1)
对代码进行着色,看起来违规行如下:
bpy.ops.mesh.primitive_plane_add(location = (i+(i*0.5)),(0,0))
发送参数时,关键字参数应该在之后的参数之后出现,而这些参数不是由关键字指定的。因此,您需要在location=...
之后设置(0,0)
。
另外,看*args and **kwargs? 可能有用: