Sunday, July 27, 2008

Integrating Maya and Shake

In Houdini 3D and 2D composite features are packed in one software but most 3D software has no composite functionalities. I think it is not natural, it hasn't become a big problem but there is no reason they cannot be in one package. Having them in the same place will be good not only for smooth image data transfer but mixing 2D and 3D functionalities to generate one image (composite an image, send it to 3D to build a 3D object which has the shape similar to what's on the image, render it in 3D, composite it with other images, pass it to 3D again to make the image as a source of particle, ... ). Though not as good as Houdini, I thought if I could integrate these two softwares with my Maya and Shake, and I made an experimental system.


(Click to see a movie)
































Internally It is implemented on a generic Shake node which behavior is determined by Python scripts. It is similar to PythonNode in pyshake but higher abstraction level and less generic.























Manual and reference.
http://www.asahi-net.or.jp/~iy7k-tmr/ShakeMayaRender/index.html

summary.
http://www.asahi-net.or.jp/%7Eiy7k-tmr/ShakeMayaRender/summary.html

3 comments:

mihai said...

wow, that pretty impressive!!!

you really studied the Shake SDK :)

what i like the most is how the changes are reflected from/to maya? how did you do that?

hohehohe2 [at] gmail.com said...

> wow, that pretty impressive!!!
Thans you.

> you really studied the Shake SDK :)
yeah but not as fluent as Maya yet.

> what i like the most is how the changes are reflected from/to maya? how did you do that?

For images, I just used file (I thought about other options but simple approach will be better), and for informations, Pythons (in Maya and in Shake) talks each other to exchange data. Always Shake Python talks first, and Maya Python gets it in a subthread and calls executePythonCommandOnIdle(). Maya Python returns the result back to Shake, Shake gets it and reflect the result to the Shake node tree if needed. Currently Shake always waits for Maya to return the result but I should modify pythonCommandPort
http://koichitamura.blogspot.com/2008/04/first-entry.html
so that Shake can send Python command to Maya without always being blocked.

mihai said...

pretty complicated :)

congrats! make sure you post your progress here :)

cheers