薛山
魔方玩家在我看來分為三種,一是不懂原理的佛系玩家,三階魔方可能都要擰很久才能還原,第二種是明白怎么玩的玩家,其實還原一個被打亂的魔方就是做一道層先法的數學題。而第三種就是像我這樣雖然不懂解密,但會用Blender做一個魔方來讓它“自動還原”的“高階玩家”,本期我就來教大家怎樣實現這一效果,輕松制霸朋友圈。
這次的教程基于三階魔方來設計,三階魔方總計由3×3×3,也即27個小方塊組成,所以我們首先要做一個單獨的小方塊,可以利用Blender默認的方塊來進行設計,但建議大家養成嚴格恪守現實比例的習慣,對于魔方來說,單獨的小方塊可以近似取一個1cm邊長,應用縮放后加載一個倒角修改器,調整數值后進入編輯模式,將所有面內插一定范圍再沿法向向內擠出,就能獲得如圖1的效果了,這個內嵌的面就是我們魔方的顏色面(如圖1)。

因為我們制作的魔方是六面體,所以只需要給小方塊的每個面賦予不同的顏色,再堆疊起來就滿足魔方的要求了。首先我們要給魔方做一個黑色的基本色,也就是邊框的顏色,然后可以在編輯模式下給每一個內嵌面新增不同顏色的材質,在這里我選擇的是黑白紅綠藍黃紫。
這時候有一個非常關鍵的操作,如圖2所示,將小方塊的旋轉屬性從默認的XYZ歐拉切換為四元數運算WXYZ,只有這樣才能保證我們后續“擰魔方”的操作不會出現莫名其妙的旋轉方向問題。


完成設置后,如圖3所示,為小方塊在X、Y、Z方向以1個單位的間隔分別添加3個數量的陣列,這樣我們的魔方就算是整體完成了。當然,如果想要獲得更真實的視覺效果,還可以通過著色器來添加金屬度、糙度、凹凸等細節,在這里大家就自由發揮吧,我們接下來就做魔方的旋轉效果。
應用所有修改器之后,首先是將魔方的原點設置為幾何中心,也就是整個魔方的中心點,這個步驟十分關鍵。完成后進入編輯模式全選所有面,按松散塊分離每一個小方塊,這時候所有小方塊的原點都在大魔方的中心,所以它們都會整齊地以中心為基點按X、Y、Z軸進行旋轉,符合魔方的運轉方式(圖4)。

接下來的操作就簡單了,首先是全選所有小方塊,并在第一幀打上旋轉關鍵幀,然后到你想要的幀數,比如第10幀,開啟透視模式的情況下全選任意面的9個小方塊沿軸旋轉,就能得到如圖4的效果了,這里要注意,需要如圖5所示,在時間軸里將所有方塊關鍵幀運動插值類型從默認的貝塞爾切換到線性,不然會出現小方塊之間有時間差的問題。接下來只需要每間隔10幀,選不同的面以不同的軸進行旋轉,記得一定要全選所有方塊后再打上旋轉關鍵幀,一般來說魔方的旋轉都是以90°為單位,可以自由發揮,最后一次旋轉甚至可以有一定的角度錯位,可以增強真實感。


不過如圖6所示,旋轉后的方塊背面顏色也顯現了出來,而現實生活中的魔方內部應該是黑色的,所以這里也需要進行修改,我們回到第一幀,全選所有小方塊進入編輯模式,選中你能看到的全部非黑色面,然后反選,如圖5所示。再將這些面賦予黑色材料,也就是我們最開始的框架材料,這樣一來內部就全部變成了黑色,無論怎么旋轉也不再受影響。
至此,擰魔方的工作就基本完成了,但播放后你可能會發現一個問題:這是把已還原的魔方擰亂的操作呀,我要的可是跟這相反的效果!解決方法有兩個,其一是輸出后在Premiere Pro等視頻剪輯軟件中進行倒放處理,這屬于已經輸出才發現問題,又不想再重新輸出一遍的“懶人急救法”。
其二是全選所有小方塊,在時間軸上先把所有幀往前移,讓第一幀位于原本最后一幀的位置,比如第一個關鍵幀在第1幀,最后一個在第100幀,那就把第一個關鍵幀移動到第100幀的位置,然后指針停留在第100幀,保持所有關鍵幀全選的狀態,以-1倍進行縮放,這時候你會發現所有幀以第100幀為原點進行了反向排列,這時候再從頭播放就可以看到魔方的旋轉變成了從混亂到整齊,整個效果也就完成了。
這次的效果雖然看起來并不復雜,但如果沒有注重細節就很容易出現問題,比如所有原點必須統一在中心,旋轉方式必須是四元數運算WXYZ,關鍵幀插值必須是線性等等,稍有偏差就會出現問題,影響最終效果甚至無法正常輸出,這也反映出一個現實:Blender是一款邏輯較為嚴密的軟件,設計者的思路必須足夠清晰,才能得到想要的效果,哪怕這個效果很簡單。