Saturday, October 25, 2014

Building a 1966 Bonneville in Softimage

One of the biggest challenges this month for me was getting a grasp of the program Softimage in my Software Technology class. I was always hitting the wrong hotkeys and to model a car seemed nearly impossible. But about half way through the month, I couldn't wait to show up to class every day and start working. My view on the program shifted entirely. So let's see what I came up with.

The method we were taught to model the car with was curve modeling. This is where you get a simple outline of the volume with curves and then snap points to it to crate the polygons. This was a new concept to me because I was used to box modeling where you start with a piece of geometry and just keep expanding off of that. This was the curve setup I made.


Before I go any further I should also provide some reference to what I was modeling.


Building the side of the car wasn't too bad once i got the curves in. What really puzzled me was how I was going to get the edge flow to wrap around the headlight and the fins in the back.


I decided to work on the back first. The main tools I was using was the Add Edge Tool, Add Smooth Edge Loop Tool, Extrude Along Axis, and Weld Point Tool. The Weld Point Tool was especially helpful because it was a quick way to grab extruded edges and merge them where they needed to be. T create the polygons I was using the "N" key which was a shortcut when combined with the snap function, I could easily place polygons along the curves I created.


I finally built up the confidence to move on to the front of the car (that and there was no other part to work on.) As soon as I realized how and where I can reroute the edge flow it became a lot less intimidating. Making the decision to build the headlight as a separate piece was also helpful because that way I could hide the excess edges behind the headlights.


This is a good time to mention that I was building this car for 3 mode or smooth mode, but in Softimage the smooth function is not the "3" key, its the "+" on the num pad. If I remember correctly the day I built the headlights was also the day I started to gain some confidence in the program. I could finally start seeing the model come together.


I went back to add more detail to the back as well as the necessary holding edges so the model held it's shape properly. Going back to the back fin also proved to be a challenge because routing all the edges toward the top got pretty messy while also trying to make it look good in smooth mode. Here is another real life reference I was using to get a better idea of the shape.


At this point I've also learned some new more effective tools and hotkeys. Instead of the Add Smooth Edge Loop, I now used the "]" key this will allow you to add a vert with the click of the left mouse, but using the middle mouse would add an edge loop, one that wouldn't compromise the shape like the smooth edge loop. Instead of the Extrude Along Axis Tool which took your selected edge and pre-extruded it. I switched to "Ctrl+D". This duplicated the edge without moving it so I could adjust it however I wanted. It saved me a few extra clicks, but in the long run that really matters. Just switching to those two tools made me faster and more efficient, allowing me to reach my next milestone.


The next step was just adding more detail and the tires. The tires weren't that bad because I had modeled tires before in Maya, and the same rules applied.You want to make one piece of the tread and then duplicate it a bunch of times and the revolve them to get the circular shape. Seeing the final product really got me really excited because I had never made a full car in Maya, so doing it in Softimage really increased my confidence in my ability with the program.



Now to have some fun with it! Until next time.

Giving Bugsy a Voice

For our second project in Character Animation 2, we had to pick from a set of sound clips and animate the Bugsy rig around that. We were encouraged to pick a clip we hadn't heard before so we pick our own acting choices, not the actors. A big part of this project was developing the story of the character, what he or she was doing before the dialogue. This helps push the emotion and believability. This was the sound clip I chose:
Put that had on me again, you wont get it back.
Deep voiced and aggressive, I imagined it coming from a mob boss that just had one of his workers disrespect him. This also made me think of the line "It's not a threat, it's a promise." All of these thoughts influenced my acting choices, like putting the character's power center in his chest, which can be seen in his step, this power center is often used to show dominance or confidence. Just like the last project, I developed a backstory that gave reason to all my choices.
As a child he was not in a wealthy family, in fact they were quite poor. They couldn’t afford all of the luxury that others could. After his parents passed away he was determined to be more successful and well off, in honor of them. For a very long time, conventional methods of work didn’t work out, so he got into the underground industries like drug cartels and similar businesses. With his determination and attitude he made it to the top in a few years and now owns multiple cartels. Being raised by honest parents he still holds values like respect and motivation very highly. But throughout all his years of money, power, and respect, he would be willing to trade it all to be with his parents again. Though this side of him rarely shows hue to his tough as nails exterior.
I'd say this backstory gives the character enough motivation to act the way he does. I also drew out some pre-pro in the form of key poses, storyboards, and action breakdowns. The final changed a lot from the pre-pro, but that doesn't mean there wan't any helpful information in here.


