I would like to show to you guys a demonstration of a “wrinkle effect system” that I’m working on!
This is my first try and I used three normal maps, 1st the standard character’s normal map, 2nd normals for brows up and 3rd normals for brows down. I also masked them in order to represent both sides of the characters face. I also did some C++ in order to get morph target values from animation at runtime… the current SkeletalMeshComponent::GetMorphTarget(FName MorphTargetName) doesn’t work properly.
I’m planning to keep developing a very generic and simplified wrinkle system, so people can quickly add the effect to their characters, and to repair GetMorphTarget on Github through a pull reaquest… so Epic, wait for me there!
I may release this generic simplified version at Marketplace for less than 10 bucks, so I can work on a more complex and optimized system for 50 morphs or more for AAA like characters!
This is really cool! Something so small can really bring characters to life, and make a huge difference to the believability of characters and their expressions, nicely done!
I’d like to see a character where it’s done not just on the face, but also on things like clothing—like for knees and elbows you could change how the clothing wrinkles.
Darthviper107, I’m creating it as a ActorComponent, so you’ll be able to add as many components you like to affect the face, cloth, or any material!
For now it only works with morph targets, and I’m going to finish this implementation before extending it to bone animation curves… but it’s in my plans, like an update for the on coming plugin!
The system is interesting and, to be honest, I already tried a bit ago by using the material functions in order to achieve that ( scalar parameter mostly ), but I don’t get how could you sell something like this if you don’t know what the UVs of the character is.
I mean, the idea is neat and to be able to get this already made is very handy, but how you “retarget/adjust” the normal maps on a character with different UVs then the Macaw head shown in the video?