Aller au contenu

Photo

creating taller elves through 3ds max


  • Veuillez vous connecter pour répondre
68 réponses à ce sujet

#26
DarthParametric

DarthParametric
  • Members
  • 1 409 messages
OK, so here is a step-by-step guide to converting a morph to a mesh, using an Elf male as the example. Additionally, in a subsequent post/s I'll describe how to go about scaling the resultant head mesh up to Human proportions, as per the OP's request. For the sake of brevity I will be glossing over some basics like module setup, tool/software functionality and usage, etc. If in doubt, consult the toolset wiki or Google, or post your query here. As an additional resource, I will upload the source files to my project page.

To begin, create your desired morph in the toolset's morph editor. You pretty much have free reign here, but as I found out in my initial experiments, you don't want to go too extreme for certain features, lest your head not animate well. Also, don't worry about hair, eye colour, etc. All that you need to focus on for now is the physical face shape. If you decide you absolutely must have a beard, that will require a separate step later at the hair stage, so just focus on getting your face to fit the beard you want and note down the model name of it for later.

Once you have the settings to your liking, save out the morph as an MRH as per usual. The name is unimportant, but remember that you must replace spaces with underscores. Now we need to export the morph. First, look for the XML button on the toolbar and activate it. This will export the morph as an XML file instead of the usual game-ready GFF-based MOR. Now right click and choose Post to local to export. Refer to this picture of my Leno-esque test subject:

Posted Image

If you get an error, make sure you don't have spaces or other inappropriate characters in your filename. If so, re-save your MRH with a proper name and try again. Once the export is finished, you can close the toolset. Go to My Documents\\BioWare\\Dragon Age\\AddIns\\<MODULE NAME>\\core\\override\\toolsetexport\\ and you should see a file called XY_<MRH filename>.mor.xml, where X is the species and Y the sex of your morph (in my example, EM for Elf male - em_morph_2_mesh_test.mor.xml). Grab it from there and move it to a suitable working directory. Make it somewhere easy to find, as this will be used a lot. Leave the morph for now - we'll come back to it shortly.

Now we need to get our donor head files. Open DATool. Strictly speaking DATool isn't required, it just expedites the process, so I'll be using herein. You can extract the required files manually if so desired. Go to the Elf male section:

Posted Image

Scroll right to the end (hold CTRL + right arrow) to the base head model em_uhm_bas_0. This is the base model that all the morph targets (the extremes you are blending between in the morph editor) for this race/sex are derived from. This is the key to this process, as the resultant morph is essentially just an edited version of this head, thus it has identical geometry. Now export this model:

Posted Image

You can now close DATool. Now we need to convert this model into an XML file. For this purpose I am going to assume you are using Max/GMax and Eshme's import/export script. This may be possible using Blender or Lightwave using their respective scripts, but I'll leave that for others to explore. Import the model using Eshme's script as per usual. It will complain about missing textures and ask if you want to select them manually - just choose no. You should end up with something like this:

Posted Image

Without making any modifications we want to export this model. You can name it whatever you like - I called it em_uhm_basa_0_ORIGINAL. Once the export is finished you can reset/close Max/GMax. Now you need to navigate to the DATools folder in your system temporary directory. For Vista/Windows 7 this should be C:\\Users\\<USER NAME>\\AppData\\Local\\Temp\\DAOTools\\ and for XP it should be C:\\Documents and Settings\\<USER NAME>\\Local Settings\\Temp\\DAOTools\\. Here, depending on how much you have used the script and how long it is since you cleaned out your system's temp files, you should see a bunch of XML files. You are looking for two files with the name of the model you just exported. In the case of my example that is em_uhm_basa_0_ORIGINAL.mmh.xml and em_uhm_basa_0_ORIGINAL.msh.xml. Grab these two files and move them to your working directory.

Now you should have three XML files - the morph and the two model files. Open all three in a text editor. You can use pretty much any text editor you want, but I'll be using Notepad++ as it has a raft of additional functionality that makes it vastly superior to Windows Notepad. Start with the MSH.XML. You'll see a whole bunch of stuff here (almost 20,000 lines of data), but what we are interested in is right at the top. You'll see the first chunk of data is headed with:

<Data ElementCount="2331" Semantic="POSITION" Type="Float4">

This is the actual geometry information for the model - the 3D position of each vertex. Select everything in this chunk bounded by:

<![CDATA[
]]>

and delete. Now go to the morph MOR.XML. Scroll down to the section headed:

<MeshHierarchy Name="FaceM1">
<Data Semantic="POSITION" Type="Float4" ElementCount="2331">

Once again, select everything in this chunk bounded by:

<![CDATA[
]]>

and this time copy. Now go back to the MSH.XML and past this into the section you previously deleted. What you have just done is replace the vertex positions for the base head with the modified vertex positions of your morph.

Now we need to save out our modified file. At the top of the file, change this line:

<ModelMeshData Name="em_uhm_basa_0_ORIGINAL.MSH" Version="1">

to an appropriate name for your new head model:

Posted Image

You can pretty much call it whatever you want, but you need to conform the DA model naming structure to save yourself some hassle later on. The form is:

[Mainclass]_[MODELTYPE]_[MODELSUBTYPE][MODELVARIATION]_[LOD]

For this example I am using em_uhm_tallelfa_0

where, in this case:

Mainclass is the two letter race and sex ID (EM)
MODELTYPE is the three letter body part ID (UHM)
MODELSUBTYPE is the name of your model (TALLELF)
MODELVARIATION is the one letter variation ID appended to the end of your model name (A)
LOD is the one digit ID of the particular level of detail (0)

Refer to this wiki page for more info.

Once you have made those edits, save the file using the name you just chose as the basis, in my case em_uhm_tallelfa_0.msh.xml. Once it is saved, you can close the file. You can now also close the MOR.XML.

On to the MMH.XML. In this file we just need to edit the model names, as per the last step of the MSH.XML. Replace the ModelHierarchy Name and ModelDataName as appropriate:

Posted Image

Save the file using your new filename, in my case em_uhm_tallelfa_0.mmh.xml.

Now we have our two new model XML files we need to compile them into a game-usable format. To do this we need to use the toolset's model processors. These are commandline, so you'll either need to go old school and use a command prompt (i.e. a DOS box) or a make batch file. The processors are picky about directory names, so the easiest route is using a batch file. Create a new text file. Paste in the following:

"<ORIGINS INSTALL DIR>\\tools\\ResourceBuild\\Processors\\MMH\\GraphicsProcessorMMH.exe" <MODEL NAME>.mmh.xml

editing where appropriate. For example, in my case:

