nav2

Showing posts with label soda trip. Show all posts
Showing posts with label soda trip. Show all posts

Friday, March 1, 2013

Blender-->maya pipeline. Setting a reference network



Getting the stuff from blender to maya had its quirks.
I'm gonna share this mini tutorial with the hope it will save somebody else the frustration that I had to go through.

If  you pose your assets and export them together to an fbx file, this is what you are going to get in maya.

To get around the mesed up translations and rotations, I had to apply all object's coordinates. This in blender terms means that their local origin is going to move to the world origin.
That unfortunately stacks them on top of each other
Each is on its own sepparate layer in blender, so its easy to toggle that mess off and work on stuff individually.

Another thing I did was making sure my scale is the same in both packages. To do this I set up the metric system in both to be consistent. One grid square=1 meter (scale =.01 in blender). I set the same values in maya in advance.

Then I export it with the following settings. 

modifiers are being applied on export, so I made sure that all subdiv modifiers in the scene are removed. 

Maya's default world orientation is y=up, -z=forward. Whats nice though is that it kept the parent-child relationships between objects, so It kept my null controllers and turned them into locators. This makes it easy to move objects in the scene that have multiple meshes.




Referencing:

So why is referencing useful? It allows you to make changes to your model and rig after you have skinned it. It's also a neat way of isolating data blocks in separate files - making it more manageable. It means being able to  swap different versions of geometry and your rig with a few clicks. - load a low poly proxy (cubes), continue to improve a rig after you have started doing animation on it (in my case its adding facial controls after finishing body animation). It means being able to track down issues easier. It does add to the loading time though.


One thing that I found with my last animation project is that while you can edit referenced files in Maya to a certain extend, every edit you make to them of course stays in the maya scene file, its not done to the (in this case FBX) reference. 

It's a good rule of thumb to keep edits to a minimum, as it contaminates the scene and increases the chance of problems. So I never do stuff like editing the geometry of an object that is referenced in the scene. The reference edits list window in maya keeps track of everything you've done to the reference. Sometimes if a scene is broken (crashes on load), its a good idea to load it without its references loaded, find the problematic ones and clean up their list a bit.

In this case, maya is storing only the new locations of the controller objects and unfortunatelly the frozen transformations command that I did before moving them into place.
Blender rotates all the stuff accordingly and adds rotational offset to the values in the fbx. I had to zero them out in maya.

Referenced objects paths:
If you use the file manager to load and reference a file, by default maya will use the full path of the file. As a result if you move your projects folder to a new place, new computer or drive- all of your reference links will become invalid and you will have to manually relink them. It doesnt sound like a big deal, but if you have a big and complex network that can become an issue on an operating system such as windows, where you cant create symbolic links. So the computers at university have maya on windows, while I use maya on linux at home. Maya on windows has poorer performance and tends to crash more often. Submitting my source files to uni computers meant that all the reference links would get broken and likely my tutors will be unable to open them without having to spend at least half an hour relinking the files. As an extra annoyance both maya 2013 on windows and linux have a bug where when it prompts you for the new path and you give it , it doesnt apply it and also makes you wait for ages to search the files and fail.


So what was the solution to that one? It's pretty tough to find with google and after searching I found that other people have had the issue but their solution was sort of wrong and wasnt really a solution.
At the same time I was pretty sure that maya has the ability to use local paths for anything that is inside the project folder. However to make all the paths local I had to change them manually, without using the file browser. So after renaming each to use local links, now all my references just work out of the box, wherever you move the project folder.But it's my suspicion that whoever opens it after me has to make sure they set the project folder location.

MAYA BUG: Unfortunately Maya 2013 (and older?) has a bug where it does allow you to use fbx files as references, but does NOT allow you to have local path linking for fbx files (only full paths- even tried with fbx files created by Maya). That forced me to import my blender fbx files to maya, save them as maya binary files and then replace the fbx references that I have with mb ones. It means that every time I make changes to my models in blender, Instead of updating automagically where they are referenced, I will have to manually import them in maya and save them as mb/ma files. :(

Autodesk, please fix this bug!!
Do let me know if you know a better solution. :)

Wednesday, February 13, 2013

Soda trip - modelling background assets

I did this stuff at the end of last year and just now getting around putting the notes in a sensible way. If you're not interested in modelling  this post is going to bore you :)

