READ THE RULES: Click here

Follow us on Facebook: https://www.facebook.com/xentax/ :)

PC Darksiders II: Death Lives maxscript

Post questions about game models here, or help out others!
dibe91
mega-veteran
mega-veteran
Posts: 214
Joined: Tue Jul 29, 2014 9:06 am
Has thanked: 3 times
Been thanked: 13 times

Re: PC Darksiders II: Death Lives maxscript

Post by dibe91 » Wed Jul 20, 2016 3:55 pm

PredatorCZ wrote:Well, to be honnest, .o3d is true header, while .dcm is buffer file. Basically those two files are merged in first game.
Its not only skeleton as you can guess, but its complete information about object (so I assume .o3d means "Object 3D").
So I found when I was researching it, that it contains simple animations aswell. Every information in .dcm like types, counts, etc. should be too in .o3d. 8)
but doing read .o3d files would resolve the fact that the constructs that have no skeletons?

User avatar
PredatorCZ
mega-veteran
mega-veteran
Posts: 251
Joined: Mon Apr 21, 2014 8:32 pm
Has thanked: 7 times
Been thanked: 177 times
Contact:

Re: PC Darksiders II: Death Lives maxscript

Post by PredatorCZ » Wed Jul 20, 2016 4:02 pm

Sure, like I wrote .o3d contains lot of information about model. It may have even bone hierarchy that is missing in .dcm.

dibe91
mega-veteran
mega-veteran
Posts: 214
Joined: Tue Jul 29, 2014 9:06 am
Has thanked: 3 times
Been thanked: 13 times

Re: PC Darksiders II: Death Lives maxscript

Post by dibe91 » Wed Jul 20, 2016 5:26 pm

sorry, but I do not understand English very well and is why I ask things quite obvious. clicked away, you'd know how to help me?

User avatar
shakotay2
MEGAVETERAN
MEGAVETERAN
Posts: 2720
Joined: Fri Apr 20, 2012 9:24 am
Location: Nexus, searching for Jim Kirk
Has thanked: 674 times
Been thanked: 1403 times

Re: PC Darksiders II: Death Lives maxscript

Post by shakotay2 » Sat Jul 23, 2016 12:29 am

I tried to understand what you're doing but - to be honest - I did not.

Are you familiar with maxscript?
I don't see a parenting of bones in the script.
Seems you fixed that problem manually.

It's hard to follow your descriptions concerning the problem with the golem for example
without the sample and more details.

That's the reason why noone can help you out, imho.
Bigchillghost, Reverse Engineering a Game Model: viewtopic.php?f=29&t=17889
extracting simple models: viewtopic.php?f=29&t=10894
Make_H2O-ForzaHor3-jm9.zip
"You quoted the whole thing, what a mess."

SgtDirtDiver
ultra-n00b
Posts: 8
Joined: Fri Jun 17, 2016 5:48 am

Re: PC Darksiders II: Death Lives maxscript

Post by SgtDirtDiver » Sat Jul 23, 2016 2:33 am

Hey, whenever I try to run it and select /v I get "Failed to open "steam/steamapps/common/Darksider2/media/pc.mnfst" for reading. Please ensure you specified the correct source path (typically Darksiders 2 dir\media)" but I know for sure it is in there. Does anyone know why this might be?

dibe91
mega-veteran
mega-veteran
Posts: 214
Joined: Tue Jul 29, 2014 9:06 am
Has thanked: 3 times
Been thanked: 13 times

Re: PC Darksiders II: Death Lives maxscript

Post by dibe91 » Sat Jul 23, 2016 10:26 am

shakotay2 wrote:I tried to understand what you're doing but - to be honest - I did not.

Are you familiar with maxscript?
I don't see a parenting of bones in the script.
Seems you fixed that problem manually.

It's hard to follow your descriptions concerning the problem with the golem for example
without the sample and more details.

That's the reason why noone can help you out, imho.
I'm sorry if I was not clear, but my English is a bit 'limited and therefore it is difficult to express myself as I vorrie. however, I do not have much knowledge with scripts, and in fact I was starting to understand a p 'better with scipt of zaramot them. if you need any more information, I will try to furnish as much as possible.

the script works as it should with most of the models:
Image
but when loading the constructs, the following happens:
Image
using a program that sees the files in your code, you may notice that the .dcm files (model files) have registered with the bones:
Image
but I am looking at .o3d files I found the bones that were missing:
Image
moreover, in the first thred darksider, claim that .o3d files are the skeleton template files:
viewtopic.php?f=16&t=11483&hilit=darksiders&start=15
Now what is asked if it was possible to modify the script so that sought the good not in the files. dcm but in .o3d file, or if I do it again convine one from scratch for just models here. I hope I was clear!

