Jump to content
Slate Blackcurrant Watermelon Strawberry Orange Banana Apple Emerald Chocolate Marble
Slate Blackcurrant Watermelon Strawberry Orange Banana Apple Emerald Chocolate Marble
Sign in to follow this  
Rss Bot

How to create furry cartoon characters

Recommended Posts

Character design is an art. Swiff is the story of a dirt-hating extraterrestrial who is travelling in space. He breaks down and crashes on Earth in the countryside. In this 'terra incognita' adventure Swiff goes looking for a compatible fuel source for his spaceship. During his quest, he finds himself face-to-face with a hyperactive little boy who is definitely going to give him a hard time. 

While working on the short film, I had the opportunity to use Peregrine Labs' Yeti and Pixar's RenderMan (RIS). In this tutorial, I will explain some of the key techniques used in Yeti to make the sheep's wool (fur), and an instancing solution for Maya.

I needed to learn Yeti for Swiff, and along the way picked up some useful tricks that I hope you will find equally handy for your animated film projects. Here I will share my process for setting up and combing fur in Yeti, as well as how we created the scene for our short.

01. Prepare the terrain

BUxePGe4NoPfekk5gQ2AaK.jpg

Click image to enlarge

The first step is to establish a good cartoon environment for the character we'll create and add later on. I tend to work in a different, smaller scene to the final scene, and when I'm happy with the look of the object or terrain that I'm working on, I reimport the asset into the final scene. For the grass, I create a basic terrain in Maya and I import my own light rig, which contains multiple lighting conditions for different times of day.

02. Create the terrain and unwrap UVs 

eNPuyZPUhyWac9cwYu8pDc.jpg

Use a smaller version of the surface

For this terrain, as I want to work in a smaller area than my actual terrain, I create a rounded surface with just a few polygons, where I can populate some grass. Yeti uses a cache system and it can take a long time to generate if you're using big terrain. By using a smaller version of the surface, I make sure that the caching time doesn't exceed a few seconds. The goal is to define the look of the grass so there's no need to waste time on a big surface. Once I model the basic terrain, I unwrap the UVs using Maya's default tools.

03. Adding the stripes

A5mkhriCY5Eq2DUsfzDbmm.jpg

Making stripes

We wanted everything in our short film to be striped. To do this I use Ramp, Maya's procedural texture solution. I create a ramp in Maya and plug in a PxrDisney shader. It's just for preview so you can use any shader. Use the place2dTexture to repeat your ramp as much as needed. In my example, I do it directly in the ramp to add a bit of variation in the stripe width. I also connect a PxrConstant in every colour of the ramp for more control. 

04. Prepare the geometry for instancing

5vjaCMCzPdRozQ8zFR5pg9.jpg

Make sure that your grass is at the centre of the world

We decided to instance polygons in order to get more control over the look of the grass, but you can also create a fur system in Yeti and use it as grass. If you decide to use polygons, create a few bundles of grass in Maya using basic modelling techniques. There is no need to add a lot of polygons as the tiny details will get lost. You also have to make sure that your grass is at the centre of the world in Maya to make it work with Yeti. 

05. Open Yeti

fS8udiz9oUK8Ej7gBoJgkP.jpg

Click image to enlarge

Yeti is very powerful and offers great optimisation possibilities. It allows you to instance millions of polygons very easily. Start by selecting your terrain and go to Yeti>Create Yeti Node On Mesh. Open the Yeti Graph Editor. In order to control the stripes separately, create multiple Yeti systems corresponding to the different areas of grass. I convert my coloured Ramp to a black and white ramp in order to use it as a density map in Yeti. 

06. Nodes in Yeti

iVSb9Umpw9SaUJFf2r8t9W.jpg

Click image to enlarge

Next, select your Yeti node in the Outliner, and go to the Attribute Editor. You should see your terrain in the Input Objects tab. If you don't, add it. Add the objects you want to instance and make sure that they are at the centre of the grid in Maya.

07. Setting up nodes

UQ2y8fDZSfLJtcjg5n6vbd.jpg

Click image to enlarge

