【发布时间】:2017-01-04 06:25:33
【问题描述】:
我是 Blender 和 Python 的新手,在我的第 1 层我有一个名为“BallB”的球。
现在我想在 Blender 中使用 Python 制作一个简单的冒泡动画,但我无法制作关键帧。这应该发生在第 2 层。
我尝试了很多,但遇到了很多错误......我发现的所有片段都不起作用,我的脚本总是因 Python 错误而崩溃,例如
RuntimeError: Operator bpy.ops.anim.change ... 期望激活时间线/动画区域
还有更多。
有人给我一些提示吗?
我想在 Blender 中学习脚本动画,所以我非常感谢每一个让我进步的提示 ;-)
我的代码:
import bpy, math, random
d = 4
anz = 100
frameAnz = 10
scene = bpy.context.scene
scene.frame_start = 1
scene.frame_end = 100
for anz in range (0,anz):
ball = bpy.data.objects["ballB"]
tball = ball.copy()
xpos = -1 * (d/2) + random.randint(0,(d-1))
xpos += random.random()
ypos = -1 * (d/2) + random.randint(0,(d-1))
ypos += random.random()
zpos = random.randint(0,(d-1))
zpos += random.random()
bn = str(anz).zfill(5)
bn = "zz_Ball-" + bn
tball.name = bn
tball.location = (xpos, ypos, zpos)
sz = random.uniform(0.015,0.09)
tball.scale = (sz,sz,sz)
#tball.nodes["Emission"].inputs[1].default_value = 200
tball.select = False
scene.objects.link(tball)
#print ("done!")
obj = bpy.context
for actFrame in range(1,frameAnz):
# scene = bpy.context.scene
# scene.keyframe_insert(data_path="gravity", frame = actFrame)
for ob in scene.objects:
ploc = ob.location
#print (ploc)
xpos = ploc[0]
ypos = ploc[1]
zpos = ploc[2]
zpos = zpos + random.random()
ob.location = (xpos, ypos, zpos)
#ypos = ball.location[1]
#zpos = ball.location]2]
#zpos = zpos - random.random()
#ball.location = (xpoy, ypos, zpos)
#obj.keyframe_insert_menu('Location')
#bpy.context.scene.frame_set(0)
#scene = bpy.context.scene
#scene.keyframe_insert(data_path="Location", frame=actFrame)
其实是这样的:
【问题讨论】: