Ghost Recon Wildlands

Skeletons, animations, shaders, texturing, converting, fixing and anything else related to read game models
id-daemon
Posts: 1040
Joined: Sun Mar 22, 2015 7:09 pm

Ghost Recon Wildlands

Post by id-daemon »

Ghost Recon Wildlands tool.
Usage:

Step 0: correct forge.ini file to set which forge files to use and their location.

On the first run, tool will create a list of assets in all these files. If you change INI, or game will update, you need to delete generated file assets.dat so it will be regenerated.

Note: tool loads FORGE files in order they are listed in INI file, so you have to be sure to put PATCHES FIRST or tool may crash or give incorrect results.

One of DLC files is not compatible with current version, don't add it:DataPC_20_dlc.forge

Step 1: get entities list

Wildlands_list.exe <forge file>

Step 2: get table tree for some entity (or additionally, create part sets)

Wildlands.exe <entity id>
Wildlands.exe <entity id> <N>
Wildlands.exe <entity id> all

Example: Wildlands.exe 040123B873C > nina.txt
This will output all tables for Nina Flores. For explanation about these tables, see below. You should learn the table tree carefully before trying to export it.

"N" option will generate N random part sets.
"all" option will generate a set big enough to contain every possible part

Step 3: make a .TXT file with what you want to export

After you study the tables, you have to select what you want. You can make comments or change the file as you want. The tool will only use "objects" and "skeletons", all other lines will be ignored.

You can leave ONE option for each part, or many, but be careful. If you try combining the uncombinable, the result is unpredictable.

Important is to move skeletons to the top, and the order of skeletons is also important. You have to list them in order of the table tree they will be connected in this order. Like vest connected to main body, then some attach point connected to that vest. Wrong order MAY break them.

The order of "objects" is not important.

Example file for non-censored version of Nina:

Code: Select all

040123B89A3 Main skeleton
044F5D0A89F --> 1e Skeleton GR_UNP_Nina_Head

======= row 100% ======= 040123B8A70 ========
044F5D0ABB5 --> 3 Object UNP_Nina_Body_02
044F5D0AC6C --> e Object UNP_NinaFlores_Shoes
0402FACC80C --> 19 Object UNP_NinaFlores_Eyelashes_LOD0
044F5D0AC04 --> 1 Object UNP_Nina_Head_Chest
04075D34428 --> 12 Object UNP_NinaFlores_Jewelry
044F5D0AC55 --> 2 Object UNP_NinaFlores_Clothes
044F5D0ABE7 --> 13 Object UNP_Nina_EyeTeeth
07C33CC2006 --> 20 Object UNP_Nina_Hair

Step 4: export

Wildlands.exe <file.txt>
Drag .TXT file onto the tool, or run the command above.