"E:\\Dragon Age\\tools\\ResourceBuild\\Processors\\MMH\\GraphicsProcessorMMH.exe" em_uhm_tallelfa_0.mmh.xml

Save this file as MMH_XML.BAT or something else appropriate. Make sure you aren't hiding file extensions and that it is .BAT and not .BAT.TXT instead. Refer to this. Put this batch file in the same directory as the MMH.XML file and double click it. You should see a command prompt flash up briefly, then an MMH and PHY file should appear. Create another text file and paste in:

"<ORIGINS INSTALL DIR>\\tools\\ResourceBuild\\Processors\\MSH\\GraphicsProcessorMSH.exe" -platform pc mmdtogff <MODEL NAME>.msh.xml

editing where appropriate. Again, in my case this is:

"E:\\Dragon Age\\tools\\ResourceBuild\\Processors\\MSH\\GraphicsProcessorMSH.exe" -platform pc mmdtogff em_uhm_tallelfa_0.msh.xml

Once again, save this file, put in the same folder as the MSH.XML file and double click. you should now have a MSH file.

Alternatively, if you are scared of commandline stuff, or just lazy like me, you can take advantage of a GUI from back in the early days of DA modding. Grab Allstar92's GUI for tazpn's Command Line Tools. Once you have that downloaded and set up (it may require you to install tazpn's tools) you can use the two compile buttons in the bottom right corner to quickly run your XML files through the appropriate processor.

Either way, you should now have your set of 3 model files for your head (MMH, MSH, PHY). Time to test them out! Open up Max/GMax again and try the to import your new model using Eshme's script. If all went to plan then you should get something like my big-chinned, fat-necked friend here:

Posted Image

Note that I've hidden the head collision object so you can see things more clearly. For Max users, the head will probably be invisible unless you turn off textures or set the diffuse to no alpha (face diffuse maps use the alpha channel for the spec map). Select the head mesh and it should have both Skin and Unwrap UVM modifiers (and in Max, an Edit Normals modifier). If you kept the original files exported by DATool, it should have the proper face textures applied. If everything looks good then you can export the model in the usual manner (using the same filename) to generate the metadata (.MET). I'm not sure if this is strictly required for non-props, but it can't hurt. Perhaps Eshme can clarify this. Once finished you can reset/close Max/GMax.

Now we have our head as a model instead of a morph. You can put the files in the Override folder - My Documents\\BioWare\\Dragon Age\\packages\\core\\override\\ - but by itself that isn't enough. To get the game to recognise and use the head, we need to do some additional work extending some GDAs.

Navigate to the 2DA source directory, <ORIGINS INSTALL DIR>\\tools\\Source\\2DA\\, and open Heads.xls. You'll see an array of different worksheets in this file. Scroll along until you get to the elf_heads worksheet. You'll see a whole lot of nothing in there - just the default head we used as a donor. We need to extend this file and add in our new head so that it shows up in the toolset. Select everything in this worksheet and copy, then create a new XLS and paste. We want to add a new line, using one of the previous lines as a guide.

You'll see that there are 8 columns. The two header rows describe their function and valid data types. The first column is ID. This is used in every GDA file. Your ID number must be unique unless you specifically want to overwrite an existing row in the original GDA - you cannot share row numbers. For my example I'm using 99. Note that there is a bug with certain GDAs that prevent IDs higher than 255 from showing up in the game, so some testing in this regard may be warranted. See this wiki page for more info. In this instance though, low IDs should be fine as it is highly unlikely that you'll run into clashes with other modders for something so obscure (it's most problematic in the case of weapons and armour). The next column is Label. This is a toolset-only description - it's what you see in the relevant drop-down menu, so use something descriptive enough to make it easy to find later.

