Throwing in one more possible alternative here. It’s a TCL function that just 
walks up until it finds a knob named "focal" on any node hooked to any primary 
input and returns the value of that. It’s a bit longer than your average 
expression, but if you use multi-line expression mode, it’s easy to keep it 
formatted nicely.

[proc camFocal node {

if {[value $node.input0.focal 0]} {

return [value $node.input0.focal]

} else {

return [camFocal [node $node.input0]] }

}]


[camFocal this]



If you need something more generic (like finding the first camera node), you 
could replace the [value ...] tests with [class $node] == "Camera2" or 
something. Of course, at a certain point, a Python expression is probably going 
to become easier to maintain, but if you’re a die-hard TCL user for 
expressions, it might be worth a shot.



Anyway, just another idea...


-Nathan



From: Erik Winquist 
Sent: Thursday, August 11, 2011 6:50 PM
To: Nuke user discussion 
Subject: Re: [Nuke-users] reference camera data with expressions


pretty slick workaround, michael.

nice one.

erik


Michael Garrett wrote: I  got something working that seems to enable metadata 
in the camera pipe.  So you could add this right after the camera, where you 
don't need a Dot to keep things clean, then access camera values via metadata.  
Not ideal, but it could be helpful:

set cut_paste_input [stack 0]
version 6.2 v1
push $cut_paste_input
Group {
name AddCamMetaData
selected true
xpos -152
ypos -129
addUserKnob {20 User}
addUserKnob {41 shownmetadata l "" -STARTLINE T ViewMetaData2.shownmetadata}
}
Input {
  inputs 0
  name Input1
  xpos 61
  ypos -238
}
ModifyMetaData {
  metadata {
   {set focal "\[value parent.input0.focal]"}
  }
  name ModifyMetaData1
  selected true
  xpos 61
  ypos -176
}
ViewMetaData {
  name ViewMetaData2
  xpos 61
  ypos -150
}
Output {
  name Output1
  xpos 61
  ypos -40
}
end_group
Blur {
size {{"\[metadata focal]"}}
name Blur3
selected true
xpos -152
ypos -103
}





On 11 August 2011 14:59, Michael Garrett <michaeld...@gmail.com> wrote:
Hi Ivan, great, thanks!  I was just trying Camera1.focal 





On 11 August 2011 14:47, Ivan Busquets <ivanbusqu...@gmail.com> wrote:
Hi Michael,

You can use tcl expressions in the "value" field of a ModifyMetadata node.

ex:
[value Camera1.focal]


On Thu, Aug 11, 2011 at 2:40 PM, Michael Garrett <michaeld...@gmail.com> wrote:
> Do you mean expression link to the modifymetadata "value" field?  How
> exactly do you do this?
>
> On 11 August 2011 14:36, Frank Rueter <fr...@beingfrank.info> wrote:
>>
>> You can expression link a camera's parameter to generically create meta
>> data. But of course this creates the same problem. It would be good to have
>> multiple inputs for the ModifyMetadata node that allows any type of input
>> type to do this sort of thing (I guess input 0 would be the type being
>> passes through like a copy node)
>>
>>
>> On Aug 11, 2011, at 1:20 PM, Paul Raeburn <praeburn.li...@googlemail.com>
>> wrote:
>>
>> I wondered about that, but metadata node dont work in camera pipes, so I
>> ran into a dead end.  Getting the name of the camera node node world be
>> great (as per Ivans recommendation).  Ideally it would be great to et the
>> data from the camera pipe directly, so it can be modified by downstream axis
>> etc, but I assume that a foundry question.
>> Any suggestions on how to access the metadata of the camera pipe?
>>
>> On 12 August 2011 05:51, Frank Rueter <fr...@beingfrank.info> wrote:
>>>
>>> Try "[topnode]" which will give you the top most node of a stream.
>>> Obviously it won't work if the camera's parent pipe is connected. In that
>>> case you will need a script that walks upstream and returns the first camera
>>> node, then use that in your expression. Or use meta Data to make the camera
>>> info flow in the stream which is more elegant and probably faster.
>>>
>>>
>>>
>>> On Aug 10, 2011, at 8:24 PM, Paul Raeburn <praeburn.li...@googlemail.com>
>>> wrote:
>>>
>>> >
>>> > We have been using references tot he input node and then values to get
>>> > values from a camera node.  ie. NoOp1.input.focal
>>> >
>>> > This works fine but breaks if there is anything in between the NoOp and
>>> > the camera, so you can tidy up the script with Dots or end up with 
>>> > multiple
>>> > cameras just to be tidy.
>>> >
>>> > Is there a way to get camera stream directly, or even the name of the
>>> > camera node from the stream?
>>> >
>>> > thanks
>>> >
>>> > Paul Raeburn
>>> > _______________________________________________
>>> > Nuke-users mailing list
>>> > Nuke-users@support.thefoundry.co.uk, http://forums.thefoundry.co.uk/
>>> > http://support.thefoundry.co.uk/cgi-bin/mailman/listinfo/nuke-users
>>> _______________________________________________
>>> Nuke-users mailing list
>>> Nuke-users@support.thefoundry.co.uk, http://forums.thefoundry.co.uk/
>>> http://support.thefoundry.co.uk/cgi-bin/mailman/listinfo/nuke-users
>>
>> _______________________________________________
>> Nuke-users mailing list
>> Nuke-users@support.thefoundry.co.uk, http://forums.thefoundry.co.uk/
>> http://support.thefoundry.co.uk/cgi-bin/mailman/listinfo/nuke-users
>>
>> _______________________________________________
>> Nuke-users mailing list
>> Nuke-users@support.thefoundry.co.uk, http://forums.thefoundry.co.uk/
>> http://support.thefoundry.co.uk/cgi-bin/mailman/listinfo/nuke-users
>
>
> _______________________________________________
> Nuke-users mailing list
> Nuke-users@support.thefoundry.co.uk, http://forums.thefoundry.co.uk/
> http://support.thefoundry.co.uk/cgi-bin/mailman/listinfo/nuke-users
>
_______________________________________________
Nuke-users mailing list
Nuke-users@support.thefoundry.co.uk, http://forums.thefoundry.co.uk/
http://support.thefoundry.co.uk/cgi-bin/mailman/listinfo/nuke-users




--------------------------------------------------------------------------------
_______________________________________________
Nuke-users mailing list
Nuke-users@support.thefoundry.co.uk, http://forums.thefoundry.co.uk/
http://support.thefoundry.co.uk/cgi-bin/mailman/listinfo/nuke-users

-- 
erik winquist
weta digital

--------------------------------------------------------------------------------
_______________________________________________
Nuke-users mailing list
Nuke-users@support.thefoundry.co.uk, http://forums.thefoundry.co.uk/
http://support.thefoundry.co.uk/cgi-bin/mailman/listinfo/nuke-users
_______________________________________________
Nuke-users mailing list
Nuke-users@support.thefoundry.co.uk, http://forums.thefoundry.co.uk/
http://support.thefoundry.co.uk/cgi-bin/mailman/listinfo/nuke-users

Reply via email to