Free Game Research Forum | Official QuickBMS support | twitter @zenhax | SSL HTTPS://zenhax.com
It is currently Sat May 30, 2020 10:30 am

All times are UTC

Post new topic  Reply to topic  [ 4 posts ] 
Author Message
 Post subject: Horizon Zero Dawn
PostPosted: Sat Mar 31, 2018 2:48 pm 

Joined: Sun Mar 22, 2015 7:09 pm
Posts: 917



Extracting resources:
0. you need oo2core_5_win64.dll in the same folder with the tool
Its in almost any big game now, easy to find. Probably other versions will work too, if you rename them

1. you need to place the tool in your unpacked horizon folder, or better, i recommend using included ini file (just change your folder). If you use this INI - you can use the tool from any folder
Note: remove PATCH.BIN and unneeded LANGUAGE .BINs from the folder, or the tool will crash

2. first thing you need to extract is resource list.
To do this, just run the tool. It will create a text file list. I recommend sorting this list so you can make better selections of what you want to extract. I sort it in excel. It also allows to make filters in it

3. if you want to extract some resource, run
horizon /e resourcename

4. for batch extract, create a text file with a list of what you want to extract, and run
horizon /x list.txt

5. horizon /p list.txt - same as /x, but dump files with directory structure


Now after you extract some res, converting is simple.
Just drag resource of the EXE and it will:
- extract model if res has models
- extract textures if it has textures
- extract skeletons if it has skeletons

Extracting characters with skeleton:
1. place all parts of a character in one folder, and run horizon on all of them
2. a file called "matrices" will be created and UPDATED in the process with all the bone matrices present in all parts
3. put corresponding skeleton file to the same folder and run horizon on it
4. copy-paste skeleton into model parts so they will be complete working models
important warning! if you plan to export another model after that, DELETE that "matrices" file before doing it, or this will lead to a complete mess!

Extracting robots
This is most complicated thing. Unlike characters, they have destructible parts, and these parts are connected to animation skeleton. This means, to get model fully working, 4 sources are required:

- matrices from mesh parts (same as characters)
- mesh skeleton (same as characters)
- animation skeleton (ragdoll)
- robot helper bones

you need to place all these files in the same folder:

1. mesh parts usually contained in /animation/parts/ folder
2. half of robots have 2 skeleton files: mesh_skeleton_rootbone & skeleton_rootbone
you need mesh_skeleton_rootbone
3. ragdoll is in robot template file from entities/characters/robots/templates/archetypes/ folder
4. each robot has a file called robot_modelhelpers - this one contains helper bones info

Once you have all these, you can start with convertion

step 1:
Run horizon on all parts files. This will create matrices as it was before

step 2:
Run horizon on template file. This will extract animation skeleton from it.
(you dont need ascii and smd files generated, delete them. They are only useful if you want to experiment with animation only)
So you have .animskel file now in the same folder.

step 3: run this:
horizon [mesh_skeleton] [animskel] > a.bat
this will create FULL horse skeleton both in SMD & ASCII and also A.BAT file

At this time you have info which robot parts are destructibles, and which are normal weighted meshes. You need to treat them differently from now on. Destructibles will be static meshes, and they are all listed in A.BAT file. All others are normal weighted meshes.
You can already use normal weighted meshes as before, but for destructibles you need to perform additional step 4.

step 4:
Open A.BAT file, and replace all "_helper" strings with ".core". This probably could be done automatically on export, but the thing is, I'm not sure all helper bones will always be called the same as helper MESHES. So I'm leaving this to the users at least for now.
Run this .BAT file.

Now after running this file, if there were no errors, you will have all destructible parts property placed and weighted to correct bones.
Note: sometimes there will be destructible parts missing. This means helper bones were created for them, but later the devs decided not to have them in game.

