Hey Ron,

I finally got a minute to take a look at your code, and I think it’s pretty 
clear that the regular expressions are simply failing to match meaningful 
pieces of the incoming data. However, having done AE keyframe parsing myself in 
the past (for corner-pinning), I think you may be overcomplicating the 
situation a little. I would suggest switching to simple per-line tokenization 
based on simple whitespace splitting (which Python makes ridiculously easy), 
with logic similar to this:

1) Break your raw data into lines (with rawdata.splitlines())
2) Find all 'Transform *' header indices in your line list
3) Starting at each header index + 1 extra line (to account for column 
headers), loop until you hit the next header index (or blank line).
4) At each line, simply use line.split() to tokenize it into strings 
representing each column, cast each to an appropriate value, and add it to a 
list of keyframes.
5) For the header, you know it will be all lines up to the first meaningful 
keyframe block, and it’s easy enough to do the same and parse each line based 
on its text. I would just grab those values first and use them to do on-the-fly 
image space conversion for things like position.

Also, depending on how many different types of keyframes you want to paste in, 
you may want to consider a simple hierarchy of functions (or even classes) for 
parsing different types of keyframe blocks (Position, Rotation, Scale, ...), 
and maybe even creating the different types of nodes in-line. They will all use 
the same basic technique for extracting raw data, but then each would be able 
to handle it slightly differently.

Anyway, hope this makes sense.

-Nathan


From: Ron Ganbar 
Sent: Friday, June 01, 2012 5:17 AM
To: Nuke Python discussion 
Subject: [Nuke-python] AE Transform to Nuke

Hi all, 
so I've been trying to write this AE Transform to Nuke Transform parser where 
you simply copy keyframes in After Effects and paste them into Nuke and you get 
a Transform.
I got it to work too after a lot of help from the forum - thanks everyone!
But when I collected it into a function and created a callback for it, it 
broke, and I don't know why. It's been doing my head in for the past three 
weeks and I can't figure out why!

I was hoping someone would take a look at it.

I'm attaching two files:
AE_to_Nuke.txt is a copy of a few keyframes from After Effects. This is what 
you should copy then paste in the DAG to test the function.

AE_to_Nuke.py is the function I wrote, including the callback at the bottom.

Any help would be greatly appreciated.

Thanks,
Ron Ganbar
email: [email protected]
tel: +44 (0)7968 007 309 [UK]
     +972 (0)54 255 9765 [Israel]
url: http://ronganbar.wordpress.com/



--------------------------------------------------------------------------------
_______________________________________________
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

Reply via email to