This will generate ASCII file with all parts combined. Additional skeletons will be in separate files:
small ASCII will have anim skeleton, SMD will have both animation & mesh skeletons, so applying this as animation you can transform the model to place eyes/teeth/other parts correctly (as shown on these videos https://youtu.be/IOsBCDMpjXc , https://youtu.be/hztnjbD07ok). Don't apply animation to HEAD model, because in most cases it will distort it. Apply only to body/eyes/teeh/weapons.

Image

You need all skeleton parts and combine them in right order. For example, this one needs 3: main skeleton, head skeleton, and boobs skeleton to work together.

Image

And this combined skeleton is actually working with the model:

Image
Last edited by id-daemon on Thu Aug 23, 2018 5:43 pm, edited 4 times in total.
TSelman61
Posts: 46
Joined: Thu Nov 02, 2017 1:53 pm

Re: Ghost Recon Wildlands

Post by TSelman61 »

Wow. This is really good news. Ubisoft from many games
Anvil is using the engine. so will you examine other games too?
id-daemon
Posts: 1040
Joined: Sun Mar 22, 2015 7:09 pm

Re: Ghost Recon Wildlands

Post by id-daemon »

Tool is almost finished, adding cloth support and first version will be released this weekend i think.

Meanwhile i'll try explaining how it works, because entity tree in this engine is really complex.

Also I think this will work just the same or with minor changes with all other Anvil games. So I'm starting to gather opinions which game to support next: AC origins, For Honor, Rainbox 6 siege? Maybe something else?
id-daemon
Posts: 1040
Joined: Sun Mar 22, 2015 7:09 pm

Re: Ghost Recon Wildlands

Post by id-daemon »

The structure of Anvil engine entities (concerns most Anvil engine games, at least all latest)

In each game, there is a number of "entities" - characters, weapons, vehicles etc. For example:

Code: Select all

07C33C9C637    RES_Tourists
03F9A402E16    CIV_Worker_craft_M
03F9A402DB7    CIV_Vendor_F
03FBB811130    CIV_Cook_F
03F9A402DD1    CIV_Unoccupied_F
03FBB8110F1    CIV_Cook_M
0FD14BA9B55    RES_ProstitutesNoSwimSuits
07C33C9CBDE    RES_DomesticF
03F9A402E13    CIV_Worker_mine
007F63596F6    GR_PLAYER_Template
11308CA81C4    GR_Avatar_OUTRO
07B1300BC18    UNS_GeneralBajo
07F30225AD2    UNS_MarcusJensen
07ADDE10938    UNS_ElCerebro


As you can see, some of them are main characters, and some are generic types of civilians. The main player template is also here.

Now if we look inside of each enitity, there's a whole tree of so called "build tables" to describe it.
Example:

Code: Select all

==================================================================================
asset from package UNS_Antonio
==================================================================================
UNS_Antonio 077639E62A8

3 properties
077639E62A8 (5) 2 default 00000000000 -->
077639E62A8 (5) 3 default 00000000000 -->
077639E62A8 (5) 4 default 00000000000 -->

1 rows
======= row 100% ======= 077639E62A8 ========
077639E6348 --> 2 Table UNS_Antonio_Body
077639E635C --> 3 Table UNS_Antonio_Head
07ADD9005F9 --> 4 Table COMON_MALE

asset from package NPC_MEX_lieutenant_Elite
0132327CC0C Main skeleton

This is a root table for Antonio Garcia, we can see it has 3 parts: body, head and some common part, each of them is a table again.
Also there's a link to his base skeleton.

Now if we go down to each part, we can see what it contains:

Code: Select all

==================================================================================
asset from package UNS_Antonio
==================================================================================
UNS_Antonio_Body 077639E6348

6 properties
077639E6348 (5) 2 default 00000000000 -->
077639E6348 (5) 3 default 00000000000 -->
077639E6348 (5) 4 default 00000000000 -->
077639E6348 (5) 5 default 00000000000 -->
077639E6348 (5) 6 default 00000000000 -->
077639E6348 (5) 7 default 00000000000 -->

1 rows
======= row 100% ======= 077639E6348 ========
07A8B300B67 --> 6 Object UNS_Antonio_Santiags
077639E65D9 --> 4 Object UNS_Antonio_Shirt
07A8B300D0C --> 3 Object UNS_Antonio_TorsoPart
077639E65B2 --> 5 Object UNS_Antonio_Jeans
07A8B304568 --> 7 Object UNS_Antonio_HairChest_LOD0
07A8B30152A --> 2 Object UNS_Antonio_Hands

Here we can see his body includes "objects" (meshes), namely his boots, shirt, torso, jeans, hands and chest hair.
id-daemon
Posts: 1040
Joined: Sun Mar 22, 2015 7:09 pm

Re: Ghost Recon Wildlands

Post by id-daemon »

These tables can be simple, but they also can be very complex. So let's check another example:

Code: Select all

==================================================================================
asset from package CIV_Waiter_F
==================================================================================
CIV_FE_shared_Lowerbody 00FF8421BB7

2 properties
00FF8421BB7 (5) 2 default 00000000000 -->
00FF8421BB7 (5) 4 default 00000000000 -->

2 rows
======= row 50% ======= 00FF8421BB7 ========
00FF8421BD9 --> 2 Table CIV_FE_shared_pants
00FF8421C59 --> 4 Table CIV_FE_shared_feet

======= row 50% ======= 00FF8421BB7 ========
00FF8421BDC --> 2 Table CIV_FE_shared_Skirts
00FF8421BDB --> 4 Table CIV_FE_shared_Legs

In this example, somewhere on "female waiter" tree there are 2 options:
50% waiters will have pants & feet, and 50% will have skirts & legs.
Each of these is a table again, with all possible combinations of pants and skirts, and there are many.

Why is this important ?

Because anywhere across the tree we can encounter a mesh which needs additional skeleton, and all skeletons introduced in this partucular tree branch, and no others, because others may have different positioned bones with same names.

Like in this example, DJ Perico has a necklace, which requires its own little skeleton, and it can only be properly extracted with all the previous skeletons above the tree:

Code: Select all

==================================================================================
asset from package UNS_DJPerico
==================================================================================
UNS_DJPerico_Accessories 07F30207BBD

4 properties
07F30207BBD (5) 1 default 00000000000 -->
07F30207BBD (5) 2 default 00000000000 -->
07F30207BBD (5) 4 default 00000000000 -->
07F30207BBD (5) 6 default 00000000000 -->

1 rows
======= row 100% ======= 07F30207BBD ========
07F3020B815 --> 1 Object UNS_DJperico_Sunglasses
07F3020B7DB --> 2 Object UNS_DJPerico_Accessories
07F3020BB01 --> 4 Object UNS_DJPerico_Necklace
07F3020BFFD --> 6 Skeleton UNS_DJPericoNecklace_Pendulum

As I said before, main player, as expected, has most complex tree with 1000+ tables, about 180 skeletons, and insanely big number of combinations.

One specific variation of npc can have 2-5 skeletons that must be connected together in right order: base body, head, backpack, weapon holster and a few other little things.

Current version of the tool allows to export that all properly with working bones/weights:

Image

This is Sam Fisher player outfit. In addition to body and head, its using a little skeleton for holster:

Image

And another skeleton for the back attach points:

Image
id-daemon
Posts: 1040
Joined: Sun Mar 22, 2015 7:09 pm

Re: Ghost Recon Wildlands

Post by id-daemon »

tool posted
TSelman61
Posts: 46
Joined: Thu Nov 02, 2017 1:53 pm

Re: Ghost Recon Wildlands

Post by TSelman61 »

Wow, As always, your Tools are very complicated. :-)