For this first pass I animated this motion where Bugsy brushes the dust off his shoulders, reacting in disgust to being touched. The more I looked at it, it just didn't look right, like something my character would do.


A very helpful critique from an instructor pointed me in the direction of old film noire as reference, that genre was filled with the soft spoken badasses I was looking for. This new information kind of forced me to rework my idea and I ended up starting from scratch, and I'm glad I did because I believe this gave me a lot more direction and helped sell the story better.


Obviously the changes here are completely different from what I had before, and to get back on schedule I had to put in some extra effort this week. You finally get to hear the sound clip but there's no lip sync. This is because it is very important to get a good base of the motion down first before messing with the mouth. Even without the mouth, good body motions can still sell the lines. But perfect lip sync and bad body animation can destroy a project.


From the second pass to the third I added in the secondary and overlapping action of the tail and antennae. I also made a few tweaks here and there to the animation, making some motions a bit more prominent.

For the final turn in, I took one more critique and fixed some details. In the beginning I raised Bugsy up a little so his right leg isn't bent as much, this way that leg looks like it is supporting the rest of the body more. That didn't take long at all thanks to the graph editor. All I needed to do was grab the right arm and COG and raise the translate Y on al the poses. This is also where I finally added the lip sync and some more emotion in the eyes. As you can see I also added the cigarette here. I was having issues parenting that geometry to any of the curves on the rig. Because the cigarette had to be in a specific part of the finger there was no curve for that so it would just float next to the hand if I used the curve. The phone in my previous pantomime project was a bit easier because the fingers were not moving as drastically. Ultimately I just ended up hand keying the cigarette and I think it turned out really nice. It didn't take that long either because I only had to worry about the first few seconds. This is what  the final looked like.


After turning in the project I was really curious to see where this sound clip came from, some of you may have recognized it but it was new to me. It's actually from the 2010 movie The Book of Eli. I've never seen it, but just hearing the moment where this clip came from was really surreal. After two weeks of hearing it over and over and over again, it was nice to see someone else's take on it. Here's a link to the scene where the clip came from, just know it's a pretty violent clip so only click if you are ok with that.

This project concludes my month of Character Animation 2. I've learned so many valuable tools and techniques that are sure to come in handy in the future. I've also learned a bit more about developing effective pre-pro and finding good reference. Let me know what you think.

Friday, October 24, 2014

Building a Procedural Fence in Houdini

One of the first concepts we were introduced to about Houdini at the beginning of the month was the way that everything works in nodes and you can build models procedurally. The instructor showed us this with a fence that looked like any other, but then when he pulled a curve, the fence formed to that curve and gained the appropriate number of pickets to fill the gap. That got me really excited to use Houdini, but we weren't quite there yet. First there was Softimage, a program that I really wrestled with at first. This is where we modeled the various pieces of the fence. This was mostly done by just drawing curves and revolving them around an axis. this was the main tool I used because I was pretty intimidated by the program at the time.


After building the pieces, I exported them out as .obj files to be used in Houdini. Almost every little change in Houdini can be expressed by a node and you can go back and alter those changes. I started out with a simple curve (curve node). I then gave that curve more points (resample node). After that I grouped the corner points into one group and the in between points into another (group node), these point groups represent which get the posts and which get the pickets. To import those OBJs in you need a file node. I then merged them all together to get the final result (merge node). 


That was actually a pretty abridged version of the process, there are a lot of other nodes that play a very important role in making this work, and here they are. You can see the ones I previously mentioned make up a little under half of this network. But these networks can get pretty big the more complex the process gets.


The beauty of this node based system, like I mentioned earlier, is that you can go back and make alterations fairly quickly, much faster than a traditional package. In just 10 seconds the fence from above can turn into this.


As you can see, the pickets between the posts have now increased in size to accommodate the change. And all I had to do was go into the curve tab and change the distance between the points. Though I did not do this you can also replace the models entirely with differently by just importing in different ones. The applications are many when working like this. Say your working on a game that involves managing homes and as the player gets more houses, the fence expands. Instead of modeling every possible sized fence, you can do this and just change a value in the code as the player gains more houses. I'm really glad we were exposed to Houdini because It really dose seem to be an effective workflow.

Bugsy Pantomime

In Computer Animation 2 we had two projects over the course of the month, as well as various activities that focused on certain skills we needed for those projects. The first project was a pantomime featuring none other than Bugsy. We also learned a lot about pre-pro this month and the importance of developing a strong sense of who your character is. Without knowing who they are yourself, there is no way you can convey those ideas to others. So before even animating I developed my character through various traits like power center (which body part leads the motion), energy level, and use of space. I thought of my character as a spoiled rich boy who always got what they wanted and threw a fit if they didn't. Since my scene involved the character's phone breaking I thought this personality could perfectly compliment the scenario. Even throughout my pre-pro drawings I was considering things like the power center because having the visual reference definitely makes it easier when setting up the key poses.