User avatar
shakotay2
MEGAVETERAN
MEGAVETERAN
Posts: 2720
Joined: Fri Apr 20, 2012 9:24 am
Location: Nexus, searching for Jim Kirk
Has thanked: 674 times
Been thanked: 1403 times

Re: PC Darksiders II: Death Lives maxscript

Post by shakotay2 » Sat Jul 23, 2016 2:42 pm

dibe91 wrote:but when loading the constructs, the following happens:
"constructs"? What is this? A submesh?

but I am looking at .o3d files I found the bones that were missing:
[...]
moreover, in the first thred darksider, claim that .o3d files are the skeleton template files:
Could you upload a DS2 dcm file (size <1 MB, if possible) which has the problem and the suiting o3d file, please?
Bigchillghost, Reverse Engineering a Game Model: viewtopic.php?f=29&t=17889
extracting simple models: viewtopic.php?f=29&t=10894
Make_H2O-ForzaHor3-jm9.zip
"You quoted the whole thing, what a mess."

dibe91
mega-veteran
mega-veteran
Posts: 214
Joined: Tue Jul 29, 2014 9:06 am
Has thanked: 3 times
Been thanked: 13 times

Re: PC Darksiders II: Death Lives maxscript

Post by dibe91 » Sat Jul 23, 2016 3:40 pm

the "constructs" are the name of the models that have this problem. This is the simplest model, and is therefore complete.there is also the script
http://www.mediafire.com/download/fwt29 ... struct.rar

User avatar
shakotay2
MEGAVETERAN
MEGAVETERAN
Posts: 2720
Joined: Fri Apr 20, 2012 9:24 am
Location: Nexus, searching for Jim Kirk
Has thanked: 674 times
Been thanked: 1403 times

Re: PC Darksiders II: Death Lives maxscript

Post by shakotay2 » Sat Jul 23, 2016 7:59 pm

ok, now I fully understand (I think) what you're trying to do.
Your basic idea seems to be correct - I'll see what I can do.

Meanwhile you might try to "blast" the 50 objects to their correct positions.
Should be a matter of parent relativeness.

The o3d contains the bone names but not sure about the matrices.
There's suspicious 8 bytes before the names (after 0F 01) which might form a quaternion,
but of what? Half floats? Nope. Words? Nope?

I'm tending to use values from the dcm but they are not really symmetrical for bone 2/3 and 5/6 as they should be.
(Maybe they can used to put the submeshes into correct positions?)
Chances are great that they are bounding box values only.

first bone is Bone_CG_Ankle_R?

2. Bone_CG_Back_L
3. Bone_CG_Back_R

4. Bone_CG_BigToe_L

5. Bone_CG_Chest_L
6. Bone_CG_Chest_R


-8.16261 -3.50458 -6.70328 8.20317 5.67234 6.74692
---------- 1 0 2

-9.796 -9.2545 -13.0532 9.3252 12.3124 12.7371
---------- 2 0 2
-9.15796 -7.48943 -10.7405 10.2364 9.55678 11.6172
---------- 3 0 2

-2.24929 -1.3866 -2.18837 3.69089 1.38727 2.18264
---------- 4 0 2

-9.13452 -7.18897 -9.83185 7.92649 7.70572 11.9727
---------- 5 0 2
-8.34529 -6.9054 -10.9909 8.28095 6.63373 10.7525
---------- 6 0 2

Guess I'm missing to many rules/knowledge of structures. I'll have to check the dcm step by step. How boring...
I'm really wondering how anyone ever could have the patience to analyze this tedious stuff again and again. :D

Kudos to zaramot! :)
Bigchillghost, Reverse Engineering a Game Model: viewtopic.php?f=29&t=17889
extracting simple models: viewtopic.php?f=29&t=10894
Make_H2O-ForzaHor3-jm9.zip
"You quoted the whole thing, what a mess."

dibe91
mega-veteran
mega-veteran
Posts: 214
Joined: Tue Jul 29, 2014 9:06 am
Has thanked: 3 times
Been thanked: 13 times

Re: PC Darksiders II: Death Lives maxscript

Post by dibe91 » Sun Jul 24, 2016 7:47 am

thank you for your help. if you can solve the problem yourself you know very capable. if I can ask you something, I start to see how to do this kind of script would be interested in some games!

User avatar
shakotay2
MEGAVETERAN
MEGAVETERAN
Posts: 2720
Joined: Fri Apr 20, 2012 9:24 am
Location: Nexus, searching for Jim Kirk
Has thanked: 674 times
Been thanked: 1403 times

