薛山
為了讓球體沿固定旋轉軸進行運動,所以牛頓擺的球體都需要兩條線來牽引,在建模時也最好按照這個邏輯來進行設計,建議大家搜索一個牛頓擺的模型來“依葫蘆畫瓢”。
首先我們新建一個球體,再新建兩條牽引線,然后先選擇牽引線再按住Shift選擇球體,將球體設置為牽引線的父級,這樣我們的球體運動時牽引線也會自然跟隨,具體設計如圖1所示??紤]到Blender的物理引擎對小尺寸、小重量物體的模擬精度并不高,反倒很容易出現各種稀奇古怪的問題,所以在這里我們并不需要嚴格按照比例來制作。

接下來在兩條牽引線頂端的中間位置新建一個方塊,在物理面板中將其設置為剛體效果的被動模塊,然后再把球體設置為剛體模式的活動項,這里注意要把碰撞修改為球形,表面響應里的摩擦會讓碰撞變得粘連,所以要設置為0,而彈跳力是保證球體正常彈起,但如果設置為1會出現不受控的亂彈,所以設置為0.95,具體參考圖2。

這時候如果直接播放視頻,你會發現球體會帶著牽引繩一起往下掉,所以我們還需要把它們和方塊進行物理綁定。先選擇球體,再按住Shift選擇方塊,在物體菜單中選擇剛體、連接,如圖3所示。這時候會出現一個剛體約束的空物體,我們把這個空物體移動到方塊的位置,然后在剛體約束中,把類型從“固定”切換為“點”,具體設置可參考圖4。這個操作的含義就是球體的物理運動是以方塊為中心進行旋轉。



搞定前兩步之后,我們接下來需要做的就是完成整個牛頓擺的構建和達到想要的效果,接下來如圖5所示地復制4組我們剛剛做好的全部物體,注意在物體之間要預留一點點空間,避免出現胡亂碰撞的問題。
然后將第一個球體進行旋轉,也就是把它“拉起來”,這時候只需深吸一口氣,按下播放鍵,大多數情況下,你都能成功獲得如圖6所示的牛頓擺效果啦!

如果你的效果出現了問題,要么就是初始擺動幅度過大,要么就是球體擺放距離不均勻,要么就是剛體世界環境的設置有問題,我們可以在場景屬性中調整剛體世界環境的數值,如圖7。Blender的剛體設置比較麻煩的地方在于它在播放時就會主動烘焙數據,但當你修改參數后它并不會主動刪除烘焙數據,所以如果忘記手動刪除,就會出現“為什么我明明修改了參數但還是不按套路出牌”的窘境。所以建議在剛體世界環境中一是調高子步數和迭代次數,二是每次修改數據后一定要先清除、再烘焙,還可以根據需要來調整速率,畢竟我們不是嚴格按照物體比例來設計,往往會出現球體移動速度過慢等問題。


效果完成后,接下來就是把整個牛頓擺的造型搞定,這一步也很簡單,基本上就是按圖索驥,照著你找的參考圖簡簡單單做一個就完事兒,最終的效果如圖8所示。
作為Blender最好玩的物理系統之一,剛體系統可以做的事情實在太多,雖然在算法精度上并不是特別高,但仍然可以實現許多有趣的效果,而聯動剛體約束之后的可玩性又進一步得到升華。在本次教學中,牽引球體沿軌跡碰撞就是一個很好的例子,感興趣的讀者朋友們可以自行嘗試各種設置,相信你們都能發現很多的“新大陸”!