薛山
老話說得好:寸金難買寸光陰。不過至少在Blender的世界里,我們還是可以利用豐富的手段,來“控制”時(shí)間的流動。本期的主題就是利用幾何節(jié)點(diǎn)功能來制作一個(gè)可按真實(shí)時(shí)間流速走動的鐘表盤,一起來看看如何設(shè)計(jì)吧!
既然要做鐘表,那自然首先得做出最基本的樣子,我們可以利用柱體來實(shí)現(xiàn)表盤,再在柱體中心位置做一個(gè)“裝載”指針的轉(zhuǎn)軸,表盤的樣式大家可以自行參考網(wǎng)上搜來的照片或自己的鐘表,可以自由發(fā)揮,然后再在各個(gè)位置放上1到12點(diǎn)的數(shù)字,如圖1,一個(gè)基本的表盤就做好了。
接下來我們做指針,鐘表的指針也就是分別代表時(shí)、分、秒的短、中、長針,我們可以先利用平面來調(diào)整三個(gè)指針的形態(tài),記得一定要把三個(gè)指針的原點(diǎn)都放置在表盤的中心,這樣在旋轉(zhuǎn)時(shí)就不會出現(xiàn)問題了,具體的設(shè)計(jì)可以參考圖2。這樣一來,我們的表盤設(shè)計(jì)就完成了,接下來就該輪到幾何節(jié)點(diǎn)出場啦。

這時(shí)候你可能會覺得很無厘頭,指針旋轉(zhuǎn)為什么不直接通過給旋轉(zhuǎn)屬性加驅(qū)動器來解決呢?的確,這個(gè)方法能夠很直接地實(shí)現(xiàn)指針旋轉(zhuǎn)的效果,但卻有一個(gè)比較重大的缺點(diǎn):需要三個(gè)不同的驅(qū)動器來實(shí)現(xiàn),并且驅(qū)動器之間彼此獨(dú)立,不能通過一個(gè)參數(shù)來同時(shí)控制,而且驅(qū)動器的微調(diào)比較麻煩,比如你想要時(shí)間加速、減速、倒轉(zhuǎn),都需要多次調(diào)整,非常麻煩,作為一個(gè)懶人,通過幾何節(jié)點(diǎn)來操控可以說是一勞永逸,值得仔細(xì)研究。



首先,我們不能直接用這三個(gè)指針來制作幾何節(jié)點(diǎn),所以我們要先隨便新建一個(gè)物體,把它放在表盤的中心,然后為它添加幾何節(jié)點(diǎn)功能,把時(shí)針、分針、秒針都放進(jìn)節(jié)點(diǎn)編輯器里,通過變換、合并幾何來實(shí)現(xiàn)三個(gè)指針的同時(shí)輸出,這時(shí)候你或許需要利用“變換”來適當(dāng)調(diào)整三個(gè)指針的位置,以免重疊,具體設(shè)置參考圖3。
接下來就是重點(diǎn)了,我們?nèi)绾瓮ㄟ^一個(gè)值,就讓三個(gè)指針按秒針轉(zhuǎn)一圈,分針走1/60圈,分針走一圈,時(shí)針走1/12圈的邏輯進(jìn)行旋轉(zhuǎn)呢?其實(shí)這個(gè)邏輯大家都很熟悉,所以我們只需要利用數(shù)學(xué)節(jié)點(diǎn)把它們連接起來就好了。
首先,因?yàn)槲覀兊臅r(shí)鐘是面朝上,也就是沿Z軸擺放的,所以指針也要沿Z軸旋轉(zhuǎn)才正確,因此我們需要使用“合并XYZ”來讓數(shù)值可以單獨(dú)控制旋轉(zhuǎn)Z,但注意,在“變換”里,旋轉(zhuǎn)值使用的是我們習(xí)以為常的度數(shù),而一旦連接“合并XYZ”后就轉(zhuǎn)換成了數(shù)學(xué)形式180°就等于一個(gè)π,也就是指針旋轉(zhuǎn)一周就等于2π。
基于這個(gè)前提,我們就能正確設(shè)計(jì)指針旋轉(zhuǎn)了,先從最基礎(chǔ)的秒針開始,在Blender 3.1版的幾何節(jié)點(diǎn)里新增了一個(gè)“場景時(shí)間”功能,它就提供了最基礎(chǔ)的時(shí)間單位“秒”,如果你用的是3.0版,就需要利用“值”來制作驅(qū)動器,比如設(shè)定視頻幀率為30p,我們就需要“#frame/30”來作為“秒”。
我們將“秒”乘以一個(gè)π,就相當(dāng)于讓指針在一秒內(nèi)走半圈,而如果要它按照真實(shí)時(shí)間流速來運(yùn)作,就需要再除以一個(gè)30,這時(shí)候秒針就會正確工作了,當(dāng)然,可能還需要在后面跟一個(gè)乘以-1的乘法,來讓它順時(shí)針旋轉(zhuǎn),建議把這幾個(gè)節(jié)點(diǎn)放在一個(gè)框里,調(diào)整起來會更方便,具體設(shè)置參考圖4。
得到真實(shí)時(shí)間流速的一秒之后,我們只需要讓它除以60,并連接到分針上,就能實(shí)現(xiàn)秒針轉(zhuǎn)一圈,分針轉(zhuǎn)1/60圈的目的,然后再把分針的轉(zhuǎn)速除以12,連接到時(shí)針上,分針轉(zhuǎn)一圈,時(shí)針走1/12圈也就自然而然了。
這時(shí)候如果我們想調(diào)整指針的轉(zhuǎn)速、轉(zhuǎn)向和第1幀的起始位置,就只需要在我們之前得到的“秒”框后加入一個(gè)“乘后再加”,這時(shí)候的乘數(shù)就是控制整體的轉(zhuǎn)速和轉(zhuǎn)向,乘數(shù)越大轉(zhuǎn)得越快,乘數(shù)為負(fù)就逆時(shí)針旋轉(zhuǎn),而加數(shù)在這里就是調(diào)整起始位置的,比如你想要第1幀在8點(diǎn),通過加數(shù)就能調(diào)整,比較方便,這時(shí)候可以把這兩個(gè)值連接到“組輸入”,這樣即便不進(jìn)入幾何節(jié)點(diǎn),在修改器界面就能夠直接調(diào)整,簡單直觀。
其實(shí)我們上期就已經(jīng)強(qiáng)調(diào)過幾何節(jié)點(diǎn)的強(qiáng)大,雖然需要一定的數(shù)學(xué)邏輯思維能力,但一旦融會貫通,它就能快速高效地實(shí)現(xiàn)很多以往需要大量調(diào)參,甚至可能會出現(xiàn)不少錯(cuò)誤的效果,所以在未來一段時(shí)間內(nèi),幾何節(jié)點(diǎn)都會是我們教學(xué)的主要目標(biāo),這種“編程思維”在3D設(shè)計(jì)中的重要性很高,大家務(wù)必要掌握。