Here is an excerpt from my characterization sheet that focuses on the back story of the character:

He is a spoiled brat who has had everything handed to him throughout his life so far. He is the type of kid that gets a new iPhone every year even though he doesn’t need it. This is because his parents are rich and have been out of touch with real society for a long time. Because money was never an issue he has time to focus on more petty endeavors like the quest for popularity. He has never been faced with a major tragedy or loss so this makes him oblivious to much of the world around him.
In addition to the written pre-pro there was also the drawn pre-pro, this consisted of staging and key poses, storyboards, and action breakdowns.

 

I had a lot to pull from once my pre-pro was done, by the end I ended up having to even cut some due to time constraints. But now I was able to jump into Maya and start setting up my block out.


At this point my main focus is getting the proper staging and putting in the contacts as well as some other key poses. A requirement for this project was to have three steps so I wanted to make sure they were all visible and still left room for the rest of my objects. The steps were also my focus for the second pass , this time adding the passing, up, and down poses, but I also brought in the cell phone so I could get a sense of how that would look in the scene.


From the second to the third pass a big part I was trying to develop was the moving hold. This was also the point I switched over from stepped to auto tangent so it aided the process a bit. I personally prefer auto when working on moving holds just because I think seeing them in real time makes a big difference because one frame can be the difference between too fast or too slow. I'll usually put the poses in on stepped but the reworking of them will be in auto. That's just me though, I say this a lot but there are a ton of ways to do do the same thing in this industry. Another thing I added in this pass was the motion of the phone hitting the ground. This was pretty necessary at this point because there was quite a lot going on around Bugsy's feet so I needed to make sure they had room to move and that it all looked good from the camera view.


In the fourth pass I started to think a bit more about what Bugsy was thinking, all throughout this process I'm getting critiques from the instructors and one thing that was mentioned was that the character needs to react to hitting the wall, which was something I was missing up until this point, it was also nice because I could turn this into a moving hold, this would help break up the action of my scene a bit more, between the walk and the freakout, having too much action in a scene without a break can be pretty overwhelming, like a paragraph with no periods.


In this fifth pass I added a lot of the minor enhancements that start to bring the character to life like the mouth movements and antenna bobs. I have kind of a bad habit of saving these for the end which I'm told adds a bit more work to the process, so I'm trying to be more diligent about adding this stuff earlier in the process. From a critique I also learned about the mechanics of my freakout motion and that it's actually very similar to the walk in that there are up and down poses in addition to the two I created. Adding these gave a bit more sway to the character and made him feel a bit more real in the motion.


Throughout these videos you've probably seen many iterations of the final ending pose. This was something I experimented with a lot because I was looking for a good silhouette that still had a readable emotion, was 3/4 view with the camera, and was not blocked off by or clipping through the glass wall. I was surprised by how little room I actually gave myself to work. In my final critique, the instructor just told me to ditch the ending pose and finish on the freakout, this way the audience ends on some action. I was a bit surprised because I was kind of fond of the fifth pass's ending pose, but ultimately keeping the audiences attention is most important.

In my final tweaks before turn in, I added some secondary motion in the tail which is kind of similar to the antennae as well as break the symmetry in some poses to get better silhouettes, and get rid of that ending pose. This is what my final looked like.


Had I had more time, I would have made a bigger push to get that ending pose working and maybe even bring some of my other pre-pro ideas into to animation. I original idea had a bit more humor in it and I really liked how it played out in my head. But that's not to say I didn't enjoy what I did create. The lessons and techniques I learned here will be very helpful in the future. Let me know any feedback you might have.

Wednesday, October 22, 2014

Basketball Simulation in Houdini with Rigid Bodies

Back to rigid body simulation! We've covered this before in Maya, that post can be found here, this time we're looking at Houdini. Being a program that specializes in visual effects, accessing the tools to crate the simulation was not that bad. But I'm getting ahead of myself, first we have to model the props.

Starting off in Maya with the basketball, there is actually a really quick and easy way to get the ridges in the ball, while keeping a nice, clean edge flow.  The way you do it is by taking a default sphere and changing the subdivisions to 16 and 16 and just rerouting the edges on the top and bottom. This will get the edges ready for the ridges.



After that it's just smoothing the mesh and extruding the proper faces to get those ridges. I chose to texture the ball too for more practice though I did not bring that into Houdini for the simulation.