I was hanging out somewhere. I even use the examples you give. Where did I make a mistake. Finally, I dragged the file "nina.txt" onto Wildlands.exe and dropped it. I tried to open it with Blender, but I could not open it again. SMD exports are already in error. :-(

Btw;
I thought you would export the files in a different way. You did it like Hitman.but it seems more developed. The names of the models will be hard to find. (Wildlans_DataPC_all extract.png)
But I guess you do not want the exported files to take up too much space. Because they really take up too much space. :-)
TSelman61
Posts: 46
Joined: Thu Nov 02, 2017 1:53 pm

Re: Ghost Recon Wildlands

Post by TSelman61 »

It's a really complicated thing. And a little I'm stupid.
I finally managed to import. But there are no texture maps.

I have no idea about the mouth and the eye. I think it's from me. :-)
Image
Last edited by TSelman61 on Thu Aug 23, 2018 1:31 pm, edited 1 time in total.
id-daemon
Posts: 1040
Joined: Sun Mar 22, 2015 7:09 pm

Re: Ghost Recon Wildlands

Post by id-daemon »

TSelman61 wrote:I thought you would export the files in a different way. You did it like Hitman

No, its not because of space. I can't do it like Hitman.

In hitman, all character sets were predefined. And every little piece had its own skeleton. So I could just export them with no problems.

Here in Wildlands, as you can see, every entity it built accorring to those complex tables.

I can't export them all togehter, because they will not fit: parts may be on different tree branches.

I can't export them one by one, because some have no skeleton - they rely on one or more skeletons above the tree.

As for textures, i'm working to support them now.
TSelman61
Posts: 46
Joined: Thu Nov 02, 2017 1:53 pm

Re: Ghost Recon Wildlands

Post by TSelman61 »

I actually tried to say that it was more advanced than the Hitman Tool. anyway

I have something I want to ask you. Is there a maximum limit of 4 bones on a vertex in a model? Because I only saw 4 of the most. Because normally anvil motor can supports 8 different vertex weights. Maybe more. (Up to 8 on "Unreal engine 4")