The next three columns are concerned with the model filename. You will recall my earlier comments about using the proper filename format, and this is why. You should recognise the ModelType, ModelSubType and ModelVariation headings and be able to sub in the appropriate values. In my case these were uhm, tallelf and a, respectively. You'll notice there is no reference to either Mainclass or LOD. The Mainclass race element is determined by the GDA's race designation, in this case Elves (so you can't have Human heads in an Elf head GDA and vice versa), and the sex element is determined on a row-by-row basis, which we'll get to in a second. LOD is unnecessary, as the specified model is always required to be LOD0 and additional LODs (i.e. LOD2 and LOD3) and substituted by the game dynamically as (and if) appropriate.

The last three columns are fairly self-explanatory. This is where you identify which sex a particular head is for with a binary 0 or 1. As you can see from row ID #1, you can specify multiple sexes for a single row. The game will automatically detect the appropriate model from the filename. The game makes provision for a "neutral" sex, but I'm not sure if this is actually used in practice and I think it just uses the male's models anyway, so you'll likely want to just set this one to 0 and make your head either male or female by putting a 1 in the appropriate column.

With that done you can delete all the original rows aside from the first two header rows. Here is a comparison of the original sheet to my extended sheet:

Posted Image

Once you have something along those lines, you need to name the worksheet appropriately. When extending GDAs, you need to use the original name with an appropriate epithet. In my case, I called mine elf_heads_tallelf. You can call yours whatever you like, as long as it is unique (if multiple GDAs with the same filename exist, only the first loaded is used) and the entire name doesn't exceed 27 characters. Save the file using the same filename as the worksheet name (the filename is actually irrelevant as only the worksheet name is used, but I like to do this for the sake of clarity). Set this file aside for the moment and we'll come back to it in a minute.

Now we need to address hair. If you go back to the source Heads.xls, you'll see the elf_hair worksheet. The only thing contained within it is the bald/scalp mesh, so we need to add in references to all the other hair models so they are selectable. As before, copy the data and create a new file. The procedure is identical to the head model, except this time we will be adding in rows for the vanilla hair models. These follow the filename format of:

XY_har_hZ0

Where:

X is a one letter race descriptor (D for Dwarf, E for Elf, H for Human, K for Kid, Q for Qunari)
Y is a one letter sex descriptor (F for female, M for male, N for neutral)
Z is a one letter style ID (A, B, C, D)
0 is a one digit model ID (1, 2, 3, 4 - N.B. there are no Xm_har_ha4 models)

DATool is handy for figuring out all the filenames. You will likely have seen the hair models when browsing for the base head model. Here is a comparison of the original sheet to my extended sheet:

Posted Image

You'll note that I tried to override the original row ID #1 to give it a more descriptive label, but for some reason that didn't show up in the toolset, so just leave that one out. The rest of my hair labels were fairly uninspired, but you are free to come up with more colourful descriptions. As before, chose an appropriate sheet name, in my case elf_hair_tallelf, and save the file.

Now that we have the hair, we need some hair colours. Hair (and eye and skin) colours are derived from tints, so we need to open up the Tints.xls source 2DA. Follow the same procedure as before, this time with the hair_tints worksheet. Unlike with the previous examples however, this is a universal file - it can be set to apply to any race, not just Elves. The structure of the tint 2DAs is a bit simpler as well. The ID and Label columns are the same, the other two columns let you specify the filename of a particular tint and restrict that tint to a particular entry in Apr_base. In this particular instance we will set the APR column for all entries to 0, which will make the tints available for all races. For the filenames, the vanilla hair tints follow the format t3_har_XXX.tnt, where XXX is a three letter code for the particular colour. You can see the full list of vanilla hair tints in the following comparison pic:

Posted Image

If you have other tints, be they your own or something like PineappleTree's Vibrant Colors, feel free to add them as you see fit. And while you are at it, extend eye_tints in the same manner. The list of vanilla tints is in the following pic, although again you can add additional ones:

Posted Image

At this juncture, those of you still conscious that are working with a Dwarf or Human head and wanting a beard will recall my comments at the start of the post. For Human heads this is just a repeat of the previous two files - find the human_beard worksheet, extend it with all the beard model names, save with an appropriate worksheet name/filename. For Dwarves, you are required to jump through several extra hoops. For whatever reason, Bioware decided not to include a dwarf_beard GDA. In order to be able to make one you would need an extended M2DA_base to add in the new GDA, then extend Apr_base to add in the new beard GDA ID to the Dwarf appearance beard slot. That is creeping beyond the scope of this particular post, but as the same procedure could be used to add beards to Elves and Qunari (with some additional model work on top of course), I may address this elsewhere.

Once you have your finished all your XLS files, take them to <ORIGINS INSTALL DIR>\\tools\\ResourceBuild\\Processors\\ and, one at a time, drag and drop them over ExcelProcessor.exe. You'll see a command prompt flash up briefly and a GDA should appear in the directory. Repeat for the remaining XLS files. If you didn't get a GDA, then either your worksheet name exceeded 27 characters or you have an incompatible XLS file. If using Office 2007/2010, make sure you export as a Office XP/2003 XLS, not an XLSX. If you are using OpenOffice then your XLS will need to be run through Google Docs or some other program to generate a useable format. For whatever reason XLS files it generates natively aren't acceptable. Once your GDAs are produced, put them in the Override folder alongside the model files. The XLS source files can be deleted or stored elsewhere - they are not used by the toolset/game.

Now we are on the home stretch. Time to get that sucker in the game! I'm not going to cover the specifics of creature/NPC creation here. There should be plenty of info on that on the wiki or elsewhere. As a quick test all I did was (as indicated in a previous post) create a new template, copied across the details from the vanilla Berwick template and edit the appearance details as follows:

Posted Image

Then loading up a save in Redcliffe, I ducked into the tavern to see the results:

Posted Image Posted Image

Success! Although the eagle-eyed amongst you may notice that he is lacking both eyebrows and eyelashes. Fear not, we can resolve both those issues, although they require different approaches.

First, let's fix the eyelashes. This requires a model solution. Open DATool and browse to the end of the model list for the appropriate race and sex, as you did when extracting the base head. The eyelashes are the very last model in the list: XY_ulm_basa_0. As before, choose Save all to export this model. Now open up Max/GMax. Start by importing your existing custom head model, em_uhm_tallelfa_0 in my case. Once that has finished, leave the importer window open (or open again if you closed it) and do the following:

Posted Image

1. In the "Game Objects in Scene" list, select the GOB.
2. Directly underneath in the "Model Import" options section, tick the "Merge with selected" checkbox.
3. Browse for the eyelashes model. In my case this was em_ulm_basa_0.
4. Now hit the Import button, as per usual.

You will get a window popping up asking for confirmation to merge the new model with the existing model. Select Yes. Once the import is finished you can close the import window. What you have just done is import the eyelashes mesh into the head model, making a multi-mesh model.

Now all that needs to be done is to re-export the head model. However, before doing that we need to facilitate the eyebrow fix. Eyebrows in DA are just tinted textures, so we need a texture fix to resolve this issue. To do that, we need our model to use a custom MAO so we can edit it without affecting any other head. Open the Material Editor and use the eyedropper/pick button and click on the face mesh (you probably need to select and hide the collision object obscuring the head first). It should have the uh_hed_masa material applied. All you need to do is select the name and change it to something else unique. In my case, I changed it to uh_hed_tallelfa. Once your name change is done, you can close the Material Editor and unhide the collision object.

With that done you can now export the model. Make sure to tick the "Export MAO" button. Use the same name as you used originally and make sure to replace any old copies in the Override directory with the new one. Since I am including the source files, for illustration purposes I exported mine with a different name, so that people can examine the differences between the two models. I added an additional row to the heads GDA to facilitate the selection of either head. N.B. You should have a pm_ulm_bas.mao or similar with your newly exported model. You can delete this, as it is just a copy of the vanilla eyelash MAO that we have no desire to edit or override.

Now to the texture fix for the eyebrows. To start with, we need a base diffuse map. By default, your head was probably using uh_hed_masa_0d.dds. There are a couple of different options to choose from, each with varying degrees of appropriateness to the species and sex in question. I'll leave people to investigate that at their leisure and stick with uh_hed_masa_0d for this example. The first step is to extract the texture. You'll find it in <ORIGINS INSTALL DIR>\\packages\\core\\textures\\high\\texturepack.erf which you can open either with the standalone ErfEditor.exe in the toolset directory (my preference) or the toolset itself. In the ERF, simply right-click on the texture and choose Extract Resource, then select a location to save it from the directory browser that pops up. At the same time, extract uh_hed_stb_0t.dds, as this is the file that gives us the eyebrow tint masks. Additionally, you want uh_hed_masa_0n.dds and uh_hed_stb_0n.dds, as these are the normal maps. You'll notice for all these files that there are additional textures with the l2 and l3 epithets. These are the LOD2 and LOD3 versions of the textures. We don't need to worry about these, as we'll only be making a custom texture for the LOD0 head (you can't see tiny details like eyebrows at the distance the LOD substitution kicks in).

With all the appropriate textures to hand, we can start editing. I will be using Photoshop for this purpose and will be assuming you are either using the same thing or something roughly equivalent (PSP, GIMP, etc.) and that you know how to use it. Open the tint texture (uh_hed_stb_0t) and switch to the channels view. Each channel holds a different mask for different shaped eyebrows and facial stubble. Chose the one you find most appropriate. I chose the green channel:

Posted Image

