2013-06-01 69 views
0

我想创建圆柱体的动画。这意味着我想将第一个关键帧的刻度设置为0,并将最后一个关键帧设置为实际的柱面大小。 首先创建这样的两个点之间的气缸:如何将对象的枢轴点移动到特定位置

# p1 is point 1 and p2 is point 2 
dx, dy, dz = p2.x - p1.x, p2.y - p1.y, p2.z - p1.z 
v_axis = mathutils.Vector((dx, dy, dz)).normalized() 
v_obj = mathutils.Vector((0,0,1)) 
v_rot = v_obj.cross(v_axis) 
angle = math.acos(v_obj.dot(v_axis)) 
bpy.ops.mesh.primitive_cylinder_add() 
bpy.ops.transform.rotate(value=angle, axis=v_rot) 

该旋转后,我想设置在P1的位置处的枢转点,以能够操纵在相对于P1的位置和缩放比例。 我知道如何从搅拌机用户界面中将支点设置为3D光标,但是如何从我的python脚本中将支点设置为特定位置(p1)?

回答

0

我最终做的是从0缩放到100%,同时改变圆柱体的位置,使圆柱体的底部始终位于p1。

但我仍在寻找更好的解决方案。

+0

创建一个代表转换根的组可能更容易。将圆柱体放入组中,以便圆柱体的基部位于母体的枢轴上;然后将父母缩小到零以收缩圆柱体并将其恢复到100%以扩展它。 – theodox

0

另一种方法是尝试与使用父对象的实验。我在原点创建了一个圆柱体。我创建了一个空对象并将其移动到< 0,-4,0>。然后使用属性窗口中对象选项卡的关系子选项卡的父项字段,将空值设置为柱面的父项。然后将气缸的位置< 0,0,0>相对于空的进行解释。我移动了圆柱体,以便它回到世界原点,但现在它的位置(相对于它的父母)是< 0,4,0>。然后,我将空对象的缩放比例从1变为2.作为儿童的圆柱体受到这种缩放的影响,Empty提供了缩放的原点,所以当缩放时,圆柱体沿着y轴滑动。

相关问题