核心技術:
Normal指向控制
漸變控制
AttributeWrangle部分表達式
影片15分鐘不到,但講蠻快的,效果也不錯。這系列的都可以好好研究研究。
首先,建立一個Sphere,類型更改為Polygon,Frequency改為10,Size為3。
↓
接著建立要複製到Sphere上的立方體。建立一個box,複製SizeY,貼到CentreY上,並修改成除以2。這樣box會始終保持在世界平面之上。
↓
修改box的SizeY為1.2,然後建立copy node,把box連入input1,sphere連入input2。
↓
複製上去之後,看到box的朝向怪怪的,加上Transform node,把RotateX轉個九十度。現在看起來就是往外了。
↓
接下來在box下加入bend node,來修改把box頂端變尖一些。將Capture Direction Y改為1,Z為0,然後修改taper。
↓
如果現在只看box,會發現box一般狀況,有些時候看起來黑黑的。因此在tranform下加入normal node,控制法線方向,將Cusp Angle調小一些。
↓
這些box複製上去,是參照每個Sphere上的點的normal方向。所以我們要藉由控制normal方向,來達到控制這些box傾斜的目的。
控制的方法,就是使用兩個位置相減,得到的向量來表示。
向量的運算:已知兩點座標P1與P2,求出P2指向P1的向量 = (P1X-P2X,P1Y-P2Y,P1Z-P2Z)
因此,我們先建立P1,也就是Target Effector。建立一個Sphere,維持預設即可。再加入一個transform node,移動到第一個球體外部的任意位置。
↓
接著回頭處理第一顆球。這裡教學我聽不太懂...總之是對Normal做處理。在Sphere1下接入AttributeWrangle這個神秘的Node。在框中輸入@N = @N;。
輸入後,球體的Normal變深了...?
這個步驟似乎是要定義Normal,如果用中鍵查看Sphere1的話,會發現他只有P[3fp]點資訊,查看wrangle的話,這時候已經有多了N[3fn]法線資訊了。
↓
繼續輸入f@fall = 0;,這個要用來定義原始normal方向不受漸變影響。
↓
接著要來設定向量計算,增加一個Attribute Vop,wrangle連入input1,第二顆球的transform連入input2。進入Vop,新增一個import point attribute node。將Global的input2連入file。
↓
這個是P1點,建立Substract node,將這個P1點的result連入第一個input,將global的P連入第二個input,再將這個結果連入output的N。
這裡的ptnum必須要連接,否則只會處理編號0的點。但是直接連是沒有作用的,要加上一個Modulo節點。
Modulo去查單字叫做取模,似乎是指,兩個整數,,若它們除以正整數所得的餘數相等,則稱,對於模同餘。也就是,14和26除以12,餘數皆為2。
這個運算解釋我實在看不懂...等我理解了再來補上。
現在Normal的值與方向都會隨著Sphere2的移動做改變了。
↓
稍早我們在第一個wrangle上有使用f@fall = 0;,我們在sphere2的transform下也加入一個wrangle,並寫入f@fall = 1;。
↓
建立一個Attribute Transfer node,將wrangle1連入Input1,wrangle2連入input2,取消Primitive的勾選,將Point改為fall。
切到Condition標籤頁,修改Distance為0,Blend為12。
↓
這樣就搞定了,在Attribute下先接入一個Visulize,修改Attribute為fall,可以看到有紅色的漸層。
↓
接著我們要用Attribute Vop,用ramp來控制漸變的範圍與顏色。建立Attribute Vop node,命名為fcurve_and_color。進入之後,刪掉Global node。分別建立bind,bind Export,ramp1三個node。將bind與bind Export參數欄的name都改成fall,然後將ramp1改為Spline ramp。這時到上一層,Vop上調整ramp右側的值拉大,已經可以看到顏色的變化了。
↓
將Visualize節點刪掉,回到Vop中,將ramp1的Name改為fcurve,如果名字重複的話會有問題。這時再加入一個ramp,更名為color,將ramp1的輸出fcurve連入,ramp2的輸出連到output的Cd。這時候球體是灰色的漸變。
↓
回到上一層,修改fcurve與color。並修改vop的名稱,第一個用來處理normal的vop也改名。
↓
再建立一個attr vop,將另兩個vop連入。
↓
進入。同樣建立import point attribute,並將opinput2連入file,再將node輸出連到N。這時候顯示的Normal是指向性的。
↓
接下來要混合normal,建立一個mix node,將Global的normal連入input1,import point attribute連入input2,mix輸出連到N。這時候拖曳bias可以看到normal在兩者之間切換。
↓
建立bind node,名稱修改為fall,連入mix的bias。
這時Nomal已經可以由fall來控制了。
↓
連入copy node,在copy node的參數欄,修改Attribute。
↓
最後在vop與copy之間,加入一個wrangle,輸入@pscale = fit01(@fall,0.5,1);,將fall的值用來控制每個複製的scale由0.5~1。
最後來看成品圖。這個是加了材質,因為有開SSS,竟然算了四小時半...。
而把材質拿掉,算這樣十分鐘不到。
沒有留言:
張貼留言