Next I modeled the rim and tried some nets. Everything fell into place really well for the rim. I started with a torus and just extruded from there everything came out nice and symmetrical so adding edge loops for 3 mode was no problem at all. I even decided to take it a step further and add the hooks that hold the net, though in hindsight I probably should have followed my reference better and added more then 5 hooks.


On the other hand the net gave me some trouble. I tried two similar methods with different designs. The method I used was the quad draw, and I mapped out where I wanted the faces to go. I only did this for a small patch then I duplicated and used a bend deformer to rotate it around. The first one kind of reminds me of the plastic things that keep a six pack of soda together. I didn't include a net in the Houdini scene because I don't think my geometry would be good enough for simulation with its current topology, additionally that would be something other then rigid body simulation (more along the lines of nCloth in Maya.)


The other main piece of geometry the ball reacted with was the backboard. I modeled this using regular tools like add edge loop and extrude. Somewhere along the line though my geometry got sloppy. And I could no longer place edge loops on certain faces. This meant I could not add the sufficient holding edges for 3 mode. Because the back board is pretty angular though this wasn't much of a problem, I just kept it in 1 mode.


The final geometry I modeled for this simulation was the ground. I started off with a poly plane and added edge loops where needed. The round part at the free throw line I made using the quad draw tool (I really like that tool.) I the extruded the faces that made up the court lines. In a scenario like a game, these would probably be textures. I just wanted to exaggerate them so they are visible in Houdini.


The last step left in Maya is to line up everything. The project required us to have the rim 10ft tall and the ball be 15ft from  the rim. There is a lot of good reference out there for the dimensions of a basketball court. These are the images I used.


You might have noticed from the first image (or maybe you know from playing basketball) that the rim is 15 ft away from the free throw line, which lines up perfectly with the modeled ground geo. Managing the scale and dimensions can also be done while you model each piece, not necessarily at the end, it all depends on preference. Speaking of preference this step can also be done in Houdini with its image plane system, though I prefer to do it in Maya.

On that note, let's move on to Houdini. From Maya we want to export .obj files of the geometry to import into Houdini (In my case I had some objects that were meant for 3 mode, and the smooth node in Houdini was ruining their shape. In this case what I did was [Modify-Convert-Smooth Mesh Preview to Polygons] this took my 3 mode model and turned it to 1 mode by adding a lot more topology). This is done using the file node that comes in every geometry node you tab in. Once all that is in you want to make the ball a RBD Object, the backboard and rim be Static Objects, and spawn in a Ground Plane. 


Doing this will get you the necessary nodes in your AutoDopNetwork. From here it's all a matter of changing the right settings to get the desired result. There are many different ways to make the shot and it would de pretty boring if I just listed all of my values one by one. So instead I'll show you something a bit more fun.

                                     

Oooohh, so close. One thing I will mention about the settings that may help you if you decide to try this, when you get the ball on the right trajectory and its just about to enter the hoop but it bounces off of nothing and misses. This is an issue in the Geometry Representation under the Bullet Data menu of the rim. That was the biggest hurdle I had to deal with but after a bit of online research I managed to solve it. Now let's take a look at what I came up with.

                                    

A few things that I could have done differently had there been more time was, the ball doesn't rotate enough on the way to the rim if at all. I tried fixing this with the angular velocity on the ball, but I'm not sure if that was the right way to go. Another thing was the ball only bounces once after it hits the ground. Realistically I'd imagine it would bounce more, but adjusting the bounciness on both the ground and the ball didn't change this. Perhaps again they weren't drastic enough of changes. The last thing was the gravity, it just didn't feel like the ball had the proper weight of a real ball, but that could be a host of different sliders. If anyone knows any solutions to any of these issues please let me know. See you next time.

Tuesday, October 21, 2014

Software Technology and Character Animation 2

For the month of October I've been getting two totally different classes. One is Character Animation 2, which expands on what we learned in Character Animation 1. The other is Software Technology, a class that exposes us to different programs that we haven't covered so far, but may run into outside of school, Softimage and Houdini. I will admit Software Technology was a bit bumpy towards the beginning while learning Softimage, but as the month progressed and as I started to learn the workflow and shortcuts, things became a lot smoother. I also think Houdini is really cool, this class mainly focused on the modeling aspect of it, but there is so much potential in that program, it actually reminds me of Nuke because of the way it works with nodes. I've also learned a lot of new animation techniques in Character Animation 2 that I plan on applying in my demo reel. It's been a really busy month but a bunch of updates are coming soon as we reach the end of these classes. See you then.

