Jump to content

[WIP]New head in blender


Alecu

Recommended Posts

Very little progress. Things have gotten quite complicated and the solutions are hard.

 

Most of the fagen morphs are invalid and need to be remade. There are a lot of them. More than 80. It's easy to deform the face with a lattice but I need to find out what each one does.That can be done.

But the asymmetric morphs are very hard to get right,nearly impossible. I can only use them in the construction set and it doesn't give a good view.

 

The face expressions are also very hard to make. You have to move the mouth,cheeks and eyes for those.One weight painted I will probably be able to use the same weight for most of the expressions which is a good thing. And the egt file will need to be created and I need to make 50 textures for that. And my texturing ability almost equals zero.

 

Baking the textures in blender wasn't 100% accurate but with some processing they will look fine hopefully.

 

baked texture

 

And before I start to tune the egm morphs, the geometry needs to be final and without any major mistakes. So I've uploaded the nif in case anyone is interested in this. Try to post screenshots only here if any.

 

Link here.

 

The morphs aren't right,it doesn't blink and it doesn't include an egt file(you need that one,or else it will crash,get one from another head and rename it). Maybe some people will be interested in this and bring some suggestions. At this stage I can only do minor changes.

 

I've also made some change to the topology and tuned it a bit. This is around 99.9% final.

 

topology

 

And for some reason,nearly all the morphs change the shape of the eyes, which is weird. This is actually a problem. Fully remade morphs need to move around with the eyes. I don't think you can reconformulate the eyes with new morphs. Oblivion is really weird with faces because morphs change more than one part of the face which isn't always right. Eye morphs have to be made after the morphs have been finished or else you won't get the proprer egm files for the extra data that you append in the default egm. But on the bright side I have a good idea how it works and what does that short int and scale actually means in the egm file.

Link to comment
Share on other sites

  • 2 weeks later...

I've released the first beta of the head here :thumbsup: :

 

download link

 

Also, Aos Si race uses the new head. You can find the race here:

 

Aos Si Race

 

I've also release a major update to vertex selector,which is now called Face Mix. You can find it here:

 

FaceMix

 

It can do a lot of things now including removing vampire morphs from a head. This way the head won't change at all when you become a vampire :biggrin: . And this without using obse or removing the vampirism effect.

 

I've had a lot of trouble but I've kinda solved them in the end.

 

Also,while dealing with the neck seam :pinch: I realized that if I delete the left half of the head,from front view, before the final export and apply a mirror modifier to it,and after that export it then the head won't change it's vertex ordering when importing the head again in blender and doing the same things all over again. This means that you can edit only half of the head in blender and export it and it should work fine,without any problems. I've tested it many times and nothing bad happened. This is actually very useful because editing heads in blender was pretty hard in edit mode because you couldn't edit it symmetrically. I guess this mesh is very blender friendly lol.

 

I've started making some new face expressions.

 

Here's a smile for you :biggrin:

 

Painting the head with precise weights and editing the painted parts with a lattice proved to be very easy and produced very smooth results without any bad distorsions.

 

But I'm pretty clueless with them and some photos with some nice smiles and expressions would really help. And I'm not very sure that the mouth corners would look fine when it is opened and if it will look ok when the mouth is opened.

Link to comment
Share on other sites

  • 1 month later...

Hello again,lol it's been a while since I've posted here.

Anyway,in the meantime I started university and it's been eating a lot of my free time and energy. So I haven't had much time to work on this. Over the last month I was busy coding FaceMix because even with the existing tools, making face expressions,especially happy and anger ones,was a trial and error process,at least for me,I may be a little too stupid to learn how some things work :biggrin: . So I started to make FaceMix purely based on trial and error,intuition,luck and examining the work of other people.

 

By some miracle I got niflib to work with facemix and as of version 0.3,FaceMix works with nif files :thumbsup: which is very good because you don't have to convert all your meshes to obj which was the case in previous versions.I had to write a wrapper class in c++/cli for niflib.The horrible thing was that visual studio 2010 lacks intellisense for c++/cli so I had a lot of trouble adjusting to it. And in the begining I had a horrible issue with input streams because the wrapper class was compiled with unicode support while niflib only worked with ascii/single byte character/whatever support. So when reading from the stream it would read twice as much and ended up reading some other memory or something like that.But the fix was simple and it worked fine after that. It just supports a small part of the library but I don't need more than this. My only concern is the fact that I used a version dating back to 2007 and maybe it doesn't support newer nif file formats. I'm not very sure it would work with fallout 3 or fallout 3 new vegas meshes. If there are newer versions of niflib that support the newer formats,then I just have to recompile or even replace the niflib dll.

 

Anyway,on the niflib website,it says that if you use niflib as a dynamic link library then you need to install visual c++ 2005 redistributable,but the problem here is that I compiled niflib on my pc with visual c++ 2008 so I'm not very sure what visual c++ version you need. Probably only vc++ 2008.

 