Select All, then copy. Now open the diffuse texture (uh_hed_masa_0d) and in the layers view create a new layer. Fill it with a solid colour. What colour doesn't particularly matter at this point as you can change it later, but I went with a dark brown. With the layer selected, choose Add Layer Mask. Now switch back to the channels view, activate the layer mask channel and deactivate the other channels. With the layer mask channel selected, paste in the tint channel you copied earlier. Unless you like it, set your foreground colour to solid black and paint out any beard stubble and other unwanted white areas. The layer mask is essentially just an alpha over the solid colour you filled the new layer with, so anything not solid black will receive some level of that colour. Once you are finished, reactivate the RGB channels and deactivate the layer mask channel, then switch back to the layer view. If all went to plan, your guy should now have an appropriately hirsute brow:

Posted Image

You may want to play with the opacity of the layer a bit to get a look you like. I set mine to 90%.

The last thing on the diffuse map to edit is the alpha channel. As I mentioned earlier, in face textures, the alpha channel holds the specular map. Now that we have added eyebrows, we need to tone down the spec map in this area a bit (unless you like shiny eyebrows). Start by switching to the channels view and activating the alpha channel and deactivating the other channels. Select All, then copy. Now deactivate the alpha and reactivate the RGB. Switch back to the layers view and create a new layer. Paste in a copy of the alpha channel. Now select your eyebrow layer and make sure it is activated and all other layers are deactivated. Select All and Copy Merged. Now create a new layer and deactivate the eyebrow layer. In the new layer, Paste Special->Paste in Place. You should now have another eyebrow layer, but this time without using a mask. With this layer still selected, Adjustments->Desaturate. Set the opacity to about 90% and position the layer directly above the copied alpha channel layer. Activate the alpha copy layer. Switch back to the eyebrow copy layer and set the blend mode to Overlay. You may want to fiddle with the opacity of the eyebrow layer or try different blend modes to your taste. When happy, with the eyebrow copy layer selected, Select All and Copy Merged (make sure only the eyebrow copy and alpha copy layers are active). Now switch to the channels view and activate the alpha channel. Deactivate the RGB channels. With the alpha channel selected, paste:

Posted Image

Done! Now you can deactivate the alpha, reactivate the RGB and switch back to the layers view. Save out the master file in case you need to make changes later. Once that is done you can delete the alpha copy and eyebrow copy layers, leaving just the original diffuse and the eyebrow overlay. Flatten the image and save it out as a DXT5 DDS. Make sure to use a unique filename. I went with uh_hed_tallelfa_0d.dds. We are done with diffuse map now, so you can close all those files.

To create the normal map, we are going to use the same layer mask approach. Open uh_hed_masa_0n.dds and uh_hed_stb_0n.dds. You'll need uh_hed_stb_0t.dds as well. In uh_hed_masa_0n, go to the channels view and pick one of the R, G or B channels (doesn't matter which). Select All, then copy. Now create a new image. Make sure it is RGB and not greyscale. Save it as uh_hed_tallelfa_0n_MASTER (or something similar). In the existing layer, paste. Rename the layer ORIGINAL RGB. Go back to uh_hed_masa_0n and activate the alpha channel, deactivate the RGB. Select All, then copy. Back to the master, create a new layer, paste. Rename the layer ORIGINAL ALPHA. Go to uh_hed_stb_0n. Repeat the same process - copy one of the RGB channels and paste it as a new layer called RGB OVERLAY in the master. Copy the alpha channel and paste it as a new called ALPHA OVERLAY in the master. Position the overlay layers above their matching original layers. Now go to uh_hed_stb_0t and activate whichever channel you used for the diffuse. Select All, copy. Back in the master, select each overlay layer in turn, Add Layer Mask, switch to channels view and past into the layer mask channel just as you did previously. Don't forget to paint out any excess stubble. Now your overlay layers should just be the eyebrows. Make sure the two RGB layers are activated and the alpha layers deactivated. Select the overlay layer, Select All and Copy Merged. Create a new image. Make sure it is RGB. If you created it with a transparent background, fill the layer with a solid colour (doesn't matter what, the layer just needs something in it). Switch to the channels view, select one of the R, G, or B channels, paste. Repeat this for the remaining two channels. Go back to the master. Deactivate the two RGB layers and activate the alpha layers. Select the overlay layer, Select All and Copy Merged. Go back to the new image, in the channels view create and activate the alpha channel, deactivate the RGB channels. Paste. Switch to the layers view and make sure the image is flattened. Save out as a DXT5 DDS with a filename such as uh_hed_tallelfa_0n.dds.

Posted Image

