Hey guys, I am in my 3rd year at University and have been working on my Final Year Project! I will be investigating into animated normal maps and using them to enhance a facial rig. Most of you will know this but a few examples are the Uncharted series, MGS4, L.A. Noire etc.
The aim of the project is to present the outcome within a game engine. I have cracked the technique of using FaceFX and wrinkle maps so UDK will be the game engine used. A test video will be added when it’s uploaded.
TOPOLOGY
As part of this project I have been comparing examples of good face topology to find similarities.
Some of the models I have been looking at Naughty Dog workflow (link below), forum discussions (link below) and also books such as D’Artiste Character Modelling.
The image below is a paint over from an image in the forum discussion linked above (owned by crazyfool). I’ve found that these are the key edge loops necessary for adequate topology, the rest of the face is mostly dependant upon the artist and doesn’t make much of a difference. What do you guys think of this?
PRELIMINARY TESTING
So having found this out I have created some preliminary testing showing how animated normal maps can affect different parts of the face. These were to prove the technique was possible. Here are Tests 1 and 2 so far and I will upload Test 3 soon.
Test 1 - http://vimeo.com/32637979
(Test showing how two separate normal maps are blended at different intervals on the same mesh)
Test 2 - http://vimeo.com/32638258
(Test showing the increase in emotion expressed on a mesh by simply using an animated normal map)
Test 3 - http://vimeo.com/35839597
(Test showing the increase in emotion expressed on a mesh by simply using an animated normal map)
Quick update on the presentation shader, I was able to get UDK’s subsurface scattering working so it’s looking much better in-game. The only problem is a red glow has appeared at the bottom of the window.
Figured out the problem with the red appearing at the bottom of the window, it’s a bug in UDK. I turned off Ambient Occlusion in World Info and it has disappeared.
Another Update, the blown out face sculpt. Wrinkles still need to be placed under the eyes:
Normalmaps are relative to the normals of the mesh, and these normals deform when the face is animating. As such, you should sculpt your normalmaps from the facial pose most similar to where it will be used.
This is minor though; it seems like you’re on a good path!
Have you thought about how you’re going to drive them? Have you thought about masking them some way? (f.ex. asymmetrical forehead wrinkles when the face animates asymmetrically)
What I’ve done is unwrapped and rigged the mesh and posed it, then imported those poses into ZBrush and sculpted the wrinkles. I have then used the normal maps from the sculpted meshes to get my wrinkle maps. I was unsure of the definition of bindpose so I thought i would try to explain it.
Also I have now got it all working in the material Editor and FaceFX, the wrinkle maps are driven with scalar parameters made into opacity controls.
The wrinkle maps are cut into separate textures and positioned on top of the main normal map so no need for masking.
The wrinkle maps have been cut up for basic asymmetrical facial animations too.
I have nearly completed the demo video which i will upload soon, this hopefully will demonstrate the work behind it.
I think this project turned out pretty well, the end result certainly adds to the expressions. My only problems are with your presentation, maybe a moot point but always good to show something awesome off as best as possible. I find your demo reel to be rather slow, showing the same loop of facial expressions 3 times in a row, once with nothing even added to compare it to was a bit boring. Also showing the material setup and bone hierarchy is kind of unnecessary I find in such a small presentation, if you really want to show it, speed it up so we understand that it is there but don’t have to wait 30 seconds for you to get through it. The animation at the end is a great idea, I was waiting the whole time to see it in a real world situation, it just came a bit late and was weak on the animation side. I’m a huge fan of farming out work like animation if you’re not as good as what you want to achieve, at least when the focus is on making that animation better not the animation itself.
I’d say the animated normalmaps seems to be created in a good way from technical implementation. The only thing I wonder is how you drive them. Are they animated manually? Connected to other facial controllers? If connected - to which controllers? Driven by other means?
As for how they look artistically, it’s very hard to tell. They -probably- look good, but without a great animation together with good facial deformations you can never really be sure.
This is also one of the biggest problems we usually have - it’s hard to know if part a is done until part b is done. The best way to handle this is making sure your workflow can be bi-directional.
If you wanna go the full mile - you should ask yourself - can I update the mesh and facial skinning; and re-import the same pose into Z-brush with the old wrinkles intact (and iterate). If you know how to do this you should include it in your dissertation; and if you don’t you should find out.
These are the high-level stuff I would have in a dissertation of this kind:
Creation - How to create them
Iteration - How to iterate on them without redoing things
Driving - How do you drive the animation?
Run-time-evaluation - How is the shader implemented?
Data-storage - How is the data stored?
Reusability - How much of the data can be reused on different meshes/characters/uv’s.
And as Taylor mentioned, the demo feels very slow and repetitive; but this might not be a huge issue until you want to put it in a showreel - in which case you need to chop it up loads.
Anyway - that’s my feedback. Overall I think it shows loads of promise.
hi,its really a good project, it shows how students can be successful in their academic life? We all know success has no shortcuts, only hard workers can reach the point. Even though, we have to make the road to success simple by applying some ideas or thoughts on our day to day academic moves. you have select a good essay writing services for this project.