CG Generalist – rigging – shading – fur – light – illustration

Menu

Xgen tutorials

XGen Arbitrary Primitive Generator is the system used for hair in both Disneys Zootopia and Pixars Toy Story 3

Xgen lets you create and groom hair, fur, feathers, grass, foliage, trees, and rocks.
It’s a great tool for set dressing and is a serious contender to Peregrine labs Yeti, especially because you don’t have to be a rocket scientist to make it work.
Below is an example of fur rendered with Arnold and Xgen

check out the download page for a quick start tutorial series of just over 25 minutes split up into three videos covering setting up a groom and rendering out XGen with Solid Angle Arnold.

Export and import of groom and collection:

When you set your maya project path you will find a xgen folder in there, this is where you can find your .xgen file and your groom data in case you want to save time not exporting the groom.
If you want to export your groom and description to a specific folder for use in production, you can choose to export collection directly from the xgen tab.
This is how your exported groom looks in finder: four foulders “bend, orient, length and width” along with your xgen file which is your collection.

To import your groom onto the same character but in a different maya scene you simply select the geometry and click xgen -> import collections or descriptions.
Once the window shows up, direct maya to the folder where you saved your .xgen file.
Once you click import you will see that your description is connected to your geometry, but your groom is still missing.
If you go to your xgen tab again and select import Groom, you will see another window where you need to direct maya to the folder containing your exported groom “4 folders mentioned above”.
Once this is done and you cilck import you should see your groom applied in your new scene.

Here’s a few tips on how to use Xgen for Maya.

Arnold Xgen shading and rendering overview:

Setup arnold shader with ptex map:
Step 1: Make sure to set your maya project path to somewhere you can find.
Step 2: assign your arnold shader to the description of your choise.Step 3: create a custom attribute on the description and use an expression to get the ptex texture map.the expression can look like this: map(‘N:/deer/asset/char/deer/texture/deer_fur.ptx’)
Step4: create a aiUserDataColor node and enter the name of the custom attribute you created in step 3.
Step5: plug the aiUserDataColor output into the color of your shader and done!

Arnold usually gamma corrects 8 bit maps automatically, but in this case, since we connect the map to the shader through the aiUserDataColor1 we need to manually gamma correct our map.
This only applies if your texture map is 8bit.

Share this:

Like this:

20 thoughts on “Xgen tutorials”

Hi Bjorn thanx for the tutorial. I was playing around with Xgen today and i noticed something strange. Maybe you have some experience with it?
When using Xgen and creating a Groom Description. Maya automatically sets the groom_description (igmDescription node) to ridiculous Bounding Box values like (1000000000000000019884624838656.000). When you then use the (F) button to focus on this node or when you have nothing selected in the viewport or push the (A) button. The Maya perspective camera gets meshed up by this value and can’t be set back.
It’s a clean Maya install so i’m really curious if you also have this same problem or that i’m doing something wrong,

Hello, Sir.
thank you for your XGen tutorials.
these days, I’m working with XGen in maya 2016. but I have some problems of AnimWires modifier.
first, in the AnimWires option, I can’t push the button in the control map option when I select Clumping mode.

second, I have this warning message when I use cut and noise modifiers.
when I don’t use cut or noise modifiers, these is no warning.
####
Warning: Multiple cvs on primitives are bound to the last cv of the wire #X someWire. Wire may be too short. (AnimWires)
####

I have an issue about rendering animated xgen furs on farm(using deadline 7) On local rendering( ipr or batch) everything is fine but when it comes to farm xgen furs dissappears. I’ve already set those render patches and animation guides. Do you have an idea what am i missing?

I am facing problem with import and export when I Import Xgen fur to my animation scene fur creating problem like fur scale is infinite or something. Model that used in animation scene is smaller than xgen fur model..

Hello Bjorn,
i have a question: your tutorial was perfect for me until now, expecially to understand how to color the fur basing on the mesh texture color.
My question is: why i have a double fur in preview and in rendering ? I can interact with just one of them (with the “mesh-color based” one), while the other fur (i think they are the primitives of the previous fur) stay on the mesh and i can’t delete it.
As I told you, i suppose they are the primitives.. but how to hide them ?
Thanks !

I solved that.. i made the mistake of deleting the expression of Length and Width in Primitives -.- 😀 but now i have an other problem, and it is strange.
I exported my collection and description, as like as the groom.. i try to import it on other mesh with the same uv (but just with more polygons than the first one) but i see the fur just in the precise half of the mesh (it is a 3d mouse) while the other side is completely empty. Why this ? What do you think ? Thanks again.

They are both quite different in terms of pipeline, the advantage of xgen is that it is included in maya where as yeti costs extra as a plugin, but there is great support for yeti, so it depends on your needs.
Personally I use Xgen at the moment because of it’s plug and play-ness as it is included in Maya, but in reality they are both good.

I was wondering if there could be a script made and distributed for the non-technical artists like me where we can load UV based textures for root color and tip color just like any other fur solution. Life could be a little more easier on this otherwise very important requirement for any grooming.
btw, Thanks for the tutorial ! Keep going 🙂