Re: PC Darksiders II: Death Lives maxscript

Post by shakotay2 » Sun Jul 24, 2016 9:07 am

dibe91 wrote:if I can ask you something, I start to see how to do this kind of script would be interested in some games!
could you rephrase that sentence, please?
You mean how to create such a script?

Well, start analysing, get the 3D data file's structure(s). Getting faceindices and vertices is the simplest part in most cases.
You need an address map like such:
---------- 1 0 2
seek set 0x14fa + 0x8, Face Start @ 0x1502
Vertex/weights Start @ 0x1616 (68)
"Vertex End @ 0x1946"
"after uvs, 20 Bytes End @ 0x1e96"
---------- 2 0 2
seek set 0x14fa + 0xde4, Face Start @ 0x22de
Vertex/weights Start @ 0x2836 (348)
"Vertex End @ 0x3886"
"after uvs, 20 Bytes End @ 0x53b6"
---------- 3 0 2
seek set 0x14fa + 0x5484, Face Start @ 0x697e
Vertex/weights Start @ 0x6e52 (343)
"Vertex End @ 0x7e66"
"after uvs, 20 Bytes End @ 0x9932"
[...]

If the vertices, weights and matrices use floats then it's no so hard, getting harder with half floats and you're lost with shorts (words), more or less.

Anyway, here's an exploded mesh, using random positions in despair :D
construct_meleea_exploded.jpg
(Bone_CG_PinkyToe_L block should start at 0xEA5, sry)

btw, you could help finding the bones' parent ids and their positions:
in the lower part of the picture there's the bone ids marked (rectangle), a bone block could have additional 7 more bytes (00 08 000000 04 00).
After "0F 01" 8 bytes to follow, might be a quaternion.

I've logged the bonenames and marked the above mentioned by '8' (seven more bytes) and it doesn't make sense to me (not a 'flag' for child bones, obviously):
(Bone_CG_Ankle_R not in list)

1. Bone_CG_Back_L (9)
2. Bone_CG_Back_R (8)
3. Bone_CG_BigToe_L (8)
4. Bone_CG_Chest_L (9)
5. Bone_CG_Chest_R (9)
6. Bone_CG_ChestPlate (8)
7. Bone_CG_Collar (8)
8. Bone_CG_ElbowPad_R (8)
9. Bone_CG_Finger_Index1_L (8)
10. Bone_CG_Finger_Index1_R (8)
11. Bone_CG_Finger_Index2_L (8)
12. Bone_CG_Finger_Index2_R (8)
13. Bone_CG_Finger_Middle1_L (8)
14. Bone_CG_Finger_Middle1_R (8)
15. Bone_CG_Finger_Middle2_L (8)
16. Bone_CG_Finger_Middle2_R (8)
17. Bone_CG_Finger_Pinky1_L (8)
18. Bone_CG_Finger_Pinky1_R (8)
19. Bone_CG_Finger_Pinky2_L (8)
20. Bone_CG_Finger_Pinky2_R (8)
21. Bone_CG_Finger_Thumb1_L (8)
22. Bone_CG_Finger_Thumb1_R (8)
23. Bone_CG_Finger_Thumb2_L (8)
24. Bone_CG_Finger_Thumb2_R (8)
25. Bone_CG_Foot_L (9)
26. Bone_CG_Foot_R (9)
27. Bone_CG_ForeArm_L (9)
28. Bone_CG_ForeArm_R (9)
29. Bone_CG_Hand_L (8)
30. Bone_CG_Hand_R (8)
31. Bone_CG_HandPlate_L (8)
32. Bone_CG_HandPlate_R (8)
33. Bone_CG_Head (8)
34. Bone_CG_Heel_L (9)
35. Bone_CG_JunkPlate (8)
36. Bone_CG_KneeCap_R (8)
37. Bone_CG_KneePad_L (8)
38. Bone_CG_MidToe_L (8)
39. Bone_CG_Pelvis_L (8)
40. Bone_CG_Pelvis_R (9)
41. Bone_CG_PinkyToe_L (8)
42. Bone_CG_ShoulderPad_L (9)
43. Bone_CG_ShoulderPad_R (9)
44. Bone_CG_Spine1 (9)
45. Bone_CG_Thigh_L (9)
46. Bone_CG_Thigh_R (9)
47. Bone_CG_ThighPad_R (8)
48. Bone_CG_UpperArm_L (9)
49. Bone_CG_UpperArm_R (9)

What the heck - why don't we have Toe_R here?
---------
These values from o3d looked like quaternions (they are for rotations only, iirc)
but a^2 -b^2 -c^2 -d^2=-1 doesn't apply:

