16行Python實現3D破壞球效果

16行Python实现3D破坏球效果

16行Python实现3D破坏球效果

以下是製作上面炫酷動畫所需的全部代碼:

16行Python实现3D破坏球效果

(如果你對Blender Python完全陌生,訪問鏈接:http://slicker.me/blender/3d_mandelbrot.htm瞭解如何複製粘貼代碼。)

我們需要三組剛體(當您在Blender的對象上打開一個剛體的屬性時,Blender將模擬與其它剛體的碰撞):

1.平面

第2行代碼創建了一個簡單的平面,立方體將放置在該平面上。為了防止它因重力而墜落,我們將其設為“受體”[第4行代碼]。

2. 圓環

x循環[5-12行代碼]創建由18個圓環組成的鏈條,它們將撞擊牆體:

[6-8行]確定它們的座標並沿Y軸依次旋轉90°。旋轉是通過x除以2的餘數(獲得“0-1-0-1-0...”序列)乘以90度(弧度1.5708)實現的。

[第10行]將它們的碰撞形狀設置為“MESH”。如果設置為默認的"Convex Hull",Blender就不會考慮到中間的孔洞,鏈條就會脫落。

[第11-12行]將第一個圓環的"Enabled"屬性設置為false,防止由於重力而墜落。這樣它就固定在那牽住整個鏈條。

3. 立方體

在13-16行代碼中,我們創建了一個由10個立方體組成的列,重量非常輕,以便在撞擊時飛得更遠。

因為z循環[第13行]嵌套在x循環[第5行]中,我們將得到一個18X10的立方體組成的牆。

好了!當您點擊時間線上的“播放”時,鏈條就會掉下來,撞上立方體並讓它們飛起來!

16行Python实现3D破坏球效果

現在我們讓最後一個圓環變大一點,讓它看起來更像一個實際的破壞球,而不是用一根鏈子打破牆壁。為了有更酷的碰撞效果,將第6-8行代碼更改為:

16行Python实现3D破坏球效果

下載相關代碼請點擊此鏈接:https://od.lk/d/OF8xMzk3MDkxODVf/wreck.blend

你還要打破別的東西嗎?讓我們來撞碎這個壞小子:

16行Python实现3D破坏球效果

將第13-16行代碼替換為:

16行Python实现3D破坏球效果

並在代碼的最開始處添加以下行,這樣才能使用sin和cos三角函數:

16行Python实现3D破坏球效果

享受破壞的過程吧!

英文原文:http://slicker.me/blender/wreck.htm
譯者:錢利鵬


分享到:


相關文章: