Hey Victor, Answer to first question is 'no', pretty sure, but it's a feature request.
You can do this easily enough with an Input node called, say, 'mask' and a knobChanged callback in your group, like below. Cheers, -Ean set cut_paste_input [stack 0] version 6.2 v4 push $cut_paste_input Group { name Group3 knobChanged "c = nuke.toNode('Copy1')\nif nuke.thisKnob().name() == 'inputChange':\n if nuke.thisNode().input(1) != None:\n c\['from0'].setValue('rgba.alpha')\n else:\n c\['from0'].setValue('none')" selected true xpos -5210 ypos 2976 addUserKnob {20 User} addUserKnob {41 from0 l "Copy channel" T Copy1.from0} } Input { inputs 0 name mask xpos 198 ypos 72 number 1 } Input { inputs 0 name Input xpos 0 ypos 49 } add_layer {rgba rgba.beta} Copy { inputs 2 to0 rgba.alpha name Copy1 xpos 0 ypos 150 } Output { name Output1 xpos 0 ypos 225 } end_group On Fri, Jun 17, 2011 at 7:32 PM, Victor Perez <i...@victorperez.co.uk>wrote: > Hi guys, > > I'm trying to build a gizmo with a mask input (as most of Nuke standard > nodes). I have two questions: > > Is it possible to customise the 'mask' input to be at the side of the node > (just the small triangle instead of the top arrow)? And of course, how? > > My other question is how to customise the a pulldown choice knob (channels) > to change dynamically as soon as you connect something into the 'mask' > input. For instance the same behaviour as the 'Grade' node, as soon as you > plug the 'mask' input into a roto node the 'mask' knob is activated and set > as 'rgba.alpha' in the pulldown choice. > > I've copy a simple script containing the group, with the inputs and the > 'mask' knob. > > Thanks for your help. > > Cheers, > > Victor > > > set cut_paste_input [stack 0] > version 6.2 v4 > push $cut_paste_input > Roto { > curves {AnimTree: "" { > Version: 1.2 > Flag: 0 > RootNode: 1 > Node: { > NodeName: "Root" { > Flag: 512 > NodeType: 1 > Transform: 0 0 S 0 0 S 0 0 S 0 0 S 0 1 S 0 1 S 0 0 S 0 1024 S 0 778 > NumOfAttributes: 10 > "vis" S 0 1 "opc" S 0 1 "mbo" S 0 1 "mb" S 0 1 "mbs" S 0 0.5 "fo" S 0 1 > "fx" S 0 0 "fy" S 0 0 "ff" S 0 1 "ft" S 0 0 > } > NumOfChildren: 1 > Node: { > NodeName: "Ellipse1" { > Flag: 576 > NodeType: 3 > CurveGroup: "" { > Transform: 0 0 S 1 1 0 S 1 1 0 S 1 1 0 S 1 1 1 S 1 1 1 S 1 1 0 S 1 1 > 997.5 S 1 1 757.5 > Flag: 0 > NumOfCubicCurves: 2 > CubicCurve: "" { > Type: 0 Flag: 8192 Dim: 2 > NumOfPoints: 12 > 0 S 1 1 -230.579 S 1 1 0 0 0 S 1 1 997.5 S 1 1 340 0 0 S 1 1 230.579 S > 1 1 0 0 0 S 1 1 0 S 1 1 -230.579 0 0 S 1 1 1415 S 1 1 757.5 0 0 S 1 1 0 S 1 > 1 230.579 0 0 S 1 1 230.579 S 1 1 0 0 0 S 1 1 997.5 S 1 1 1175 0 0 S 1 1 > -230.579 S 1 1 0 0 0 S 1 1 0 S 1 1 230.579 0 0 S 1 1 580 S 1 1 757.5 0 0 S 1 > 1 0 S 1 1 -230.579 0 > } > CubicCurve: "" { > Type: 0 Flag: 8192 Dim: 2 > NumOfPoints: 12 > 0 S 1 1 -230.579 S 1 1 0 0 0 S 1 1 0 S 1 1 0 0 0 S 1 1 230.579 S 1 1 0 > 0 0 S 1 1 0 S 1 1 -230.579 0 0 S 1 1 0 S 1 1 0 0 0 S 1 1 0 S 1 1 230.579 0 0 > S 1 1 230.579 S 1 1 0 0 0 S 1 1 0 S 1 1 0 0 0 S 1 1 -230.579 S 1 1 0 0 0 S 1 > 1 0 S 1 1 230.579 0 0 S 1 1 0 S 1 1 0 0 0 S 1 1 0 S 1 1 -230.579 0 > } > NumOfAttributes: 43 > "vis" S 0 1 "r" S 0 1 "g" S 0 1 "b" S 0 1 "a" S 0 1 "ro" S 0 0 "go" S 0 > 0 "bo" S 0 0 "ao" S 0 0 "opc" S 0 1 "bm" S 0 0 "inv" S 0 0 "mbo" S 0 0 "mb" > S 0 1 "mbs" S 0 0.5 "mbsot" S 0 0 "mbso" S 0 0 "fo" S 0 1 "fx" S 0 0 "fy" S > 0 0 "ff" S 0 1 "ft" S 0 0 "src" S 0 0 "stx" S 0 0 "sty" S 0 0 "str" S 0 0 > "sr" S 0 0 "ssx" S 0 1 "ssy" S 0 1 "ss" S 0 0 "spx" S 0 1024 "spy" S 0 778 > "stot" S 0 0 "sto" S 0 0 "sv" S 0 0 "sf" S 0 1 "sb" S 0 1 "nv" S 0 1 "view1" > S 0 1 "ltn" S 0 1 "ltm" S 0 1 "ltt" S 0 0 "tt" S 0 6 > } > } > NumOfChildren: 0 > } > } > } > } > toolbox {selectAll { > { selectAll ssx 1 ssy 1 sf 1 } > { createBezier ssx 1 ssy 1 sf 1 sb 1 tt 4 } > { createBSpline ssx 1 ssy 1 sf 1 sb 1 } > { createEllipse ssx 1 ssy 1 sf 1 sb 1 tt 6 } > { createRectangle ssx 1 ssy 1 sf 1 sb 1 } > { brush ssx 1 ssy 1 sf 1 sb 1 } > { eraser src 2 ssx 1 ssy 1 sf 1 sb 1 } > { clone src 1 ssx 1 ssy 1 sf 1 sb 1 } > { reveal src 3 ssx 1 ssy 1 sf 1 sb 1 } > { dodge src 1 ssx 1 ssy 1 sf 1 sb 1 } > { burn src 1 ssx 1 ssy 1 sf 1 sb 1 } > { blur src 1 ssx 1 ssy 1 sf 1 sb 1 } > { sharpen src 1 ssx 1 ssy 1 sf 1 sb 1 } > { smear src 1 ssx 1 ssy 1 sf 1 sb 1 } > } } > toolbar_brush_hardness 0.200000003 > toolbar_lifetime_type all > toolbar_source_transform_scale {1 1} > toolbar_source_transform_center {320 240} > colorOverlay 0 > lifetime_type "all frames" > motionblur_shutter_offset_type centred > source_black_outside true > name Roto1 > selected true > xpos -40 > ypos -171 > } > Constant { > inputs 0 > channels rgb > name Constant1 > selected true > xpos 120 > ypos -87 > } > Group { > inputs 2 > name Group1 > selected true > xpos -40 > ypos -63 > addUserKnob {20 User} > addUserKnob {41 from0 l "Copy channel" T Copy1.from0} > } > Input { > inputs 0 > name mask > xpos 183 > ypos 153 > number 1 > } > Input { > inputs 0 > name Input > xpos 0 > ypos 45 > } > Copy { > inputs 2 > to0 rgba.alpha > name Copy1 > selected true > xpos 0 > ypos 148 > } > Output { > name Output1 > xpos 0 > ypos 225 > } > end_group_______________________________________________ > Nuke-python mailing list > Nuke-python@support.thefoundry.co.uk, http://forums.thefoundry.co.uk/ > http://support.thefoundry.co.uk/cgi-bin/mailman/listinfo/nuke-python >
_______________________________________________ Nuke-python mailing list Nuke-python@support.thefoundry.co.uk, http://forums.thefoundry.co.uk/ http://support.thefoundry.co.uk/cgi-bin/mailman/listinfo/nuke-python