2013-06-01 66 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軸滑動。

相關問題