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].**co.uk<[email protected]>,
>>> http://forums.thefoundry.co.**uk/ <http://forums.thefoundry.co.uk/>
>>> http://support.thefoundry.co.**uk/cgi-bin/mailman/listinfo/**nuke-users<http://support.thefoundry.co.uk/cgi-bin/mailman/listinfo/nuke-users>
>>>
>>
>
> ______________________________**_________________
> Nuke-users mailing list
> [email protected].**co.uk<[email protected]>,
> http://forums.thefoundry.co.**uk/ <http://forums.thefoundry.co.uk/>
> http://support.thefoundry.co.**uk/cgi-bin/mailman/listinfo/**nuke-users<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

Reply via email to