Glad to hear everyone's input!  It sounds like a node network is a good way
to go...it's just a matter
of writing code to sensibly manage with these connections.  David, I'm
downloading your presentation now
and will definitely look through it.

On Wed, Jan 13, 2010 at 8:56 PM, David Hunt <[email protected]> wrote:

> I am also a big fan of managing Maya scene data with message
> connections and network nodes.  A few years ago we designed a general
> purpose metadata node architecture for use in character rigging.  It
> has solved pretty much all of our problems with finding objects in
> scenes which has enabled us to write some pretty cool animation and
> pipeline tools.  By relying on the metadata node network we were able
> to remove all of the conditional explicit traversal in favor of what
> we now call Semantic Traversal.  It worked well enough to extend to
> other things beyond character rigs such as environments, effects,
> cameras, lights and anything else we could throw at it.
>
> Nodes, attributes and connections in Maya are a great structure to
> work with because they can be set up as similar to classes in Python.
> This can also be read and written to external data files such as XML
> relatively easily.  Each one of these formats has its place in a full
> toolset and they are all nicely compatible with each other as long as
> you define some good general purpose conventions up front and a
> manager module to work with them.
>
> This was the topic of an Autodesk Masterclass I did in Asia in 2008
> and a GDC talk last year.  You can check out the GDC material here:
>
> http://downloads.bungie.net/presentations/ModularProceduralRigging.zip
>
> -David
>
> On Jan 13, 7:10 am, Judah Baron <[email protected]> wrote:
> > I don't see using connections as inelegant at all. Actually, it's the
> > cleanest and most reliable way to manage many relationships and
> associations
> > in Maya. It's a manifestation of Maya's core architecture and its main
> > strength. If you look at the way Maya's default nodes work together, or
> the
> > way mental ray is implemented you'll see the same thing. The benefit is,
> as
> > Chad suggests, that you don't have to worry about what the node is called
> -
> > whether it moves around in the DAG, changes name through the UI, or the
> > containing file becomes a reference - as long as the connection is
> > maintained, your relationship is intact and management of that
> relationship
> > is in Maya's hands. As soon as you start tracking nodes and relationships
> by
> > name you take on the responsibility of reproducing what Maya already
> does,
> > which in turn means you will need to generate and maintain a whole new
> layer
> > of code.
> >
> > We use a lot of message connections in our system and it is very
> reliable.
> > It's so reliable that I can't remember what the connection tracing code
> > looks like because it requires so little maintenance. It's been in place
> for
> > around three years, since we started the company, and has not changed
> much.
> >
> > -Judah
> >
> > On Tue, Jan 12, 2010 at 10:12 PM, John Patrick <[email protected]>
> wrote:
> > > Thanks Chad.  I guess I'm doing a little wishful thinking here.  If
> that
> > > unique id was easily accessible, this might work but without it I
> suppose
> > > messages are still the way to go.  Onward and upward...
> >
> > > On Tue, Jan 12, 2010 at 9:30 PM, Chad Dombrova <[email protected]>
> wrote:
> >
> > >> you could pickle to a string and then add that to a string attribute
> on
> > >> the node.  the advantage of .messages is that if a node is moved in
> the DAG
> > >> or renamed the connection remains, but pickled string data containing
> object
> > >> names will become invalid.  ( on a side note: houdini creates a unique
> id
> > >> for every node in every file for all time.  that's pretty handy.  i
> wish
> > >> that maya would do that natively, though there are ways of hacking it
> into
> > >> place.)
> >
> > >> -chad
> >
> > >> On Jan 12, 2010, at 9:10 PM, JP wrote:
> >
> > >> > Hi all,
> >
> > >> > I'm currently working on a script that allows for space-switching
> > >> > between objects, and came across some general questions regarding
> data
> > >> > persistence.
> >
> > >> > In short, I have a couple classes I've created that represent
> parents,
> > >> > children, etc, and was thinking about how to keep track of some of
> > >> > this data.  In the past, I've used the tried-and-true method of
> > >> > connecting .message attributes between objects and then checking for
> > >> > them later.  While this works, it's not terribly elegant, and when I
> > >> > start having a lot
> > >> > of data I want to keep track of, it becomes cumbersome to inspect
> all
> > >> > of those connections.
> >
> > >> > I was wondering if anyone had experimented with creating file-like
> > >> > objects from script nodes (or other nodes) that would allow
> something
> > >> > like this:
> >
> > >> > f = ScriptNodeFile("spaceSwitching", "r")
> > >> > f.write("Some line of text \n.")
> > >> > f.close()
> >
> > >> > It would also be very very cool if you could pickle data to this
> > >> > ScriptNodeFile object!
> >
> > >> > Obviously, pickling/saving an external file with this data would
> work,
> > >> > but I'm almost certain these would be quickly lost in our file
> > >> > system.  I think it would be very handy indeed to be able to store
> and
> > >> > recall data to a node within the scene file.  Just wondered if
> anyone
> > >> > out there had come across anything like this, or had any bright
> ideas
> > >> > that might help me with this sort of thing.
> >
> > >> > Thanks!
> > >> > --
> > >> >http://groups.google.com/group/python_inside_maya
> >
> > >> --
> >
> > >>http://groups.google.com/group/python_inside_maya
> >
> > > --
> > > John Patrick
> > > 404-242-2675
> > > [email protected]
> > >http://www.canyourigit.com
> >
> > > --
> > >http://groups.google.com/group/python_inside_maya
> >
> >
>
> --
> http://groups.google.com/group/python_inside_maya
>



-- 
John Patrick
404-242-2675
[email protected]
http://www.canyourigit.com
-- 
http://groups.google.com/group/python_inside_maya

Reply via email to