to load all destructible parts as one file:
Merge all ASCII files into one as text file, then copypaste skeleton into it.
Then count submeshes (it will correspond to number of "material" string)
and put a number of submeshes after the skeleton (before all the actual data).
This number will correspond to number of "material" string in all files.
Same for SMD files, just no need to count submeshes.

horizon.rar [61.99 KiB]
Downloaded 246 times

Last edited by id-daemon on Sat Mar 31, 2018 4:57 pm, edited 1 time in total.
 Post subject: Re: Horizon Zero Dawn
PostPosted: Sat Mar 31, 2018 2:58 pm 

Joined: Sun Mar 22, 2015 7:09 pm
Posts: 917
You must be able to extract characters, animals, weapons and robots fully weighted and working.

Animation tool is still in progress: (NSFW) https://www.youtube.com/watch?v=m5nh9q1LPcs
As you can see, not all of them are working correctly now.

 Post subject: Re: Horizon Zero Dawn
PostPosted: Tue Apr 23, 2019 4:56 pm 

Joined: Sun Mar 22, 2015 7:09 pm
Posts: 917
Updated tool with animation support and support for all textures export.

To extract animations:

1. Extract animation manager (with /e command)

animation managers can be found in models/animation_managers/characters/

2. Extract skeleton. You can use animation skeleton or mesh skeleton

read how to get mesh skeletons in the first post

animation skeletons are in template files:
- for robots its in entities/characters/robots/templates/archetypes/
- for animals - in entities/animals/
- for humans - entities/characters/components/humanoidragdollcomponents
(humanoidragdollcomponents has 2 skeletons with same name for male, female & child)

3. Extract animations from animation manager

drop animation manager onto the tool, this will extract all animations into "anim" folder
animation file names will be hashes

4. Convert animations. There are 2 options:

a) Horizon [animation] [animskel]

This will extract animation with skeleton in rest pose and make proper SMD file.

b) Horizon [animation] or just drop animation (.morpheme) file onto the tool

This will extract only animation. This option will allow you to merge all animations into one file. To make proper SMD, you'll have to copypaste the skeleton from animation skeleton SMD or mesh skeleton SMD to the beginning of the animation SMD file.


- most ingame animations are morpheme, and can be extracted with this tool
- some ingame animations and all cutscenes are in decima engine anim format, and can't be converted
- some animations are additive, they cannot be extracted properly

Horizon_.rar [65.74 KiB]
Downloaded 89 times

Last edited by id-daemon on Tue Apr 23, 2019 4:58 pm, edited 1 time in total.
 Post subject: Re: Horizon Zero Dawn
PostPosted: Tue Apr 23, 2019 4:57 pm 

Joined: Sun Mar 22, 2015 7:09 pm
Posts: 917
New tool version with improved animations support.

There are some important changes, so i decided to post this new version separately. After testing some robots, we found that most robot animation packages include about a half robot anims, and the other half is animations of a human interacting with that robot (riding, attacks etc). These required special treatment. The process remains the same, except extracting animation manager (step 3 in previous post).

When extracting animation manager, tool will now make 2 text files:

1. _anims_by_name.txt - this is list of all animation system elements with original names. They include parameters, groups, switches, all kind of data used in animation engine. Some of them will have links to actual animations, sometimes several. This is an example:


2. _anims_by_id.txt - reference list of all animation files with names used in previous list. If you sort that list, you can see where each file is used. Or use it to make batch-rename of the files to the names you want.

Tool will also create a number of "bone_setup" files which are needed to correctly convert animations to SMD. Some animations will work without them (like it was before), but many will require them to be in the same folder.

Animation files will be named with internal numbers instead of hashes. Each file will have sequential number (used in text lists described above) and bone setup number. For example in horse animation package there will be 180 animations ending with "5" which are horse animations, and 130 ones ending with "8" which are animations of aloy riding the horse. You can use this to sort the files so you can convert using correct skeleton.

Horizon.rar [68.06 KiB]
Downloaded 94 times
Display posts from previous:  Sort by  
Post new topic  Reply to topic  [ 4 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