如何将对象的轴心点移动到特定位置

我想为圆柱体创建动画。这意味着我想将第一个关键帧的比例设置为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的位置和缩放。我知道如何在Blender UI中将枢轴点设置为3D光标,但是如何从python脚本中将枢轴点设置为特定位置(p1)?


犯罪嫌疑人X
浏览 186回答 3
3回答

婷婷同学_

另一种尝试的技术是尝试使用父对象。我在原点创建了一个圆柱体。我创建了一个Empty对象,并将其移至<0,-4,0>。然后,使用“属性”窗口中“对象”选项卡的“关系”子选项卡的“父级”字段将“空”设置为圆柱体的父级。然后,将汽缸的位置<0,0,0>相对于空位置进行解释。我移动了圆柱体,使其恢复了世界原点,但现在它的位置(相对于其父级)为<0,4,0>。然后,我将“ Empty”对象的“ Scale”设置为从1到2的动画。圆柱体是一个孩子,受此缩放比例的影响,“ Empty”提供了缩放的原点,因此,圆柱体在缩放时沿y轴滑动。

料青山看我应如是

我最终要做的是将比例从0缩放到100%,同时更改圆柱的位置,以使圆柱的底部始终为p1。但我仍在寻找更好的解决方案。
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Python