In order to develop my Catbox design into a virtual pet, I needed to create a 3D animated model for deployment in Unity. The software used to develop 3D Catbox is used Autodesk Maya, an industry-standard 3D modelling, rigging and animation platform.

The 2D concept design served as reference for the 3D model.

The 2D concept design served as reference for the 3D model.

I used my 2D Catbox drawing as reference around which I constructed a 3D mesh. Technically, it was important to keep the polygon count low enough to run smoothly on mobile devices whilst still allowing enough geometry to deform smoothly when animating. As shown below, a majority of the polygons are in the cat’s tail, as this allows for smoother tail animation with ‘snake-like’ deformation.

catbox6

Wireframe view of the front of the model.

catbox5

Wireframe view of the side of the model, showing the increased detail in the tail.

The model is UV mapped onto a large texture that covers every part of the Catbox. An advantage of this method is that I’m then able to manipulate the texture in Unity, switching between texture maps to animate the facial expression of the cat.

The texture map with UV layout for the catbox model.

The texture map with UV layout for the catbox model.

The 3D model wrapped with the texture.

The 3D model wrapped with the texture.

The animation controls for Catbox use a mixture of joint-based IK controls and blendshape controllers. The body of the cat is animated using blendshapes, a number of mesh deformations that are mapped onto a central model. This allows me to easily implement squash-and-stretch, twists, and other deformations that give the Catbox body a ‘soft’ feeling that would be difficult to achieve with bones and joints.

Different deformations of the default Catbox model, which combine into a single model and can be animated between, similarly to stop-motion claymation.

Different deformations of the default Catbox model, which combine into a single model and can be animated between, similarly to stop-motion claymation.

The bone-joint structure within the tail mesh.

The bone-joint structure within the tail mesh.

The tail is animated using a series of joints and bones, linked with an IK spline controller. The tail mesh is then attached to this structure with a smooth skinning function. This effectively allows me to animate the tail by manipulating a single curve, enabling more complex flowing animations with the tail.

The 3D controller objects which can be manipulated and keyframes to create animations.

The 3D controller objects which can be manipulated and keyframes to create animations.

In order to control the animations of the Catbox I created a simple control rig. This consists of a series of simple 2D handles that are mapped to the various blendshapes and joints in the model. This enables me to create animations by keyframing these control elements, rather than having to move the model itself, meaning I can create complex animations easily which can then be imported into Unity.

Animation laid out in Unity's Animator, linked for use in-game.

Animation laid out in Unity’s Animator, linked for use in-game.

Animations themselves are created in Maya, and the scenes are then imported into Unity and applied to a central Catbox model. Maya and Unity have cross-compatibilty for modelling and animation features, making it simple to import animations into the Unity editor and then drag-and-drop animation files into Unity’s dedicated animator.

The result is a 3D Catbox model with linked animations that can be controlled with scripts in Unity, enabling the introduction of interactive elements.

The completed Catbox model, lit and deployed in Unity.

The completed Catbox model, lit and deployed in Unity.

 

Share this post.