Page 3 of 12

Re: Horizon Forbidden West

Posted: Sat Apr 09, 2022 3:41 pm
by daemon1
Tool updated.

I will try and make a readme how to get edge animations soon.

Tool will now export .edgeskel skeletons and .edgeanim animations for that purpose.
Then it needs to be exported to text with leaked sony edge tool.
Then you can convert it to SMD with a simple tool i made (edgetosmd.exe included in release).

Re: Horizon Forbidden West

Posted: Mon Apr 11, 2022 8:51 pm
by CriticalError
thanks a lot for the awesome work, you know why virustotal detecta a lot virus? this is safe? sorry to ask

https://www.virustotal.com/gui/file-ana ... cwNjU1NA==

Image

Re: Horizon Forbidden West

Posted: Tue Apr 12, 2022 3:35 am
by mono24
CriticalError wrote: Mon Apr 11, 2022 8:51 pm...this is safe?...
viewtopic.php?p=181233#p181233

Re: Horizon Forbidden West

Posted: Tue Apr 12, 2022 3:51 am
by fillwithme
Now that I have the PS4 PKG file of horizon forbidden West, How can I extract resource?
Do I need to use PS4PKGViewer to unpack?

Re: Horizon Forbidden West

Posted: Tue Apr 12, 2022 6:43 am
by nightwolf1982
You won't be able to extract anything without the decryption key/passcode.

Re: Horizon Forbidden West

Posted: Tue Apr 12, 2022 9:52 am
by fillwithme
daemon1 wrote: Sat Apr 09, 2022 3:41 pm Tool updated.

I will try and make a readme how to get edge animations soon.

Tool will now export .edgeskel skeletons and .edgeanim animations for that purpose.
Then it needs to be exported to text with leaked sony edge tool.
Then you can convert it to SMD with a simple tool i made (edgetosmd.exe included in release).
Now that I have the PS4 PKG file of horizon forbidden West, How can I extract resource?
Do I need to use PS4PKGViewer to unpack? 8D

Re: Horizon Forbidden West

Posted: Thu Apr 14, 2022 9:29 am
by daemon1
Time to explain the most complicated part, robots.

First, I will describe all assets needed. All of them were present in horizon 1, but now we also need EDGE assets. To get full animated robot, we will need ALL of these. And they could easily be in many different asset groups (groups described in a post above), or all in one. Which complicates things.

This is a list of all robot assets used in extraction:

1. Models:
- main model
- additional models (antennas etc)
- destructible parts

2. Skeletons:
- mesh skeleton
- physics skeleton
- edge skeleton
- SkeletonHelpers

3. Other data:
- destructibles description
- animations
- textures and materials

Now let me describe these assets a little.

1. Models are kind of usual, and they are same as horizon 1. There are many static small destructible parts, one big skeletal model, and maybe a few more skeletal/static parts. All destructible parts are usually in one group, rarely in two. Canisters are in separate small groups, one for each canister type.

2. Skeletons. Why do we need all these?

Mesh skeleton has all bones for visual model parts, weighted, and many of them are not present in any other skeleton.

SkeletonHelpers (called robotmodelhelpers in zero dawn) is the only place that has all helper bones - for destructible parts.

Physics skeleton. In addition to base skeleton, it also has bones needed to attach helpers, and again, some of them are not anywhere else. Nothing is weighted to them, they are just auxiliary bones to attach helpers, and then destructible parts to be attached to those helpers.

Edge skeleton is almost same, but its needed for sony tool to work.

3. other data:

Animations - original EDGE anim files. Most animations are in one group, just its usually different group, not the same as main model.

Destructibles description is a special table that connects SkeletonHelpers with static destructible parts. That part of the process was done manually in Horizon 1, because everything had names. Now we need those too.

Re: Horizon Forbidden West

Posted: Thu Apr 14, 2022 10:21 am
by daemon1
So the 1st step in getting any robot is finding all these assets, in which group they are. We already have a list of all main parts for a start (attached). Now here's what the tool does when it encounters these assets:

1. Models

Models are exported as ASCII files. Note that destructible parts on the first run (when its unknown where to place them) are exported as static models. Later on, they will be exported as skeletal models, placed and weighted to corresponding bones.

2. Skeletons

All skeleton asset types (skeleton, physicsskeleton, skeletonhelpers, edgeskel) are exported as raw original assets with corresponding extension. Additionally, mesh skeletons are exported as ASCII + SMD, so they can be used to combine with ASCII model or SMD animation.

3. Other data

Destructibles description is not exported at all. This information is only used on the run, to update the data about how to connect destructible parts to helpers. The tool console output can also be used to create a list of all destructible parts and add them to the process. So far I'm only processing their "initial", undamaged states. Damaged states can also be added later.

Edge animations are exported to "anim_edge" subfolder with edge skeleton code in the end of its name. The group/asset number from this code will tell if its this robot animation, or another actor/character animation.

Textures and materials are exported to correspoding folders, just like it was before.

Re: Horizon Forbidden West

Posted: Thu Apr 14, 2022 2:56 pm
by daemon1
How to use the tool to get full robot.

