Maya Forum
Welcome to Autodesk’s Maya Forums. Share your knowledge, ask questions, and explore popular Maya topics.
Showing results for 
Show  only  | Search instead for 
Did you mean: 

XGen IGS cache results in "fly-aways"

Message 1 of 55
3291 Views, 54 Replies

XGen IGS cache results in "fly-aways"

Hi All,


I'm currently assisting a student who has been experiencing "fly-aways" with her character's IGS hair. She has the hair bound to a piece of scalp geo with is parent constrained to the head joint. I had her re-do the UVs on her scalp geo since they weren't unfolded correctly. We added a collision modifier and added the face and jacket geo to it as collision objects. I had her cache the description using her render settings (described below). After playblasting the scene, the hair is still experiencing sporadic "fly-aways" on random frames. Is there a way to ensure that this doesn't happen? Or is there a way to fix these sporadic strays on the frames where they do occur?


Pertinent Background Info:

She created the hair originally using XGen orig and then converted to IGS. 

We are on Maya 2018.1, Arnold version Arnold Core

The hair is one description. 

Bind pose is set to -20 (character is imported into the scene, not referenced)

Frame range is 13 - 460

Message 2 of 55
in reply to: jmock231

Hi @jmock231


There's some information on this thread as well as this thread on similar issues that may help you out!


Here's the steps from the first thread:


"Couple of things you need to do...


First, you need to make a copy of the scalp geo then move the geo that XGen is bound to out of the group:




Then make a blend shape deformer with the copy in the group as the target so that the scalp geo that XGen is bound to deforms to follow the grouped geo, Select the copy then the bound geo when making the blendshape.


Then you should ideally get rid of the rigid body collider for the bound geo and make a new one for the grouped geo. It's advisable not to have a hair system bound to a shape that it is also colliding with, it can cause popping at the base of the simulation curves.


the reason the hair was not following the mesh was that XGen could not see any transform on the mesh as it was animated in a group. Using a blend shape ensures that the animation is propagated through to XGen




You might want to set the animation evaluation to DG rather than Parallel in settings and preferences as the Blend shape deformer and parallel eval may not work well together.






Please let me know if this helps or if you need any more assistance!



If one or more of these posts helped answer your question, please click Accept as Solution on the posts that helped you so others in the community can find them easily.




Kudos are greatly appreciated. Everyone likes a thumbs up!

Message 3 of 55
in reply to: sean.heasley

Hi @jmock231


I'm just checking in again to see if you need more help with this. Did the suggestion I provided yesterday work for you?

If so, please click Accept as Solution on the posts that helped you so others in the community can find them easily.

Message 4 of 55
in reply to: sean.heasley

Hi Sean, 


I was out yesterday so I wasn't able to test your recommendation until this morning. I was already working in DG as I've found there can be issues when working in Parallel. The issue isn't that the hair isn't following the mesh, it's that there is popping on random frames after I've cached the IGS hair. I got permission from the student to share her file, so I'm attaching a playblast of her scene. You can see the popping on frame 373. 


With that being said, I did create a copy of the scalp geo and unparented the original scalp geo (the one that XGen IGS is bound to) and created a blendshape with the copy as the target and the original as the base. The group node that the copied scalp geo is in is parent constrained to the head joint.


scalp geo.PNG


There are no passive colliders on any of the geo, as I am using Interactive Groom Splines and not XGen original. I did have a collision modifier in the XGen IG Editor with the body and face geo added, but I turned it off for this test. 


XGen IG Editor.PNG


I set the cache to run with Time Slider set as the cache time range. I set the timeslider to -20 to 460. Her bind pose is at -20 so I wanted to capture all of the frames before her scene starts on frame 13. When I ran the cache with the copied scalp following the rig and the blendshape value set to 1 on the base scalp, the original scalp did not move. My guess is that because the group node is moving and not the geo itself, there are no value changes being recorded in the translations for the base to move. I changed the parent constraint so that the copied scalp was constrained to the head joint and got the same result. When I tried skinning the copied scalp to the head joint, the original scalp geo did move, but the hair behaved very poorly (collision modifier turned off). 


refusing to move.PNG


I ran another test with the copied scalp geo skinned to the head joint and the collision modifier enabled for the description. After caching the description through the previously mentioned frame range, I got similar results in that the hair behaved poorly. In a couple instances, it appeared that the hair was sliding off of the head and produced worse results than the original setup. The description is not dynamic and therefor has no hair system attached to it.


hair issues.PNG


I'm going to run a few more tests on my end, but hopefully this will help narrow down the problem.



Joshua Mock

Message 5 of 55
in reply to: sean.heasley

Message 6 of 55
in reply to: jmock231

Hi @jmock231


Sorry for the delayed response I was out on vacation Smiley Tongue


Thanks for the indepth post and video! This looks pretty tough but I'm sure we can solve this as I've seen similar issues happen before.


First off I forgot to mention earlier, while you're on Update 1 of Maya 2018 you may want to update to our most recent version of Maya 2018 which is Update 2.


On top of this, our former xGen guru Michael Todd has this thread that has a lot of information that may help.


From that thread he mentions "If you are using any noise in expressions, make sure to use the variable $pref or $prefgw. If the mesh is moving or deforming through the sequence, it's like moving the ahir through a noise field unless you use $pref, which ensures the noise is static in relation to the hairs. Make sure to export the patch for batch rendering as well, which you must have done for the sequence render."


Please let me know if anything changes!



Message 7 of 55
in reply to: sean.heasley

Hi @sean.heasley

No worries. I had guests all weekend too but I hope you had a good vacation.