In the Graph Editor, create an Import node, a Texture node and a Scatter node. The texture node will be used to control the density of our instanced geo. In order to do so, I bake my ramp into a texture. It allows me to retouch the map afterwards if necessary. I use Nightshade Blockout to bake the Ramp. It's free and available on www.creativecrash.com

08. Instance your geometry 

CEMgkBMdkNepUdADGPrx9j.jpg

Click image to enlarge

Once you've connected your densityMap in the Texture node, add 'density' in the attribute of the node. Create an Instance node and another Import node. Use the Import node to choose the geometry to instance and connect it to the second input of the Instance node. Set the Instance node to Element and add scale and twist variation; use the Scatter node to change the density. For more variation, add a custom attribute, create a few graphs with different types of grass and merge them. 

09. Adding shaders

Q79Vnw2LwoinrcQNU27pXo.jpg

Play with the translucence of the LMDiffuse to get a softer look

We used RenderMan RIS for rendering. The materials available in RenderMan are physically plausible and offer great possibilities. I use a Pxr LMDiffuse as a base and connect different variations of the texture for the front and the back. Then I use a LMLayer to add a specular layer over it. I've also played with the translucence of the LMDiffuse to get a softer look. Simply assign the shader to your Yeti node to make it work with the instances.

10. Creating the sheep

vx65HLqV3UgYWyL4aGgFhA.jpg

Click image to enlarge

Select your mesh and go to Yeti>Create Yeti Node On Mesh. Do the same with Yeti>Create Groom Node On Mesh. This will create a pgYetiNode and pgYetiGroom in your Outliner. Select the pgYeti and go to the Yeti Graph Editor. Click on the Import Button and double-click on the node Yeti has created. This will pop up in a window. Make sure the type is set to Geometry, then click the button on the right of the Selection field. 

11. Apply fur

g7Sd9tUSvQDVpBrkCjwt2G.jpg

Click image to enlarge

In the new pop up, select the object you want your fur to be applied to and click Select. If you need to manually add objects in the list, select the pgYeti, go into the Attribute Editor, under Graph>Input Objects and click on Add Object. Weirdly, sometimes the list doesn't seem to update after adding a new object. Select anything else in the Outliner and then select your pgYeti again to see the new object correctly added to the list. 

12. Import your groom 

n5WbEpZbfaPBZnjLtUpnKM.jpg

Keep your graph organised

Select your pgYeti node and go to the Attribute Editor (Ctrl+A). Under Graph>Input Grooms click on Input Grooms. In the list, select the groom that you've previously created. Now, go back to the Yeti Graph Editor and click on Import. Select and double-click the new Import node. Set the type to Groom and select the groom like we did previously with the geometry. You now have two import nodes in your graph. Keep your graph organised and name your Yeti node correctly. 

13. Start grooming

oPLwSzvM2bKisEcpy4Gc5R.jpg

Click image to enlarge

In the Yeti Graph, create a Scatter node, connect the import_geo to the first input of the Scatter. Select the scatter and create a Grow node. If you double-click on the Scatter, you will be able to increase the density. Connect the import_groom to the second Input of the Grow. Select the Groom node in your Outliner and go into the Attribute Editor. You will find a wide range of tools that you can use to create various hair effects. 

14. Populating strands 

feHhRWUzgchcGkyr4WazwU.jpg

Populate your mesh with strands of hair

Start by pressing the + button. This will allow you to populate your mesh with strands that will be used to create the hair in the pgYetiNode. Under the Brush tab, you will find Radius and Strength parameters. Under the Strand tab, there is a slider called Initial Strand Length. Increase this a little bit if the default parameter doesn't fit what you need. Click on your mesh to populate strands. 

15. Control the length

RjErEqG9zgKkfmgpBzy8hm.jpg

Click image to enlarge

You can easily control the length of your strands by going to the Attribute Paint tab. Simply double-click on the Length parameter, set the Value to the number you want and set the Mode depending on what you want. The Multiply and Randomize modes can help you create a lot of cool variations. For my sheep, I increased the length of the head area to match the original design. 