The thing you want to ask is, do you have a limit of 4 bones in a normal game? Or did you add 4 bone limits?
Because I think it's really bad to have the restriction.
https://www.deviantart.com/tselman61/ar ... -730852304
id-daemon
Posts: 1040
Joined: Sun Mar 22, 2015 7:09 pm

Re: Ghost Recon Wildlands

Post by id-daemon »

wildlands can have up to 8 weights
i'm exporting them all
id-daemon
Posts: 1040
Joined: Sun Mar 22, 2015 7:09 pm

Re: Ghost Recon Wildlands

Post by id-daemon »

The new version is on final testing.

Image

New options:
- texture support (all textures used in model exported automatically)
- sets of complete models generated (by tables)
- random sets of models generated (by tables)
- if you make custom set (as before) you don't have to move skeletons to the top anymore
id-daemon
Posts: 1040
Joined: Sun Mar 22, 2015 7:09 pm

Re: Ghost Recon Wildlands

Post by id-daemon »

New version published (at first post)

All old features remains the same, with one improvement:
- if you make custom .TXT file (parts set) you don't have to move skeletons to the top anymore

New options:

1. texture support
All textures used in model will be exported to the folder called the same as .TXT file

2. Sets generation
Since table structure may be hard to understand, i added some options for automatic generation of correct entity combinations, which are available when exporting the table tree.

Code: Select all

Wildlands.exe 07B1DE15496
- if you run Wildlands.exe like before, giving it entity code, it will output all tables, but also create one "zero" set, will fully correct .TXT file combining all variations set to first option.

Code: Select all

Wildlands.exe 07B1DE15496 15
- if you use 2nd parameter as number N, it will output all tables, but also create a set of "N" .TXT files containing random sets of combinable parts. All these sets will be correct entities accorging to the tables. You can export these as well as your manually combined .TXT files. This is useful as examples to make your own sets.

Code: Select all

Wildlands.exe 07B1DE15496 all
- if you use 2nd parameter "all", it will output all tables, but also create a set of .TXT files big enough so they will contain every possible combinable part at least in one of the sets. Again, all these sets will be correct entities accorging to the tables. This is useful for people who like to see all possible parts exported.

These "all" combinations of course will not represent all possible combinations of all parts. If we could count, for example, main player options, it would give us probably a million possibilities. Using this option on main player exports 888 files. But every hat, every jacket and backpack will be somewhere in them in correct combination. I mean where will be no model with male head and female body, because its not allowed by the tables.
TSelman61
Posts: 46
Joined: Thu Nov 02, 2017 1:53 pm

Re: Ghost Recon Wildlands

Post by TSelman61 »

Wow. This is really good news. Thank you. You have fixed many other errors. ;)
Some models were not exported. As far as I can see there is no problem.

Except one. Eyes and teeth. :!:
In some models it occurs outside the head or below the normal position.
Image
id-daemon
Posts: 1040
Joined: Sun Mar 22, 2015 7:09 pm

Re: Ghost Recon Wildlands

Post by id-daemon »

Eyes and teeth are also fixed. See the part about it in step 4.

Also all models must be exported. If some of them dont, i need their names to fix it.
TSelman61
Posts: 46
Joined: Thu Nov 02, 2017 1:53 pm

Re: Ghost Recon Wildlands

Post by TSelman61 »

Looks like there's a problem with this model. (007F63596F6 GR_PLAYER_Template) I did not use the 0.txt file that was generated when I created the GR_PLAYER_Template.txt file. I used GR_PLAYER_Template.txt directly. because there are mesh files missing from the 0.txt file. A model with 1099 objects. For this reason, it will be really difficult to organize myself. (There are 8 objects in 0.txt file.)
There seems to be no problem in exporting.
Image
Already, the missing files have been exported. Image
But exported files can not be imported into any application.
Image Blender 2.49b
id-daemon
Posts: 1040
Joined: Sun Mar 22, 2015 7:09 pm

Re: Ghost Recon Wildlands

Post by id-daemon »

There's no problem with this model. You did not understand main idea of envil tables.

