薛山
魔方玩家在我看來分為三種,一是不懂原理的佛系玩家,三階魔方可能都要擰很久才能還原,第二種是明白怎么玩的玩家,其實(shí)還原一個被打亂的魔方就是做一道層先法的數(shù)學(xué)題。而第三種就是像我這樣雖然不懂解密,但會用Blender做一個魔方來讓它“自動還原”的“高階玩家”,本期我就來教大家怎樣實(shí)現(xiàn)這一效果,輕松制霸朋友圈。
這次的教程基于三階魔方來設(shè)計,三階魔方總計由3×3×3,也即27個小方塊組成,所以我們首先要做一個單獨(dú)的小方塊,可以利用Blender默認(rèn)的方塊來進(jìn)行設(shè)計,但建議大家養(yǎng)成嚴(yán)格恪守現(xiàn)實(shí)比例的習(xí)慣,對于魔方來說,單獨(dú)的小方塊可以近似取一個1cm邊長,應(yīng)用縮放后加載一個倒角修改器,調(diào)整數(shù)值后進(jìn)入編輯模式,將所有面內(nèi)插一定范圍再沿法向向內(nèi)擠出,就能獲得如圖1的效果了,這個內(nèi)嵌的面就是我們魔方的顏色面(如圖1)。
因?yàn)槲覀冎谱鞯哪Х绞橇骟w,所以只需要給小方塊的每個面賦予不同的顏色,再堆疊起來就滿足魔方的要求了。首先我們要給魔方做一個黑色的基本色,也就是邊框的顏色,然后可以在編輯模式下給每一個內(nèi)嵌面新增不同顏色的材質(zhì),在這里我選擇的是黑白紅綠藍(lán)黃紫。
這時候有一個非常關(guān)鍵的操作,如圖2所示,將小方塊的旋轉(zhuǎn)屬性從默認(rèn)的XYZ歐拉切換為四元數(shù)運(yùn)算WXYZ,只有這樣才能保證我們后續(xù)“擰魔方”的操作不會出現(xiàn)莫名其妙的旋轉(zhuǎn)方向問題。
完成設(shè)置后,如圖3所示,為小方塊在X、Y、Z方向以1個單位的間隔分別添加3個數(shù)量的陣列,這樣我們的魔方就算是整體完成了。當(dāng)然,如果想要獲得更真實(shí)的視覺效果,還可以通過著色器來添加金屬度、糙度、凹凸等細(xì)節(jié),在這里大家就自由發(fā)揮吧,我們接下來就做魔方的旋轉(zhuǎn)效果。
應(yīng)用所有修改器之后,首先是將魔方的原點(diǎn)設(shè)置為幾何中心,也就是整個魔方的中心點(diǎn),這個步驟十分關(guān)鍵。完成后進(jìn)入編輯模式全選所有面,按松散塊分離每一個小方塊,這時候所有小方塊的原點(diǎn)都在大魔方的中心,所以它們都會整齊地以中心為基點(diǎn)按X、Y、Z軸進(jìn)行旋轉(zhuǎn),符合魔方的運(yùn)轉(zhuǎn)方式(圖4)。
接下來的操作就簡單了,首先是全選所有小方塊,并在第一幀打上旋轉(zhuǎn)關(guān)鍵幀,然后到你想要的幀數(shù),比如第10幀,開啟透視模式的情況下全選任意面的9個小方塊沿軸旋轉(zhuǎn),就能得到如圖4的效果了,這里要注意,需要如圖5所示,在時間軸里將所有方塊關(guān)鍵幀運(yùn)動插值類型從默認(rèn)的貝塞爾切換到線性,不然會出現(xiàn)小方塊之間有時間差的問題。接下來只需要每間隔10幀,選不同的面以不同的軸進(jìn)行旋轉(zhuǎn),記得一定要全選所有方塊后再打上旋轉(zhuǎn)關(guān)鍵幀,一般來說魔方的旋轉(zhuǎn)都是以90°為單位,可以自由發(fā)揮,最后一次旋轉(zhuǎn)甚至可以有一定的角度錯位,可以增強(qiáng)真實(shí)感。
不過如圖6所示,旋轉(zhuǎn)后的方塊背面顏色也顯現(xiàn)了出來,而現(xiàn)實(shí)生活中的魔方內(nèi)部應(yīng)該是黑色的,所以這里也需要進(jìn)行修改,我們回到第一幀,全選所有小方塊進(jìn)入編輯模式,選中你能看到的全部非黑色面,然后反選,如圖5所示。再將這些面賦予黑色材料,也就是我們最開始的框架材料,這樣一來內(nèi)部就全部變成了黑色,無論怎么旋轉(zhuǎn)也不再受影響。
至此,擰魔方的工作就基本完成了,但播放后你可能會發(fā)現(xiàn)一個問題:這是把已還原的魔方擰亂的操作呀,我要的可是跟這相反的效果!解決方法有兩個,其一是輸出后在Premiere Pro等視頻剪輯軟件中進(jìn)行倒放處理,這屬于已經(jīng)輸出才發(fā)現(xiàn)問題,又不想再重新輸出一遍的“懶人急救法”。
其二是全選所有小方塊,在時間軸上先把所有幀往前移,讓第一幀位于原本最后一幀的位置,比如第一個關(guān)鍵幀在第1幀,最后一個在第100幀,那就把第一個關(guān)鍵幀移動到第100幀的位置,然后指針停留在第100幀,保持所有關(guān)鍵幀全選的狀態(tài),以-1倍進(jìn)行縮放,這時候你會發(fā)現(xiàn)所有幀以第100幀為原點(diǎn)進(jìn)行了反向排列,這時候再從頭播放就可以看到魔方的旋轉(zhuǎn)變成了從混亂到整齊,整個效果也就完成了。
這次的效果雖然看起來并不復(fù)雜,但如果沒有注重細(xì)節(jié)就很容易出現(xiàn)問題,比如所有原點(diǎn)必須統(tǒng)一在中心,旋轉(zhuǎn)方式必須是四元數(shù)運(yùn)算WXYZ,關(guān)鍵幀插值必須是線性等等,稍有偏差就會出現(xiàn)問題,影響最終效果甚至無法正常輸出,這也反映出一個現(xiàn)實(shí):Blender是一款邏輯較為嚴(yán)密的軟件,設(shè)計者的思路必須足夠清晰,才能得到想要的效果,哪怕這個效果很簡單。