Important information: this site is currently scheduled to go offline indefinitely by end of the year.
Diablo III .app
-
- beginner
- Posts: 22
- Joined: Sun Mar 23, 2014 5:23 pm
- Location: The Neverlands
- Has thanked: 1 time
- Been thanked: 9 times
- Contact:
Re: Diablo III .app
Found a .bt-script for 010-editor ( interesting application, didn't know it) on diablo3dev.com.
Updated that script to it also works for v260 .app files. Data looks good at first glance, but I only tried with the adria-model, so could be something is off still. Also changed the vertex-format so it matches the one from Taylor Mouse, so at least its clear where the normal and uv's are.
Since that site seems rather inactive, but had a back-link to this thread as the source of information, I thought I'd post the updated one here in case someone finds it useful.
Updated that script to it also works for v260 .app files. Data looks good at first glance, but I only tried with the adria-model, so could be something is off still. Also changed the vertex-format so it matches the one from Taylor Mouse, so at least its clear where the normal and uv's are.
Since that site seems rather inactive, but had a back-link to this thread as the source of information, I thought I'd post the updated one here in case someone finds it useful.
You do not have the required permissions to view the files attached to this post.
- TaylorMouse
- ultra-veteran
- Posts: 348
- Joined: Mon Sep 26, 2011 12:51 pm
- Has thanked: 11 times
- Been thanked: 89 times
Re: Diablo III .app
Hi guys, I'm working on a model viewer for Diablo, only problem is I don't know how to link the models with the textures :/
Anyone any idea, I know it can be done cause Cain's Aide app does that, but I don't seem to find any info anywhere about the matching ...
Some help would be appreciated
T.
Anyone any idea, I know it can be done cause Cain's Aide app does that, but I don't seem to find any info anywhere about the matching ...
Some help would be appreciated
T.
-
- beginner
- Posts: 22
- Joined: Sun Mar 23, 2014 5:23 pm
- Location: The Neverlands
- Has thanked: 1 time
- Been thanked: 9 times
- Contact:
Re: Diablo III .app
Check the .app file, material-structure. It contains a "TexAnimParams" block with i0 inside.
e.g. For Adria, the first one is 37626.
Check the .tex file, in the header the snoID (offset 16). these id's match.
Regards.
e.g. For Adria, the first one is 37626.
Check the .tex file, in the header the snoID (offset 16). these id's match.
Regards.
- TaylorMouse
- ultra-veteran
- Posts: 348
- Joined: Mon Sep 26, 2011 12:51 pm
- Has thanked: 11 times
- Been thanked: 89 times
Re: Diablo III .app
thnx kalmiya, I'll try that
the 37626, is that the offset?
and the snoID, you mean I need to check or read all the tex files before I actually find a match ??
hey Wobble, no you don't need to have diablo 3, it works in 2 ways
1. select the top folder where you extracted your model to and it will build up a tree structure with all the models in it
2. select a single model and it loads all the possible models in an array so you can browse thru it using a back and forward button, so that you don't need to select the model from the explorer every time
T.
the 37626, is that the offset?
and the snoID, you mean I need to check or read all the tex files before I actually find a match ??
hey Wobble, no you don't need to have diablo 3, it works in 2 ways
1. select the top folder where you extracted your model to and it will build up a tree structure with all the models in it
2. select a single model and it loads all the possible models in an array so you can browse thru it using a back and forward button, so that you don't need to select the model from the explorer every time
T.
-
- beginner
- Posts: 22
- Joined: Sun Mar 23, 2014 5:23 pm
- Location: The Neverlands
- Has thanked: 1 time
- Been thanked: 9 times
- Contact:
Re: Diablo III .app
At offset 16 in the .tex file (=header.snoID) you have the value 37626
If you look in the .app file, check the Material-block and specifically the TextureAnim-whatever-block - in the 4 bytes before the matrix (don't have the code in front of me) you have an i0 value which contains that exact same value. I'd say it's more then a "good guess" that that is the cross-reference you are looking for.
Basically I think that every asset has it's own unique id in the header, and files can reference other files with that id.
Which means you probably don't want to do this each time you start your viewer, but rather let it runs once through all assets and create a dictionary with <snoID, filename> for quick lookup ( probably d3 has such a table somewhere too ).
Question which I still have is if this id is globally unique, or unique per category of assets, i.e.
- can we have a .app with id 1000 and a texture with id 1000
- or would we have a model with id 1000 and a texture with id 1001.
If I would have to guess I would guess it's globally unique, but I didn't verify that since I didn't need it yet.
How far are you with your viewer? and what language?
Do you also intend to animate the models? I'm interested in that and wil probably give it a try myself soon(ish).
Regards
If you look in the .app file, check the Material-block and specifically the TextureAnim-whatever-block - in the 4 bytes before the matrix (don't have the code in front of me) you have an i0 value which contains that exact same value. I'd say it's more then a "good guess" that that is the cross-reference you are looking for.
Basically I think that every asset has it's own unique id in the header, and files can reference other files with that id.
Which means you probably don't want to do this each time you start your viewer, but rather let it runs once through all assets and create a dictionary with <snoID, filename> for quick lookup ( probably d3 has such a table somewhere too ).
Question which I still have is if this id is globally unique, or unique per category of assets, i.e.
- can we have a .app with id 1000 and a texture with id 1000
- or would we have a model with id 1000 and a texture with id 1001.
If I would have to guess I would guess it's globally unique, but I didn't verify that since I didn't need it yet.
How far are you with your viewer? and what language?
Do you also intend to animate the models? I'm interested in that and wil probably give it a try myself soon(ish).
Regards
- TaylorMouse
- ultra-veteran
- Posts: 348
- Joined: Mon Sep 26, 2011 12:51 pm
- Has thanked: 11 times
- Been thanked: 89 times
Re: Diablo III .app
Some sample images from my viewer, with a few models that have an easy find on the dds textures
T.
- TheRealMethuselah
- n00b
- Posts: 17
- Joined: Sat Apr 12, 2014 6:19 pm
- Location: Redondo Beach, CA. USA
- Has thanked: 10 times
- Been thanked: 1 time
Re: Diablo III .app
Is there a new version of the d3app2obj.exe that will work with ROS .app files? I've tried to convert with no luck.
I wanted to make more Wanted Posters & Wallpapers
http://danielbarras.deviantart.com/art/Diablo-383353031
http://danielbarras.deviantart.com/art/ ... -382784958
http://danielbarras.deviantart.com/art/Beast-383974501
http://danielbarras.deviantart.com/art/ ... -386945096
I wanted to make more Wanted Posters & Wallpapers
http://danielbarras.deviantart.com/art/Diablo-383353031
http://danielbarras.deviantart.com/art/ ... -382784958
http://danielbarras.deviantart.com/art/Beast-383974501
http://danielbarras.deviantart.com/art/ ... -386945096
"I'd love to change the world, but they won't give me the source code."
-
- beginner
- Posts: 22
- Joined: Sun Mar 23, 2014 5:23 pm
- Location: The Neverlands
- Has thanked: 1 time
- Been thanked: 9 times
- Contact:
Re: Diablo III .app
Here ya go - I extracted the parsing code from my little 3d-engine into a separate executable. It has really basic commandline-parameters and it was only tested it on 2-3 models, but it should be able to convert any reaper-of-soul .app file ( fileformat v260 ), just give it a try.
update: removed attachment, improved version follows a few posts later.
update: removed attachment, improved version follows a few posts later.
Last edited by kalmiya on Sun Apr 13, 2014 7:36 pm, edited 1 time in total.
- TheRealMethuselah
- n00b
- Posts: 17
- Joined: Sat Apr 12, 2014 6:19 pm
- Location: Redondo Beach, CA. USA
- Has thanked: 10 times
- Been thanked: 1 time
Re: Diablo III .app
Testing now; and a big Thank you.
Some of the models load correctly, others do not.. any help would be appreciated.
Loads Correctly:
Perfect:
Weird:
Adria:
zombie dog is great:
Westmarch hound is crazy:
Some of the models load correctly, others do not.. any help would be appreciated.
Loads Correctly:
Perfect:
Weird:
Adria:
zombie dog is great:
Westmarch hound is crazy:
"I'd love to change the world, but they won't give me the source code."
- TheRealMethuselah
- n00b
- Posts: 17
- Joined: Sat Apr 12, 2014 6:19 pm
- Location: Redondo Beach, CA. USA
- Has thanked: 10 times
- Been thanked: 1 time
Re: Diablo III .app
Thank you for looking into this. I've sent the file.
You do not have the required permissions to view the files attached to this post.
"I'd love to change the world, but they won't give me the source code."
-
- beginner
- Posts: 22
- Joined: Sun Mar 23, 2014 5:23 pm
- Location: The Neverlands
- Has thanked: 1 time
- Been thanked: 9 times
- Contact:
Re: Diablo III .app
Loading the .obj in blender works - loading it in 3dsmax fails.
1. If you use blender to export from obj to obj and import that in 3dsmax it fails ( so blender does sth comparable to my exporter - would have been great if that worked, then I could have done a simple file-compare to see what's different).
2. If you use blender to export to collada ( dae ) and import that in 3dsmax, it works.
3. If you use blender and merge the two meshes, export that to .obj and import into 3dsmax, it also works.
It looks like 3dsmax doesn't like .obj's with more than 1 part - or at least handles it differently than blender does. So either you use one of the above work-arounds, or we need to figure out if there's some way to get 3dsmax to load multi-mesh .obj's (changing the obj text-export on my part shouldn't take much work - I only need to know what it should look like).
1. If you use blender to export from obj to obj and import that in 3dsmax it fails ( so blender does sth comparable to my exporter - would have been great if that worked, then I could have done a simple file-compare to see what's different).
2. If you use blender to export to collada ( dae ) and import that in 3dsmax, it works.
3. If you use blender and merge the two meshes, export that to .obj and import into 3dsmax, it also works.
It looks like 3dsmax doesn't like .obj's with more than 1 part - or at least handles it differently than blender does. So either you use one of the above work-arounds, or we need to figure out if there's some way to get 3dsmax to load multi-mesh .obj's (changing the obj text-export on my part shouldn't take much work - I only need to know what it should look like).