薛山
鍵盤相信是各位辦公室打工仔天天都離不開的生產力工具,你有沒有想過這世上如果有能自動打字的鍵盤該有多省事,當然,這種想法在現實生活中并不是太現實,但在天馬行空的“Blender宇宙”里,這樣的事情當然是允許發生的!不過,具體要如何實現就需要大家動動腦筋了,話不多說,今天我就來教大家怎樣利用幾何節點,實現鍵盤自動按鍵特效吧!
想要有鍵盤,那第一步當然是制作鍵盤最重要的組成部分:鍵帽。大家可以觀察自己手里的鍵盤,會發現大多數的鍵帽是一個頂面面積相對底面面積稍小一些的立方體,為了讓咱們的設計更精確,可以選擇長寬1厘米,高0.5厘米的規格來制作單個鍵帽,在制作時可以給鍵帽添加倒角修改器,以避免鍵帽邊緣過于銳利的問題。
完成后我們進入鍵帽的著色器編輯器,現在的鍵盤大多給不同的按鍵配置了不同的顏色,咱們也給不同的鍵帽使用不同顏色的著色器,本教程中使用了三種不同的顏色:白色、黑色和橙色,這個組合搭配個人感覺還挺好看的,大家也可以根據自己的喜好來組合。在設計完成后記得把這三個鍵帽單獨放到一個集合里,方便咱們在幾何節點里進行調動。
有了鍵帽,接下來就需要將它們一個個放置到合適的位置上了,邏輯上來講,就是生成一個棋盤格一樣的頂點陣列,然后把這些鍵帽作為實例放到這些頂點上。有了這個想法咱們就可以開始制作了,可能你第一時間想到直接使用“柵格”,沒錯,如果你制作的鍵盤鍵帽是完全整齊排列的話,這個方案就是可行的,但其實你觀察一下你的鍵盤,就會發現大多數鍵盤除了最右側的數字鍵盤區有一部分是整齊排列,字母區域其實都是錯落擺放的,所以我們在制作效果時也要讓鍵帽的擺放有一定的錯位,才顯得更為真實。

因此,我們不能使用柵格而是要用兩條網格直線來擺放頂點,一條沿Y軸長10厘米,以它為基礎,放置沿X軸長10厘米的網格直線作為實例,這樣我們同樣獲得了一個類似柵格的效果,但所有的邊都是沿X軸生長,方便我們做錯位和后續需要用到的融合效果。

在“實例化于點上”之后我們需要接一個“實現實例”,然后通過“設置位置”來調整頂點在X軸的位置,方法很簡單,只需要用噪波紋理,連接矢量計算的“相減”,所有參數設置為0.5,再接矢量計算的“縮放”,并將輸出通過“合并XYZ”連接到設置位置的“偏移量”上,這樣就能獲得一個任意在X軸調整位置的頂點陣列了。
然后我們再接一個“實例化于點上”,將第一步制作的鍵帽集合放進來,記得勾選“分離子級”、“重置子級”和“選擇實例”,這時候切換到材質預覽模式,就能看到三種鍵帽都正確使用了,如果你想要它們的分布更為隨機,那就用“隨機值”來連接“實例編號”,通過調整“隨機種”就能實現這個目的。
完成第二步之后你可能會發現,雖然按鍵是錯位擺放了,但中間出現了很多縫隙,同時也有一些按鍵因為距離太近導致穿模了,這個問題該如何解決呢?其實也不難,我們只需要獲取每兩個頂點之間的距離,然后把它們在X軸之間的縮放對應這個距離值,就正好可以實現填補縫隙的效果了,但考慮到鍵帽的寬度是有下限的,所以我們還可以結合“按距離合并”來設置一個最小值,從而解決穿模的問題。
如果這時候發現按鍵之間還是有較多縫隙的話,可以在鍵帽的實例化之前將網格轉換為點,然后以“邊”為基礎來進行生成,但這時候因為邊都轉換為點了,所以我們需要在更前一步,用捕捉屬性,結合“邊的頂點”和矢量計算的“距離”來獲取頂點之間的距離值,再結合“合并XYZ”的X值,連接到“實例化于點上”的縮放值上。
此時咱們的鍵帽應該都準確地實現錯位擺放的效果了,最后就是讓這些鍵帽隨機動起來,實現按鍵的動作效果,我們在最后接一個“平移實例”,通過4D的噪波紋理、矢量計算的“相減”和“相乘”,來控制它在Z軸方向的運動,可以使用“場景時間”來連接噪波紋理的W值,讓它隨時間變化來實現按鍵效果,可以通過“顏色漸變”或“映射范圍”來細微控制按鍵的速度和范圍,至此,咱們的整個設計也就完成了!
全盤思考是設計的核心
其實如果只是做一個鍵盤按鍵的效果,或許并不需要那么費勁,但如果想要效果足夠的真實,或者在視覺上足夠的有特點,就需要從開始設計時就做好周全的考慮,這也是學習Blender必須要有的基本技能,否則很容易牽一發動全身,整個設計都有需要推翻重來的可能哦!