Feature requested as Bug 29261 in case anyone needs it.
On Thu, Jul 19, 2012 at 5:50 PM, Frank Rueter <[email protected]> wrote: > absolutely! > > > On 20/07/12 5:53 AM, Jose Fernandez de Castro wrote: > > As a side note the problem with both alternate approaches that we showed > (which do the same thing) is that the snap 3d function does not take a > format argument, and only returns the values for the root format, so the > result is only correct for that format. Maybe we should put in a request > for the function to take in a format/resolution argument? > > On Wed, Jul 18, 2012 at 10:12 PM, Jan Dubberke <[email protected]> wrote: > >> yeh thanks for that again: it works just fine. it does choke a wee bit in >> the gui every now and then but it totally does what I was aiming for. >> >> I also liked Jose's approach so thanks for that too - very creative! >> >> I guess I'll just wait for new releases then and hope it gets >> incorporated as a one stop solution? question mark >> >> cheers everyone >> >> >> >> >> that's what I did to work around this. Fairly rough and untested though: >>> >>> CheckerBoard2 { >>> inputs 0 >>> name CheckerBoard1 >>> selected true >>> xpos -148 >>> ypos -140 >>> } >>> Transform { >>> translate {{"\[python -execlocal cam\\ =\\ >>> nuke.toNode('Camera1')\\naxis\\ =\\ nuke.toNode('Axis1')\\nwm\\ =\\ >>> axis\\\['world_matrix'\\].valueAt(nuke.frame())\\nxform\\ =\\ >>> nuke.math.Vector3(wm\\\[3\\],\\ wm\\\[7\\],\\ wm\\\[11\\])\\nret\\ =\\ >>> nukescripts.snap3d.projectPoint(cam,\\ xform).x]"} {"\[python >>> -execlocal cam\\ =\\ nuke.toNode('Camera1')\\naxis\\ =\\ >>> nuke.toNode('Axis1')\\nwm\\ =\\ >>> axis\\\['world_matrix'\\].valueAt(nuke.frame())\\nxform\\ =\\ >>> nuke.math.Vector3(wm\\\[3\\],\\ wm\\\[7\\],\\ wm\\\[11\\])\\nret\\ =\\ >>> nukescripts.snap3d.projectPoint(cam,\\ xform).y]"}} >>> center {1024 778} >>> name Transform1 >>> selected true >>> xpos -148 >>> ypos -68 >>> } >>> Camera2 { >>> inputs 0 >>> name Camera1 >>> selected true >>> xpos -420 >>> ypos -70 >>> } >>> push $cut_paste_input >>> Axis2 { >>> rotate {0 -4 0} >>> name parentAxis >>> selected true >>> xpos -366 >>> ypos -323 >>> } >>> Axis2 { >>> translate {-0.392 -0.04399999976 -2.140000105} >>> name Axis1 >>> selected true >>> xpos -293 >>> ypos -238 >>> } >>> Scene { >>> name Scene1 >>> selected true >>> xpos -293 >>> ypos -129 >>> } >>> push 0 >>> ScanlineRender { >>> inputs 3 >>> output_motion_vectors_type accurate >>> name ScanlineRender1 >>> selected true >>> xpos -303 >>> ypos -16 >>> } >>> Merge2 { >>> inputs 2 >>> name Merge1 >>> selected true >>> xpos -148 >>> ypos -16 >>> } >>> >>> >>> >>> >>> >>> >>> >>> On 19/07/12 2:37 PM, Jose Fernandez de Castro wrote: >>> >>>> I'm wondering if anyone has used the snap3d.project points >>>> successfully to achieve this (I mean, if it's actually stable and >>>> usable). For starters it seems like it only takes the root format of the >>>> script, but it might be possible to cheat it through the win_scale u v. >>>> Anyway, just curious, an example setup: >>>> >>>> set cut_paste_input [stack 0] >>>> version 6.3 v8 >>>> Axis2 { >>>> inputs 0 >>>> translate {{curve i x1048 -1.396000028 x1088 -0.9840000272 x1108 >>>> -0.1986213923 x1119 0.3740000129} {curve i x1048 0.5559999943 x1088 >>>> 0.3759999871 x1102 0.41049599 x1108 0.4199999869 x1119 -0.5339999795} >>>> {curve i x1048 0 x1088 0 x1108 0 x1119 0}} >>>> name Axis3 >>>> selected true >>>> xpos 236 >>>> ypos 21 >>>> } >>>> push $cut_paste_input >>>> Camera2 { >>>> translate {{curve x1104 0} {curve x1080 0.3 x1104 0} {curve x1104 >>>> 7.050000191}} >>>> rotate {0 5 0} >>>> focal 13.5 >>>> name Camera3 >>>> selected true >>>> xpos -25 >>>> ypos 68 >>>> addUserKnob {20 ProjectFrame l "Project Frame"} >>>> addUserKnob {3 frameproj l "Projection Frame"} >>>> frameproj 1000 >>>> addUserKnob {6 currFrame l "Set to current frame" +STARTLINE} >>>> addUserKnob {22 setFrame l "Set Projection Frame" T >>>> >>>> "\nknoblist=\[]\nknoblistPre=\[\"translate\",\"rotate\",\"pivot\",\"scaling\",\"uniform_scale\",\"skew\",\"focal\",\"haperture\",\"vaperture\",\"far\",\"near\",\"win_scale\",\"win_translate\",\"winroll\",\"focal_point\",\"fstop\"]\nfor >>>> name in knoblistPre:\n knoblist.append(name)\n >>>> knoblist.append(name+\"_r\")\n knoblist.append(name+\"_l\")\n \ntry:\n >>>> >>>> nuke.thisNode().knob(\"read_from_file\").setValue(False)\nexcept(AttributeError):\n >>>> pass\nanimation=False\n\nfor i in knoblist:\n >>>> knob=nuke.thisNode().knob(i)\n if knob:\n if >>>> knob.hasExpression():\n animation=True\n >>>> newexpression=knob.toScript().split(\"\{\")\[1].split(\"\}\")\[0]\n >>>> if \"(frameproj)\" not in newexpression:\n >>>> knob.setExpression(\"%s(frameproj)\"%(newexpression))\n \n elif >>>> knob.isAnimated():\n print \"this ran\"\n >>>> animation=True\n knob.setExpression(\"curve(frameproj)\")\n\n\nif >>>> nuke.thisNode().knob(\"currFrame\").value():\n >>>> nuke.thisNode().knob(\"frameproj\").setValue(nuke.frame())\nif >>>> animation==True:\n previouslabel=nuke.thisNode().knob(\"label\").value()\n >>>> previouslabel=previouslabel.replace(\"\\nProjection frame: \[value >>>> frameproj]\",\"\")\n newlabel=previouslabel+\"\\nProjection frame: \[value >>>> frameproj]\"\n nuke.thisNode().knob(\"label\").setValue(newlabel)\n" >>>> +STARTLINE} >>>> addUserKnob {22 unsetFrame l "Unset Projection Frame" T >>>> >>>> "\nknoblist=\[]\nknoblistPre=\[\"translate\",\"rotate\",\"pivot\",\"scaling\",\"uniform_scale\",\"skew\",\"focal\",\"haperture\",\"vaperture\",\"far\",\"near\",\"win_scale\",\"win_translate\",\"winroll\",\"focal_point\",\"fstop\"]\nfor >>>> name in knoblistPre:\n knoblist.append(name)\n >>>> knoblist.append(name+\"_r\")\n knoblist.append(name+\"_l\")\nfor i in >>>> knoblist:\n knob=nuke.thisNode().knob(i)\n if knob:\n if >>>> knob.hasExpression():\n >>>> >>>> newexpression=knob.toScript().split(\"\{\")\[1].split(\"\}\")\[0].replace(\"(frameproj)\",\"\")\n >>>> if \"curve\" in newexpression:\n >>>> knob.setExpression(\"curve\")\n else:\n >>>> knob.setExpression(newexpression)\n\n\npreviouslabel= >>>> nuke.thisNode().knob(\"label\").value()\npreviouslabel=previouslabel.replace(\"\\nProjection >>>> frame: \[value >>>> frameproj]\",\"\")\nnuke.thisNode().knob(\"label\").setValue(previouslabel)\n" >>>> +STARTLINE} >>>> } >>>> set Ne20aad70 [stack 0] >>>> Scene { >>>> inputs 2 >>>> name Scene3 >>>> selected true >>>> xpos 236 >>>> ypos 249 >>>> } >>>> push $Ne20aad70 >>>> CheckerBoard2 { >>>> inputs 0 >>>> format "1920 1080 0 0 1920 1080 1 HD" >>>> name CheckerBoard3 >>>> selected true >>>> xpos -175 >>>> ypos 10 >>>> } >>>> Group { >>>> inputs 2 >>>> name project_point2 >>>> selected true >>>> xpos -109 >>>> ypos 310 >>>> addUserKnob {20 User} >>>> addUserKnob {13 point3d} >>>> point3d {{parent.Axis3.translate.left} {parent.Axis3.translate.left} >>>> {parent.Axis3.translate.left}} >>>> addUserKnob {12 point2d} >>>> point2d {{"\[python -execlocal >>>> >>>> n=nuke.thisNode()\\nret=nukescripts.snap3d.projectPoint(camera=n.input(1),point=(n\\\[\\\"point3d\\\"\\].value(0),n\\\[\\\"point3d\\\"\\].value(1),n\\\[\\\"point3d\\\"\\].value(2)))\\\[0\\]]" >>>> x1048 1400} {"\[python -execlocal >>>> n=nuke.thisNode()\\nret=nukescripts.snap3d.projectPoint(camera=n.input(1),point=(n\\\[\\\"point3d\\\"\\].value(0),n\\\[\\\"point3d\\\"\\].value(1),n\\\[\\\"point3d\\\"\\].value(2)))\\\[1\\]]" >>>> x1048 698}} >>>> } >>>> Input { >>>> inputs 0 >>>> name IMAGE >>>> xpos -50 >>>> ypos -94 >>>> } >>>> Output { >>>> name Output1 >>>> xpos -50 >>>> ypos 10 >>>> } >>>> Input { >>>> inputs 0 >>>> name CAMERA >>>> selected true >>>> xpos 145 >>>> ypos -111 >>>> number 1 >>>> } >>>> end_group >>>> >>>> >>>> >>>> _______________________________________________ >>>> Nuke-users mailing list >>>> [email protected], http://forums.thefoundry.co.uk/ >>>> http://support.thefoundry.co.uk/cgi-bin/mailman/listinfo/nuke-users >>>> >>> >> >> _______________________________________________ >> Nuke-users mailing list >> [email protected], http://forums.thefoundry.co.uk/ >> http://support.thefoundry.co.uk/cgi-bin/mailman/listinfo/nuke-users >> > > > > -- > Jose Fernandez de Castro > > > _______________________________________________ > Nuke-users mailing [email protected], > http://forums.thefoundry.co.uk/http://support.thefoundry.co.uk/cgi-bin/mailman/listinfo/nuke-users > > > > > _______________________________________________ > Nuke-users mailing list > [email protected], http://forums.thefoundry.co.uk/ > http://support.thefoundry.co.uk/cgi-bin/mailman/listinfo/nuke-users > -- Jose Fernandez de Castro
_______________________________________________ Nuke-users mailing list [email protected], http://forums.thefoundry.co.uk/ http://support.thefoundry.co.uk/cgi-bin/mailman/listinfo/nuke-users
