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

 

XGENBannerDemo

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. downloadButton

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.

Converting an existing texture map to Ptex using Mari:

Baoba part fur groom:

 

17 thoughts on “Xgen tutorials

  1. 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,

    Do you have any ideas on this topic?

    Hope you have any advice.

  2. 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 don’t know what the problems are.
    Do you know the best solution?

    Sincerely,
    In Kim.

  3. Hi Bjorn,

    Thanks for tutorials.

    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?

    Cheers.

      • Thanks for reply Bjorn,

        Everything about project is on a server that each machine can access( xgen, .abc .ptex….) i couldn’t figure it out, there are lots of people having same problem by the way…

        Cheers.

    • I have a similar issue. I am using animWires to attach simmed curves to drive the fur. Works locally but when kicked to the farm using deadline it breaks that connection and the fur is static.

  4. 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..

  5. 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 !

    • Hi Iacopo,

      I haven’t encountered that problem before. Try to expose non dag objects in the outliner and see if there are any other legacy objects tied to the old groom/fur.

  6. 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.

  7. Hello Bjorn,
    what to do when the mesh you are going to transfer xgen to is the same mesh but with a bigger number of polygons ? What about to regenerate ptex ? How to do it ? Thanks !

  8. thank you for these great tutorials , we have big project , we are doing a search about available hair systems for maya , can i have your advice please , xgen vs yeti ?

    • Hi Mohammad,

      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.

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s