Friday, May 27, 2016

Software Technology

Below is a blog I wrote after finishing Software Technology class at Full Sail University. Listed here and most of my projects I did this month while taking the class, and some information on how some things were done.

The software we worked in was Autodesk by Softimage and Houdini by SideFX, and below is kind of a written version of the journey. I had incredible instructors and was given access to extremely valuable information throughout the course of the month. Including information on freelance work, 3D printing, and how to produce high quality products from home. 


Software Technology:

This has been an absolutely incredible month in which I have gained incredibly valuable knowledge, not only in different software packages, but in new modeling techniques, and in areas of business as well.

I began this month by learning a Software by Autodesk called Softimage. This task was given by my instructors in a class I just took called "Software Technology." Now you would think that at a school that is always teaching the newest things, encouraging us to upgrade to brand new packages, and is focused on how the industry is moving forward, we would learn to work in some sort of brand new software on a project that would absolutely push the limits of technology! Though that may be the case sometimes, that was not how it went this month. We were introduced to Softimage.

           


Now Softimage is not a bad program at all, it is actually quite useful! But it's like Maya's little cousin, and once you know Maya and have to switch to a software like this, you realize how absolutely spoiled you've been. While you can accomplish quite a bit in Softimage, it definitely is not something I would ever encourage anyone to use above any other package that I've worked in. It has a lot of problems, but it causes you to really think your way around issues and become a creative problem solver. At the beginning of the month, I knew that my outlook on things would be changed and I knew that valuable information and ways of thinking would come of it, but muscling through it was a process in and of itself. I have learned though, that I can pretty much get down any software within about a week, and I'm glad to have another software package to add to my resume. 

One of my goals was to model a car in Softimage. I chose, of course, this beauty: 
         

 This was the reference photo used. I'll show the model a little bit closer to the end.

The first thing I modeled while getting used to Softimage was a fence. Each piece was done individually: The Post, the Picket, and the Rail.

Of course, they were very simple, as I was just learning the software. But doing something as simple as this can give you a great idea of how to navigate, operate, and model in a software you've never touched before.







The reason they were done separately was so they could be reassembled in Houdini later on.

Working in Houdini was absolutely fantastic! I love node based applications, and Houdini was extremely useful! I will definitely be using it quite a lot in the future. For anyone looking to get into the film or game industries, I highly recommend learning Houdini if it applies to your desired area of the field.

This month was my first time working in Houdini as well, so I did some procedural modeling of several objects, which helped me learn how to use Houdini as well. While I don't recommend using Houdini to model, it can be useful for specific things, such as the Koosh Ball and the object duplications seen below such as the fence or creating a hundred different randomly generated pieces of cheese. For things like that, it is absolutely wonderful to work with. 

Here is a model of a Panther Couch that was made in Houdini. 

Being a node based application, you can see that it took many nodes just to make a simple model. For working in a practical scenario, I recommend building your models in other packages, then importing them as OBJ's. That essentially would cut those 30 or so different nodes down to a single object node in which you could simply bring in the OBJ file.



Needless to say, why make life harder on yourself? Model in whatever package works best for you.
One case in which it really would be quite helpful is if you needed to create something such as a Koosh Ball with random extensions and colors. Being able to incorporate expressions that randomize things such as placement and color is an invaluable ability, and something that Houdini handles quite well.


As you can see below, the colors are randomized, the placement is pretty randomized, and the lengths of the strings coming off the sphere are all randomized as well.

The Koosh is extremely simple, as you can see in the node editor! WAY simpler than creating even a couch! And here's how it's done. 
The Point node is putting points all over the sphere. The Scatter node is then scattering those points all over the surface randomly, and the frequency of the scattered points can be adjusted and edited within the node. The Line node on the right is creating a path for the polywires to follow, and the lines are copied onto every individual point through the Copy Node. From there, the Sphere and Copy nodes are merged together and with the addition of randomized colors, we get our final product. 


Through a process that is actually shockingly simple if you understand Houdini well, the final result with the cheese looked like this:



With a little extra work, and a little more organization, (but using some of these same principles) I was able to create a beautiful set of Dominoes as well.


Houdini is absolutely fantastic with gravity and simulations, so after creating these, I was able to simply turn each domino into an RBD Object, then use an invisible sphere hanging from a Pin Constraint to knock over the first domino, which caused a perfect chain reaction.
The simulation will really chug and be slow with high poly objects, so I did the initial simulation on simple cubes the shape of the dominoes, then copied the animation of the simple primitives onto the dominoes. Operations like this work extremely well in Houdini, which makes it extremely useful.


Here's a more in depth look at the Domino project for those of you who may be interested.



One of my favorite uses for Houdini is probably this. By importing the OBJ's of the Fence Pieces that I created in Softimage, I was able to assemble the fence within Houdini. By creating a Curve and drawing it on a surface or a grid, I can basically draw where I would like the fence to be. Then you can put points on that curve and choose how far apart you want those points to be. Those points become the markers for where you would like the lay out the fence pickets and posts, and you can adjust how many pickets you want between each post, etc... With a setup like this, I can simply draw a curve wherever I want there to be a fence, and Houdini automatically calculates and places the fence where I want it to be. This is extremely useful in environment modeling and in other operations, and I am so looking forward to eventually using this in the professional world.



While working on all of these projects, I was also improving my vehicle as well and preparing to implement it into a Houdini scene in which I would crash it through a wall.

With a low resolution version of the vehicle, I was able to simulate the wall crash at an early stage so I could continue working on the high res model in Softimage.



The car finally turned out pretty well. I would personally call this a work in progress, but having been done in a software that has a lot of issues and is not quite as friendly as something like Maya, I feel it turned out pretty decent.

Left:
Final Car









Below:
Vehicle with Wireframe

 



Left:
Vehicle rear view. 












The final project for this month was to create a working marble machine. I was made the group leader for the project and was responsible for some modeling, running the simulation, and project assembly. We worked hard on it for the short time we had to make it, and had a great success.

The prop that I specifically focused on the most was the purple prop in the video below.
I could go into an explanation of all of the entire project, but instead I will quickly explain my prop. 
I wanted it to be like a working machine, so after modeling the prop itself, I made each individual step an RBD Object, and made the other pieces Static Objects. The wheel at the bottom was animated to spin, and being a Static Object, it would push the blocks up and down in an alternating manner.
In the beginning, during the simulation, the blocks would fly out and all over the place. When I did get them to work, they were extremely jumpy. The way I fixed this was by placing a constraint (the red) on each individual block that only allowed it to move up and down in the Y axis. This eliminated most of the jitter. I tried every constraint in Houdini that I believed would work, and the Slider Constraint proved to be the most helpful. With some tweaking, and by setting Friction and Dynamic Friction Scale to "0", I was able to eliminate all jittering whatsoever. 
I moved on with the project, and somehow when I arrived at the end and ran the simulation, the jitter had returned but not quite as much as before (and the pieces stayed in place).


Overall, the project turned out pretty well despite the jittering of the steps, and we were all pretty happy with our final product.

Here is a video of the completed Marble Machine:


Overall, here are the things I have taken away most from this month of study:
There are always things you don't know.
There are a thousand ways to do everything.
Having knowledge of software under your belt, even if it isn't the most common, can be extremely valuable and/or provide you with an extremely valuable learning experience.
And a whole lot more. 

I am currently working more on my own Character Models and building a portfolio.