16. Using the comb node 

j7csewyXT9eruvvicaCFt4.jpg

Click image to enlarge

It's time to create a bit of mess. Create a Comb node. Connect the Grow to the first Input of the Comb and connect the Groom to the second Input. At this stage, I play with the different tools in Yeti to create variations. Take your time, especially if your character will be seen from different angles. When I am done tweaking the strands, I add a Curl node. It creates some nice curling effects in every strand. This adds a lot of variations and makes your fur look more realistic. 

Next page: the final steps to creating furry cartoon characters...

17. Understanding clumping

yoS6X6X6pb9ujjCuzsJe68.jpg

Multiple clumping effects

The Clumping node is one of the most important nodes in Yeti. To apply the Clump, select your current network and duplicate it; create a Clump node. Play with the Density and the Length parameters on one of the networks to enhance the effect. You can play with this technique many times in your grooming network to make multiple clumping effects. Note that you can also use the Clump tool to enhance the clump effect in some areas. 

18. Bend the clumps

gwQd3AsLaLvNEsm6wqdMqM.jpg

Playing with the combination of different nodes

To finish my base network, I add a Bend node (which in this case is crucial to bend the clump we previously made and get the look we want). Playing with the combination of different nodes allows you to get subtle and very cool effects. This leads us to the Merge Node…

19. The merge node 

YBMvTc52AUg2fasFBuBmrU.jpg

Click image to enlarge

In order to make the sheep look better, I create a few networks with different looks – the only thing I need to do is merge them. You can create different pgYetis and let them overlap each other but this is not the best option for my sheep. I prefer to create everything in one pgYeti network and merge them by creating a Merge node and connecting input one and two to the desired networks. 

20. The Width node 

EwSoXRZ98yrYt56oDJKhXa.jpg

Click image to enlarge

To complete my graph, I need to control the width of my fur. I create a Width node and put it at the end of my graph, then I am able to control the width of the base and the tip. I get pretty good results with a value of 0.07 for the base and 0.03 for the tip. There is also the Multiplier parameter if needs be. 

21. Optimise your display

BMBXM9udFpPiATzu9BFPHk.jpg

Click image to enlarge

Optimisation is obviously very important when dealing with fur. The more fur you have in your scene, the harder it will be to navigate. You can hide the Yeti Node by going into the Show Panel (Viewport) and unticking Plugin Shapes, or by using the attribute provided in the pgYeti Node. In the pgYeti, you will find a Display tab. Three parameters are available to control the display (and only the display) in the viewport: the density, the length and the width. 

22. Optimise your render

FGqhXiuA9ytGXpnqgomTE4.jpg

Sheep far from the camera don't need much density

In the pgYeti under the Display tab, there is a tab called Render. You will find the exact same parameters as in Display, but for rendering. I like to set my density value in the Scatter node and set the render density after that. 

On some shots, the sheep are quite far from the camera so don't need much density. I decrease the render density accordingly.

23. Limit of the Viewport

FiUCQZqBP9m93r4WXQnXp7.jpg

Render a couple of images at each stage

The preview of Yeti in the viewport is great but it has some limitations. At some point, you need a render to see if you’re going in the right direction. When I start the grooming of my sheep, I import my light rig and render a couple of images at each stage of the Yeti graph in order to get a better look of what my fur is going to look like. I use the PxrMarschnerHair available in RenderMan RIS to shade the fur. 

24. Create the stripes

htguQzdhxvE2brMVH2MszA.jpg

Click image to enlarge

The final thing to finish the sheep is to add the stripes. I could use the same techniques that I used for the grass but with fur, but there is another method. After creating a ramp with a series of stripes, I create a Pxr Manifold and I connect it to the Maya ramp. Without the Pxr Manifold, it won’t work properly. In the Connection Editor, connect the Result S (Pxr Manifold) to uCoord (Ramp) and ResultT (Pxr Manifold) to vCoord (Ramp). 

25. Finish the stripes

kxFKPXk9WsPqFb5JRA2E7G.jpg

Tweak the shader to get a good look