We are done with texture editing for now, so we can close those. Make sure to move any final copies of custom DDS files to the Override folder. To get the new textures to show up, we have to edit the custom MAO we specified during the model export. Find this file, uh_hed_tallelfa.mao or whatever you named it. Open in a text editor (it's another XML file). There are just two lines we need to change. Find

<Texture Name="mml_tDiffuse" ResName="uh_hed_masa_0d.DDS"></Texture>
<Texture Name="mml_tNormalMap" ResName="uh_hed_masa_0n.DDS"></Texture>

and replace with

<Texture Name="mml_tDiffuse" ResName="uh_hed_tallelfa_0d.DDS"></Texture>
<Texture Name="mml_tNormalMap" ResName="uh_hed_tallelfa_0n.DDS"></Texture>

substituting in whatever texture filenames you used. Save the MAO and make sure it is in the Override folder with all your other files and load up the game to test!

Posted Image

And there we go, one `browed and `lashed up Elf, ready for a night out on the town. Or something.

Phew. After all that lot I need a good lie down. After the intermission, I'll move on to part 2 - creation of LODs, and then (at some point) Part 3 - scaling and inter-species cranial cross-overs.

I'll upload the source files as soon as I can. Until then.....*faints*

#27
LukaCrosszeria

LukaCrosszeria
  • Members
  • 1 304 messages
Posted Image

*gives chocolate and cookies* 

This is amazing! Thanks for posting this tutorial, Darth, I'm going to start on it right away. Posted Image


You have a lie down meanwhlie :lol:

Modifié par LukaCrosszeria, 18 août 2011 - 08:04 .


#28
DarthParametric

DarthParametric
  • Members
  • 1 409 messages
On to Part 2, adding LODs for your fancy new head.

N.B. This guide is intended as a simple workaround for people that have no skinning/rigging knowledge or experience. Unfortunately, there is no "cheat" to easily replicate this in GMax that I know of (or at least that I can get to work). Unless someone has an alternative suggestion, the only avenues open for GMax users at this juncture are to either export copies of the vanilla LOD2 and LOD3 models renamed the same as their custom head, or learn how to rig their head properly. Unfortunately the later is well beyond the scope of this guide, but there are plenty of tutorials available, both video and text, that a Google search should turn up. That being said, I think at LOD3 there is zero likelihood anyone could tell the difference from the vanilla head and a custom head. Even at LOD2 most people probably wouldn't notice. I'll investigate what goes on with morphs and how they tackle the issue - that may provide the perfect solution for both GMax and Max users.

As I alluded to in several previous posts, the game will dynamically switch certain models to lower level of detail versions (i.e. less polygons, lower res textures, etc.) at certain distances, to reduce the system overhead. The highest level of detail (LOD) is LOD0. For props, there is a single lower LOD, LOD1. For non-props (i.e. animated models), there are two lower LODs, LOD2 and LOD3.

When we created our head in the previous example, we only created the LOD0. This is fine in cutscenes and in small rooms, but in large areas where you can get far enough away and still see the model (~30-50m), you'll trigger a switch to a lower LOD. This is a problem because of the way the DA system works. By now, you should be aware that any NPC is made up of a multitude of different models that the game pieces together. There's the head/face, the eyes, the hair/helmet, the body (or separate torso, hands, and feet for most armour), etc. If you import these various individual models into Max/GMax, you'll see that each one has its own rig (i.e. bone system/skeleton). The rig is what is driven by the animation, and the mesh in turn is driven by the rig, as it is weighted to be affected to varying degrees by the individual bones. When the game brings all the models together to assemble an NPC, it doesn't keep all those copies of the rig. It selects one "master" rig and all the models use the bone name and position information from that and apply it to their individual mesh weighting. In the case of bipeds, the head/face model appears to be the master. That means when using our custom head with only the LOD0 model, when the transition to a lower LOD is triggered, the rest of the LOD2/3 models are forced to use an LOD0 rig. Because each LOD has progressively fewer bones, this causes some fairly wild distortion. The visual effect is not unlike a marionette puppet with tangled strings, where the arms and legs curl up toward the head, although it can take other forms. To prevent this from happening, we need to create the proper LOD models for our head.

As when we made the LOD0 model, we need some donor heads. Open up DATool and scroll to the original head model you extracted. By default, DATool only shows LOD0 models. We need to tell it to show all LODs so we can extract the LOD2 and 3 models. You can toggle this setting in the Options menu:

Posted Image

With that enabled, the next model in the list should be the LOD2, followed by the LOD3. Save All for these to export them, just as you have done previously and turn off the show LOD option. You'll notice the difference in polygon count between the three models, especially between LOD0 and LOD3:

Posted Image

FOR MAX ONLY
Once you have the donor model files, open up Max and load in your LOD0 custom head model. Select the face mesh. It should be something like EM_UHM_BAS_FaceM1. Unlink it from the GOB and Edit->Select Invert, then delete. Select the mesh again (it now should be the only object in the scene) and in the stack right click on the Skin modifier and delete it. We do this because the LODs each use a different number of bones in their rigs, thus the skin weighting from one is not compatible with the others, causing the distortion described previously. You can save this file now (as a .max file) then reset.

Run Eshme's importer and load up the LOD2 head you extracted. It should be named something along the lines of em_uhm_basa_2. Select the face mesh and rename it to something else. Now Import->Merge the custom head file you saved into the scene. Select the custom head mesh and link it to the GOB. In the stack, add a Skin Wrap modifier. In the Parameters section, click the Add button. Open the object list and select the renamed LOD2 face mesh. Let it run for a bit and eventually the LOD2 head's name will appear in the box above the button. Once that happens, click the Add button again to deactivate it. Scroll down to the end of the Parameters section and hit the Convert to Skin button. You should get a new Skin modifier added to the top of the stack. You can now delete the Skin Wrap modifier, as it is no longer required. What you've just done is use the weighting of the original face mesh to auto-generate the weighting for your custom face mesh. Now, assign the LOD2 MAO to your custom face mesh. I find the quickest and easiest way is to select the custom face mesh, open the Material Editor and use the eyedropper to pick the material of the original mesh, then hit the Assign Material to Selection button. With that done, you can now delete the original LOD2 face mesh. The model is now ready for exporting. Make sure to use the same base filename as the LOD0 model, just changing the epithet from 0 to 2. In my case, this was em_uhm_tallelfa_2. You don't need to enable MAO export, as you have switched to the vanilla texture. Once the export is finished, reset and load in the donor LOD3 model (em_uhm_basa_3 or equivalent). Repeat the process again and export out em_uhm_tallelfa_3 or whatever your file is named. Now bask in how easy your life is compared to the poor GMax guys.

Now that's done, collect your newly exported model files and place them alongside the LOD0 files in the Override directory. Load up the game and find whichever NPC you assigned your head to. Slowly back away from them until you hit the LOD transition point. I'm not sure of the exact distances, but at a guess I'd say LOD2 kicks in at around the 15m/50ft mark and LOD3 at about the 30m/100ft mark. Depending on a few factors like resolution, game settings and (dare I say it) eyesight, you should spot the change in geometry and textures of the different body models when it switches. If all went to plan it should only be subtle. Watch any ambient animations like pacing and head movements to make sure everything is working properly. There shouldn't be any noticeable distortion or other anomalies.

I have uploaded a preliminary example/source file pack here. I'll revise it as necessary with future posts.

Modifié par DarthParametric, 24 août 2011 - 02:24 .


#29
tmp7704

tmp7704
  • Members
  • 11 156 messages

DarthParametric wrote...

When the game brings all the models together to assemble an NPC, it doesn't keep all those copies of the rig. It selects one "master" rig and all the models use the bone name and position information from that and apply it to their individual mesh weighting. In the case of bipeds, the head/face model appears to be the master.

Small note, it seems more complicated than that: at least as far as the dimensions of the bones go, the data from the other character pieces (like the torso and/or 'gloves' parts) can override the information from the head model.

The head seems to be more of a "last resort" thing for the engine, and it's used in situations when there's issues with the models "down the chain", like a missing .phy file to go with the .mmh, and such.

#30
Eshme

Eshme
  • Members
  • 756 messages
Perhaps a few optimizations. When exporting the base head with my exporter, use the final name already. Then replace the vertex chunk within the temporary folder, but do not edit the file name and mesh name etc. After that rerun the "Donotrun.BAT" file in the temporary (if that head was the last thing you exported), and it recompiles the edited xml files. They are being copied to the export folder of my Tools.
Spares you the manual batch file creation.
You may only import the new mesh to check if it works (ie looks as you want). Reexporting is not nesesary ,the MET file with the proper name is already there because the base head was exported with the final name in Step 1. Regardless i doubt the MET is needed anyway.

#31
LukaCrosszeria

LukaCrosszeria
  • Members
  • 1 304 messages
I followed the tut up to the point of creating the eyelashes part and everything works perfectly! :o

I used the new head on a party member in my mod, but the only thing is, his skin doesn't look like it should, it looks really old and wrinkled >< Should I create a skin tints file too?

Moving onto the eyelashes part now :lol:

#32
Eshme

Eshme
  • Members
  • 756 messages

tmp7704 wrote...

DarthParametric wrote...

When the game brings all the models together to assemble an NPC, it doesn't keep all those copies of the rig. It selects one "master" rig and all the models use the bone name and position information from that and apply it to their individual mesh weighting. In the case of bipeds, the head/face model appears to be the master.

Small note, it seems more complicated than that: at least as far as the dimensions of the bones go, the data from the other character pieces (like the torso and/or 'gloves' parts) can override the information from the head model.

The head seems to be more of a "last resort" thing for the engine, and it's used in situations when there's issues with the models "down the chain", like a missing .phy file to go with the .mmh, and such.


The culprit is the bone index or the vertex shader equivalent that is stored within each model. This is taken from the "master" (or rather the first/last model the engine happens to process in a multipart model) as Darth said. In different LOD stages the bones count might be different ,and thus the indices may be different and thus the LOD variations arent compatible. This causes Skin distortion by the Vertex Shader due incompatible Indices. Any other rig information is filled in and merged or processed in unknown ways.

#33
DarthParametric

DarthParametric
  • Members
  • 1 409 messages

LukaCrosszeria wrote...

I used the new head on a party member in my mod, but the only thing is, his skin doesn't look like it should, it looks really old and wrinkled


Sounds like a normal map issue. If you are at the eyelash/eyebrow stage, you'll soon be specifying a custom MAO, which provides an avenue to fix it. When you export the new head model with eyelashes, check the MAO and see what it says. The values of interest are primarily mml_tNormalMap and mml_tAgeNormalMap. I suspect both are actually correct (uh_hed_masa_0n and uh_hed_olda_0n respectively), but for whatever reason it is blending in the age normal map (which should be only something morphs do I would have thought). If that is the case, changing the age map to Default_FlatNM should hopefully fix the issue. Post a screenshot and the contents of your MAO when you get a chance.

#34
alschemid

alschemid
  • Members
  • 474 messages
Thank you for the step by step tutorial, I always get stuck into the command lines. :)

