Lesson 2 - Kamzik123/AnvilToolkit-Resources GitHub Wiki

This lesson will over the following topics.
-
TextureMaps for models
-
Materials
Note: For this you will need to know the fundamentals of editing textures using the AnvilToolKit.
Check the Texture Viewer tutorial, unless you already know what to do.
Allow me to give you the basics on Texturemap files for models, and how they work.
There are usually 3 (or more in later entries) types of Texturemap file types the main ones to note are "Diffuse", "Normal", "Specular, and "Mask".
-
Diffuse: The "main" texture and contains the colors and general appearance of a model.
-
Normal: For details that would help give a visible texure to a model e.g. wrinkles, scratches and dents.
-
Specular: Controls how a model reflects the game's lights. In later entries it can contain masks in some of its channels.
-
Mask: Stores multiple texture properties within a single texture file. (not as common as the others stated above)
For this lesson we are going to make Ezio look like his younger self in Assassin's Creed: Brotherhood.
First we will need to extract DataPC.forge, as mentioned in lesson 1, it contains the main playable character files.
Remember it will be in the following order of unpacking Forge files > Data files > the files that you want to edit.

xx_-_Ezio_Florentin.data is the file we want, as it contains Ezio's young face texture.
When you Open it and look for the Texturemap files for Ezio's head/face.
The most important file you need in this instance is the "Diffuse" and "Normal" Texturemap.
Search for the word "Head" and you will see files named.
xxx-cr_u_ezio_head_FlorentineNoScars_DiffuseMap
xxx-cr_u_ezio_head_FlorentineNoScars_NormalMap
Save them as a .DDS file.
Now that we have Ezio's young face texture, let's go to the one main one ACB uses for Ezio's default ACB look.
Open up the xx_-_Ezio_Rome.data file and look for the texture files it uses for Ezio's head.
xxx-CR_U_ezio_Head_Old_DiffuseMap
xxx-CR_U_ezio_Head_Old_NormalMap
Replace them using the Texture Viewer. Click on the "replace" button, to swap the texture with the DDS you grabbed.
Once you have done all of that, repack the edited xx_-_Ezio_Rome.data


Here is the end result.

You can use this knowledge to add in your own custom DDS files for textures and make your own look as shown here:

(Ezio's Drachen Armor cape is now green instead of the default red)
Best of luck.
Pharaoh
Materials are crucial to models in Anvil Engine games, they are one of the main pillars that control a model's texture.
There can be multiple material files for one character and this can be due to different parts needing a different look.
A good example of multiple material uses, can be seen in the image below.

As you can see, each part of this sword model has different materials used, the amount could be 1 or even 4+ all together.
In the image you see there are 4 materials with the most notable one being the blue highlighted grip.
- The sword's blade highlighted in grey, would be using a metal material template.
- The sword's grip highlighted in blue would use a leather material template.
Note: The highlight colors in the mesh viewer can be random, depending on the model.
You can make your own materials for custom models you swap, add or make for the games.

This would require giving the file ID highlighted in red a unique number that is NOT used by any other material in the game.
Note: It is also ideal in most cases to remove a "TextureSet", from a material you are modifying and make it call for an override texture instead.
This makes it easier to add/change textures you use for a model, as you won't need to constantly edit a TextureSet file with new texture file IDs.
![]()
As seen in the image above, removing the reference number is enough to remove the TextureSet from a material.
- You are free to also delete the "TextureSet" files once you've done that.
Here is a quick rundown of converting texture set calls into "overrides".


Basically change the line:
" Value Name="SpecificationMethod" Type="Enum" EnumName="TextureSpecificationMethod" ValueName="MaterialTextureSet">0</Value "
into: " Value Name="SpecificationMethod" Type="Enum" EnumName="TextureSpecificationMethod" ValueName="OverridenTextureMap">2</Value "
Note: Some material templates cannot use transparency. A prime example being the templates used for a model's "skin".
If you wish to make a material transparent, you must have a texture with the proper transparency
then you will need to make sure the material that texture is linked to, has the AlphaTestValue set to 128
Then look for the AlphaTestEnabled setting and set to "True"
![]()

Here is a comparison of when a transparent texture is not working, next to when it is done correctly:

(Psst! It's the belt buckles around Ezio's spine!)
This is relatively self explanatory by it's name.
It will have a texture appear on both sides of the mesh it is applied to.
To make a material "two sided" you will need to change the value named "TwoSided" in the material xml from False to "True".
![]()
![]()
Here's a comparison of having a material's "TwoSided" value changed from "False" to "True" in Assassin's Creed Mirage:

(the character's red sash is what has been altered for the two sided example)
END OF LESSON 2