To last thing to do in order to make the stripes work is to add the correct information in the Pxr Manifold. Add surf_s in PrimVar S/ST and surf_t in PrimVar T. Note, if you are not using a Maya node – you want to use a texture that you painted, for instance – simply create a PxrTexture and drag and drop the Pxr Manifold in the Manifold field of the PxrTexture. Once the stripes are set up, I work more on the shader in order to get a nice look. 

26. Importing the scene

wyEPAg9m5inh5DMtT5kPhK.jpg

Create a new scene and import the main assets

Now all the assets are created, textured and shaded, it's time for me to gather them all into the scene. I start by creating a new scene in Maya and I import my main assets. I add the grass at the end of the process because it's quite heavy for Maya and not essential at this point. The important thing is to get the main elements to start the lighting. Keep your Outliner as clean as possible in order to stay organised.

27. Start the lighting

k4Bj9WnapFvxmNS7YtF3jP.jpg

Add a simple Directional Light to enhance the lighting direction

The lighting of my scene is daylight, the sun is high and some clouds are casting shadows on the ground. I create an HDR of one of our scenes that we use as a base in the main environment shot. Then I add a simple Directional Light to enhance the lighting direction. To enhance certain areas, I put some colours in the light and shadows or plug in some textures. This creates contrast. 

28. Adding the grass

JET6vngxMsLiMCmytYTied.jpg

Apply the grass to my main terrain

Using the technique that I explained before, I apply the grass to my main terrain. With my camera angle, I don't need the same density of grass everywhere. I simply split the terrain into different meshes and create a different Yeti node. I reduce the Render Density of the grass. The scene looks the same but the caching time is reduced. Optimise your scene as much as possible, especially when you are working with instances, otherwise it can become too large.

29. Placing plants

xEM2tcg27oLRp4Kuy5DEki.jpg

The more variation you add, the better it will be

It's time to go into detail. I start by adding mushrooms all around the scene, then some plants. I also add trees in the background to add variation. The more variation you add, the better it will be. Our universe is very colourful and it was not always easy to deal with it. Most of the time, I import a simple version in Photoshop and do a couple of tests with various colours. The important thing is to keep the image clear and readable. 

30. Adding rocks

Vcc82wQSZLYGMN3rnGWVWA.jpg

Make the ground more interesting by adding rocks

I want to make the ground more interesting so I add more variation of colour and textures in the grass. I decide to add some tiny rocks. I've found a very cool, free script called RockGen from Creative Crash. I launch the script, choose the number of rocks, and their height and click Generate. I can now place these rocks in my scene. 

31. Using spPaint3d 

6MVfifsdcQfiBNFDGtabzH.jpg

Click image to enlarge

spPaint3d is a must-use script on Creative Crash. It enables you to duplicate or instance a series of meshes on a surface. This is very useful for an environment scene like this one. It allows me to place all the clovers, the rocks and the plants randomly in a very short amount of time. There are a lot of parameters I can tweak just to add variation in the placement of my meshes.

32. Splitting your scene 

ER7gCAGgBxmE7UiKg6AN3K.jpg

Splitting your scene really helps when you need to tweak particular elements separately

In order to have more flexibility in compositing, I split my scene into different parts. Splitting your scene really helps when you need to tweak particular elements separately. I use different render layers to split my assets and recombine them in Nuke. For the background, I create a Yeti node on the hill using the same technique as the grass. I work in a different Maya scene to keep it light. Once the hill is created, it can be reused in other shots. 

33. Finishing using Nuke

2dydVSqZs9FYvap26UKRNP.jpg

Click image to enlarge

We use Nuke for compositing. In an environment scene like this one, I really recommend adding a bit of atmosphere (using the ZDepth as a mask) 

to help the legibility of your image. After this tiny modification, I use a few Grade nodes to enhance some parts of the image using the ID channel. To complete, I add a bit of vignetting, a spot of depth of field and a touch of chromatic aberration. 

This article was originally featured in 3D World issue 214; buy it here.

Related articles: 

View the full article

Share this post


Link to post
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Sign in to follow this  

×