#35
LukaCrosszeria

LukaCrosszeria
  • Members
  • 1 304 messages
I've followed the steps but he still looks old and wrinkled and has no eyebrows. Could the problem be here?

"Open the Material Editor and use the eyedropper/pick button and click on the face mesh (you probably need to select and hide the collision object obscuring the head first). It should have the uh_hed_masa material applied. All you need to do is select the name and change it to something else unique."

When I selected the face mesh in 3ds, it didn't say "uh_hed_masa", it said "DAO_newmat_2896". I struggled over this a few days until just now I thought, maybe I should copy the old dds files with the new mmh until I make new dds files.This time I was able to select uh_hed_masa by clicking the button "Dragon Age Material". Before I didn't have that option. It asked me "Instance or Copy", so I chose copy, we'll see later if that was the good choice :P

#36
DarthParametric

DarthParametric
  • Members
  • 1 409 messages
You don't want to click the material type button (where it says "Dragon Age Material"). It sounds like you've reset it, hence why the name changed - changing the material type to a DA material always resets the name. As long as the content remained the same though, it shouldn't have made any difference - it would have just been the vanilla MAO with a different name. Like I said, you need to post screenshots and the MAO content.

#37
LukaCrosszeria

LukaCrosszeria
  • Members
  • 1 304 messages
Well, the first time I tried to select the face mesh in 3ds, it showed "uh_hed_masa" for just a split second, then switched to DAO_newmat_(some number). I tried to figure out what was causing it but couldn't.

I'm just about to take a look at it and I'll post the content of the mao, but it seems to have worked this time. Your tutorial really is amazing :)

Modifié par LukaCrosszeria, 20 août 2011 - 07:52 .


#38
LukaCrosszeria

LukaCrosszeria
  • Members
  • 1 304 messages
This is the content of the mao file:

Posted Image

This is my Grey Warden and Berwick. I used the same mrh for the Warden's face to export the xml for Berwick. Not the same skin yet, but he does have eyebrows :)

Posted Image

Edit: After posting the screen shot of the mao, I edited it and changed the value for mml_tAgeNormalMap to Default_FlatNM.

It now says:

Texture Name="mml_tAgeNormalMap" ResName="Default_FlatNM.DDS"

I'm afraid that didn't change anything though.

Modifié par LukaCrosszeria, 20 août 2011 - 08:03 .


#39
DarthParametric

DarthParametric
  • Members
  • 1 409 messages
So that's the "old and wrinkled" you were talking about? Never been to a nursing home huh? If you want a baby-faced Elf, use uh_hed_elfa_0d/n as your base textures instead of uh_hed_masa_0d/n. There is also uh_hed_fema_0d/n.

#40
LukaCrosszeria

LukaCrosszeria
  • Members
  • 1 304 messages
I'm sorry, I get what you're saying :unsure: When I said his skin was old and wrinkly, I hadn't used his face in the Redcliffe tavern yet. I'd only used it in my mod where the lighting obviously created a wrong impression. This is how he looks in my mod.

Posted Image


Before I was able to properly select the head mesh and adjust the mao it was a lot worse. When I saw him in Redcliffe I thought, he's almost perfect, but his skin color isn't what I'd like.

I just put the two images together in my screenshot to illustrate that difference in skin and the fact he has eyebrows, which I was proud of, not to show anymore that he looked old because I didn't think so anymore. I should have said that though.

I'm going to start on the lod part now, thanks again for the tut Darth. Looking forward to the rescaling bit :lol:

Modifié par LukaCrosszeria, 21 août 2011 - 07:51 .


#41
DarthParametric

DarthParametric
  • Members
  • 1 409 messages
No prob. When you said "old and wrinkled" though, I was assuming something more along the lines of this:

Posted Image

By the way, are you doing the skin colour with a tint or a texture edit? You should be using a tint so that any exposed skin on armour/clothes models gets the same colour.

#42
LukaCrosszeria

LukaCrosszeria
  • Members
  • 1 304 messages

DarthParametric wrote...

By the way, are you doing the skin colour with a tint or a texture edit? You should be using a tint so that any exposed skin on armour/clothes models gets the same colour.


I did the tint yes, followed the steps for the dds files.

Edit: I just finished part 2 and created the lod2 & lod3 files. I don't see any spastic movement when moving away so I assume all is well :lol:

Posted Image

Modifié par LukaCrosszeria, 21 août 2011 - 03:21 .


#43
DarthParametric

DarthParametric
  • Members
  • 1 409 messages