-0.435469 0.605304 0.232124 0.317423
1. Bone_CG_Back_L
-0.431318 0.602161 0.444411 0.456832
2. Bone_CG_Back_R


0.650075 -0.161931 0.852443 0.975555
4. Bone_CG_Chest_L
0.654225 -0.162633 0.564714 0.859584
5. Bone_CG_Chest_R
You do not have the required permissions to view the files attached to this post.
Bigchillghost, Reverse Engineering a Game Model: viewtopic.php?f=29&t=17889
extracting simple models: viewtopic.php?f=29&t=10894
Make_H2O-ForzaHor3-jm9.zip
"You quoted the whole thing, what a mess."

dibe91
mega-veteran
mega-veteran
Posts: 214
Joined: Tue Jul 29, 2014 9:06 am
Has thanked: 3 times
Been thanked: 13 times

Re: PC Darksiders II: Death Lives maxscript

Post by dibe91 » Sun Jul 24, 2016 12:39 pm

shakotay2 wrote: could you rephrase that sentence, please?
You mean how to create such a script?
yes, I mean how can I make a script for 3d studio max to import models. I want to know how to start and what thou wast need.
shakotay2 wrote: What the heck - why don't we have Toe_R here?
the fact that it lacks that bone, I think it's because the developers wanted him as well. in the game in fact, many of these types of models are moving as if they were "gelatinous", especially when they are thrown to the ground. Watch this video to see what I mean: https: //www.youtube.com/watch? v = l5pEjR6yyx0

User avatar
shakotay2
MEGAVETERAN
MEGAVETERAN
Posts: 2720
Joined: Fri Apr 20, 2012 9:24 am
Location: Nexus, searching for Jim Kirk
Has thanked: 674 times
Been thanked: 1403 times

Re: PC Darksiders II: Death Lives maxscript

Post by shakotay2 » Sun Jul 24, 2016 2:41 pm

dibe91 wrote:yes, I mean how can I make a script for 3d studio max to import models. I want to know how to start and what thou wast need.
yeah, if you start nearly from scratch that's kinda like the question: "can you teach me how to build a rocket"? :D

It's a very long path to go and I fear I don't have the time to lead you all the stony way.

I've started to show some tiny approaches, here for example:
viewtopic.php?f=16&t=11090&p=118039&hil ... pt#p118039

but you're best of to search the forum for threads from Alsair or Seyren for example.
Dive into their projects, view the dozens of maxscripts in this forum.

After two or three months of hard learning you'll know more.

btw: for the constructs I'd say we'd try to fix the submesh positions as a first step
The bones' parent IDs, well that a senseless riddle not worth dealing with.

As you said we can create them manually.
Bigchillghost, Reverse Engineering a Game Model: viewtopic.php?f=29&t=17889
extracting simple models: viewtopic.php?f=29&t=10894
Make_H2O-ForzaHor3-jm9.zip
"You quoted the whole thing, what a mess."

dibe91
mega-veteran
mega-veteran
Posts: 214
Joined: Tue Jul 29, 2014 9:06 am
Has thanked: 3 times
Been thanked: 13 times

Re: PC Darksiders II: Death Lives maxscript

Post by dibe91 » Sun Jul 24, 2016 3:11 pm

I know very well that it is very difficult to work on the script, but enough for me just to have an idea for now. Thanks for your help! just one more thing, you think you can solve the problem of those models without bones and weights, or not?

User avatar
shakotay2
MEGAVETERAN
MEGAVETERAN
Posts: 2720
Joined: Fri Apr 20, 2012 9:24 am
Location: Nexus, searching for Jim Kirk
Has thanked: 674 times
Been thanked: 1403 times

Re: PC Darksiders II: Death Lives maxscript

Post by shakotay2 » Sun Jul 24, 2016 4:29 pm

I don't see a chance, to be honest.
The construct_meleea.dcm, I've looked at seems to contain ModelType 0.
For this ModelType there's no bone IDs, no weights in the dcm (nor in the o3d) , they are all set to 1 1.0 (one constant boneid per vertex).
I'm asking myself "how is the skinning realized here"?

So the skinOps.ReplaceVertexWeights is only run for ModelType 1.

Is there any moving construct to be seen in the video you pointed to?

(If you happen to find the boneids/weights I could think of building a skeleton manually, 50 bones are not too many. :D )
Bigchillghost, Reverse Engineering a Game Model: viewtopic.php?f=29&t=17889
extracting simple models: viewtopic.php?f=29&t=10894
Make_H2O-ForzaHor3-jm9.zip
"You quoted the whole thing, what a mess."

Post Reply