表达式如何获取复选框的值_Nuke表达式 Expression节点讲解
nuke中的表達式節點對于大多數人來說有點神秘,但它非常強大。通常它通過簡單的if / else語句修補數據,但在這里我們將從最基本的原則,到一些長期被遺忘的高中數學做一些簡單的技巧,最后把它們融合在一起。
第一步
創建Constant節點,并附加表達式節點。如果是默認狀態,它什么都不做。您可以看到底部有4個通道的字段(rgba),頂部有一些基本變量的空間,我們稍后會介紹。
所以,簡單的表達式開始。在第一個通道表達式槽中輸入“1”。上面的復選框說明要操作的通道,默認情況下它只是紅色通道。按Enter鍵,您將看到整個圖像變為紅色。
我們在這里所做的就是讓每個像素的紅色通道數值為1.非常簡單。
漸變
這次,輸入'x',點擊回車。根據觀察者的不同,你要么仍然看到紅色,要么看到一個超級紅色。將光標懸停在查看器中,查看顏色值。您可以看到我們將每個像素的x坐標直接映射到紅色通道。
為了更好地看到這個漸變,我們可以重新映射這些值,使它們保持在0和1之間。為此,我們需要將x坐標除以圖像寬度。輸入:x / width
一個漂亮的水平漸變就出現了。但如果我們想要垂直漸變怎么辦?
輸入:y / height
如果要反轉漸變,請從1減去它:1 - (y / height)
現在,如果我們想要重復線條怎么辦?
把你的思維轉回到高中數學,以及sin()的圖形是什么樣的。如果我們給它一個永遠增加的數字,它將介于-1和1之間。讓我們看看它是什么樣的:sin(x)
如果將鼠標懸停在查看器上,你將看到值確實在預測的-1和1之間。為了規范化,我們添加1,使其在0和2之間:sin(x) + 1
然后將整個事物除以2,給出0到1之間的值:( sin(x) + 1 ) / 2
為了制作更寬的線,我們希望x以較慢的速率增加,所以我們將它除以某個值:( sin(x / 4 ) + 1 ) / 2
要改變黑色與紅色線的比例,我們可以做更多的表達,或者使用Nuke來發揮我們的優勢。附加一個Grade節點,并弄亂blackpoint。這將使黑色區域變得越來越大。
徑向漸變
新的挑戰。如果我們想測量每個像素與原點的距離怎么辦?再回到高中數學; 我們有一個直角三角形的兩邊,我們想測量第三條邊。我們可以做“A平方加上B平方”的事情(確保你正在查看表達式節點):sqrt(x * x + y * y )
將鼠標懸停在圖像上方,您會看到左下角的紅色值為0,當您離開(0,0)時,數字會平滑增加。這是一個徑向漸變!
要反轉它,從數字中減去它,這個數字將是漸變的寬度:300 - sqrt(x * x + y * y )
并將其標準化為0到1之間,將整個表達式除以相同的數字:(300 - sqrt( x * x + y * y ) ) / 300
徑向環
我們之前可以做類似的技巧; 取出結果,并將其提供給sin():sin(sqrt(x * x + y * y ))
出現了一個同心環!要縮放,在內部除以一個數使距離增加更慢:sin(sqrt(x * x + y * y ) / 4)
再次查看Grade節點,并調整黑色與紅色的比率。
更好的控制
如果你想移動這些環的中心點怎么辦?基本上,你希望測量的距離不是從(0,0)開始,而是從另一個點開始。您可以從x和y值中減去該值。例如,讓我們將中心點移動到(300,50):sin(sqrt((x-300) * (x-300) + (y-50) * (y-50) ) / 4)
這很有效,但很難更新。有一個可視化工具讓我們拖動它會更好。Nuke中可以這樣做。在屬性窗格中,右鍵單擊文本字段以外的任何位置,然后選擇“管理用戶旋鈕...”。
點擊添加,選擇'2d Position Knob ...',將其命名為'center'。點擊確定然后完成。
你會看到你有一個新的'用戶'標簽,帶有x和y值。在查看器中,您將在左下方看到“中心”Gizmo,您可以將其拖動到圖像上的任何位置,并查看值更新。
要在表達式中使用它,只需使用center.x和center.y:sin(sqrt((x-center.x) * (x-center.x) + (y-center.y) * (y-center.y) ) / 4)
雖然我確信你會因為記住勾股定理而感到興奮,但是在Nuke中有一個更簡單的方法來計算斜邊:sin(hypot(x-center.x, y-center.y ) / 4)
讓我們用滑塊替換該比例倍增器。再次右鍵單擊表達式,“管理用戶旋鈕”,這次添加一個名為“size”的浮點滑塊,將其最小值設置為0.1,最大值設置為20.將表達式更改為:sin(hypot(x-center.x, y-center.y ) / size)
更改尺寸滑塊,移動中心點,查看環跟隨。
好的,這是同心環。徑向射線又會怎么樣?
徑向光線
再回到高中數學!還記得sin / cos / tan和直角三角形之間的關系嗎?在下圖中,tan是對邊除以鄰邊的比率。
我們可以將對立和相鄰視為x和y,并使用正切來獲得圓弧或角度。將這些數字插入:atan(x - center.x, y - center.y)
你會得到一個奇怪的漸變,一邊是漸變色,另一邊是黑色。如果將光標懸停在圖像上并查看值,您將看到黑色區域實際上是負值。用光標在中心點周圍跟蹤一個圓圈,注意值從底部的-1.24到頂部的0,再到底部的1.24。基本上,它描繪出一個圓圈。
我們可以重置圓的范圍,使其從0變為1:(atan(x - center.x, y - center.y) + 3.14 ) / 2.48
或者從之前做出訣竅得到徑向線:sin( atan(x - center.x, y - center.y) )
對于同心線,問題是輸入增加太快,所以我們將它減小以減慢它,給我們更寬的線。在這里,相加太慢,所以我們將輸入乘以我們的size屬性以獲得更多行:sin( atan(x - center.x, y - center.y) * size)
讓我們添加一個偏移量,以便我們可以根據需要旋轉它們。添加一個名為'offset'的浮點滑塊,給它一個0到50的范圍,并將其添加到atan結果,但在乘以size之前:sin( ( atan(x - center.x, y - center.y) + offset) * size)
滑動滑塊,看光線旋轉。
今天給大家介紹了一些表達式,明天,我將會給大家介紹如何應用這些表達式以及P_matte(一個有用的小插件)的工作原理。
總結
以上是生活随笔為你收集整理的表达式如何获取复选框的值_Nuke表达式 Expression节点讲解的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 1295 爱翻译
- 下一篇: HL7 RIM (转)