Ok, I thought maybe the way I created it might have made a difference
(camera=nuke.nodes.Camera2()), but no -
The frame was a big "duh" moment for me, but in fact that didn't matter
either.
This is within nuke:
|
nuke.frame(101)
camera =
nuke.createNode('Camera2', 'file
/u/dm2/Users/COM/Sandbox/Labo/CAMERA_MAYA/S1200/DM2-S1200-P0165-Anim_Clip.fbx
read_from_file True')
camera.forceValidate()
camera['fbx_take_name'].setValue('Take
001')
camera['fbx_node_name'].setValue(8)
camera.forceValidate()
|
|
camera['focal'].value(),
camera['transform'].value()
# Result:
(35.0, {0.242858,
-2.77556e-17, -0.970062, 0, -0.379502, 0.9203, -0.0950097, 0, 0.892747,
0.391214, 0.223503, 0, -225.534, 7.13724, 118.949, 1})
|
Same commands above, pasted into a terminal session:
>>> camera['focal'].value(), camera['transform'].value()
(21.354494094848633, {1, 0, 0, 0, 0, 0.970598, -0.240708, 0, 0,
0.240708, 0.970598, 0, 0, 71.3, 287.5, 1})
Changing the frame doesn't change it in the terminal, but it does
change (the fbx file has camera animation) in the GUI.
Hey - thats funny! I just noticed, it appears we are using the same
camera!!
JRAB
Ivan Busquets wrote:
I think John specifically wanted to make this work in a
terminal session.
And for the knobs to be populated correctly in a terminal
session, you'll need to use .forceValidate(), I believe.
John, can you post an example of what's not working for you?
The technique I mentioned before seems to work for me in a nuke
-t session.
Ex:
>>> cam = nuke.createNode('Camera2', 'file
/path/to/cam.fbx read_from_file True')
# If you need to populate the fbx node names, then call
cam.forceValidate() here
# If you already know what they should be, then just set the
values
>>> cam['fbx_take_name'].setValue('Take 001')
>>> cam['fbx_node_name'].setValue('camera1')
# At this point, the knobs won't be filled in, and will have the
default values as you described
>>> cam['focal'].value(), cam['transform'].value()
(50.0, {1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1}) �#
camera defafults
# But if you call cam.forceValidate(), it should populate them
>>> cam.forceValidate()
>>> cam['focal'].value(), cam['transform'].value()
(21.354494094848633, {1, 0, 0, 0, 0, 0.970598, -0.240708, 0, 0,
0.240708, 0.970598, 0, 0, 71.3, 287.5, 1})
Is the above not working for you? Maybe make sure you're asking
for the knob values on the right frame. Keep in mind that, on a
terminal session, you start on frame 0.
Hope that helps.
Cheers,
Ivan
On Mon, May 7, 2012 at 9:34 AM, Micah Henrie
<[email protected]>
wrote:
This
works for me in 6.3v6--no forceValidate for what it is worth....
def loadCameraFbx(fbxPath, name='render_cam', fbxNode=None):
��� """
��� Create a camera node and read in C{fbxPath}
��� """
��� if not os.path.isfile(fbxPath):
������� print 'Could not find %s; unable to load camera' % fbxPath
������� return
�������
��� # create camera node
��� camNode = nuke.createNode('Camera2', 'file "%s"� read_from_file
True'� % fbxPath)
��� camNode.setName(name)
��� camNode['fbx_take_name'].setValue('Take 001')
���
��� if fbxNode:
������� camNode.knob('fbx_node_name').setValue(fbxNode)
���
��� print 'Created camera "%s" from %s; node: %s' % (camNode.name(),
fbxPath, fbxNode)
��� return camNode
From:
"John RA Benson" < [email protected]>
Cc: "Nuke Python discussion" < [email protected]>
Sent: Monday, May 7, 2012 4:12:39 AM
Subject: Re: [Nuke-python] reading a camera fbx file in a
terminal session?
Has anyone managed to load an fbx camera via a script or terminal mode?
thanks
JRAB
John RA Benson wrote:
Ok, now that I'm back at the studio and trying to
actually
make this thing work:
camera.forceValidate() seems to load the file, but not
really. I
get the fbx_take_name and fbx_node_name lists from the file, but if I
set them, nothing happens. The lens is incorrect, matrix and
translations not set, etc. �Even after doing a camera.forceValidate()
after each operation.
Using the same commands in the GUI works fine.
Any other ideas?
jrab
On Apr 21, 2012, at 10:28 AM, John RA Benson wrote:
Fantastic! Yes, there's a lot of actions I need to do
after that, but none would work unless the camera loaded. Pretty useful
function to get the hash updated too.
I really need to update my docs link to the 6.3x
versions...
Many many thanks!!!
JRAB
On Apr 20, 2012, at 7:24 PM, Ivan Busquets wrote:
Hi John,
Try:
camera = nuke.createNode('Camera2', 'read_from_file true file %s' %
fbxfile)
followed by:
camera.forceValidate()
You'll probably need to manually set the fbx_node_name knob to the
actual camera you want as well.
Hope that helps.
On Fri, Apr 20, 2012 at 10:12 AM,
John
RA Benson <[email protected]>
wrote:
Hey
there -
I'm trying to load an fbx file in a terminal session - trying to script
an automatic process. I'm stumped at setting up my camera.
> nuke -t
fbxfile = '/path/to/fbxfile.fbx'
camera = nuke.createNode('Camera2')
camera['read_from_file'].setValue(True)
camera['file'].setValue(fbxfile)
doesn't load it, neither does
camera = nuke.createNode('Camera2', 'read_from_file true file %s' %
fbxfile)
The file knob is set, but it's not loaded so I can't really do much
after that. Any ideas?
Both of those work from the GUI, but the idea is to run this in a
script.
Thanks
JRAB
_______________________________________________
Nuke-python mailing list
[email protected],
http://forums.thefoundry.co.uk/
http://support.thefoundry.co.uk/cgi-bin/mailman/listinfo/nuke-python
_______________________________________________
Nuke-python mailing list
[email protected],
http://forums.thefoundry.co.uk/
http://support.thefoundry.co.uk/cgi-bin/mailman/listinfo/nuke-python
_______________________________________________
Nuke-python mailing list
[email protected],
http://forums.thefoundry.co.uk/
http://support.thefoundry.co.uk/cgi-bin/mailman/listinfo/nuke-python
_______________________________________________
Nuke-python mailing list
[email protected],
http://forums.thefoundry.co.uk/
http://support.thefoundry.co.uk/cgi-bin/mailman/listinfo/nuke-python
_______________________________________________
Nuke-python mailing list
[email protected], http://forums.thefoundry.co.uk/
http://support.thefoundry.co.uk/cgi-bin/mailman/listinfo/nuke-python
|