可能聽到這個標題你會問:哪些是牛頓擺?雖然你們應當都見過,有時侯也被稱為“永動球”“碰碰球”等等,就是五個質量相同的圓球由纜繩固定彼此緊密排列物理實驗碰撞球,擺動其中一端的單個圓球去撞擊其它圓球時,只會有另一端的單個球感受彈起,假如拉起兩個球碰撞球組,另一端的兩個球將以相同的速率彈開,同理,假如拉起四個球,另一端的四個球將彈開,而坐落中間的圓球保持相對靜止的狀態,這個化學實驗反映了動量守恒定理和能量守恒定理。
而在里,雖然我們也可以復現這個精典的化學實驗,這么具體是如何操作呢?
1.第一步:構建牛頓擺的圓球模型
為了讓圓球沿固定旋轉軸進行運動,所以牛頓擺的圓球都須要兩條線來牽引,在建模時也最好根據這個邏輯來進行設計,建議你們搜索一個牛頓擺的模型來“依葫蘆畫瓢”。
圖1
首先我們新建一個圓球,再新建兩條牽引線,之后先選擇牽引線再按住Shift選擇圓球,將圓球設置為牽引線的父級,這樣我們的圓球運動時牽引線也會自然追隨,具體設計如圖1所示。考慮到的化學引擎對小規格、小重量物體的模擬精度并不高,反而很容易出現各類稀奇奇特的問題,所以在這兒我們并不須要根據嚴格比列來制做。
2.第二步:設置質心碰撞關系
接出來在兩條牽引線頂端的中間位置新建一個小方塊,在化學面板上將其設置為質心療效的被動模塊,之后再把圓球設置為質心模式的活動項,這兒注意要把碰撞更改為球狀,表面響應里的磨擦會讓碰撞顯得攣縮,所以要設置為0,而彈跳力是保證圓球正常彈起,但若果設置為1會出現不受控的亂彈,所以設置為0.95,具體參考圖2。
這時侯倘若直接播放視頻,你會發覺球感受帶著牽引繩一起往下掉,所以我們還須要把它們和小方塊進行化學綁定。先選擇圓球,再按住Shift選擇小方塊,在物體菜單中選擇質心、連接,如圖3所示。這時侯會出現一個質心約束的空物體,我們把這個空物體聯通到小方塊的位置,之后在質心約束中,把類型從“固定”切換為“點”,具體設置可參考圖4。這個操作的涵義就是圓球的數學運動是以小方塊為中心進行旋轉
圖2
圖3
圖4
3.第三步:補全牛頓擺的其他部件,實現化學療效
搞定前兩步以后,我們接出來須要做的就是完成整個牛頓擺的建立和達到想要的療效,接出來如圖5所示地復制4組我們剛才做好的全部物體,注意在物體之間要預留一點點空間,防止出現胡亂碰撞的問題。
圖5
之后將第一個圓球進行旋轉,也就是把它“拉上去”,這時侯只需深吸一口氣,按下播放鍵,大多數情況下,你都能成功獲得如圖6的牛頓擺療效啦!
圖6
假如你的療效出現了問題,要么就是初始擺動幅渡過大,要么就是圓球擺放距離不均勻,要么就是質心世界環境的設置有問題,我們可以在場景屬性中調整質心世界環境的數值,如圖7。的質心設置比較麻煩的地方在于它在播放時都會主動烘培數據,但當你更改參數后它并不會主動刪掉烘焙數據,所以假如忘掉自動刪掉,才會出現“為什么我明明更改了參數但還是不按套路出牌”的境況。所以建議在質心世界環境中一是調高子步數和迭代次數,二是每次更改數據后一定要先清理、再烘培,還可以依據須要來調整速度,雖然我們不是嚴格依照物體比列來設計,常常會出現球體聯通速渡過慢等問題。
療效完成后,接出來就是把整個牛頓擺的造型搞定,這一步也很簡單,基本上就是按圖索驥,照著你找的參考圖簡簡單單做一個就完事兒,最終的療效如圖8所示。
圖7
圖8
本章小結:質心化學系統可玩性很豐富
作為最好玩的數學系統之一,質心系統可以做的事情實在太多物理實驗碰撞球,即使在算法精度上并沒有非常高,但依然可以實現許多有趣的療效,而聯動質心約束然后的可玩性又進一步得到升華。在本次教學中,牽引圓球沿軌跡碰撞就是一個挺好的事例,感興趣的讀者同學們可以自行嘗試各類設置,相信大家都能發覺好多的“新臺灣”!