Thursday, October 16, 2014

Applying the Motion Capture Pipeline

I learned a lot in last month's Motion Capture class and the final group project allowed my classmates and I to apply that knowledge to bring an idea to life. There was plenty of creative freedom so we tried to have fun with it. This was the final result.



We started by brainstorming the concept and building the storyboards, this was where we tried to get a sense of the timing since there was a certain limit we had to meet. This is also where we planned out what poses and actions we needed so we could get all the clips from the mocap actors, come capture day. We wanted to go for an older black and white silent film style so we drew a lot of inspiration from Charlie Chaplin.

Charlie Chaplin in City Lights
Once we got all of our clips on capture day we cleaned them up in Cortex. Some were a bit easier than others because some involved more complex motions, like falling over, while some were just walks and punches. Getting the clips cleaned up as much as possible was paramount to having an easy time in Motion Builder which is where the characterizing and animating would happen. In Motion Builder I used story mode to blend the different takes together. Part of the project requirements was to have three visible blends on in the camera shot. See if you can find all three. If you can't then I've done my job.

While I'm taking care of the animation in Motion Builder, my teammates were building other parts of the project. One person worked on lighting, while one did the environment building, while one did facial animation. By working with this type of pipeline we were able to have a clean consistent feel for the animation. Another possible pipeline we could have tried was splitting up everything based on time. This would mean one person did everything in their time range, including body animation, facial animation, lighting, camera, etc. then it would all be compiled at the end. The issue I have with this workflow is that it puts a lot of unnecessary work in the final stage of compositing, and in our situation, it probably would have not saved us that much time if any. Plus the biggest issue is that there are now five different cuts where five different styles of work happened so it could make the animation look choppy and inconsistent, same goes for lighting.

Something to note about the facial animations, which one of my teammates did, is that while I was working on the blending of the animation in motion builder I gave him one of my initial passes so that he could start working in Maya while I was still cleaning up and enhancing the motions. This way we were both getting work done and we could replace the body animations later while not affecting the facial animations. This is a common workflow technique for riggers and animators, where the rigger will give the animator a simple rig to get the blocking done and later give him the final one for more detail. Same goes for modelers and riggers, the riggers only need the volume and geometry that deforms, not necessarily all the wrinkles and pores on the mesh, so it's all added later. But it all depends on situation and time, but you always want to maximize efficiency.

I also handled the compositing of the final product, which was done in After Effects. Like I mentioned earlier we really tried to capture that old film look, this is what influenced my decision to create the film grain and vignette. This theme also influenced my font choice. Below are a few resources that I used to capture to look we were going for.

Silent Movie Title Card
Some Good Silent Film Fonts
Song - Hyperfun

This month was a great new learning experience and I'm really glad we got to apply the work in such a way. See you in next month's classes.

Thursday, October 9, 2014

Layered Animation and Story Mode in Motion Builder

With everything motion capture can do for you, it's not 100% perfect. There are things that need to be tweaked after the footage is cleaned up. This is where animation layers in Motion Builder come in handy. They are kind of like animation layers in Maya but they have a few more features, like the ability to create zero keys, which are special keys that preserve the initial motion so you can isolate the motions you want to change, and keep the ones you don't. This is an additive process so there is no penalty for messing up, just delete the layer and make a new one. Below is a clip with a default basketball shot provided to us on the left, and the right one is my edits with animation layers to enhance the motion.


This next clip is the entire Motion Builder pipeline from characterizing the motion to editing the clips using story mode, and using animation layers. The ball follows along using a parent constraint that has a keyed weight to swap it from one guy to another.


Thursday, October 2, 2014

Visual Development - Bringing it all together

With all the different objects we've been working on over the month, it's now time to combine them and composite them into one appealing scene. To have as much control as possible in Nuke, I rendered out the images in passes as well as the different types of lights in the scene as different light layers. Doing this, I learned a lot about Maya render layers and render stats. For the scraper and box the passes I used were beauty, diffuse, indirect, reflection, and specular.



For the bottle I also added refraction in addition to the five passes above.


The light layers were a bit different. Instead of passes, they were different render layers with different lights active on each layer.


This way we can color correct different lights without effecting the others. I gave it a bit more focus by making a vignette around the geometry. I also added some contrasting blue and orange lights in the corners. This is what I came up with.


I really enjoyed this month of Visual Development. I learned so much that can ultimately be applied to any discipline, because everything needs some sort of lighting setup so I'm glad I have these tools under my belt now. And just remember when working on a project like this, have fun and put your own unique twist on it. The more "you" you put into it the more fun you will have with the long term projects. See you soon.