Wednesday, October 22, 2014

Software Technologies: Houdini Marble Machine

My other class this month has been Software Technologies, a class that allows us to use new programs similar to the programs we've used cor the last year. This allows us to branch out in case we land jobs that do not support our accustomed programs like Maya. One of the programs we've been learning has been Houdini, which is like a mix between Maya and Nuke. The node based layout allows for you to visualize the edits you make to your scene, while the program reacts similar to Maya.

Our job for this project was to create a marble machine using rigid bodies which are already in Houdini's interface. Together with my girlfriend Kaycee Kendrick and our good friend Emily Childrey, we modeled out our pieces for our scene using Maya, a tool we were much more comfortable with. We then took all of our individual objects and imported them into Houdini using file nodes and transform nodes to place them in the correct position.


I wish I could say that everything went smoothly after this point to the end, but that could not be farther from the truth. That would be too easy, now wouldn't it? Houdini is such a very complex program, but a lot of the complexity runs beneath the hood, and everything usually works. Turning the marble into a moving rigid body worked perfectly, as it reacted to gravity and contacted other objects. The problems came when we turned the pieces of the machine into static rigid bodies. When the ball would pass over them, the ball would react to a non-existent bounding box that did not make sense. We searched high and low and eventually found that by playing with different elements of the rigid body solver allowed for the marble to react with the objects properly.

With that issue solved, the simulation could begin. First, an invisible cube on a motion path pushed the ball off the platform and into the machine. The ball would then react with, and roll down a slide.


 The ball then leaves the slide and falls onto a funnel, where the ball would spin around a few times until finally falling through the hole in the middle. We encountered a new problem here, as the ball would randomly clip through the funnel and fall to the floor. We found out that this was caused by the funnel not having very much topology, so when the ball would roll over a large face, it would not realize it was colliding with the surface, and would fall straight down.


Next, the ball would fall out of the funnel and into a tube where it would roll down and into a paddle. Simple, right? Nope. This particular piece did not get fixed as easily as the other objects and their bounding box issue. No, this time we had to change some settings in the ball as well to make it react properly, and it still has some issues. Regardless, it worked for what it was.

One problem that we noticed with this piece is that there was a clipping issue behind the tube as the ball fell. From the front, it is somewhat apparent during the final render. To fix this, I decided to do a quick camera cut which would not show the front of the ball falling through the floor for a few frames. I feel that this helped solve the issue easily, while keeping the quality of the animation.



The next piece of our marble machine was to knock over a paddle which would land on a seesaw. You'd think that hitting an object straight on would make it fall forwards? Well not according to Houdini. The paddle had a tendency to flop around and not even fall forwards at some points. I thought that it may have been clipping through the floor which was making it freak out, but I had lifted it up to avoid this. I actually had to lift it up very high and let it fall down. This allowed it to avoid the floor and fall properly on the seesaw.



The final section of our simulation is to have the ball launch off the seesaw into a cup. As the theme goes for this project, nothing worked as expected and this is no exception. We thought the force of the seesaw would be enough to launch the ball pretty high or forwards, but instead it launched it up about 3 inches. We worked with what we had, but found that the ball kept clipping through the cup. This was just a simple subdivide to fix, but it still clipped at the back of the cup. I decided to use another camera cut to avoid showing the back of the cup at all. After all was said and done, all I had to do was light the scene with 4 or 5 point lights and some visibility swaps.




And remember kids! Don't forget to set your project when you're rendering out! While I was doing test renders to see how Houdini's renderers worked, I rendered those images to my desktop. Stupid me forgot to change that output folder when I did the final render... And that's the story of how I had 450 files on my desktop that I couldn't stop.




All said and done, this project was honestly a big pain to work with. Compared to the rigid bodies, cameras, keyframe, lights, and just about everything in Maya, Houdini is not my favorite program to work with. Luckily, this was more about testing the program more than anything. Below is our final render! We hope you enjoy it!



Our team:
Drew Kedra: http://drewkedra.blogspot.com
Kaycee Kendrick: http://kayceekendrick.blogspot.com
Emily Childrey: http://emilychildrey.blogspot.com

- Drew

No comments:

Post a Comment