After releasing version 0.3 I realized that I can't export any of the morphs as a mesh which would come in handy. And another thing is that I used windows forms but it would have been better if I used windows presentation foundation because it looks better and it has viewport :biggrin: . With a viewport you can literally render 3d things and from what I have seen it shouldn't be that hard to use or who knows, I may be very,very wrong here. So before I do anything else, I need to update the user interface to use windows presentation foundation instead of windows forms. And after that add the option to export morphs as meshes,or better yet,export meshes with a transformation applied :biggrin: . Also the class hierarchy is kinda wrong. But these are almost dreams and will take some effort to put in practice.

 

One nice thing that I discovered when playing with tri files is that the vampire morph is just an expression just like any other morph and you can remove the morph by replacing it with 0's which pretty much tells the game to move every vertex by 0 when you become a vampire. So the face doesn't change at all.

 

In order to generate the disphappy and dispanger morphs I actually had to use some math :blink: . It was full of bugs because of that I had to spend a lot of time to fix it. It generates the 4 morphs by taking a bit from 5 meshes,that correspond to happy60,happy70 and so on,each degree of happiness or sadness. The funny thing here is that there are actually 2 ways to do this, one good way and one bad way. The good way to generate those is to first convert the meshes to morphs and then take a bit our of each of the resulting 5 morphs based on some percentages,some expressions use a morph more than others or doesn't use it at all, and add them to the resulting 4 morphs. This is the right way to calculate these morphs. The resulting expressions will look extremely similar to the initial ones that we used as the input when we generated the morphs. Some information is lost because initially there where 5 directions in which we could move each vertex. But now there only 4,one being redistributed across the remaining ones. But if they are modeled in a progression then it should be hardly noticeable. I won't go into details here. I tested it with Digital Girl and it worked just fine.

Some people might have the impression that it might ruin their expressions but it won't it they are modeled properly in a progression. What is very important here is the fact that we don't just properly generate in which direction the vertices will move when applying the morph,but also how much they will move.

 

This is an expression that I got by using the technique above:

 

expression

 

The other way is to generate 4 intermediate meshes and then calculate the resulting morphs based on them. Now the thing here is that you have the proper directions but the vertices move too much in those directions. So you get some horribly distorted smiles like this one:

 

ugly

 

In both cases I used the same meshes with the two different techniques.

 

In order to get the weights for each expression degree,happy and anger, I used a metter like this :

 

Say hello to Mr Metter. He sacrificed good looks for the sake of humanity like a true hero :biggrin:

 

For curious people I've uploaded the source file at the downloads section too along with the executable

 

tesnexus link

 

Now on with Digital Girl. I had to read a lot of tutorials about face rigging and rigging in general. They were quite hard and complicated and I realized that the hard part isn't to model a face but to animate it properly.

 

I tried to make a rig and make some expressions with it. The rig I came up with was this:

 

rig

 

But it didn't work so well I don't know why. I couldn't get the expressions to look natural enough.

 

This is the best I could get

 

my best

 

And this is a simple smile. There are other expression used for talking that are much more complicated than this :sad: .

 

I wasn't able to add any creases to the face when it smiles because I would get this when I change some vertices:

 

bad creases

 

Anyway,now I will try to make a more advanced rig that uses lattices too and I hope it should work better than the current one.

 

For those that are interested these are some of the best tutorials I have ever seen about character making and animating:

 

 

 

this one too

 

I also had to change the topology a little around the mouth and forehead are to make it animate properly.

 

lips corner

 

I modeled the mouth corners a bit round and made some small pouches because I noticed this on some faces and I kinda suited this face.

 

forehead area

 

I know,I know, I have an "evil" 6 pole in the forehead area but it hardly has any impact on the shape of the head because it's in a flat area so I won't remove it. If I remove it I would get more poly's and I don't want that. And I would have to adjust the uv layout after the changes , so no.

Link to comment
Share on other sites

  • 2 months later...

I know I haven't posted here in a while.

 

I've really started to make facial expressions. In the end I settled down with relative shape keys&modeling. I've also improved the topology a bit. On the other hand, Oblivion doesn't really animate faces properly. The creases that appear when you smile or frown will never appear in-game. Yes, you will always see the mouth deform but anything else will never appear. This is the biggest limitation of Oblivion.

 

It never updates the shadows on a face when it animates it.

 

Download link can be found here:

 

download ling

 

I've also posted a video showing the new expressions:

 

http://www.youtube.com/watch?v=8Lo9J_I7U7M&feature=player_embedded

Link to comment
Share on other sites

Ok, so I have uploaded a newer version of Facemix with some much needed features like support for newer nif files and the possibility to export morphed meshes to actually see how a mesh is deformed when a character smiles,blinks etc. This is very important because now I can have a reference when making the phoneme expressions for the face. And not just that. You can make eye morphs much more easier now. It is easy to export a mesh deformed when it blinks and for example remodel some eye lashes after the exported mesh, synchronizing the movement of the eye lashes with the movement of the eye lids. 8)

 