1. Find mesh skeleton, physics skeleton and skeleton helpers.

If you don't care where each part is, just use the tool on all known groups for that robot. Run it as usual: h2_extr.exe <number>

After that, you will have a lot of stuff exported, and there will be several assets of each type. You need to choose only one of each type, the right one.

- mesh skeleton is the .Skeleton file thats indicated when extracting main body (the same one that is used in usual models like before)

- there are usually 2 .PhysicsSkeleton files, you need the big one

- there are many helper files, open them and see inside which one has helper bones for destructible parts. Correct one will have bones called like "body_helper", "LegPlate_helper", "part12_helper" etc. Some others may be very small, or have "camera", "action" helpers inside, they are not needed.

2. Once you have those 3 files, run the tool with 3 parameters:

h2_extr.exe <skeleton> <physicsskeleton> <skeletonhelpers>

After that, you get FULL skeleton in ascii/smd called "..._robotskel" and a "robot_helpers" file. That robot_helpers file will gather information about all helper bones. ASCII skeleton will be needed to load the full model, and SMD version is for animations.

3. Process all destructible descriptions.

Again, if you don't know where they are, or don't care about it, just use the tool on all known groups and save the tool output. If in this output you see any missing groups for destructible parts, add them to your list. Messages looking like "Destructible mesh 235 - 8" mean that group 235 contains some needed parts.

4. Cleanup (optional)

Now everything is ready for final pass.

At this point, it may be good idea to delete all ASCII files. It's not required, but that way you can get rid of leftover static parts that will now be replaced with proper skeletal parts.

5. Final pass.

Run the tool on all groups contaning models. Or simply run it again on all of them.

In the end, you get 3 kinds of ASCII files:
- files with _destr suffix are destructibles
- files with _static suffix are static parts
- all other "usual" files with no suffix - these are skeletal parts

After everything is exported to ASCII, you can process all parts exactly how it was in Horizon 1. Static parts may be loaded directly. Destructibles must be all merged together, then count submeshes, add that number above and merge with skeleton. Skeletal parts must be merged with skeleton. Or you can also merge them together like destructibles, but in this case, before merging, remove submesh count from each file.

Re: Horizon Forbidden West

Posted: Thu Apr 14, 2022 4:58 pm
by daemon1
Extracting Edge animations.

1. Export .edgeanim and .edgeskel files from animation group (if its not done yet)

Each robot has several edge skeletons, you need to use correct one, that corresponds to animations. You can see skeleton code in the end of every animation name.

2. Use Edge anim decompiler tool (found in leaked Vita SDK for example)

That tool is available in public, and has simple help option how to use it. Can be run in a batch. It outputs animation data as text. You need to save console (command window) output to text file for convertion.

3. Convert .txt to .smd with Edgetosmd.exe

Tool has only 1 parameter: input text file. As output, it creates .smd file with same name. Also can be run in a batch.

4. Merge full SMD skeleton with animations.

Resulting SMD files will only have animation frames, not the initial pose. The bind pose in these animations is usually all zeroes, and it can't be used to apply to the model, so I'm not exporting the bind pose. Instead, the full set of bones with their proper bind pose must be taken from full robot skeleton created before on the stage of model extraction.

You can merge each animation with skeleton individually, or merge several animation files putting skeleton in the beginning, so you can load them all as one big animation.

After that, you can apply animation to the model in your favourite 3d editor.

Re: Horizon Forbidden West

Posted: Fri Apr 15, 2022 6:17 am
by nightwolf1982
Hey all, I was very generously given the files for this game and have been feverishly extracting models ever since. I have a suggestion for daemon1, though, would it be possible to identify which model uses which skeleton during extraction? Instead of "Mesh with skeleton xxxx xx" messages, maybe something like "Mesh mmmm mm with skeleton xxxx xx"; or something like the materials.txt file, but for skeletons? Some of the models use multiple skeletons, and it can get confusing which skeleton goes to which model file.

Re: Horizon Forbidden West

Posted: Mon Apr 18, 2022 1:53 am
by NhwAiden
I want a video tutorial, the text description is very complicated, I am a novice and can't understand it, thank you guys

Re: Horizon Forbidden West

Posted: Thu Apr 21, 2022 5:33 am
by nightwolf1982
So, I've been working to extract HFW meshes and build a reference list of everything I can extract, and I came across something odd: at code C9F1 there's a complete nude base male model. What makes this odd is that there doesn't appear to be any female or child base models; at least not in the list of codes provided by daemon1. There are complete body models stored in different npc character files, but in each case there are some kind of clothes included with the model.

Has anyone come across the missing base models, if they exist?

Re: Horizon Forbidden West

Posted: Sat Apr 23, 2022 1:35 pm
by Crazy31139
Hi, has anyone found Focus model, what is her code?

Re: Horizon Forbidden West

Posted: Sun Apr 24, 2022 8:33 pm
by Crazy31139
Big thanx Daemon1 for the tool :dance:
Horizon Forbidden West - Aloy Tenakth Skirmisher Suit.jpg