I did take a look at the thread you linked to and it appears that those recommendations are for XGen original as it is talking about adjusting the noise variables with equations on the Primitives tab. Unfortunately, the scene I'm working on is not XGen original but XGen Interactive Groom Splines. The methods used differs between the two types of XGen. In addition, the student did not use a noise modifier in the creation of her hair description. However, she did start with XGen original and then converted to XGen IGS. Do you think something in this process could have left something behind that exacerbates the random popping of hairs?

Message 8 of 55
in reply to: jmock231

Hi @jmock231


It is possible that something may have went wrong in the converting process but I'm not 100% sure what would cause an issue like this to appear just from converting.


Out of curiosity, if you batch render a few frames instead of playblasting does the same issue still occur?


You'll also still want to update to update 2 of 2018 as another step!

Message 9 of 55
in reply to: sean.heasley

@sean.heasley I sent off two renders to our render farm this morning to test it; one with the cache disabled and one with it enabled. Both came back with popping during the render. I've gotten it down to just one pop over 460~ frames though so that's slightly better. 


Unfortunately, our institution does not allow for version upgrades in the middle of the semester. The thought is that we want to mitigate the risk of introducing new issues while seniors are producing their thesis films. We tend to wait until the summer to upgrade so that new versions can be properly tested and new features learned by faculty and staff before handing them off to students. 

Message 10 of 55
in reply to: jmock231

Hi @jmock231


What changes did you make that got the "popping" down to one frame? Was it in the render settings or IGS settings?


Also when you get a chance, can you please zip and send the scene file/Xgen files to me in a private message via so I can take a look at it?


While I don't have access to a renderfarm, I'd like to try rendering the scene on my machine to make sure the issue isn't with your render farm and then I can make changes on my end and we can go from there!

Message 11 of 55
in reply to: jmock231

Hi Jmock1,


We have the exact problem at our studio and actually have to save and open our files at the bind pose frame. To keep the Xgen IGS on the character. If we save the file anywhere but there, the next time the file is opened we experience the same results in your image. Hopefully that will fix one of your issues. The old xgen had a reference frame you could input and therefore save where ever you'd like. Hopefully in the later versions of Xgen IGS they add this. But in the mean time try and save the file only at bind pose frame, forcing xgen to open the file at it's default pose.... I'm glad to see you have implemented the bind pose at a sub zero frame, so see if saving there helps your first issue. Ours for the moment is zero, but would probably have to change if we introduced anything that required a frame run-up simulation.


However the random fly-aways is still a problem that plagues our pipeline. I'm hoping that the wonderfully helpful Michael Todd and Xgen development team will come to the rescue on this!!!!






Message 12 of 55
in reply to: sean.heasley

@sean.heasley I think it was the Cache settings when I selected the description's head node. Instead of opting to use timeslider as the default export option, I chose render settings with pre-roll checked. I set the start frame at -20 (which is the character's bind pose) with a step of 1. I also tried using frame relative sample at the default increment of 0.2. After I did that, it reduced the popping but didn't make it go entirely away. I'll send you the file so you can take a look at it as well. Also, you said to send you a private message "via" but there wasn't anything after the "via."


@darren.kirkness I'm somewhat relieved to hear that other people are experiencing this issue as well. I'm hopeful that future versions of XGen and Maya will address this issue. For the time being, I've been telling students to reference in their rigs and set a bind pose at a negative number (or frame 0). Just so long as they have a point that they can go back to if or when XGen decides to misbehave. 

Message 13 of 55
in reply to: jmock231


Kudos to you for your post. It was well written and shows that you did a lot of research on your end. Your solution matches ours to keep the hair "in place". However, the random fly aways are still a re-occuring problem. I have done a lot of research on this and even could replicate it on a very basic setup, without modifiers etc...


Really hoping this can be addressed by Michael Todd, he has been a great asset on these forums in regards to Xgen.


Message 14 of 55

Here is a file, for the Support Team.

Let the file play in loop mode and you will see the fly aways, randomly occur, and not always at the same place.

Please note to support Team always save at frame 0 if you are doing any testing... as per our issues mentioned earlier in the posts.

I can't post the playplast I did, but I was able to capture the fly away, and then when I went to the actual frame I saw it fly aways... Did another playblast and it happened some where else....

Message 15 of 55

Hi @jmock231


Sorry about that not sure how the text got deleted but the rest was via dropbox/google drive or another file sharing program so I can take a look at it?


@darren.kirkness I would love to ask for @Michael_Todds input but unfortunately he is no longer with Autodesk.

Message 16 of 55

It won't upload the file 😞 I've tried 4 times now....trying one last time...If it's not there, Sorry everyone but something isn't working on the attachment aspect of the forums or I'm doing something wrong.


Message 17 of 55



That is the saddest news. Please notify the Xgen development group then that they have a serious flaw in Xgen IGS, that has been around since it was introduced. 

I can't post a file to this forum, but I have a very basic example that still has these fly aways. 

Message 18 of 55

Hi @darren.kirkness


Its possible there may be issues with attaching files. We just overhauled the forums and there are still a few things being fixed.


And yes I'm gathering all this information up to right a detailed post for our dev team once I've fiddled around with @jmock231's file more!

Message 19 of 55

Okay great!

If I can upload my file  over the next few days, it may also give you and the Xgen Dev team more info to work with.



Message 20 of 55

Hi @jmock231


Thanks for sending me the files!


I'm still testing and working with them but off the bat I noticed that the hair appears to move incorrectly off of the characters head even in the viewport not just when I playblast.


Is that the same for you?

Can't find what you're looking for? Ask the community or share your knowledge.

Post to forums  

Autodesk Design & Make Report