You can get FaceMix here: download

 

Anyway, I may post more about this later but for now I am dead tired :(

Link to comment
Share on other sites

I storngly agree, this thread for me as a new modeler is INSPIRING! to say the least.

 

Your flow is amazing, and to be able to learn how to make a head like this from scratch is amazing in its own right......A head thats even better looking than the original one the game comes with too, I hope you put this model in your portfolio of work, because its really impressive.

 

I have loved every post you have made in this thread and the way in witch you have posted it ( I would have liked some more information here and there, but know explaining something can somethings be complex)

 

So yea, Youve won me over with this thread, and I hope it gets stickyed with a golden glue stick to the blender forum.

 

- Ocelot.

Link to comment
Share on other sites

  • 4 weeks later...

Hello again. It's been a while since I have posted here. Things became a pain again with university on my head so I can't make any decent progress at this until I've finished with university. I barely have any free time left to post on forums.

 

Anyway, in general for every small step that I make there are a lot of problems in the background that I have to solve. Especially with the eye morphs and phonemes. I don't really know they look so I had to update FaceMix to export those expressions or whatever as meshes. This was very hard for me as I am not a very experienced programmer. Writting a proper obj file was a bit hard. And also, the way I imported obj files had to be changed because it wouldn't have worked for some obj files on extremely rare occasions,

 

And then comes the problem of how to transform the nif mesh into a morphed mesh with the data from the tri file. In general it works pretty simple. You store in the tri file some numbers. In this case they are "short" integers and can have values between -32267 and 32267 or something like that. For each vertex you have a triple of these numbers that corresponds to each axis. IF you want to morph the mesh you just multiply that number with a unit,scale or something like that to get the offsets for each vertex. Offsets as in displacements that alter the position. Just some floating point numbers that you add to the coordinates of each vertex. Nothing more.

 

The main problem is that that scale or unit thingy is stored in a bizzare way and I don't have the slightest clue how to deduce it from some random bytes so I wasn't able to exactly apply those morphs. So I had to do some guess work here. There is a lot of talk here. But other than me,no one will understand. There is also guess work with the way you replace a morph in the tri file.

 

I know that the egm files stores morph in the same way and the blender importer imports those egm files! So I might be better off asking the people at niftools about this. Even so, I can hack the egm files with parts from the tri file and import them in blender.

 

And I had to make a new batch of ears because the default ones didn't fit the head properly and looked extremely ugly.

 

This is the post from another place:

 

This is going to be a boring post about modeling. You have been warned ;D. I only posted this

 

I haven't posted it here but this has got to be the most complicated thing I have ever modeled. Yes, and it's and EAR. I found this thing more interesting to model than the clothes I've made so far.

Korana asked me to send her some head but the thing was that the standard ears didn't work at all with the new head so I had to make a new batch. But they ended up having a lot of polygons so I had some improve them and remove the subsurf modifier so save polygons.

 

This is the old version versus the new one:

 

http://i435.photobucket.com/albums/qq72/Alecu100/ear7.png

 

http://i435.photobucket.com/albums/qq72/Alecu100/ear6.png

 

Now guess how many vertices I added to make it look better? Around 380 in total. The old ones had around 1.1k and the new ones have around 1.5k vertices with mirror on. So as you can see just by adding 190 extra vertices where it counts(2x190=380,from mirror modifier that doubles the vertex count) and making better use of the existing vertices, it really made a big difference. So I guess a part of the myth regarding that you can't make smooth meshes from scratch without subsurfing is a bit busted. And there are always better ways to use the same amount of vertices to model something that looks better and even has more details! Of course the ears are a bit overdose but they look good enough to skip normal maps. And they look many times better than the standard oblivion ones which btw, have 0.8k vertices too!

 

I admit I did use a smooth modifier but it only made some difference around the edge of the ears. But a lost of the bumps and bad edge flow had to me fixed by hand.

 

Now some screenshot with some important face loops.

 

 

 

 

This what I mean when I say that face loops should "flow" along the details:

 

http://i435.photobucket.com/albums/qq72/Alecu100/ear4.png

 

http://i435.photobucket.com/albums/qq72/Alecu100/ear2.png

 

http://i435.photobucket.com/albums/qq72/Alecu100/ear.png

 

 

 

 

 

And this is what I mean that most loops should be concentrated on areas that deform more:

 

http://i435.photobucket.com/albums/qq72/Alecu100/ear3.png

 

 

 

 

 

And this is what poles actually mean. There are 2 major special vertices that change the direction of the face loops. The E pole and the N pole. This is what they do exactly:

 

http://i435.photobucket.com/albums/qq72/Alecu100/ear5.png

 

 

 

 

 

This is the original ones with subsurf on that have a lot of vertices, around 4.5k and the improved ones that have 3 times less vertices:

 

http://i435.photobucket.com/albums/qq72/Alecu100/ear8.png

Link to comment
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
  • Recently Browsing   0 members

    • No registered users viewing this page.
×
×
  • Create New...