On to part 3: Of Elves and men, and swapping their heads (and other body parts).

Posted Image

So the goal, as per the OP's request, is to put an Elf head on a Human body. We've already taken the first step and made our desired head as a morph, converted that to a mesh, and stuck it on the appropriate body of the same race. Now we need to book him in for some cranial transplant surgery to get him on the body of a different race. Obviously, the major hurdle is that the Human and Elf bodies are of different sizes, so it's not as simple as just changing the name of the model. We need to scale the Elf head up in size so it matches the Human head and body.

In order to know how much to scale, we need some figures to work with. If we look in apr_base, we can see the listed height for a Human male is 1.75m and the height for an Elf male is 1.60000002384186m. That gives us an Elf male to Human male scale of 0.91428572790963. Based on that, an Elf would need to be scaled up by a factor of 1.09374998370185 to be the same height. However, if you look further at apr_base, it gives the scale as 0.92000001668930, which gives a scale factor of 1.08695650202115. So what gives with these discrepancies? In short, I have no idea. Using either scale factor - the stated one or the derived one - doesn't give perfect results, although the stated one is close. Ultimately it took a lot of trial and error, comparing key vertex individual positions, averaged vertex positions and differences in overall mesh dimensions to come up with something suitable. I say "suitable" as 3D apps like to round to 3 decimal places, which means precision is a difficult thing to achieve by mere scaling alone. In the end, the only way I could get the neckline to match up close enough to prevent gaps at the body join was to physically move the mesh after scaling. But more on that shortly. Suffice it to say, anyone wanting to undertake this process for themselves with a different head combo is going to have to play around for a bit to find the right set of numbers to squish/stretch and position things just right. What you are going for is to get the position of the major animated bits - particularly mouth and eyes - as close as you can to that of the donor species. You also want to get the neckline as close as you can as well, to avoid gaps at the body join. It takes a bit of wrangling, and there will, by necessity, be some level of compromise. For example, here's the base Elf head (green) scaled using my final values compared to the base Human head (red):

Posted Image

OK, let's begin. In the case of the Elf male to Human male transition, I determined that a uniform scale (i.e. identical in all three axes) was appropriate. That means we can take advantage of a handy feature of Eshme's script, the World Scale. You may have seen in the setup of the script that you could set the scale to 1x, 10x, 100x or 1000x. 1x is the DA scale. If you change the scale to 1000x, models you import will be scaled up 1000 times and then shrunk 1000 times (to proper DA scale) on export. This is useful because it allows you to work at more manageable scales for modelling work without having to manually scale the mesh. We can take advantage of this feature to make our model the right size. First we need a scale factor, which in this case I have determined to be 1.086. Obviously that's not an available option in the script's setting, but fortunately we can specify custom values using what is essentially the Max/GMax equivalent of a commandline.

