Custom boot models

Dmitri

Reserves
In this post I will show how to use custom boot models.
In default game, there's only one boot model which is a part of body model:
Code:
m200__.o - body model detail level 1
m232__.o - body model detail level 2
m242__.o - body model detail level 3
m243__.o - body model detail level 4
m335__.o - body model for Player Edit Mode
You need to extract each file from zdataX.big archives. Put them in some folder and convert to .gltf with otools (use -dummyTexture option so you won't lose textures information).
1660387710446.png

Import m200__.gltf to Blender.
1660387837336.png

Disable everything except sortgroup1 object. Select it and switch to Edit mode.
Toggle X-Ray and select boots part.
1660388005765.png

Separate the selected part: RMB > Separate > Selection.
Disable X-Ray. Switch to Object mode.
Now you have boots model in a separate object.
1660388284858.png

We need to save this object to a new file. And we also need to re-save m200__ without this object.
Unhide all objects in the scene.
Apply all transforms: A > Ctrl+A > All Transforms.
Now select boots object and Skeleton object.
1660388562816.png

Export to m20__0.gltf (Separate, only Selected Objects)
1660388712022.png

Then delete boots object and re-export body model.
1660388883739.png

Then for each other body model (m232__.gltf, m242__.gltf, m243__.gltf, m335__.gltf), import it to Blender (start new scene before each import: File > New > General), separate and delete boots part, Apply Transforms, and re-export.
Boots model is exported only once (from m200__ model).
Import .gltf to .o with otools (we need -instances 25 option for body models)
1660389742988.png

For the new m20__0 model we don't need this parameter, so import it again separately
1660389894350.png

Now copy m20__0 for each boot ID which is used in the game.
A simple batch script:
Code:
copy m20__0.o m20__-1.o
copy m20__0.o m20__-2.o
copy m20__0.o m20__-3.o
copy m20__0.o m20__-4.o
copy m20__0.o m20__-5.o
copy m20__0.o m20__-6.o
copy m20__0.o m20__-7.o
copy m20__0.o m20__-8.o
copy m20__0.o m20__-9.o
copy m20__0.o m20__-10.o
copy m20__0.o m20__-11.o
copy m20__0.o m20__-12.o
copy m20__0.o m20__-13.o
copy m20__0.o m20__-14.o
copy m20__0.o m20__-15.o
copy m20__0.o m20__-16.o
copy m20__0.o m20__-17.o
copy m20__0.o m20__175.o
copy m20__0.o m20__176.o
copy m20__0.o m20__177.o
copy m20__0.o m20__178.o
copy m20__0.o m20__179.o
copy m20__0.o m20__184.o
copy m20__0.o m20__185.o
copy m20__0.o m20__186.o
copy m20__0.o m20__187.o
copy m20__0.o m20__188.o
copy m20__0.o m20__189.o
copy m20__0.o m20__190.o
copy m20__0.o m20__191.o
copy m20__0.o m20__192.o
copy m20__0.o m20__193.o
copy m20__0.o m20__194.o
copy m20__0.o m20__195.o
copy m20__0.o m20__196.o
copy m20__0.o m20__197.o
copy m20__0.o m20__198.o
copy m20__0.o m20__199.o
copy m20__0.o m20__200.o
copy m20__0.o m20__201.o
copy m20__0.o m20__202.o
copy m20__0.o m20__203.o
copy m20__0.o m20__204.o
copy m20__0.o m20__205.o
copy m20__0.o m20__207.o
copy m20__0.o m20__208.o
copy m20__0.o m20__209.o
copy m20__0.o m20__210.o
copy m20__0.o m20__211.o
copy m20__0.o m20__212.o
copy m20__0.o m20__213.o
copy m20__0.o m20__214.o
copy m20__0.o m20__215.o
copy m20__0.o m20__216.o
copy m20__0.o m20__217.o
Now import these files to the game (with Asset Loader - copy to data/assets folder).
 
Last edited:

Dmitri

Reserves
Put SceneDecompiler.exe to data folder and launch it. The tool converts .cs files to .xml
Open FEscene.xml in Notepad++.
Add new ModelBlock here:
1660402855843.png

Code:
                <ModelBlock NameFormat="m20__%d.o" RenderSlot="1" Order="3" LevelOfDetail="0">
                    <FormatArguments>
                        <FormatArgumentAccessor>350</FormatArgumentAccessor>
                    </FormatArguments>
                    <ModelTransformAccessor>324</ModelTransformAccessor>
                </ModelBlock>
We also need to do the similar with bescene.xml file.
But it has more entries which must be edited (22 players + 3 referees).
We need ToolBucket plugin for Notepad++ (create NppToolBucket folder in plugins folder and put .dll there). Then it will appear in Plugins > ToolBucket > Multiline Find and Replace.
We need to replace this block:
Code:
                    </LayerOptions>
                </ModelBlock>
            </ModelBlocks>
by this:
Code:
                    </LayerOptions>
                </ModelBlock>
                <ModelBlock NameFormat="m20__%d.o" RenderSlot="15" Order="3" LevelOfDetail="0">
                    <FormatArguments>
                        <FormatArgumentAccessor>BOOTSID</FormatArgumentAccessor>
                    </FormatArguments>
                    <ModelTransformAccessor>TRANSFORMID</ModelTransformAccessor>
                </ModelBlock>
            </ModelBlocks>
1660404710182.png

Perform replacement with "Replace All". Note that instead of real IDs, we used placeholders (BOOTSID and TRANSFORMID). Now need to replace all BOOTSID and TRANSFORMID for each SceneEntry node, with real IDs. For easier view: View > Fold All
BOOTSID can be taken from SceneEntry>TexBlocks>TexBlock(PlayerTexObj)>Texture(t20__%d.fsh)>FormatArgumentAccessor
1660403051187.png

TRANSFORMID can be taken from SceneEntry>TransformAccessor
1660403115391.png

1660403156647.png

After all values replaced, compile .xml to .cs with SceneCompiler.exe

So now boots model will be loaded separately for each player.
Now we can prepare new model and texture:
Code:
m20__X.o - boots model
t20__X.fsh - boots texture
 

Dmitri

Reserves
If you want I can share my files which I got after the tutorial. And also with this model converted from FIFA 22, but it's not perfectly aligned with body model (legs) and must be reworked/improved.
 

RedDevils86

Senior Squad
If you want I can share my files which I got after the tutorial. And also with this model converted from FIFA 22, but it's not perfectly aligned with body model (legs) and must be reworked/improved.
Does this mean you can open converted newer boot models in oedit?? And not blender?
 

Dmitri

Reserves
You can try to make the model compatible with OEdit with
Code:
-conformant
option. This will remove extra blocks which are written by otools by default.
If it still doesn't work or the model is displayed incorrectly, also change triangles storage method with
Code:
-tristrip
 

RedDevils86

Senior Squad
I’ve used blender. I think I’m just used to using oedit to make boot textures.

if that’s the case. I’ll probably move on from fifa10 and oedit and go to a later game like 11 or 14
 

EN9ne

Club Supporter
If you want I can share my files which I got after the tutorial. And also with this model converted from FIFA 22, but it's not perfectly aligned with body model (legs) and must be reworked/improved.
Hey mate @Dmitri, would you be able to replace our rugby08 boot models with fifa10-16 boot models please? I’ve attached a link for all 3 body models. Looks like they used for different detail/LOD modes by the game, Body 1 is highest detail with most vertices, body 3 the least detailed. I've included the skeleton as well so you can see what rigging is needed.
 
Last edited:

Dmitri

Reserves
Hey mate @Dmitri, would you be able to replace our rugby08 boot models with fifa10-16 boot models please? I’ve attached a link for all 3 body models. Looks like they used for different detail/LOD modes by the game, Body 1 is highest detail with most vertices, body 3 the least detailed. I've included the skeleton as well so you can see what rigging is needed.
I don't know if it's possible. I think there's no bescene file in Rugby games.
 

EN9ne

Club Supporter
I don't know if it's possible. I think there's no bescene file in Rugby games.
Ok mate.
I've managed to get the Fifa14 boot model on our rugby model rigged and all. Could you help me convert it all to work in game for rugby08 please? Or check it out and see what needs to be done to get it working in game flawlessly. I've PM'd you the link.
 


Top