• This is a reminder of 3 IMPORTANT RULES:

    1- External self-promotion websites or apps are NOT allowed here, like Discord/Twitter/Patreon/etc.

    2- Do NOT post in other languages. English-only.

    3- Crack/Warez/Piracy talk is NOT allowed.

    Breaking any of the above rules will result in your messages being deleted and you will be banned upon repetition.

    Please, stop by this thread SoccerGaming Forum Rules And Guidelines and make sure you read and understand our policies.

    Thank you!

Converting 3D heads to FIFA 07 format (Completely manual way)

Dmitri

Reserves
In this tutorial I'll explain how to convert head model to FIFA 07. Since model format in FIFA 07 is same with FIFA 06/08 format, this tutorial will also work for FIFA 06 and 08.

This tutorial shows how to convert any model (extracted from any game or created by you) to FIFA 07 format.
If you want to convert PES 2021 faces, here's much simpler way to do this: http://www.soccergaming.com/index.php?threads/converting-pes-2021-heads-to-fifa-07-format.6471455/

This tutorial doesn't explain how to create head models and textures from scratch. It shows how to convert existing model to FIFA 06/07/08 format.

This tutorial is made for people who already know how to use Blender. If you don't understand Blender - this tutorial is not for you.

Requirements:
Blender 2.8+
otools latest version
You need to know how to work with Blender
Asset Loader - for installing models and textures into the game.

Limitations:
In this tutorial we will add only simple head animation.
In this tutorial we create an HD model and textures (the polycount is much higher than original game models, and textures are in better quality). It's not possible to use such models and textures in original game. We use Asset Loader to load them, because it gives an ability to load HD models and textures.

For this tutorial, I will use this Cristiano Ronaldo head model from PES 2020:
upload_2020-4-18_21-27-49.png


Part 1
Step 1. Prepare the model

There are some requirements for the model.

1.1 - Objects and meshes
The head must consist of 2 objects - head and hair. The head might also include hair parts, usually you should split hair to transparent and opaque parts - and connect opaque parts with the head object.
Head object:
upload_2020-4-18_21-5-47.png


Hair object:
upload_2020-4-18_21-6-9.png


It's also recommended to have only 1 mesh in each object. Object/mesh names are not important. I usually use simple "head" and "hair" names.
upload_2020-4-18_22-26-30.png


1.2 - Materials and textures
You need to prepare 2 textures, for each object (mesh): head texture (name - tp01) and hair texture (name - tp02). Use PNG image format for storing your textures. The maximal possible texture resolution in FIFA 07 is 512x512.
Head material name must be head [LitTexture2IrradSkinSubSurfSpec]
Hair material name must be hair [LitTexture2x_Skin]
Additionally, you need to enable Alpha Blending on hair material:
upload_2020-4-18_22-30-37.png


The head texture must also include body texture on the left side. You can use original head textures for a reference.

Head/body texture (tp01.png):
upload_2020-4-18_21-59-31.png

You can notice that I scaled face texture and also added eye and teeth. You can also see body texture on the left side.

Hair texture (tp02.png):
upload_2020-4-18_22-1-36.png
 
Last edited:

Dmitri

Reserves
Part 2
Step 2. Import original FIFA 07 head model and connect new model with original skeleton

Tip: you can convert original .o model to .gltf with otools (use FIFA 07 target)
Import original head model to the same scene with new head model. In most cases both models will use different scaling - you need to scale your model relatively to original model:
upload_2020-4-18_23-7-10.png


