Imagine you had a man with a full scalp of hair but no beard, and the areas where the hair was most long was defined by a vertex group or a texture.
Then you wanted to animate him getting old - and so you had a different vertex group defining zero scalp hair but now a beard.
Or maybe still with scalp hair but now a mohican haircut.
Now you want to animate a cross fade between the two. I suspect you might be able to do this where texture = hair length by using an animated texture sequence, but that will require a pre-rendered texture sequence that you would have to re-render if you wanted it to happen across a different amount of time/frames. I’d rather it all be done by a cross fade numeric slider that you can adjust to be over any amount of time you wish by just moving keyframes.
The closest way I can think to do this is to have both hair patterns (both particle systems) present on the model at the same time, but animate the MATERIAL applied to each. To simulate the hair growing to a new length, add a hair info intercept node that mixes the hair strands to transparent tips, and animate a Colour Ramp to slide along to gradually reveal more hair length overtime, thus look a bit like it is growing. Not perfect though. Ideal I’d be able to keyframe between 2 particle system directly!
Once you have edited in particle mode (combed) the length and parent strand attributes can no longer be key framed. Are you combing the hairs? I ask because some head hair (crew cut, practically bald) can be done procedurally and short beards can too.
Hmm, looks like keyframing the length won’t work even if you have not edited it, it looks to be broken. You can set an initial keyframe but if you attempt to set another it just snaps back to the first value.
I now think that realistic’s suggestion to keyframe the material is a better approach – I know that will work. By keyframing the color stops and also using the intercept as a mix factor for transparent you can give the illusion of the hair shrinking. This has the added benefit of not mattering if the hair has been styled. Let me know if you need some nodes and i/we can show you.
Hmm, wonder why keyframing doesn’t work? strange.
Probably best to go with the animated material method then, Intercept -> Animated color ramp sound like the best idea really.
And if you create the shader carefully enough, the effect should look pretty good
I tried using material nodes to animate the hair to go shorter, and it kind of worked,… apart from the fact that the ‘transparent’ part of the hair still has an effect - it becomes solid black without any shading, like a silhouette of itself. Try it for yourselves. Even if you just use a Transparent node and nothing else for the hair, you still get a dark but reduced silhouette. I think it is where the hair intersects other hairs. What this means is, anything but perfectly straight hair CANNOT be animated to disappear! Any ideas?
When you have many many partially transparent objects in front of one and other you need to greatly increase the number of transparent bounces, or you will wind up with blackness as the ray cannot make it to a light source. Under render settings (the camera icon) Light paths, change the transparent max value to 20 - 50 depending on how many hairs you have. This is a node group I made which fakes hair growing/skrinking, if you want to see it I can post a blend. Looks like this:
However, I discovered how to grow the hairs for real!
In your particles/hair setting, go to the ‘Render’ tab. In there you will see ‘Timing’, with ‘Start’ and ‘End’. You can keyframe those. I left ‘Start’ at zero and actually set a driver to control ‘end’ as I wanted the hair growth to coincide with something else.
Keyframe any kink or roughness to go to zero when the length goes to zero. If you do not, the curl or roughness crinkles try to fit themselves in to a now much shorter strand of hair, so i looks more like a spring being stretched than a hair growing!