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