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

Reply via email to