0.txt file has no mesh files missing - its complete variant of player model.

there is no such thing as model with 1099 objects in this game. its impossible
you cannot export all player parts into one model - because they are not compatible

for this reason i made "all" option which will give you enough variants to check every single player part possible
and also random option which can generate as many variants as you wish
TSelman61
Posts: 46
Joined: Thu Nov 02, 2017 1:53 pm

Re: Ghost Recon Wildlands

Post by TSelman61 »

This file contains the characters we use from this game. For this reason the 0.txt file exports only 1 random model. ( I guess the models of similar genres only choose the first one. I am not sure. )
When we get to the 10th frame of the human skeleton, does the model turn 90 degrees exactly?

This is from 0.txt

Code: Select all

0132327CC0C Skeleton GR_PC_Skeleton_Average
045E8B172C5 Object   CP_Head_Afro_Iconic
045E8B1721D Skeleton CP_Head_Afro_Iconic
03F8035F3F2 Object   CP_EyeTeeth
079F67E41BA Skeleton CP_Beard_Afro_Ico
03BD501EB0F Object   CP_Default_TShirt
014D78B4622 Object   CP_Arms_NakedA
0602E2ABDE7 Object   CP_Backpack_Hydra
07C33CD3690 Skeleton emblemCameraSkeletonHIGH
0602E2ABCD1 Skeleton Backpack_Hydra
0670F49988B Skeleton Backpack_Hydra_Position_noVest
05FAA7875A5 Object   CP_Head_HeadSetC
043F99709D4 Object   CP_Casual_JeansA_LegHolster
07C33C6D12F Object   CP_Shoes_HikingShoes
05A633FFE13 Skeleton CP_LegHolster
0132327CC0C Skeleton GR_PC_Skeleton_Average
012AFB76CCC Skeleton GR_PC_AddonHolsters
0168CB82895 Skeleton GR_PC_AddonProps
012AFB76CC2 Skeleton GR_PC_AddonFakeGun


Image Image

But there's a problem with skeletons.
I can not connect all of them to the SMD skeleton. Some models are getting corrupted.

The character I created in my video game. There are deficiencies in the bones. I expect to solve the above problem.

Code: Select all

00EA138A544 --> 3 Skeleton GR_PCF_Skeleton_Average
079F67CA4B6 --> 2 Skeleton FCP_PonytailA
07BC8540119 --> 3 Skeleton FCP_Head_Cau_ElizabethP

07BC8540811 --> 1 Object FCP_Head_Cau_ElizabethP
07BC85400F8 --> d Object FCP_EyeLashes_Cau_ElizabethP
073F1727551 --> c Object FCP_EyeTeeth

079F67CE438 --> 1 Object FCP_PonytailA
073F172757B --> 1 Object FCP_Torso_FullArms
07D86C08900 --> 1 Object FCP_Torso_TankTopA
07D86C05C5E --> 1 Object FCP_Casual_JeansA_LegHolster
07C33C6D11D --> 1 Object CP_Shoes_HikingBoots
I organized Code
Last edited by TSelman61 on Wed Sep 19, 2018 5:23 pm, edited 4 times in total.
id-daemon
Posts: 1040
Joined: Sun Mar 22, 2015 7:09 pm

Re: Ghost Recon Wildlands

Post by id-daemon »

TSelman61 wrote:The character I created in my video game. There are deficiencies in the bones. I expect to solve the above problem.


Read this part of the first post:

the order of skeletons is also important. You have to list them in order of the table tree they will be connected in this order. Like vest connected to main body, then some attach point connected to that vest. Wrong order MAY break them.
TSelman61
Posts: 46
Joined: Thu Nov 02, 2017 1:53 pm

Re: Ghost Recon Wildlands

Post by TSelman61 »

yeah, even though it was late, I finally noticed. :-)

There is something I want to do. But I've never seen it on your tools. So they can do it?
I mean, there are other textures of any outfit.
Image I think like a micro texture map.
Things like this are already used in games.
Can we export these fabrics texture with your tools?

And I will ask another question. Actually, I mentioned it before,I guess you did not notice it.
When we import the SMD skeleton and when we reach the 10th frame, does the skeleton turn 90 ° exactly?