Part 1 – Introduction
The Last Specialization I completed left me quite satisfied. However, this time around I wants to push it above and beyond. In this Specialization, I plan to follow through the Animation Pipeline to try and grasp a better overall understanding from a technical point of view. This project is very much based on helping me become a valuable technical lead for our upcoming Final Project. In order to do this, I have to complete an expansive list of deliverables which include:
- a basic character mech
- skinned and engine compatible rig
- corresponding rig controls
- character texturing
- animated character materials
- character animations
- unreal engine character blueprint
- unreal engine animation blueprint
- blend spaces
Compared to the list of the previous project which only covered 6 – 9, this scope is massively spiked. Knowing the basics of unreal engine character and animation blueprints already put me at an advantage to focus closer on other goals. Linking this back to the final project, it was decided that all animation would be completed in Maya as it is renowned as the industry standard. So in order to accomplish this, I will need to learn how to rig and skin using that software. Rigs don’t particularly translate well across software. Additionally, I would like to get my animation to a higher standard than was reached using the Trevor Rig.
Initially, we were asked to pitch our idea in front of a group with similar projects. My idea involved creating a small and easy to model robot bear. Having something quick and dirty to model means that I can move onto more pressing areas of this project. This includes rigging, game animation, and controls.
Before we dive into anything we need to arrange a project pipeline. Every project is unique and so too is your project pipeline. So in order to accomplish this, I like to start with “Non-Linear Pipline” stolen shamelessly from (Verkaaik, 2015). This pipeline is always a good start however it’s not what we want.
Below is the version of the pipeline that we will be using. This is just a trimmed down version to show the relevant processes. Due to scope and relevance, a lot of the other things listed in Verkaaik’s iteration can’t be used. I could have also broken down the process a little more (eg. Rigging broken into “Skeleton”, “Skinning”… etc) however I believe keeping a simplified version helps its readability.
Part 2 – Research
Material Id’s are as the name indicates, different materials. What this allows is for a model to have a whole separate set of textures. With the addition of Unreal Engine, you can make some interesting effects to each individual materials. You can designate and assign different textures and shaders. This is very useful when you delve into advanced materials and shaders.
One of the more interesting ways that you can create a compelling Material is by using Flip Booking. This is the probably one of the more interesting materials that you can pull off in unreal engine.
GlueIT is a free online downloadable software, essentially it allows the users to patch separate images in a sprite sequence. This can be handy for all kinds of game purposes. However, we are using it for 3D purposes.
After you have your sprite sheet you can then add it to Unreal as a texture. You then have to plug in a flipbook modifier into the UV’s. Then you enter a number of rows and columns afterward to multiply a Frac by a constant. Now just add a time for a frac and plug the texture into your material and you are set to go.
When you are in the material blueprint editor you have the option to set variables as parameters just by simply right clicking on them and choosing “change to parameter”. What this then allows the user to do is to create instances of the material and tweak the value in a more efficient way.
As this example shows, you can just tweak the values in the material editor and it updates in real time. This is very handy for blending assets into the environment, helping compositional values and even just adding variety to your scene.
Rigging is an important part of the animations pipeline. To those outside the industry it is completely invisible. It is said that a rig can play a big role in the productivity of an animator. A good rig can shave 2 weeks off of a project but a bad rig can increase it.
FK vs IK
I couldn’t wrap my head around the difference of FK and IK for a very long time but eventually it clicked. FK is a manual movement of each individual ligament in the bone, IK, however, is a set up where bones or joints are assigned to a single control. All you need to do with IK is move the point and the bones will orient themselves. It is possible to set up a toggle in Maya that allows the user to switch smoothly between the two mechanics.
-Left FK, Right IK
After you have set up all of your skeleton and controls you are ready to move onto the skinning process. Your model is made up of little vertices that determine the shape of your model. In order for your model to move you need to weight these vertices to different parts of your skeleton. It’s important to work out how your model will move.
Going into Maya
Coming from 3Ds max, learning to rig in Maya had a bit of a learning curve. However, after delving into it and finding various road bumps and frustrations I have grown quite fond of its abilities. The very first change that I’ve noticed was the skeleton itself, where 3Ds Max uses “Bones”, Maya uses “Joints”.
– Left – Bones, Right – Joints
One of the biggest hurdles came very early on while learning how to use IK in Maya. I learned that you need to make all the “rotations” and the “joint orientations” of each joint set to zero. Instead, you can simply use the move tool to position the joints and the in-betweens will orient themselves based on the position. Having these values not set properly will result in a snapping effect when applying an IK to the joints.
Controls are a very important component in turning an average rig into a well-refined rig. It means you don’t have to guess anything and the model animates as the rigger intends. For more complected rigs this also helps to prevent the model deforming awkwardly as mentioned earlier.
After you position your controls you will need to do what is known as Freeze Transforms. This makes the controls zeros be reset to the place that it is currently located. This is good for two distinct reasons. The first being that when exporting to game engine things read a lot better when everything is zeroed out.
Actually binding the controls to the bone isn’t as simple as parenting the bone to the control. This does not translate at all into game engines. Instead, you keep the Controls outside of the hierarchy and do what is known as “Constraints”.
A valuable lesson that I learned from previous projects is you need to export at every single stage of your rigging process. This is absolutely crucial when you are up to the animation stage. If you don’t know that your rig works and you spend countless hours on animations just to find that your rig isn’t compatible that plays a heavy impact on schedule slippage.
After you animate in Maya you need to select your controls and all of your joints. Then go to the edit tab and under Keys, you will click the Bake Simulation option. This will take a while
Verkaaik, E. (2015, November 07). Game Character Production Pipeline (Part 2). Retrieved from https://111426studio.wordpress.com/2015/11/07/game-character-production-pipeline-part-2/
Chronoclash (2015, February 03). Retrieved from http://www.chronocrash.com/forum/index.php?topic=2101.0
Unreal (n.d.) 09 – Dynamic Material Instances. Retrieved from https://docs.unrealengine.com/latest/INT/Videos/PLZlv_N0_O1gbQjgY0nDwZNYe_N8IcYWS-/srUSDU1u0og/
Manoanim APS (2016, September 20).ANIMATION FROM MAYA TO UE 4 10 HD. Retrieved from https://www.youtube.com/watch?v=zOZbghSJNpc
Athias, D. (2011, July 02). Maya Rigging Reference Library: Skeleton Menu. Retrieved from https://www.pluralsight.com/courses/maya-rigging-reference-library-skeleton-menu-53?utm_medium=affiliate&utm_source=314743
Unreal. (2015, July 28). BP Twin Stick Shooter: Hero Animation Blend Space | 16 | v4.8 Tutorial Series | Unreal Engine. Retrieved from https://www.youtube.com/watch?v=vzGO_xToP78
Unreal. (n.d.). Retrieved from https://docs.unrealengine.com/latest/INT/Engine/Rendering/Materials/
Taylor, J. (2016, February 08). MAYA CHARACTER RIGGING TUTORIAL: JOINTS & SKINNING. Retrieved from https://www.youtube.com/watch?v=Ah-Jk7d30ks
Brito B. (2014, June 30). Sprite Sheet Basic – How to import outside images sequences in UE4. Retrieved from https://www.youtube.com/watch?v=0C2Sj7C0RjE&t=123s
Ashford, D. (2017, March 12). UE4 – Tutorial – Blackholes! (Request). Retrieved from https://www.youtube.com/watch?v=iEyjmSxI2Vo&t=854s
Ashford, D. (2017, April 08).UE4 – Tutorial – Hologram Material! (Request!). Retrieved from https://www.youtube.com/watch?v=wIz6iyIOkys
Ashford, D. (2017, May 14). UE4 – Tutorial – Ice! (Ice baby!). Retrieved from https://www.youtube.com/watch?v=sE64iTjnoUM&t=173s
Steve’s Tutorials (2016, May 01). Ue4: advanced materials (Ep. 22 Advanced Glass). Retrieved from https://www.youtube.com/watch?v=iN5lBA78SSk
Pyrodev (2016, April 15). Unreal Engine 4 – Blendspace and movement – Part 3. Retrieved from https://www.youtube.com/watch?v=hrpfWzO2ZeY
Metal Game Studios. (2014, April 05). Unreal Engine 4 Tutorial: Glass Material (english). Retrieved from https://www.youtube.com/watch?v=sRQ5z8i_SV8
Unreal (n.d.). Unwrapping UVs for Lightmaps. Retrieved from https://docs.unrealengine.com/latest/INT/Engine/Content/Types/StaticMeshes/LightmapUnwrapping/