There are two types of geometry in an animated film- one that is to be skinned - with good organic topology edgeflow to serve the deformations and one that is to be used as a background asset. That needs to be:
  • as Low poly as possible (for proxy use during animation stage)
  • edgeloops at the right places- to keep those hard edges when subdiv modifier is applied during rendering time
  • edgeflow doesnt create any shading problems
  • Use the whole toolbox and modifiers wisely to save time- pick the right tool for the right job, instead of 1 tool for every job (I'm looking at you extrude and edgeloop insert ;))
So with these goals in mind I set off to model the things in the long list, so each asset is

Easy to edit:
  • non destructive editing (modifiers,curves,etc)
  • Reuse geometry and its modifier stack where ever possible (no need to build modifier stack from scratch for everything, just separate new objects from existing ones)
  • work on halves, Instance and dublicated geometry where possible
Here is a list of the modelling tools that I put to practice in blender:

Lofting: using surf curves+mirror modifier to create a nurbs patch. I use the mirror modifier for reference, then just dublicate the curve and flip it (s,y,-1).


also used nurbs patches for the typewriter body. This allowed me to tweak the proportions easily before going into any detail.

Using CV curves and nurbs is an excellent way of creating precise shapes that have some curvature. The method is quite simple, yet still  flexible in blender!


In order to create the keyboard, I made 12x4 rows of vertices for each button, then made a single button that was instanced on the place of the verts automagically. This allowed me to scale the button and change its design on the spot, updating all of its instances.
I dublicated my button map object and used it to create the button trunks by extruding the verts and then applying a skin modifier for the created edges.

similar technique to the coat hanger:
its using a 3d curve that is set to bevel and that object is being instanced on the vertices of a circle object that goes around the hanger's pole. 4 verts= 4 legs.

Something common with all the assets is that each is made with the minimal amount of geometry to edit. I try to leave as much as possible to the mirror modifier- sometimes using 2 or even more mirror modifiers, array modifiers,instancing and so on to procedurally generate the parts of a mesh that repeat. It's procedural, but it saves time. These sort of tools are present in maya as well, but they are much worse and quite unreliable some times.
Here one edgering circle is being dublicated by the array modifier, mirrored by the mirror, solidified and the subdivided.- all non destructively, so to change all the rings, I need to edit only the two edge loops that form one 7 faced edge ring.


I used a bezier curve+ text object for the fridge logo- so it fits the shape of the fridge door and also has this corky bend to follow the curves of the curcle beneath it. I made sure the curves handles are precise by copy and pasting their corresponding coordinates from the start node handles of the curve (left side) to the end node handles (on the right side).
The text object is editable, so I can change fridgeomatic to something else if I want, swap the font, resize, etc etc.
 You can see in the wire that the fridge door also has some jars, ketchup and other stuff modelled. Everything is using a subdiv modifier, so it has a low poly proxy stored.

Other modifiers I used on assets that are not in the screenshots: Boolean, skin modifier, etc etc..





Tuesday, January 8, 2013

Soda trip - modelling The Dude


for the character design:
I used to draw Klayman and Jim ALOT when I was a little kid - Even had a few fan made comics of Jim and Sonic. So the Dude is inspired by those characters to a certain degree. Being so, it was great for me to revisit them and see how they move - how the joints deform their mesh. 




Lack of chin will change the way this character is moving his head. Must avoid drastic joint rotations (90 degrees) to avoid breaking the line of action!!I played the idea of having the Dude wear glasses - so he looks more like a writer.
"The Dude" is a working name- reference to Big Lebowski.


Goals of design:
  • Achieve curvy line of action within the spine
  • A silhouette that "flows", avoiding symetry and parallel lines, avoid mirror symetry as well 
  • appeal with directional force


This guy was made with a skin modifier in blender, which is just like zspheres in zbrush. From there he was sculpted with dynamic topology on (it's much like what sculptris has), so I didnt have to worry about geometry and could focus on the shape and the design. Having the grease pencil allowed me to scrible over the mesh and sort of imagine how it would look like when I start to texture it.
The design from the sketch changed a bit in order to work better in 3d. I admit that the eyebrows area and the nose was a bit inspired by Aardman.


When you model characters it's definitely somewhat beneficial to have some rigging and skinning experience.I wrote some notes as to how they are going to deform. While modelling them, the topology and proportions were based on those notes.
It also became more and more clear what the rigs would need.

I write notes in a sort of a journal that is backed up on dropbox. But it's good to share some of the stuff with the world, to get feedback and keep it open.

Here are some notes on character modelling and the the neutral pose:
  • Arms and legs should be slightly bent so the IK solver knows the direction.
  • They should be bent only on one axis- if you bend the joint that the IK will affect on 2 axis, that forces the ik to slightly offset its original rotation during application.
  • The spine sort  of bends both positively and negatively from its original axis,and also on more than one axis, so it's easier if that geometry is not posed at all and remains straight before skinning.
  • when you model the fingers, the legs and other parts that are close together, try to give them some space so you dont get joints from one limb affecting the geometry of other limbs
  • Split parts of the geometry that don't really need to be skinned and you can just parent them to something- it will save your computer some cpu hopefully, but also reduce some of your workload. Keeping things simple when its possible.
  • Give enough edgeloops for deformations to happen accordingly, dont place any poles where a character will likely deform visibly
On retopology:

The first thing I did was reuse the topology created by the skin modifier and clean it up from weird poles and weird edge flow.
The shrinkwrap modifier forced it to readjust itself to the tweaks I made during sculpting.I completely deleted the skin modifier's head geometry as its topology was a mess. It's often easier to start over than try to fix a mess.

The hands were an area that needed a considerable amount of cleaning up, eventhough the skin modifier gave a decent starting point.

Added nice bevels on his upper body to catch that highlight and give him that blocky hard edges look. I considered how he would deform and gave him enough edgeloops at the joint areas. Since he will have more of a 1920's cartoon rubber hose deformation on his limbs, I had to spread the loops a bit more there.

I tried to avoid adding topology where its not needed to define the shape, however that left some star shapes. It's generally a good rule to hide these poles where you would expect the model to crease anyway or areas where it won't deform much..

It's good practice to have an even number of vertices at edge loops  of limbs that need to be closed (feet,fingers,etc). That doesn't count for loops that are in the middle axis, since by default the mirror modifier will multiply verts in middle loops by two (the neck,the torso,etc).

The face needed bevels to keep his "blocky" hard surface edges from the original design. This screenshot shows what I start with for a foundation when I retopo the head. Much like what many others do, I would first lay my edgeflow down and edgeloops. In this design scenario case one thing to consider again for his head was the bevels from his upper body continued on his face- to keep the blocky look from the original design.

He takes off his shoes during the beach part and the hair gets messier, his sleeves change too. For that reason I made an extra hair mesh to put on top of the tidy one.The shoes and sleeves are a separate mesh from the body so that is going to be replaced when needed. The head is a separate mesh too.


For the Bird


I used a very similar approach.The design was researched - my journal contains a big number of bird pictures from google image search- pasted from clipboard straight into the notes. Asked some friends which one they like and number 2 came out as the favorite.



Wasn't completely sure how to do the neutral pose, as this is the very first time I do a bird. But we'll see how it goes when we get to the rigging stage.

Monday, November 12, 2012

Soda trip - animatic

For a final year project, I am going to do a 2 minute 3d animation that will serve as a music video for a song by "The Junior Panthers".

The Junior Panthers is an indie rock band that I heard one night while listening to Indie Pop Rocks.

One year ago a strange impulse made me write an email to Edwin - to ask if I can use one of their tracks and make a video.

He responded incredibly well to my enthusiasm and sent me the band's CDs and a T-shirt  (hey hey free stuff!! :D).


Now that made me very happy. However the day in which I received the JP goodies in my mail, the call from Disney Interactive Studios happened.
So the music video was put on hold for a year.

Here is a funny thing about that placement. A big part of the work there was just that- putting together videos, based on the music in them.
Had I not taken that internship, I would have probably done this in a different, less good way.

And today...

The university had me pitch it to them:
ppt@googledocs

Does starting with the music track introduce new challenges for the editor?
Well, it depends...
If the music is picked right, it can do half the job for you.
It will set the structure of your story. The rhythm will set the pacing of the shots.
Music's sound gives a sense of the mood and visuals -  the lyrics inspire abstract ideas.

So listening to the track over and over again and outlining its structure, I timed it in my mind and wrote down what would happen in each section.

Robert Mckee has a great book , which helped  a lot with getting a better understanding of how story writing works. It's not about forcing you to be formulaic.It's more in the sense of giving you the right type of questions to ask yourself when you write.

 For example I started with this:


Then moving on to the animatic:

I used a combination of Kdenlive and Mypaint  this time around.
Kdenlive used to be quite unstable. But version 0.9.2 didn't crash once after hours of work.

The animatic took about 4-5 hours to make.
Some of the drawings are reused in multiple shots- retaining the framing of the camera, but moving the character around. That saved a lot of time too.







Soda trip - animatic from todor imreorov on Vimeo.


Concept art:
When designing the character, it's good to think about what you want to communicate with that to the audience. Who is that character and what are they all about? Does the character drive the plot, or is that character being driven by the plot?
How does the character fit with the rest of the style and what does that style say about the film?

I started with this basic sketch, which I am going to refine later on.


Anyway more on the character models and concept art in the next update!! :)