Open Max/GMax. Now we need to open the Listener window. The F11 key does this by default, or go to the Utilities panel, hit the MAXScript button, then the Open Listener button. The Listener is a console, it outputs the various results of scripts and so forth (capturing content from here via YAGG is how Eshme's script side-steps the GMax export limitations). However, the Listener also accepts inputs. Paste/type the following into the Listener window:

DAOTools.WorldScale = 1.086

and hit Enter. Note the space on either side of the equals sign. You should get an echo back of 1.086, which confirms that command was accepted and the value was changed:

Posted Image

You can now close the Listener. Open Eshme's importer. On the top right of the pop-up window you should see the line WorldScale from Setup: 1.086. If you don't see this, go back to the Listener and change the scale before proceeding. With scale correct, load in the LOD0 head model that you created in the first two parts of the guide. In my case, I'll be using em_uhm_tallelfb_0.

Posted Image

Hit the Import button. The script will pop up a warning about the scale. Hit the Yes button to proceed, and skip any missing texture warnings as normal. Close the Import window when it's finished. Before we export we will reset the World Scale, which will cause the script to export the model at it's current scale, which is 1.086 times larger than the original version we imported. Before we do that though, we need to make a minor position adjustment. Whilst scaling made our head the right size and height, it's actually positioned ever so slightly back on the neck compared to the Human head. In order to get the neck seam to line up with the body, we need to move the head mesh forward slightly.

You should have two meshes, the head itself, with the suffix FaceM1, and the eyelashes, with the suffix LashesM1. Select the FaceM1 mesh. Change to the Hierarchy tab, make sure the Pivot button is selected, then in the Adjust Pivot section, hit the Affect Object Only button. Now select the Move tool. In the co-ordinates window at the bottom of the screen, click in the Y co-ord box and type in 0.007. Hit Enter and you should see the head jump forward slightly. Now select the LashesM1 mesh, and change its Y co-ord as well. With that done, you can deactivate the Affect Object Only button.

Posted Image

At this juncture, we could simply export our head using the correct nomenclature, set up a GDA, and get it into the game. However, we are going to add a couple of additional steps. The first thing we are going to do is add in the scalp mesh. Normally the scalp mesh is included in the hair model, not the head/face model, but we are going to change that. The reason for this is a bug with the game that affects how some multi-part models receive tints. In our case, when applying skin tints to our head model the scalp won't tint properly with the rest of the exposed skin on the body when it is part of a multi-mesh hair model. This is very noticeable of a couple of hair models that have lots of exposed skin on the neck or other parts of the scalp mesh (in particular the cornrows hair model). If you haven't previously, open DATool and extract the Elf male scalp model, em_har_blda. Be sure to enable LODs and as extract the LOD2 and LOD3 models as well. Once you have those, import em_har_blda_0 into your scene, making sure beforehand that the World Scale is still at 1.086. Also make sure that you select the GOB and enable the Merge with selected option.

Posted Image

With the scalp imported and selected, once again activate the Affect Object Only button and change its Y position to 0.007. Now it's time to reset the World Scale. Open the Listener and paste/type in:

DAOTools.WorldScale = 1

and hit Enter, making sure you get a 1 echoed back. With that done, close the Listener. Time to export. However, now we come to the second additional step I mentioned previously. What we are going to do is replace the scaled Elf rig the model is currently using with the proper Human rig. This may not be strictly necessary, as if you were to compare the two rigs they are very closely (although not exactly) aligned, but given the importance the rig of the head model plays, I figure it's a case of better safe that sorry. So what we need to do first is export the current model with a temporary filename. What you call it doesn't matter - I called mine ELF_HEAD_LASH_SCALP_SCALED_0. Just make absolutely sure before exporting that the World Scale is set to 1:

Posted Image

Once that is exported, reset the scene. Now open DATool and export the base Human head, hm_uhm_basa. As before, enable LODs and export the LOD2 and LOD3 models as well. Back in Max/GMax, import hm_uhm_basa_0, making sure World Scale is 1. With the Import window still open, select the GOB and enable the Merge with selected option and import your previously exported scaled Elf head, ELF_HEAD_LASH_SCALP_SCALED_0 in my case. You'll get a warning about merging with an adjusted World Scale. Just click OK. Once that is finished, you presumably have some sort of horrible Frankenstein's monster. Just select the HM_UHM_BAS_FaceM1 mesh and Delete. Now select each of the Elf meshes in turn and edit their names, changing the EM to HM. This isn't strictly necessary - I just like to keep the race/sex designators in sync. With that done, we can finally export the game model. Make sure you name it appropriately. I named mine hm_uhm_tallelfc_0.

Now we have our LOD0 head. Let's complete the set and make the LOD 2 and 3 heads. Make sure you reset the scene, then set the World Scale to 1.086 and import your LOD2 Elf head. In my case, this was em_uhm_tallelfb_2. Merge in the LOD2 Elf scalp, em_har_blda_2. Now set your World Scale back to 1. As before, activate Affect Object Only and change the Y position for each mesh to 0.007. Edit the mesh names, changing EM to HM. Given the simplicity of the LOD2 and 3 rigs, we aren't going to worry about swapping the scaled Elf rigs out for the Human rigs, so we can now just export this model as-is with the appropriate filename. Mine was hm_uhm_tallelfc_2. Ensure World Scale is 1 before exporting. Now reset, set the World Scale back to 1.086, import the LOD3 head and scalp, reset World Scale, reposition meshes, edit the mesh names, export model with the appropriate filename. Mine was hm_uhm_tallelfc_3. Note to Max users: if you are using the LOD0 head mesh for your LOD2 and 3 models, as per the previous part of the guide, you will notice the discrepancy between your head mesh and lower LOD scalp mesh. If you are using the head for a bald character, you may want to consider using the LOD0 scalp mesh for the LOD2 model, importing it into the scene and generating the skin modifier in the same manner you did for the head model. I wouldn't bother for the LOD3 model though. I'll leave this for individuals to explore on their own.

Now on to the eyes. Open DATool and export the Elf eyes, em_uem_basa_0. Note that there are no LOD2/3 models for eyes. In Max/GMax, reset the scene and set the World Scale to 1.086. Import em_uem_basa_0 and reset World Scale to 1. Once again, reposition the mesh, edit the mesh name, and export the model with the appropriate filename. Mine was hm_uem_tallelfc_0.

The last thing we need is some hair. You can do this with all 15/16 (depending on sex) hair models if you want, but I'll just use one for this example. Open DATool and extract the model/s of your choice. I'll go with em_har_ha3a, the Alistair hairstyle. Make sure to also extract the LOD2/3 models. In Max/GMax, reset the scene and set the World Scale to 1.086. Import the LOD0 model, the reset the World Scale to 1. As detailed before, hair models include a copy of the scalp mesh as well as the actual hair mesh itself. As we've already included the scalp mesh in the head model, we don't want it in any of the hair models. Select the scalp - it should be something like EM_HAR_HA3_HairM1 - and delete. You should be left with a HairM2 mesh, which will be the actual hair. You should be familiar with the rest of the procedure - reposition mesh, edit the mesh name, export model with the appropriate filename. Mine was hm_har_tallelfha3a_0. As with the head, repeat the process for the LOD2 and 3 models, making sure to delete the scalp meshes in those as well.

With that all done, we have our required models. Now for everyone's favourite, extending GDAs. The process is the same as was described in the first part of the guide, only this time we need to extend human_heads and human_hair rather than their Elven equivalents. We also need to extend a new one, eyes, to add in our custom eye model:

Posted Image

If you already have extended copies of eye_tints, hair_tints, and skin_tints then you are good to go. Otherwise, refer back to the earlier parts of the guide for info on those. Once you have what you need, open up the toolset and transplant your shiny new head onto the NPC of your choice. My unfortunate victim today is Alistair:

Posted Image

Here's a shot of him in-game, nekkid so you can see the neckline where it joins the body:

Posted Image

And a couple of in-game conversation shots, to show the mesh deforming properly during animation:

Posted Image Posted Image Posted Image

Note that my PC had to wear a dress - a dress!! - during those scenes just so his giant armoured shoulder pads didn't block half the screen. I hope you appreciate the suffering and mental anguish he endured.

Anyway, that's it for now. Stay tuned for more exciting adventures next time. Here's a sneak peak:

Posted Image

Modifié par DarthParametric, 23 août 2011 - 02:49 .


#44
LukaCrosszeria

LukaCrosszeria
  • Members
  • 1 304 messages
:o:O:O

I can't wait to try it out! I'll get started on it asap! :wizard: Thanks, Darth!

#45
Eshme

Eshme
  • Members
  • 756 messages
Interesting trick with the merge option to swap rigs.

#46
LukaCrosszeria

LukaCrosszeria
  • Members
  • 1 304 messages
Look :o

I'm just currently testing him in game, he looks perfect! Just his mouth acts a little weird when he talks, I think maybe I'll need to tweak the mrh a little.

Posted Image

Modifié par LukaCrosszeria, 24 août 2011 - 01:32 .


#47
DarthParametric

DarthParametric
  • Members
  • 1 409 messages
Could be a weighting issue. If it persists, you could try deleting the skin modifier and generating new weighting from the base Human head using the process I described for the LOD2/3 heads in part 2. The method is a bit of a kludge, so some inconsistencies are to be expected.

EDIT: Source files package updated to v2, which includes all the additional files for the Human-sized Elf - http://social.biowar...ect/2639/#files

Modifié par DarthParametric, 24 août 2011 - 02:30 .


#48
LukaCrosszeria

LukaCrosszeria
  • Members
  • 1 304 messages
 That could be it, I generated some face fx for new dialog lines and it persisted. His upper lip seems to be much thinner and his lower lip fatter, which makes it look funny when he talks.
I'll try that, generate new weighting from the base human head. Still, despite that little thing it's flawless, I don't see any inconsistencies :)

#49
DarthParametric

DarthParametric
  • Members
  • 1 409 messages
Well here's one. For some reason the head auto-hide only works with morphs it would seem, so wearing helmets results in this:

Posted Image

#50
LukaCrosszeria

LukaCrosszeria
  • Members
  • 1 304 messages

DarthParametric wrote...

Well here's one. For some reason the head auto-hide only works with morphs it would seem, so wearing helmets results in this:

Posted Image


Is that weighted from the base human head? You already pulled it off :lol: That helmet looks fierce :P

I tried to do it myself today but somehow ended up deleting the elf head mesh :pinched: I'll try again tomorrow.