Page 1 of 7

Ghost Recon Wildlands

Posted: Sat Aug 11, 2018 6:31 pm
by daemon1
Ghost Recon Wildlands tool.
Usage:

Step 0: get entities list

Wildlands_list.exe <forge file>

This will output entities list to console. To save it, use this command for example:
Wildlands_list.exe dataPC.forge > entities.txt

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

On the first run, Wildlands_list.exe 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 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.

The order of skeletons is 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.

The fixing process is similar to frostbite face fixing - https://sta.sh/029zqoqijxmo (tutorial by Crofty)

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

Re: Ghost Recon Wildlands

Posted: Mon Aug 13, 2018 6:41 am
by WPH93
:scaredy: OMG,it is really amazing.You are so powerful! 8)

Re: Ghost Recon Wildlands

Posted: Sat Aug 18, 2018 9:52 am
by daemon1
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?

Re: Ghost Recon Wildlands

Posted: Sat Aug 18, 2018 11:13 am
by akderebur
daemon1 wrote:AC origins, For Honor, Rainbox 6 siege? Maybe something else?
I think AC:Origins or For Honor would be great.

Re: Ghost Recon Wildlands

Posted: Sat Aug 18, 2018 11:30 am
by WPH93
daemon1 wrote: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?
Wow,I think AC Origins would be nice,really like this gameXD.

Re: Ghost Recon Wildlands

Posted: Sat Aug 18, 2018 11:33 am
by daemon1
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.

Re: Ghost Recon Wildlands

Posted: Sat Aug 18, 2018 11:39 am
by daemon1
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

Re: Ghost Recon Wildlands

Posted: Sun Aug 19, 2018 2:05 pm
by daemon1
Fixed eyes/teeth placing

Image

Re: Ghost Recon Wildlands

Posted: Sun Aug 19, 2018 7:40 pm
by daemon1
tool posted

Re: Ghost Recon Wildlands

Posted: Sun Aug 19, 2018 9:03 pm
by MaZTeR
So, I assume in order to get the entities list, I have to drag and drop the forge file I want on top of the windlands_list exe file and after that, it generates the list of the entities to the same folder where the exe is.

Well, for me, it only brings up CMD with some bits of entitiy IDs and then disappears immediately.

I set the forge files' location first to be the one which is my Wildlands' main folder location.

F:/-snip-/common/Wildlands/Forgefilename

And when that didn't work, I copied the forge files to the tool's work folder and set the file path to be the workfolder's. And it didn't work either. I have to be doing something wrong.

I don't have an assets.dat file anywhere.

Re: Ghost Recon Wildlands

Posted: Sun Aug 19, 2018 9:10 pm
by daemon1
sorry i forgot to mention, list is only printed to console, so to save it, you need to run command like

wildlands_list datapc.forge > list.txt

assets.dat will only be created later, when you first try exporting some model

Re: Ghost Recon Wildlands

Posted: Sun Aug 19, 2018 9:41 pm
by MaZTeR
Sorry, I'm kind of a noob with CMD commands. How exactly do I make it so that it outputs the list file to the folder I want after I open up a forge file with the widlands_list.exe file?

Re: Ghost Recon Wildlands

Posted: Mon Aug 20, 2018 4:35 pm
by daemon1

Code: Select all

wildlands_list datapc.forge > list.txt
Put this text into a new file called, for example, "0.bat"
Put this file next to your FORGE, and click on it.

Re: Ghost Recon Wildlands

Posted: Mon Aug 20, 2018 5:33 pm
by MaZTeR
Alright, that worked, I had to put .exe and forge at the ends, but the problem is that it gives me blank results with the main assets folder, which is DataPC.forge.

The files look like this:

Code: Select all

F:\SteamLibrary\steamapps\common\Wildlands\DataPC

Code: Select all

Wildlands_list.exe DataPC.forge > list.txt
It works with DataPC_patch_01.forge, but not with the main assets one.

Edit: Nevermind, I managed to open the main assets folder, but there's probably not even half of the character related meshes listed, such as the "CP, FCP" main character related meshes. Not sure if you have added the support for them or not.

Re: Ghost Recon Wildlands

Posted: Mon Aug 20, 2018 8:38 pm
by daemon1
MaZTeR wrote:there's probably not even half of the character related meshes listed
This is not a list of MESHES. This is a list of entities. They include ALL of the meshes inside.
For example, CP_ and FCP - are all parts of only one HUGE entity called player_template

Please read the explanation of entity tables in this thread:
viewtopic.php?p=143324#p143324

Also soon I plan to make options to make extract process easier.