Advertisement
MDrumster

Untitled

Feb 25th, 2019
67
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 43.74 KB | None | 0 0
  1. set cut_paste_input [stack 0]
  2. version 11.2 v5
  3. push $cut_paste_input
  4. add_layer {VRayCryptomatte_mat00 VRayCryptomatte_mat00.red VRayCryptomatte_mat00.green VRayCryptomatte_mat00.blue VRayCryptomatte_mat00.alpha}
  5. add_layer {VRayCryptomatte_mat01 VRayCryptomatte_mat01.red VRayCryptomatte_mat01.green VRayCryptomatte_mat01.blue VRayCryptomatte_mat01.alpha}
  6. add_layer {VRayCryptomatte_mat02 VRayCryptomatte_mat02.red VRayCryptomatte_mat02.green VRayCryptomatte_mat02.blue VRayCryptomatte_mat02.alpha}
  7. Group {
  8. name Cryptomatte9
  9. tile_color 0xff00ff
  10. selected true
  11. xpos 6364
  12. ypos 4369
  13. addUserKnob {20 cryptomatte l "Psyop Cryptomatte"}
  14. addUserKnob {0 pickerAdd l "Picker Add" t "Key objects to add to the Matte List here. "}
  15. pickerAdd {0.06762695313 0.08325195313 0.08337402344 0 1864 538 1865 539}
  16. addUserKnob {6 pickerAdd_panelDropped l "panel dropped state" -STARTLINE +HIDDEN}
  17. addUserKnob {26 pickerAddLabel l "Picker Add" -STARTLINE T " "}
  18. addUserKnob {0 pickerRemove l "Picker Remove" t "Key objects to remove from the Matte List here. "}
  19. pickerRemove {0 0 0 0 0 0 0 0}
  20. addUserKnob {6 pickerRemove_panelDropped l "panel dropped state" -STARTLINE +HIDDEN}
  21. addUserKnob {26 pickerRemoveLabel l "Picker Remove" -STARTLINE T " "}
  22. addUserKnob {26 ""}
  23. addUserKnob {6 previewEnabled l Preview +STARTLINE}
  24. previewEnabled true
  25. addUserKnob {4 previewMode l "" t "Choose how Cryptomatte will visualize keyable regions." -STARTLINE M {Colors Edges None ""}}
  26. addUserKnob {6 matteOnly l "Matte Only" t "Extracted matte is copied to RGB channels as well. This disables keying. " +STARTLINE}
  27. addUserKnob {6 singleSelection l "Single Selection" t "Picker only selects matte at a time, rather than selecting a list. " -STARTLINE}
  28. addUserKnob {6 RemoveChannels l "Remove Channels" t "Removes all non-RGBA channels for the output. This will leave the downstream cleaner. " -STARTLINE}
  29. addUserKnob {26 ""}
  30. addUserKnob {41 matteOutput l "Matte Output" t "Set the channel(s) the matte will write to in \"Matte Only\" mode. For example, you can use this to store the matte in a custom channel called \"Matte\" and use it for color-correction downstream." T ShuffleCopy_embedMask.out}
  31. addUserKnob {6 unpremultiply l Unpremultiply -STARTLINE}
  32. addUserKnob {1 matteList l "Matte List" t "The list of names the mattes are built from. Color picking values with the color fields above works by populating this field. "}
  33. matteList mat_ASX_PAINT
  34. addUserKnob {22 clear l Clear t "Clears the selection in this Gizmo" T "try: \n import cryptomatte_utilities as cu\n cu.clear_cryptomatte_gizmo(nuke.thisNode())\nexcept Exception, err:\n import traceback\n nuke.message('''Unable to run Cryptomatte Gizmo update script. This script is necessary for the Cryptomatte system to work properly. Please check with Pipeline that the Cryptomatte python plugin is available on this project. \n\nError Traceback (send this to Pipeline): \n\n%s''' % traceback.format_exc())" +STARTLINE}
  35. addUserKnob {22 forceUpdate l "Force Update" t "Updates the Gizmo based on which channels are available in the input. \n\nThis happens automatically when input changes, when loading the nuke script, or when a new gizmo is created. This is how it deals with differently named channels in the different Cryptomatte layers, and different depths that it's possible to render at. " -STARTLINE T "try: \n import cryptomatte_utilities as cu\nexcept Exception, err:\n import traceback\n nuke.message('''Unable to run Cryptomatte Gizmo update script. This script is necessary for the Cryptomatte system to work properly. \n\nError Traceback: \n\n%s''' % traceback.format_exc())"}
  36. addUserKnob {6 stopAutoUpdate l "Stop Auto Update" t "Stops the automatic update of this copy of the Gizmo." -STARTLINE}
  37. addUserKnob {26 ""}
  38. addUserKnob {4 cryptoLayerChoice l "Layer Selection" t "Choose which Cryptomatte layer to key." M {" " ""}}
  39. addUserKnob {1 cryptoLayer l INVISIBLE t "If there are multiple cryptomattes, this is how you select the layer." -STARTLINE +INVISIBLE}
  40. cryptoLayer VRayCryptomatte_mat
  41. addUserKnob {6 cryptoLayerLock l "Lock Layer Selection" t "Stops the automatic update of the layer selection." -STARTLINE}
  42. addUserKnob {41 expression l "Keyer Expression" t "The built expression. This knob is set automatically and is only left exposed as information for the user. " T Expression_key.expr0}
  43. addUserKnob {20 Advanced}
  44. addUserKnob {0 ColorKey l "" t "Key an object here to check its name. It will not effect your mattes. " -STARTLINE +HIDDEN}
  45. ColorKey {0 0 0 0 0 0 0 0}
  46. addUserKnob {6 ColorKey_panelDropped l "panel dropped state" -STARTLINE +HIDDEN}
  47. addUserKnob {6 ColorKey_panelDropped_1 l "panel dropped state" -STARTLINE +HIDDEN}
  48. addUserKnob {26 ColorKeyLabel l "Name Checker" -STARTLINE +HIDDEN T " "}
  49. addUserKnob {1 keyedName l "Keyed Name" t "This field is for information only." +HIDDEN}
  50. addUserKnob {26 "" +HIDDEN}
  51. addUserKnob {22 decryptomatte l "Decryptomatte (Replace with Expression)" t "Replaces this gizmo with an expression node that does the extraction. This will replicate the matte extraction, but not the preview modes. " T "try: \n import cryptomatte_utilities as cu\n cu.decryptomatte_button(nuke.thisNode())\nexcept Exception, err:\n import traceback\n nuke.message('''Unable to run a Cryptomatte script. This script is necessary for the Cryptomatte system to work properly. \n\nError Traceback: \n\n%s''' % traceback.format_exc())" +STARTLINE}
  52. addUserKnob {22 unloadManifest l "Unload Manifest (Extract all Mattes)" t "Unload Manifest will create a separate gizmo for every named matte in the Cryptomatte manifest. This can potentially be thousands of nodes, though if the number is high a warning will be displayed before creating them. " T "try: \n import cryptomatte_utilities as cu\n cu.unload_manifest(nuke.thisNode())\nexcept Exception, err:\n import traceback\n nuke.message('''Unable to run a Cryptomatte script. This script is necessary for the Cryptomatte system to work properly. \n\nError Traceback: \n\n%s''' % traceback.format_exc())" +STARTLINE}
  53. addUserKnob {22 forceUpdateAll l "Force Update All (Update all Gizmos)" t "'Force Update All' will run 'Force Update' on all Cryptomatte gizmos in the Nuke script. 'Force Update' orders the gizmos to re-configure themselves based on available metadata, Cryptomatte depth, and the matte list. This updates all aspects of thier operation, from the preview modes to the extraction expression. Usually these updates occur automatically on certain actions, such as 'keying' the image, changing layer selection, or reconnecting images. However if changes occur upstream of the gizmos that require manually invoked updates, 'Force Update' and 'Force Update All' may be used. " T "try: \n import cryptomatte_utilities as cu\n cu.update_all_cryptomatte_gizmos()\nexcept Exception, err:\n import traceback\n nuke.message('''Unable to run Cryptomatte Gizmo update script. This script is necessary for the Cryptomatte system to work properly. \n\nError Traceback: \n\n%s''' % traceback.format_exc())" +STARTLINE}
  54. addUserKnob {41 previewExpression0 l INVISIBLE +INVISIBLE T Expression_preview.expr0}
  55. addUserKnob {41 previewExpression1 l INVISIBLE +INVISIBLE T Expression_preview.expr1}
  56. addUserKnob {41 previewExpression2 l INVISIBLE +INVISIBLE T Expression_preview.expr2}
  57. addUserKnob {41 previewExpression3 l INVISIBLE +INVISIBLE T Expression_preview.expr3}
  58. addUserKnob {11 previewChannel +HIDDEN}
  59. previewChannel none
  60. addUserKnob {11 in00 +HIDDEN}
  61. in00 VRayCryptomatte_mat00
  62. addUserKnob {11 in01 +HIDDEN}
  63. in01 VRayCryptomatte_mat01
  64. addUserKnob {11 in02 +HIDDEN}
  65. in02 VRayCryptomatte_mat02
  66. addUserKnob {11 in03 +HIDDEN}
  67. in03 none
  68. addUserKnob {11 in04 +HIDDEN}
  69. in04 none
  70. addUserKnob {11 in05 +HIDDEN}
  71. in05 none
  72. addUserKnob {11 in06 +HIDDEN}
  73. in06 none
  74. addUserKnob {11 in07 +HIDDEN}
  75. in07 none
  76. addUserKnob {26 "" +HIDDEN}
  77. }
  78. Input {
  79. inputs 0
  80. name Input1
  81. xpos -1361
  82. ypos -499
  83. }
  84. Dot {
  85. name Dot4
  86. xpos -1327
  87. ypos -439
  88. }
  89. set N966b1180 [stack 0]
  90. Dot {
  91. name Dot15
  92. xpos -1093
  93. ypos -439
  94. }
  95. set Nca07bc00 [stack 0]
  96. Dot {
  97. name Dot1
  98. xpos -960
  99. ypos -439
  100. }
  101. Shuffle {
  102. red black
  103. green black
  104. blue black
  105. name Shuffle_blackRGB
  106. xpos -994
  107. ypos -398
  108. }
  109. Expression {
  110. expr0 "((VRayCryptomatte_mat00.red == -1.33468101559e-38) ? VRayCryptomatte_mat00.green : 0.0) + ((VRayCryptomatte_mat00.blue == -1.33468101559e-38) ? VRayCryptomatte_mat00.alpha : 0.0) + ((VRayCryptomatte_mat01.red == -1.33468101559e-38) ? VRayCryptomatte_mat01.green : 0.0) + ((VRayCryptomatte_mat01.blue == -1.33468101559e-38) ? VRayCryptomatte_mat01.alpha : 0.0) + ((VRayCryptomatte_mat02.red == -1.33468101559e-38) ? VRayCryptomatte_mat02.green : 0.0) + ((VRayCryptomatte_mat02.blue == -1.33468101559e-38) ? VRayCryptomatte_mat02.alpha : 0.0) + 0"
  111. channel1 none
  112. channel2 none
  113. channel3 none
  114. name Expression_key
  115. xpos -994
  116. ypos -372
  117. }
  118. Unpremult {
  119. channels {rgba.red -rgba.green -rgba.blue none}
  120. name Unpremult_matte
  121. xpos -994
  122. ypos -340
  123. disable {{!parent.unpremultiply}}
  124. }
  125. set N21c82a80 [stack 0]
  126. Dot {
  127. name Dot11
  128. xpos -960
  129. ypos -142
  130. }
  131. set N21c82700 [stack 0]
  132. Dot {
  133. name Dot2
  134. xpos -960
  135. ypos -65
  136. }
  137. push $N21c82700
  138. push $N966b1180
  139. Dot {
  140. name Dot8
  141. xpos -1327
  142. ypos -395
  143. }
  144. set N21c82000 [stack 0]
  145. Dot {
  146. name Dot9
  147. xpos -1227
  148. ypos -395
  149. }
  150. Remove {
  151. operation keep
  152. channels rgba
  153. name Remove_channels
  154. xpos -1261
  155. ypos -360
  156. }
  157. push $N21c82000
  158. Switch {
  159. inputs 2
  160. which {{parent.RemoveChannels}}
  161. name Switch_removeChannels
  162. xpos -1361
  163. ypos -312
  164. }
  165. Dot {
  166. name Dot17
  167. xpos -1327
  168. ypos -235
  169. }
  170. set N2e08d180 [stack 0]
  171. Dot {
  172. name Dot10
  173. xpos -1327
  174. ypos -193
  175. }
  176. set N2e08ce00 [stack 0]
  177. ShuffleCopy {
  178. inputs 2
  179. red red
  180. green red
  181. blue red
  182. alpha red
  183. name ShuffleCopy_matteOnly
  184. xpos -1361
  185. ypos -146
  186. }
  187. Dot {
  188. name Dot16
  189. xpos -1327
  190. ypos -91
  191. }
  192. push $N21c82a80
  193. push $Nca07bc00
  194. Shuffle {
  195. alpha black
  196. name Shuffle_blackAlpha
  197. xpos -1127
  198. ypos -394
  199. }
  200. Expression {
  201. expr0 "((mantissa(abs(VRayCryptomatte_mat00.red)) * 1 % 0.25) * VRayCryptomatte_mat00.green + (mantissa(abs(VRayCryptomatte_mat00.blue)) * 1 % 0.25) * VRayCryptomatte_mat00.alpha + (mantissa(abs(VRayCryptomatte_mat01.red)) * 1 % 0.25) * VRayCryptomatte_mat01.green + (mantissa(abs(VRayCryptomatte_mat01.blue)) * 1 % 0.25) * VRayCryptomatte_mat01.alpha)"
  202. expr1 "((mantissa(abs(VRayCryptomatte_mat00.red)) * 16 % 0.25) * VRayCryptomatte_mat00.green + (mantissa(abs(VRayCryptomatte_mat00.blue)) * 16 % 0.25) * VRayCryptomatte_mat00.alpha + (mantissa(abs(VRayCryptomatte_mat01.red)) * 16 % 0.25) * VRayCryptomatte_mat01.green + (mantissa(abs(VRayCryptomatte_mat01.blue)) * 16 % 0.25) * VRayCryptomatte_mat01.alpha)"
  203. expr2 "((mantissa(abs(VRayCryptomatte_mat00.red)) * 64 % 0.25) * VRayCryptomatte_mat00.green + (mantissa(abs(VRayCryptomatte_mat00.blue)) * 64 % 0.25) * VRayCryptomatte_mat00.alpha + (mantissa(abs(VRayCryptomatte_mat01.red)) * 64 % 0.25) * VRayCryptomatte_mat01.green + (mantissa(abs(VRayCryptomatte_mat01.blue)) * 64 % 0.25) * VRayCryptomatte_mat01.alpha)"
  204. name Expression_preview
  205. xpos -1127
  206. ypos -368
  207. }
  208. Grade {
  209. inputs 1+1
  210. channels {rgba.red rgba.green -rgba.blue none}
  211. multiply 0
  212. add 1
  213. black_clamp false
  214. maskChannelMask rgba.red
  215. name Grade_selection
  216. xpos -1127
  217. ypos -340
  218. }
  219. Grade {
  220. channels {-rgba.red rgba.green rgba.blue none}
  221. multiply 0
  222. add 1
  223. black_clamp false
  224. maskChannelInput rgba.alpha
  225. name Grade_highlight
  226. xpos -1127
  227. ypos -302
  228. }
  229. push $N2e08d180
  230. ShuffleCopy {
  231. inputs 2
  232. red red
  233. green green
  234. blue blue
  235. alpha alpha2
  236. name ShuffleCopy_restoreAlpha
  237. xpos -1127
  238. ypos -239
  239. }
  240. push $N2e08ce00
  241. Switch {
  242. inputs 2
  243. which {{parent.previewEnabled}}
  244. name Switch_preview
  245. xpos -1127
  246. ypos -197
  247. }
  248. Switch {
  249. inputs 2
  250. which {{parent.matteOnly}}
  251. name Switch_matteOnly
  252. xpos -1127
  253. ypos -95
  254. }
  255. ShuffleCopy {
  256. inputs 2
  257. red red
  258. green red
  259. blue red
  260. alpha red
  261. out alpha
  262. name ShuffleCopy_embedMask
  263. xpos -1127
  264. ypos -69
  265. }
  266. Output {
  267. name Output
  268. xpos -1127
  269. ypos -21
  270. }
  271. end_group
  272. set Nb0959000 [stack 0]
  273. Group {
  274. name Cryptomatte11
  275. tile_color 0xff00ff
  276. label "FULL CAR"
  277. selected true
  278. xpos 6364
  279. ypos 4421
  280. addUserKnob {20 cryptomatte l "Psyop Cryptomatte"}
  281. addUserKnob {0 pickerAdd t "Key objects to add to the Matte List here. " +INVISIBLE}
  282. addUserKnob {6 pickerAdd_panelDropped l "panel dropped state" -STARTLINE +HIDDEN}
  283. addUserKnob {26 pickerAddLabel l "Picker Add" -STARTLINE T " "}
  284. addUserKnob {0 pickerRemove t "Key objects to remove from the Matte List here. " +INVISIBLE}
  285. addUserKnob {6 pickerRemove_panelDropped l "panel dropped state" -STARTLINE +HIDDEN}
  286. addUserKnob {26 pickerRemoveLabel l "Picker Remove" -STARTLINE T " "}
  287. addUserKnob {26 ""}
  288. addUserKnob {6 previewEnabled l Preview +STARTLINE}
  289. previewEnabled true
  290. addUserKnob {4 previewMode l "" t "Choose how Cryptomatte will visualize keyable regions." -STARTLINE M {Colors Edges None ""}}
  291. addUserKnob {6 matteOnly l "Matte Only" t "Extracted matte is copied to RGB channels as well. This disables keying. " +STARTLINE}
  292. addUserKnob {6 singleSelection l "Single Selection" t "Picker only selects matte at a time, rather than selecting a list. " -STARTLINE}
  293. addUserKnob {6 RemoveChannels l "Remove Channels" t "Removes all non-RGBA channels for the output. This will leave the downstream cleaner. " -STARTLINE}
  294. addUserKnob {26 ""}
  295. addUserKnob {41 matteOutput l "Matte Output" t "Set the channel(s) the matte will write to in \"Matte Only\" mode. For example, you can use this to store the matte in a custom channel called \"Matte\" and use it for color-correction downstream." T ShuffleCopy_embedMask.out}
  296. addUserKnob {6 unpremultiply l Unpremultiply -STARTLINE}
  297. addUserKnob {1 matteList l "Matte List" t "The list of names the mattes are built from. Color picking values with the color fields above works by populating this field. "}
  298. matteList "mat_ASX__BLACK_MATTE, mat_ASX__CHROME, mat_ASX__DISC, mat_ASX__int_rubber, mat_ASX__int_vinyl, mat_ASX__LIGHS_RED, mat_ASX__LIGHTS_CLEAR, mat_ASX__LIGHTS_PIANO_BLACK, mat_ASX__PLATE, mat_ASX__SILVER, mat_ASX__TIRE, mat_ASX__WINDSHIELDS, mat_ASX__WINDSHIELDS_DIMMED, mat_ASX_LIGHTS_CHROME, mat_ASX_PAINT, mat_ASX_PIANO_BLACK, mat_ASX_PLASTICS, mat_ASX_RUBBER, mat_ASX_UNDER, \"Material #2905\", \"Material #2906\", \"Material #2907\""
  299. addUserKnob {22 clear l Clear t "Clears the selection in this Gizmo" T "try: \n import cryptomatte_utilities as cu\n cu.clear_cryptomatte_gizmo(nuke.thisNode())\nexcept Exception, err:\n import traceback\n nuke.message('''Unable to run Cryptomatte Gizmo update script. This script is necessary for the Cryptomatte system to work properly. Please check with Pipeline that the Cryptomatte python plugin is available on this project. \n\nError Traceback (send this to Pipeline): \n\n%s''' % traceback.format_exc())" +STARTLINE}
  300. addUserKnob {22 forceUpdate l "Force Update" t "Updates the Gizmo based on which channels are available in the input. \n\nThis happens automatically when input changes, when loading the nuke script, or when a new gizmo is created. This is how it deals with differently named channels in the different Cryptomatte layers, and different depths that it's possible to render at. " -STARTLINE T "try: \n import cryptomatte_utilities as cu\nexcept Exception, err:\n import traceback\n nuke.message('''Unable to run Cryptomatte Gizmo update script. This script is necessary for the Cryptomatte system to work properly. \n\nError Traceback: \n\n%s''' % traceback.format_exc())"}
  301. addUserKnob {6 stopAutoUpdate l "Stop Auto Update" t "Stops the automatic update of this copy of the Gizmo." -STARTLINE}
  302. addUserKnob {26 ""}
  303. addUserKnob {4 cryptoLayerChoice l "Layer Selection" t "Choose which Cryptomatte layer to key." M {" " ""}}
  304. addUserKnob {1 cryptoLayer l INVISIBLE t "If there are multiple cryptomattes, this is how you select the layer." -STARTLINE +INVISIBLE}
  305. cryptoLayer VRayCryptomatte_mat
  306. addUserKnob {6 cryptoLayerLock l "Lock Layer Selection" t "Stops the automatic update of the layer selection." -STARTLINE}
  307. addUserKnob {41 expression l "Keyer Expression" t "The built expression. This knob is set automatically and is only left exposed as information for the user. " T Expression_key.expr0}
  308. addUserKnob {20 Advanced}
  309. addUserKnob {0 ColorKey t "Key an object here to check its name. It will not effect your mattes. " -STARTLINE +HIDDEN +INVISIBLE}
  310. addUserKnob {6 ColorKey_panelDropped l "panel dropped state" -STARTLINE +HIDDEN}
  311. addUserKnob {6 ColorKey_panelDropped_1 l "panel dropped state" -STARTLINE +HIDDEN}
  312. addUserKnob {26 ColorKeyLabel l "Name Checker" -STARTLINE +HIDDEN T " "}
  313. addUserKnob {1 keyedName l "Keyed Name" t "This field is for information only." +HIDDEN}
  314. addUserKnob {26 "" +HIDDEN}
  315. addUserKnob {22 decryptomatte l "Decryptomatte (Replace with Expression)" t "Replaces this gizmo with an expression node that does the extraction. This will replicate the matte extraction, but not the preview modes. " T "try: \n import cryptomatte_utilities as cu\n cu.decryptomatte_button(nuke.thisNode())\nexcept Exception, err:\n import traceback\n nuke.message('''Unable to run a Cryptomatte script. This script is necessary for the Cryptomatte system to work properly. \n\nError Traceback: \n\n%s''' % traceback.format_exc())" +STARTLINE}
  316. addUserKnob {22 unloadManifest l "Unload Manifest (Extract all Mattes)" t "Unload Manifest will create a separate gizmo for every named matte in the Cryptomatte manifest. This can potentially be thousands of nodes, though if the number is high a warning will be displayed before creating them. " T "try: \n import cryptomatte_utilities as cu\n cu.unload_manifest(nuke.thisNode())\nexcept Exception, err:\n import traceback\n nuke.message('''Unable to run a Cryptomatte script. This script is necessary for the Cryptomatte system to work properly. \n\nError Traceback: \n\n%s''' % traceback.format_exc())" +STARTLINE}
  317. addUserKnob {22 forceUpdateAll l "Force Update All (Update all Gizmos)" t "'Force Update All' will run 'Force Update' on all Cryptomatte gizmos in the Nuke script. 'Force Update' orders the gizmos to re-configure themselves based on available metadata, Cryptomatte depth, and the matte list. This updates all aspects of thier operation, from the preview modes to the extraction expression. Usually these updates occur automatically on certain actions, such as 'keying' the image, changing layer selection, or reconnecting images. However if changes occur upstream of the gizmos that require manually invoked updates, 'Force Update' and 'Force Update All' may be used. " T "try: \n import cryptomatte_utilities as cu\n cu.update_all_cryptomatte_gizmos()\nexcept Exception, err:\n import traceback\n nuke.message('''Unable to run Cryptomatte Gizmo update script. This script is necessary for the Cryptomatte system to work properly. \n\nError Traceback: \n\n%s''' % traceback.format_exc())" +STARTLINE}
  318. addUserKnob {41 previewExpression0 l INVISIBLE +INVISIBLE T Expression_preview.expr0}
  319. addUserKnob {41 previewExpression1 l INVISIBLE +INVISIBLE T Expression_preview.expr1}
  320. addUserKnob {41 previewExpression2 l INVISIBLE +INVISIBLE T Expression_preview.expr2}
  321. addUserKnob {41 previewExpression3 l INVISIBLE +INVISIBLE T Expression_preview.expr3}
  322. addUserKnob {11 previewChannel +HIDDEN}
  323. previewChannel none
  324. addUserKnob {11 in00 +HIDDEN}
  325. in00 VRayCryptomatte_mat00
  326. addUserKnob {11 in01 +HIDDEN}
  327. in01 VRayCryptomatte_mat01
  328. addUserKnob {11 in02 +HIDDEN}
  329. in02 VRayCryptomatte_mat02
  330. addUserKnob {11 in03 +HIDDEN}
  331. in03 none
  332. addUserKnob {11 in04 +HIDDEN}
  333. in04 none
  334. addUserKnob {11 in05 +HIDDEN}
  335. in05 none
  336. addUserKnob {11 in06 +HIDDEN}
  337. in06 none
  338. addUserKnob {11 in07 +HIDDEN}
  339. in07 none
  340. addUserKnob {26 "" +HIDDEN}
  341. }
  342. Input {
  343. inputs 0
  344. name Input1
  345. xpos -1361
  346. ypos -499
  347. }
  348. Dot {
  349. name Dot4
  350. xpos -1327
  351. ypos -439
  352. }
  353. set Nbc0d8380 [stack 0]
  354. Dot {
  355. name Dot15
  356. xpos -1093
  357. ypos -439
  358. }
  359. set Nbc0d8000 [stack 0]
  360. Dot {
  361. name Dot1
  362. xpos -960
  363. ypos -439
  364. }
  365. Shuffle {
  366. red black
  367. green black
  368. blue black
  369. name Shuffle_blackRGB
  370. xpos -994
  371. ypos -398
  372. }
  373. Expression {
  374. expr0 "((VRayCryptomatte_mat00.red == 1.17655305984e-37 || VRayCryptomatte_mat00.red == -1.62967729052e+15 || VRayCryptomatte_mat00.red == 8.92767694012e+34 || VRayCryptomatte_mat00.red == 2.0109789034e-07 || VRayCryptomatte_mat00.red == -5.27575958171e+26 || VRayCryptomatte_mat00.red == -6.92348246345e-33 || VRayCryptomatte_mat00.red == 7.62585969924e-25 || VRayCryptomatte_mat00.red == -6.33814679026e+22 || VRayCryptomatte_mat00.red == -1085118.25 || VRayCryptomatte_mat00.red == 2.50263688198e-20 || VRayCryptomatte_mat00.red == -1.33468101559e-38 || VRayCryptomatte_mat00.red == -8.94744527629e-26 || VRayCryptomatte_mat00.red == -5.82244452207e+25 || VRayCryptomatte_mat00.red == 2.10392122208e-23 || VRayCryptomatte_mat00.red == -5.43790241753e+17 || VRayCryptomatte_mat00.red == 36822.8828125 || VRayCryptomatte_mat00.red == -0.00795600749552 || VRayCryptomatte_mat00.red == 3.00274450041e-37 || VRayCryptomatte_mat00.red == -2.00997093642e-21 || VRayCryptomatte_mat00.red == 1.15363087139e-10 || VRayCryptomatte_mat00.red == 1.42154448213e-08 || VRayCryptomatte_mat00.red == 9.49772622904e+29) ? VRayCryptomatte_mat00.green : 0.0) + ((VRayCryptomatte_mat00.blue == 1.17655305984e-37 || VRayCryptomatte_mat00.blue == -1.62967729052e+15 || VRayCryptomatte_mat00.blue == 8.92767694012e+34 || VRayCryptomatte_mat00.blue == 2.0109789034e-07 || VRayCryptomatte_mat00.blue == -5.27575958171e+26 || VRayCryptomatte_mat00.blue == -6.92348246345e-33 || VRayCryptomatte_mat00.blue == 7.62585969924e-25 || VRayCryptomatte_mat00.blue == -6.33814679026e+22 || VRayCryptomatte_mat00.blue == -1085118.25 || VRayCryptomatte_mat00.blue == 2.50263688198e-20 || VRayCryptomatte_mat00.blue == -1.33468101559e-38 || VRayCryptomatte_mat00.blue == -8.94744527629e-26 || VRayCryptomatte_mat00.blue == -5.82244452207e+25 || VRayCryptomatte_mat00.blue == 2.10392122208e-23 || VRayCryptomatte_mat00.blue == -5.43790241753e+17 || VRayCryptomatte_mat00.blue == 36822.8828125 || VRayCryptomatte_mat00.blue == -0.00795600749552 || VRayCryptomatte_mat00.blue == 3.00274450041e-37 || VRayCryptomatte_mat00.blue == -2.00997093642e-21 || VRayCryptomatte_mat00.blue == 1.15363087139e-10 || VRayCryptomatte_mat00.blue == 1.42154448213e-08 || VRayCryptomatte_mat00.blue == 9.49772622904e+29) ? VRayCryptomatte_mat00.alpha : 0.0) + ((VRayCryptomatte_mat01.red == 1.17655305984e-37 || VRayCryptomatte_mat01.red == -1.62967729052e+15 || VRayCryptomatte_mat01.red == 8.92767694012e+34 || VRayCryptomatte_mat01.red == 2.0109789034e-07 || VRayCryptomatte_mat01.red == -5.27575958171e+26 || VRayCryptomatte_mat01.red == -6.92348246345e-33 || VRayCryptomatte_mat01.red == 7.62585969924e-25 || VRayCryptomatte_mat01.red == -6.33814679026e+22 || VRayCryptomatte_mat01.red == -1085118.25 || VRayCryptomatte_mat01.red == 2.50263688198e-20 || VRayCryptomatte_mat01.red == -1.33468101559e-38 || VRayCryptomatte_mat01.red == -8.94744527629e-26 || VRayCryptomatte_mat01.red == -5.82244452207e+25 || VRayCryptomatte_mat01.red == 2.10392122208e-23 || VRayCryptomatte_mat01.red == -5.43790241753e+17 || VRayCryptomatte_mat01.red == 36822.8828125 || VRayCryptomatte_mat01.red == -0.00795600749552 || VRayCryptomatte_mat01.red == 3.00274450041e-37 || VRayCryptomatte_mat01.red == -2.00997093642e-21 || VRayCryptomatte_mat01.red == 1.15363087139e-10 || VRayCryptomatte_mat01.red == 1.42154448213e-08 || VRayCryptomatte_mat01.red == 9.49772622904e+29) ? VRayCryptomatte_mat01.green : 0.0) + ((VRayCryptomatte_mat01.blue == 1.17655305984e-37 || VRayCryptomatte_mat01.blue == -1.62967729052e+15 || VRayCryptomatte_mat01.blue == 8.92767694012e+34 || VRayCryptomatte_mat01.blue == 2.0109789034e-07 || VRayCryptomatte_mat01.blue == -5.27575958171e+26 || VRayCryptomatte_mat01.blue == -6.92348246345e-33 || VRayCryptomatte_mat01.blue == 7.62585969924e-25 || VRayCryptomatte_mat01.blue == -6.33814679026e+22 || VRayCryptomatte_mat01.blue == -1085118.25 || VRayCryptomatte_mat01.blue == 2.50263688198e-20 || VRayCryptomatte_mat01.blue == -1.33468101559e-38 || VRayCryptomatte_mat01.blue == -8.94744527629e-26 || VRayCryptomatte_mat01.blue == -5.82244452207e+25 || VRayCryptomatte_mat01.blue == 2.10392122208e-23 || VRayCryptomatte_mat01.blue == -5.43790241753e+17 || VRayCryptomatte_mat01.blue == 36822.8828125 || VRayCryptomatte_mat01.blue == -0.00795600749552 || VRayCryptomatte_mat01.blue == 3.00274450041e-37 || VRayCryptomatte_mat01.blue == -2.00997093642e-21 || VRayCryptomatte_mat01.blue == 1.15363087139e-10 || VRayCryptomatte_mat01.blue == 1.42154448213e-08 || VRayCryptomatte_mat01.blue == 9.49772622904e+29) ? VRayCryptomatte_mat01.alpha : 0.0) + ((VRayCryptomatte_mat02.red == 1.17655305984e-37 || VRayCryptomatte_mat02.red == -1.62967729052e+15 || VRayCryptomatte_mat02.red == 8.92767694012e+34 || VRayCryptomatte_mat02.red == 2.0109789034e-07 || VRayCryptomatte_mat02.red == -5.27575958171e+26 || VRayCryptomatte_mat02.red == -6.92348246345e-33 || VRayCryptomatte_mat02.red == 7.62585969924e-25 || VRayCryptomatte_mat02.red == -6.33814679026e+22 || VRayCryptomatte_mat02.red == -1085118.25 || VRayCryptomatte_mat02.red == 2.50263688198e-20 || VRayCryptomatte_mat02.red == -1.33468101559e-38 || VRayCryptomatte_mat02.red == -8.94744527629e-26 || VRayCryptomatte_mat02.red == -5.82244452207e+25 || VRayCryptomatte_mat02.red == 2.10392122208e-23 || VRayCryptomatte_mat02.red == -5.43790241753e+17 || VRayCryptomatte_mat02.red == 36822.8828125 || VRayCryptomatte_mat02.red == -0.00795600749552 || VRayCryptomatte_mat02.red == 3.00274450041e-37 || VRayCryptomatte_mat02.red == -2.00997093642e-21 || VRayCryptomatte_mat02.red == 1.15363087139e-10 || VRayCryptomatte_mat02.red == 1.42154448213e-08 || VRayCryptomatte_mat02.red == 9.49772622904e+29) ? VRayCryptomatte_mat02.green : 0.0) + ((VRayCryptomatte_mat02.blue == 1.17655305984e-37 || VRayCryptomatte_mat02.blue == -1.62967729052e+15 || VRayCryptomatte_mat02.blue == 8.92767694012e+34 || VRayCryptomatte_mat02.blue == 2.0109789034e-07 || VRayCryptomatte_mat02.blue == -5.27575958171e+26 || VRayCryptomatte_mat02.blue == -6.92348246345e-33 || VRayCryptomatte_mat02.blue == 7.62585969924e-25 || VRayCryptomatte_mat02.blue == -6.33814679026e+22 || VRayCryptomatte_mat02.blue == -1085118.25 || VRayCryptomatte_mat02.blue == 2.50263688198e-20 || VRayCryptomatte_mat02.blue == -1.33468101559e-38 || VRayCryptomatte_mat02.blue == -8.94744527629e-26 || VRayCryptomatte_mat02.blue == -5.82244452207e+25 || VRayCryptomatte_mat02.blue == 2.10392122208e-23 || VRayCryptomatte_mat02.blue == -5.43790241753e+17 || VRayCryptomatte_mat02.blue == 36822.8828125 || VRayCryptomatte_mat02.blue == -0.00795600749552 || VRayCryptomatte_mat02.blue == 3.00274450041e-37 || VRayCryptomatte_mat02.blue == -2.00997093642e-21 || VRayCryptomatte_mat02.blue == 1.15363087139e-10 || VRayCryptomatte_mat02.blue == 1.42154448213e-08 || VRayCryptomatte_mat02.blue == 9.49772622904e+29) ? VRayCryptomatte_mat02.alpha : 0.0) + 0"
  375. channel1 none
  376. channel2 none
  377. channel3 none
  378. name Expression_key
  379. xpos -994
  380. ypos -372
  381. }
  382. Unpremult {
  383. channels {rgba.red -rgba.green -rgba.blue none}
  384. name Unpremult_matte
  385. xpos -994
  386. ypos -340
  387. disable {{!parent.unpremultiply}}
  388. }
  389. set N966b0a80 [stack 0]
  390. Dot {
  391. name Dot11
  392. xpos -960
  393. ypos -142
  394. }
  395. set N966b0000 [stack 0]
  396. Dot {
  397. name Dot2
  398. xpos -960
  399. ypos -65
  400. }
  401. push $N966b0000
  402. push $Nbc0d8380
  403. Dot {
  404. name Dot8
  405. xpos -1327
  406. ypos -395
  407. }
  408. set N966b1500 [stack 0]
  409. Dot {
  410. name Dot9
  411. xpos -1227
  412. ypos -395
  413. }
  414. Remove {
  415. operation keep
  416. channels rgba
  417. name Remove_channels
  418. xpos -1261
  419. ypos -360
  420. }
  421. push $N966b1500
  422. Switch {
  423. inputs 2
  424. which {{parent.RemoveChannels}}
  425. name Switch_removeChannels
  426. xpos -1361
  427. ypos -312
  428. }
  429. Dot {
  430. name Dot17
  431. xpos -1327
  432. ypos -235
  433. }
  434. set Nca07ae00 [stack 0]
  435. Dot {
  436. name Dot10
  437. xpos -1327
  438. ypos -193
  439. }
  440. set N966b8000 [stack 0]
  441. ShuffleCopy {
  442. inputs 2
  443. red red
  444. green red
  445. blue red
  446. alpha red
  447. name ShuffleCopy_matteOnly
  448. xpos -1361
  449. ypos -146
  450. }
  451. Dot {
  452. name Dot16
  453. xpos -1327
  454. ypos -91
  455. }
  456. push $N966b0a80
  457. push $Nbc0d8000
  458. Shuffle {
  459. alpha black
  460. name Shuffle_blackAlpha
  461. xpos -1127
  462. ypos -394
  463. }
  464. Expression {
  465. expr0 "((mantissa(abs(VRayCryptomatte_mat00.red)) * 1 % 0.25) * VRayCryptomatte_mat00.green + (mantissa(abs(VRayCryptomatte_mat00.blue)) * 1 % 0.25) * VRayCryptomatte_mat00.alpha + (mantissa(abs(VRayCryptomatte_mat01.red)) * 1 % 0.25) * VRayCryptomatte_mat01.green + (mantissa(abs(VRayCryptomatte_mat01.blue)) * 1 % 0.25) * VRayCryptomatte_mat01.alpha)"
  466. expr1 "((mantissa(abs(VRayCryptomatte_mat00.red)) * 16 % 0.25) * VRayCryptomatte_mat00.green + (mantissa(abs(VRayCryptomatte_mat00.blue)) * 16 % 0.25) * VRayCryptomatte_mat00.alpha + (mantissa(abs(VRayCryptomatte_mat01.red)) * 16 % 0.25) * VRayCryptomatte_mat01.green + (mantissa(abs(VRayCryptomatte_mat01.blue)) * 16 % 0.25) * VRayCryptomatte_mat01.alpha)"
  467. expr2 "((mantissa(abs(VRayCryptomatte_mat00.red)) * 64 % 0.25) * VRayCryptomatte_mat00.green + (mantissa(abs(VRayCryptomatte_mat00.blue)) * 64 % 0.25) * VRayCryptomatte_mat00.alpha + (mantissa(abs(VRayCryptomatte_mat01.red)) * 64 % 0.25) * VRayCryptomatte_mat01.green + (mantissa(abs(VRayCryptomatte_mat01.blue)) * 64 % 0.25) * VRayCryptomatte_mat01.alpha)"
  468. name Expression_preview
  469. xpos -1127
  470. ypos -368
  471. }
  472. Grade {
  473. inputs 1+1
  474. channels {rgba.red rgba.green -rgba.blue none}
  475. multiply 0
  476. add 1
  477. black_clamp false
  478. maskChannelMask rgba.red
  479. name Grade_selection
  480. xpos -1127
  481. ypos -340
  482. }
  483. Grade {
  484. channels {-rgba.red rgba.green rgba.blue none}
  485. multiply 0
  486. add 1
  487. black_clamp false
  488. maskChannelInput rgba.alpha
  489. name Grade_highlight
  490. xpos -1127
  491. ypos -302
  492. }
  493. push $Nca07ae00
  494. ShuffleCopy {
  495. inputs 2
  496. red red
  497. green green
  498. blue blue
  499. alpha alpha2
  500. name ShuffleCopy_restoreAlpha
  501. xpos -1127
  502. ypos -239
  503. }
  504. push $N966b8000
  505. Switch {
  506. inputs 2
  507. which {{parent.previewEnabled}}
  508. name Switch_preview
  509. xpos -1127
  510. ypos -197
  511. }
  512. Switch {
  513. inputs 2
  514. which {{parent.matteOnly}}
  515. name Switch_matteOnly
  516. xpos -1127
  517. ypos -95
  518. }
  519. ShuffleCopy {
  520. inputs 2
  521. red red
  522. green red
  523. blue red
  524. alpha red
  525. out alpha
  526. name ShuffleCopy_embedMask
  527. xpos -1127
  528. ypos -69
  529. }
  530. Output {
  531. name Output
  532. xpos -1127
  533. ypos -21
  534. }
  535. end_group
  536. set Nb0959c00 [stack 0]
  537. Group {
  538. name Cryptomatte10
  539. tile_color 0xff00ff
  540. selected true
  541. xpos 6364
  542. ypos 4490
  543. addUserKnob {20 cryptomatte l "Psyop Cryptomatte"}
  544. addUserKnob {0 pickerAdd l "Picker Add" t "Key objects to add to the Matte List here. "}
  545. pickerAdd {0.2236328125 0.07952880859 0.06817626953 0 100 652 101 653}
  546. addUserKnob {6 pickerAdd_panelDropped l "panel dropped state" -STARTLINE +HIDDEN}
  547. addUserKnob {26 pickerAddLabel l "Picker Add" -STARTLINE T " "}
  548. addUserKnob {0 pickerRemove l "Picker Remove" t "Key objects to remove from the Matte List here. "}
  549. pickerRemove {0 0 0 0 0 0 0 0}
  550. addUserKnob {6 pickerRemove_panelDropped l "panel dropped state" -STARTLINE +HIDDEN}
  551. addUserKnob {26 pickerRemoveLabel l "Picker Remove" -STARTLINE T " "}
  552. addUserKnob {26 ""}
  553. addUserKnob {6 previewEnabled l Preview +STARTLINE}
  554. previewEnabled true
  555. addUserKnob {4 previewMode l "" t "Choose how Cryptomatte will visualize keyable regions." -STARTLINE M {Colors Edges None ""}}
  556. addUserKnob {6 matteOnly l "Matte Only" t "Extracted matte is copied to RGB channels as well. This disables keying. " +STARTLINE}
  557. addUserKnob {6 singleSelection l "Single Selection" t "Picker only selects matte at a time, rather than selecting a list. " -STARTLINE}
  558. addUserKnob {6 RemoveChannels l "Remove Channels" t "Removes all non-RGBA channels for the output. This will leave the downstream cleaner. " -STARTLINE}
  559. addUserKnob {26 ""}
  560. addUserKnob {41 matteOutput l "Matte Output" t "Set the channel(s) the matte will write to in \"Matte Only\" mode. For example, you can use this to store the matte in a custom channel called \"Matte\" and use it for color-correction downstream." T ShuffleCopy_embedMask.out}
  561. addUserKnob {6 unpremultiply l Unpremultiply -STARTLINE}
  562. addUserKnob {1 matteList l "Matte List" t "The list of names the mattes are built from. Color picking values with the color fields above works by populating this field. "}
  563. matteList "mat_ASX_LIGHTS_CHROME, \"Material #2905\""
  564. addUserKnob {22 clear l Clear t "Clears the selection in this Gizmo" T "try: \n import cryptomatte_utilities as cu\n cu.clear_cryptomatte_gizmo(nuke.thisNode())\nexcept Exception, err:\n import traceback\n nuke.message('''Unable to run Cryptomatte Gizmo update script. This script is necessary for the Cryptomatte system to work properly. Please check with Pipeline that the Cryptomatte python plugin is available on this project. \n\nError Traceback (send this to Pipeline): \n\n%s''' % traceback.format_exc())" +STARTLINE}
  565. addUserKnob {22 forceUpdate l "Force Update" t "Updates the Gizmo based on which channels are available in the input. \n\nThis happens automatically when input changes, when loading the nuke script, or when a new gizmo is created. This is how it deals with differently named channels in the different Cryptomatte layers, and different depths that it's possible to render at. " -STARTLINE T "try: \n import cryptomatte_utilities as cu\nexcept Exception, err:\n import traceback\n nuke.message('''Unable to run Cryptomatte Gizmo update script. This script is necessary for the Cryptomatte system to work properly. \n\nError Traceback: \n\n%s''' % traceback.format_exc())"}
  566. addUserKnob {6 stopAutoUpdate l "Stop Auto Update" t "Stops the automatic update of this copy of the Gizmo." -STARTLINE}
  567. addUserKnob {26 ""}
  568. addUserKnob {4 cryptoLayerChoice l "Layer Selection" t "Choose which Cryptomatte layer to key." M {" " ""}}
  569. addUserKnob {1 cryptoLayer l INVISIBLE t "If there are multiple cryptomattes, this is how you select the layer." -STARTLINE +INVISIBLE}
  570. cryptoLayer VRayCryptomatte_mat
  571. addUserKnob {6 cryptoLayerLock l "Lock Layer Selection" t "Stops the automatic update of the layer selection." -STARTLINE}
  572. addUserKnob {41 expression l "Keyer Expression" t "The built expression. This knob is set automatically and is only left exposed as information for the user. " T Expression_key.expr0}
  573. addUserKnob {20 Advanced}
  574. addUserKnob {0 ColorKey l "" t "Key an object here to check its name. It will not effect your mattes. " -STARTLINE +HIDDEN}
  575. ColorKey {0 0 0 0 0 0 0 0}
  576. addUserKnob {6 ColorKey_panelDropped l "panel dropped state" -STARTLINE +HIDDEN}
  577. addUserKnob {6 ColorKey_panelDropped_1 l "panel dropped state" -STARTLINE +HIDDEN}
  578. addUserKnob {26 ColorKeyLabel l "Name Checker" -STARTLINE +HIDDEN T " "}
  579. addUserKnob {1 keyedName l "Keyed Name" t "This field is for information only." +HIDDEN}
  580. addUserKnob {26 "" +HIDDEN}
  581. addUserKnob {22 decryptomatte l "Decryptomatte (Replace with Expression)" t "Replaces this gizmo with an expression node that does the extraction. This will replicate the matte extraction, but not the preview modes. " T "try: \n import cryptomatte_utilities as cu\n cu.decryptomatte_button(nuke.thisNode())\nexcept Exception, err:\n import traceback\n nuke.message('''Unable to run a Cryptomatte script. This script is necessary for the Cryptomatte system to work properly. \n\nError Traceback: \n\n%s''' % traceback.format_exc())" +STARTLINE}
  582. addUserKnob {22 unloadManifest l "Unload Manifest (Extract all Mattes)" t "Unload Manifest will create a separate gizmo for every named matte in the Cryptomatte manifest. This can potentially be thousands of nodes, though if the number is high a warning will be displayed before creating them. " T "try: \n import cryptomatte_utilities as cu\n cu.unload_manifest(nuke.thisNode())\nexcept Exception, err:\n import traceback\n nuke.message('''Unable to run a Cryptomatte script. This script is necessary for the Cryptomatte system to work properly. \n\nError Traceback: \n\n%s''' % traceback.format_exc())" +STARTLINE}
  583. addUserKnob {22 forceUpdateAll l "Force Update All (Update all Gizmos)" t "'Force Update All' will run 'Force Update' on all Cryptomatte gizmos in the Nuke script. 'Force Update' orders the gizmos to re-configure themselves based on available metadata, Cryptomatte depth, and the matte list. This updates all aspects of thier operation, from the preview modes to the extraction expression. Usually these updates occur automatically on certain actions, such as 'keying' the image, changing layer selection, or reconnecting images. However if changes occur upstream of the gizmos that require manually invoked updates, 'Force Update' and 'Force Update All' may be used. " T "try: \n import cryptomatte_utilities as cu\n cu.update_all_cryptomatte_gizmos()\nexcept Exception, err:\n import traceback\n nuke.message('''Unable to run Cryptomatte Gizmo update script. This script is necessary for the Cryptomatte system to work properly. \n\nError Traceback: \n\n%s''' % traceback.format_exc())" +STARTLINE}
  584. addUserKnob {41 previewExpression0 l INVISIBLE +INVISIBLE T Expression_preview.expr0}
  585. addUserKnob {41 previewExpression1 l INVISIBLE +INVISIBLE T Expression_preview.expr1}
  586. addUserKnob {41 previewExpression2 l INVISIBLE +INVISIBLE T Expression_preview.expr2}
  587. addUserKnob {41 previewExpression3 l INVISIBLE +INVISIBLE T Expression_preview.expr3}
  588. addUserKnob {11 previewChannel +HIDDEN}
  589. previewChannel none
  590. addUserKnob {11 in00 +HIDDEN}
  591. in00 VRayCryptomatte_mat00
  592. addUserKnob {11 in01 +HIDDEN}
  593. in01 VRayCryptomatte_mat01
  594. addUserKnob {11 in02 +HIDDEN}
  595. in02 VRayCryptomatte_mat02
  596. addUserKnob {11 in03 +HIDDEN}
  597. in03 none
  598. addUserKnob {11 in04 +HIDDEN}
  599. in04 none
  600. addUserKnob {11 in05 +HIDDEN}
  601. in05 none
  602. addUserKnob {11 in06 +HIDDEN}
  603. in06 none
  604. addUserKnob {11 in07 +HIDDEN}
  605. in07 none
  606. addUserKnob {26 "" +HIDDEN}
  607. }
  608. Input {
  609. inputs 0
  610. name Input1
  611. xpos -1361
  612. ypos -499
  613. }
  614. Dot {
  615. name Dot4
  616. xpos -1327
  617. ypos -439
  618. }
  619. set Ncb5500 [stack 0]
  620. Dot {
  621. name Dot15
  622. xpos -1093
  623. ypos -439
  624. }
  625. set Ncb5180 [stack 0]
  626. Dot {
  627. name Dot1
  628. xpos -960
  629. ypos -439
  630. }
  631. Shuffle {
  632. red black
  633. green black
  634. blue black
  635. name Shuffle_blackRGB
  636. xpos -994
  637. ypos -398
  638. }
  639. Expression {
  640. expr0 "((VRayCryptomatte_mat00.red == -1.62967729052e+15 || VRayCryptomatte_mat00.red == 8.92767694012e+34) ? VRayCryptomatte_mat00.green : 0.0) + ((VRayCryptomatte_mat00.blue == -1.62967729052e+15 || VRayCryptomatte_mat00.blue == 8.92767694012e+34) ? VRayCryptomatte_mat00.alpha : 0.0) + ((VRayCryptomatte_mat01.red == -1.62967729052e+15 || VRayCryptomatte_mat01.red == 8.92767694012e+34) ? VRayCryptomatte_mat01.green : 0.0) + ((VRayCryptomatte_mat01.blue == -1.62967729052e+15 || VRayCryptomatte_mat01.blue == 8.92767694012e+34) ? VRayCryptomatte_mat01.alpha : 0.0) + ((VRayCryptomatte_mat02.red == -1.62967729052e+15 || VRayCryptomatte_mat02.red == 8.92767694012e+34) ? VRayCryptomatte_mat02.green : 0.0) + ((VRayCryptomatte_mat02.blue == -1.62967729052e+15 || VRayCryptomatte_mat02.blue == 8.92767694012e+34) ? VRayCryptomatte_mat02.alpha : 0.0) + 0"
  641. channel1 none
  642. channel2 none
  643. channel3 none
  644. name Expression_key
  645. xpos -994
  646. ypos -372
  647. }
  648. Unpremult {
  649. channels {rgba.red -rgba.green -rgba.blue none}
  650. name Unpremult_matte
  651. xpos -994
  652. ypos -340
  653. disable {{!parent.unpremultiply}}
  654. }
  655. set Ncb4000 [stack 0]
  656. Dot {
  657. name Dot11
  658. xpos -960
  659. ypos -142
  660. }
  661. set N3a3c3c00 [stack 0]
  662. Dot {
  663. name Dot2
  664. xpos -960
  665. ypos -65
  666. }
  667. push $N3a3c3c00
  668. push $Ncb5500
  669. Dot {
  670. name Dot8
  671. xpos -1327
  672. ypos -395
  673. }
  674. set N3a3c3500 [stack 0]
  675. Dot {
  676. name Dot9
  677. xpos -1227
  678. ypos -395
  679. }
  680. Remove {
  681. operation keep
  682. channels rgba
  683. name Remove_channels
  684. xpos -1261
  685. ypos -360
  686. }
  687. push $N3a3c3500
  688. Switch {
  689. inputs 2
  690. which {{parent.RemoveChannels}}
  691. name Switch_removeChannels
  692. xpos -1361
  693. ypos -312
  694. }
  695. Dot {
  696. name Dot17
  697. xpos -1327
  698. ypos -235
  699. }
  700. set N3a3c2700 [stack 0]
  701. Dot {
  702. name Dot10
  703. xpos -1327
  704. ypos -193
  705. }
  706. set N3a3c2380 [stack 0]
  707. ShuffleCopy {
  708. inputs 2
  709. red red
  710. green red
  711. blue red
  712. alpha red
  713. name ShuffleCopy_matteOnly
  714. xpos -1361
  715. ypos -146
  716. }
  717. Dot {
  718. name Dot16
  719. xpos -1327
  720. ypos -91
  721. }
  722. push $Ncb4000
  723. push $Ncb5180
  724. Shuffle {
  725. alpha black
  726. name Shuffle_blackAlpha
  727. xpos -1127
  728. ypos -394
  729. }
  730. Expression {
  731. expr0 "((mantissa(abs(VRayCryptomatte_mat00.red)) * 1 % 0.25) * VRayCryptomatte_mat00.green + (mantissa(abs(VRayCryptomatte_mat00.blue)) * 1 % 0.25) * VRayCryptomatte_mat00.alpha + (mantissa(abs(VRayCryptomatte_mat01.red)) * 1 % 0.25) * VRayCryptomatte_mat01.green + (mantissa(abs(VRayCryptomatte_mat01.blue)) * 1 % 0.25) * VRayCryptomatte_mat01.alpha)"
  732. expr1 "((mantissa(abs(VRayCryptomatte_mat00.red)) * 16 % 0.25) * VRayCryptomatte_mat00.green + (mantissa(abs(VRayCryptomatte_mat00.blue)) * 16 % 0.25) * VRayCryptomatte_mat00.alpha + (mantissa(abs(VRayCryptomatte_mat01.red)) * 16 % 0.25) * VRayCryptomatte_mat01.green + (mantissa(abs(VRayCryptomatte_mat01.blue)) * 16 % 0.25) * VRayCryptomatte_mat01.alpha)"
  733. expr2 "((mantissa(abs(VRayCryptomatte_mat00.red)) * 64 % 0.25) * VRayCryptomatte_mat00.green + (mantissa(abs(VRayCryptomatte_mat00.blue)) * 64 % 0.25) * VRayCryptomatte_mat00.alpha + (mantissa(abs(VRayCryptomatte_mat01.red)) * 64 % 0.25) * VRayCryptomatte_mat01.green + (mantissa(abs(VRayCryptomatte_mat01.blue)) * 64 % 0.25) * VRayCryptomatte_mat01.alpha)"
  734. name Expression_preview
  735. xpos -1127
  736. ypos -368
  737. }
  738. Grade {
  739. inputs 1+1
  740. channels {rgba.red rgba.green -rgba.blue none}
  741. multiply 0
  742. add 1
  743. black_clamp false
  744. maskChannelMask rgba.red
  745. name Grade_selection
  746. xpos -1127
  747. ypos -340
  748. }
  749. Grade {
  750. channels {-rgba.red rgba.green rgba.blue none}
  751. multiply 0
  752. add 1
  753. black_clamp false
  754. maskChannelInput rgba.alpha
  755. name Grade_highlight
  756. xpos -1127
  757. ypos -302
  758. }
  759. push $N3a3c2700
  760. ShuffleCopy {
  761. inputs 2
  762. red red
  763. green green
  764. blue blue
  765. alpha alpha2
  766. name ShuffleCopy_restoreAlpha
  767. xpos -1127
  768. ypos -239
  769. }
  770. push $N3a3c2380
  771. Switch {
  772. inputs 2
  773. which {{parent.previewEnabled}}
  774. name Switch_preview
  775. xpos -1127
  776. ypos -197
  777. }
  778. Switch {
  779. inputs 2
  780. which {{parent.matteOnly}}
  781. name Switch_matteOnly
  782. xpos -1127
  783. ypos -95
  784. }
  785. ShuffleCopy {
  786. inputs 2
  787. red red
  788. green red
  789. blue red
  790. alpha red
  791. out alpha
  792. name ShuffleCopy_embedMask
  793. xpos -1127
  794. ypos -69
  795. }
  796. Output {
  797. name Output
  798. xpos -1127
  799. ypos -21
  800. }
  801. end_group
  802. Dot {
  803. name Dot32
  804. selected true
  805. xpos 6494
  806. ypos 4494
  807. }
  808. push $Nb0959c00
  809. Dot {
  810. name Dot20
  811. selected true
  812. xpos 6494
  813. ypos 4431
  814. }
  815. push $Nb0959000
  816. Dot {
  817. name Dot22
  818. selected true
  819. xpos 6494
  820. ypos 4373
  821. }
  822. Constant {
  823. inputs 0
  824. channels rgb
  825. name Constant1
  826. selected true
  827. xpos 6590
  828. ypos 4166
  829. }
  830. add_layer {ASX_MASX ASX_MASX.red ASX_MASX.green ASX_MASX.blue ASX_MASX.alpha}
  831. AddChannels {
  832. channels ASX_MASX
  833. name AddChannels1
  834. selected true
  835. xpos 6590
  836. ypos 4303
  837. }
  838. ShuffleCopy {
  839. inputs 2
  840. red alpha
  841. green black
  842. blue black
  843. alpha black
  844. out ASX_MASX
  845. name ShuffleCopy3
  846. label LAKIER
  847. selected true
  848. xpos 6590
  849. ypos 4363
  850. }
  851. ShuffleCopy {
  852. inputs 2
  853. in2 ASX_MASX
  854. green alpha
  855. blue black
  856. alpha black
  857. out ASX_MASX
  858. name ShuffleCopy2
  859. label FULL
  860. selected true
  861. xpos 6590
  862. ypos 4421
  863. }
  864. ShuffleCopy {
  865. inputs 2
  866. in2 ASX_MASX
  867. blue alpha
  868. alpha black
  869. out ASX_MASX
  870. name ShuffleCopy1
  871. selected true
  872. xpos 6591
  873. ypos 4489
  874. }
  875. Dot {
  876. name Dot19
  877. label SKRYPT
  878. note_font_size 25
  879. selected true
  880. xpos 6624
  881. ypos 4614
  882. }
  883. Shuffle {
  884. in ASX_MASX
  885. alpha black
  886. name Shuffle12
  887. label "\[value in]"
  888. selected true
  889. xpos 6591
  890. ypos 4784
  891. }
  892. Write {
  893. file //rama/works/ASX/090_RENDER_COMP/ASX_COMP_SH070/MASK/v02/ASX_MASK_SH070_####.exr
  894. colorspace linear
  895. file_type exr
  896. first_part none
  897. version 25
  898. in_colorspace linear
  899. out_colorspace linear
  900. name Write3
  901. selected true
  902. xpos 6591
  903. ypos 4897
  904. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement