Free Game Research Forum | Official QuickBMS support | twitter @zenhax | SSL HTTPS://zenhax.com
It is currently Sun Aug 19, 2018 11:45 pm

All times are UTC

Post new topic  Reply to topic  [ 7 posts ] 
Author Message
 Post subject: Ghost Recon Wildlands
PostPosted: Sat Aug 11, 2018 5:32 pm 

Joined: Sun Mar 22, 2015 7:09 pm
Posts: 783
Ghost Recon Wildlands tool.

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

Wildlands.exe <entity id>

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.

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:

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.


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.


And this combined skeleton is actually working with the model:


wildlands.rar [82.31 KiB]
Downloaded 6 times

Last edited by id-daemon on Sun Aug 19, 2018 7:20 pm, edited 2 times in total.
PostPosted: Thu Aug 16, 2018 3:19 pm 

Joined: Thu Nov 02, 2017 1:53 pm
Posts: 6
Wow. This is really good news. Ubisoft from many games
Anvil is using the engine. so will you examine other games too?

PostPosted: Sat Aug 18, 2018 8:52 am 

Joined: Sun Mar 22, 2015 7:09 pm
Posts: 783
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?

PostPosted: Sat Aug 18, 2018 10:42 am 

Joined: Sun Mar 22, 2015 7:09 pm
Posts: 783
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:

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.

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:

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.

PostPosted: Sat Aug 18, 2018 10:43 am 

Joined: Sun Mar 22, 2015 7:09 pm
Posts: 783
These tables can be simple, but they also can be very complex. So let's check another example:

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:

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:


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


And another skeleton for the back attach points:


PostPosted: Sun Aug 19, 2018 6:59 pm 

Joined: Sun Mar 22, 2015 7:09 pm
Posts: 783
tool posted

PostPosted: Sun Aug 19, 2018 10:00 pm 

Joined: Thu Nov 02, 2017 1:53 pm
Posts: 6
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. :-(

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. :-)

Ascii_─░mport.png [475.43 KiB]
Not downloaded yet
Wildlans_DataPC_all extract.png [412.47 KiB]
Not downloaded yet
Display posts from previous:  Sort by  
Post new topic  Reply to topic  [ 7 posts ] 

All times are UTC

You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot post attachments in this forum

Search for:
Powered by phpBB® Forum Software © phpBB Limited