When scaling is done, you can delete original model objects (but don't delete original skeleton!). But, in case if your new model doesn't have eyes or teeth, you can use eyes/teeth from original model (detach it from original head model into a separate object). For this model, I will use teeth from original model.

So that's how the scene looks right now:
upload_2020-4-18_23-47-54.png


In the scene graph window, select all objcts of new model, press Shift and move them into the "Skeleton" node:
upload_2020-4-18_23-45-34.png


upload_2020-4-18_23-49-39.png


In viewport, Select all objects of new model, then select the skeleton (click on any skeleton bone). Press Ctrl+P (Set Parent). Select "With Empty Groups" in the menu:
upload_2020-4-18_23-39-10.png


Here's what we have at the moment:
upload_2020-4-20_14-30-50.png


At this point, the model can be already imported to the game, but with one serious problem. Since the mesh is not connected with skeleton bones, it will not move properly with player movement. For example, when player will rotate the head, the head model will not rotate.

Step 3. Setup skinning (vertex weights)
We need to setup vertex weights for new head and hair objects. For hair object it will be simple - we will attach the whole mesh to "Head" bone.

3.1 Hair object
Select the hair object, then go to Weight Paint mode. Select the "Head" vertex group in Object Data Properties:
upload_2020-4-20_14-35-58.png


Set the "Vertex selection" mode:
upload_2020-4-20_14-38-26.png


And then use "Weights" > "Set Weight" (and make sure the current weight value is 1.0).

upload_2020-4-20_14-40-38.png


Tip: When working in Weight Paint mode, it might be useful to switch to some different rendering mode. For the hair object, I switched to Solid shading with Flat lighting and Vertex color output.
upload_2020-4-20_14-43-23.png
 
Last edited:

Dmitri

Reserves
Part 3
3.2 Head object

Things will be a bit complicated for head object. We will use not only "Head" bone, but also "UpperSpine" and "Neck" bones.
First of all, connect all verts of head object to "Head" bone. This is similar to what we did with hair object.
Switch to Object Mode, select the head object, switch to Weight Paint mode, and follow instructions from 3.1 part.
upload_2020-4-20_14-48-58.png


Now we want to connect vertices of upper spine and neck with respective bones.
Open the "Tool" sidebar (press 'N', then go to "Tool" tab) and check "Auto Normalize" option.
upload_2020-4-20_14-51-3.png


Select the "UpperSpine" vertex group, and, using Brush, paint the area of upper spine:
upload_2020-4-20_14-52-32.png


When done, select "Neck" vertex group and paint the area of neck:
upload_2020-4-20_14-54-21.png


You can check if you're doing it right by switching to Pose Mode and moving/rotating head/neck bones:
upload_2020-4-20_15-6-28.png


When done, you can join all objects from original model (if they are present) with head object. In this example, I used teeth objcect from original model.

Tip: By default, Blender uses Blue color for unaffected vertices. It can be changed to transparent in Blender preferences, check this link: https://blender.community/c/rightclickselect/lYdbbc/

Tip: YouTube video about Weight Paint and Vertex groups:

Tip: You can also connect vertices to other bones - lips, mouth, eyeleashes. So you will have not only the head/neck movements, but also facial animations.

Step 4. Export from Blender and import to game
Select all objects in the scene (press "A"), then press "Ctrl+A". Select "All Transforms".
upload_2020-4-20_15-37-52.png


Go to File > Export > glTF 2.0

In "Format" field, select "glTF Separate". In Geometry tab, uncheck "Vertex Colors".
upload_2020-4-20_15-40-14.png


Give your model a name which will be used for the result model file. For example: "m228__20801.gltf", where 20801 is player ID.
Exporting to .gltf will also write PNG textures to a place where you save the .gltf file.
After export is done, go to the folder with exported .gltf and rename PNG textures into following names: <texName>@<playerID>.png
For example: [email protected]
This is needed for FSH creation. If you don't want to loose original textures - copy them and rename that copies.

Then open OTools GUI. Select "Import to .O" operation, select "FIFA 07" in the "Game" combo-box. Select the exported .gltf file as input.
Add these options into "Additional options" box:
-head -sortByAlpha -writeFsh

-writeFsh
- will generate FSH with used textures
-head - will tell to create needed textures for head model (t21..., t22...)
-sortByAlpha - will re-sort nodes and put nodes with transparency to the end of the list (to prevent transparency issues)

* Screenshot note: the "-pad" option is not needed anymore.

upload_2020-4-20_15-51-26.png


Press "Import" to process the operation.

As a result, you will have 3 files which you need to put into the game:
m228__*.o - the model
t21__*_0_0.fsh - face/body texture
t22__*_0.fsh - hair texture


Copy them to data/assets folder.

In-game result
fifa07 11196.png


cr2.png
 
Last edited:

mita996

Youth Team
It's amazing what you did with fifa 07, 08 etc. But It will be great if you can convert pes2020 to fifa 14 or 16. That will be best thing ever in the forum. Those two games are most playable after fifa20.
 

Dmitri

Reserves
The tutorial is finished.
It's split into 3 parts because of the limitation on attached images.

It's amazing what you did with fifa 07, 08 etc. But It will be great if you can convert pes2020 to fifa 14 or 16. That will be best thing ever in the forum. Those two games are most playable after fifa20.
You can use FIFA 15 3D Importer/Exporter.
 

Wujek

Senior Squad
@Dmitri
I see you are Fifa head model specialist.
Do you know how convert model from Fifa 08 to Fifa 14?
I do texture convert of Emmanuel Olisadebe face (ID: 17249) but I not have head model for him.
Do you have any solution how convert this model from Fifa 08 to Fifa 14?
 

Nariman.D

Club Supporter
Part 3
3.2 Head object

Things will be a bit complicated for head object. We will use not only "Head" bone, but also "UpperSpine" and "Neck" bones.
First of all, connect all verts of head object to "Head" bone. This is similar to what we did with hair object.
Switch to Object Mode, select the head object, switch to Weight Paint mode, and follow instructions from 3.1 part.
View attachment 38335

Now we want to connect vertices of upper spine and neck with respective bones.
Open the "Tool" sidebar (press 'N', then go to "Tool" tab) and check "Auto Normalize" option.
View attachment 38336

Select the "UpperSpine" vertex group, and, using Brush, paint the area of upper spine:
View attachment 38337

When done, select "Neck" vertex group and paint the area of neck:
View attachment 38338

You can check if you're doing it right by switching to Pose Mode and moving/rotating head/neck bones:
View attachment 38339

When done, you can join all objects from original model (if they are present) with head object. In this example, I used teeth objcect from original model.

Tip: By default, Blender uses Blue color for unaffected vertices. It can be changed to transparent in Blender preferences, check this link: https://blender.community/c/rightclickselect/lYdbbc/

Tip: YouTube video about Weight Paint and Vertex groups:

Tip: You can also connect vertices to other bones - lips, mouth, eyeleashes. So you will have not only the head/neck movements, but also facial animations.

Step 4. Export from Blender and import to game

Select all objects in the scene (press "A"), then press "Ctrl+A". Select "All Transforms".
View attachment 38340

Go to File > Export > glTF 2.0

In "Format" field, select "glTF Separate". In Geometry tab, uncheck "Vertex Colors".
View attachment 38342

Give your model a name which will be used for the result model file. For example: "m228__20801.gltf", where 20801 is player ID.
Exporting to .gltf will also write PNG textures to a place where you save the .gltf file.
After export is done, go to the folder with exported .gltf and rename PNG textures into following names: <texName>@<playerID>.png
For example: [email protected]
This is needed for FSH creation. If you don't want to loose original textures - copy them and rename that copies.

Then open OTools GUI. Select "Import to .O" operation, select "FIFA 07" in the "Game" combo-box. Select the exported .gltf file as input.
Add these options into "Additional options" box:
-head -sortByAlpha -writeFsh -pad 1048576

-writeFsh
- will generate FSH with used textures
-head - will tell to create needed textures for head model (t21..., t22...)
-sortByAlpha - will re-sort nodes and put nodes with transparency to the end of the list (to prevent transparency issues)
-pad 1048576 - will align the size of resulting .o file to 1 MB. This is needed to avoid problems with memory caching in the game

View attachment 38343

Press "Import" to process the operation.

As a result, you will have 3 files which you need to put into the game:
m228__*.o - the model
t21__*_0_0.fsh - face/body texture
t22__*_0.fsh - hair texture


It's up on you how you will add them to the game.

In-game result
View attachment 38344

View attachment 38345

It is all look fantastic but you said that it can not be played in default game. Am I right?
 

Dmitri

Reserves
Is it possible to convert FIFA 10 Faces to FIFA 07 Faces with otools?
It's possible to put any model into the game... But it must be prepared. It is explained in this tutorial.
Direct conversion from FIFA10 to FIFA07 is not possible.
 

0743v3r

Club Supporter
It's possible to put any model into the game... But it must be prepared. It is explained in this tutorial.
Direct conversion from FIFA10 to FIFA07 is not possible.
Can you make special tutorial for converting FIFA 10 faces?
What steps from this turorial are necessary? What can be ignored? I am not a pro in working with blender...
 

0743v3r

Club Supporter
Describe your problem.

No .o file created with o-tools works in game. With or without textures (normally it does work even without textures).
First of all i had to install d3dx9.dll manually that o-tools even work.
And why you cant open any .o file created with o-tools in other tools i normally use to work with o-files like o-edit or ofw. (I know its not necessary, but that means that there is something different between original .o files and edited)

I am a beginner in working with blender. Only followed your steps. I dont know if i did something wrong there. But i guess its a problem with o-tools.
I even converted an original .o head to gltf and back to .o and the game crashed as well...
 


Top