but doing read .o3d files would resolve the fact that the constructs that have no skeletons?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.
Important information: this site is currently scheduled to go offline indefinitely by end of the year.
PC Darksiders II: Death Lives maxscript
-
- mega-veteran
- Posts: 223
- Joined: Tue Jul 29, 2014 9:06 am
- Has thanked: 3 times
- Been thanked: 14 times
Re: PC Darksiders II: Death Lives maxscript
- PredatorCZ
- mega-veteran
- Posts: 291
- Joined: Mon Apr 21, 2014 8:32 pm
- Has thanked: 11 times
- Been thanked: 256 times
- Contact:
Re: PC Darksiders II: Death Lives maxscript
Sure, like I wrote .o3d contains lot of information about model. It may have even bone hierarchy that is missing in .dcm.
- shakotay2
- MEGAVETERAN
- Posts: 4291
- Joined: Fri Apr 20, 2012 9:24 am
- Location: Nexus, searching for Jim Kirk
- Has thanked: 1151 times
- Been thanked: 2244 times
Re: PC Darksiders II: Death Lives maxscript
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.
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.
Tuts: a) Bigchillghost, viewtopic.php?f=29&t=17889
b) Extracting simple models: http://forum.xentax.com/viewtopic.php?f=29&t=10894
"Quoting the whole thing. Would u ever stop this nonsense?"
b) Extracting simple models: http://forum.xentax.com/viewtopic.php?f=29&t=10894
"Quoting the whole thing. Would u ever stop this nonsense?"
-
- ultra-n00b
- Posts: 8
- Joined: Fri Jun 17, 2016 5:48 am
Re: PC Darksiders II: Death Lives maxscript
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?
-
- mega-veteran
- Posts: 223
- Joined: Tue Jul 29, 2014 9:06 am
- Has thanked: 3 times
- Been thanked: 14 times
Re: PC Darksiders II: Death Lives maxscript
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.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.
the script works as it should with most of the models:
but when loading the constructs, the following happens:
using a program that sees the files in your code, you may notice that the .dcm files (model files) have registered with the bones:
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:
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!
- shakotay2
- MEGAVETERAN
- Posts: 4291
- Joined: Fri Apr 20, 2012 9:24 am
- Location: Nexus, searching for Jim Kirk
- Has thanked: 1151 times
- Been thanked: 2244 times
Re: PC Darksiders II: Death Lives maxscript
"constructs"? What is this? A submesh?dibe91 wrote:but when loading the constructs, the following happens:
Could you upload a DS2 dcm file (size <1 MB, if possible) which has the problem and the suiting o3d file, please?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:
Tuts: a) Bigchillghost, viewtopic.php?f=29&t=17889
b) Extracting simple models: http://forum.xentax.com/viewtopic.php?f=29&t=10894
"Quoting the whole thing. Would u ever stop this nonsense?"
b) Extracting simple models: http://forum.xentax.com/viewtopic.php?f=29&t=10894
"Quoting the whole thing. Would u ever stop this nonsense?"
-
- mega-veteran
- Posts: 223
- Joined: Tue Jul 29, 2014 9:06 am
- Has thanked: 3 times
- Been thanked: 14 times
Re: PC Darksiders II: Death Lives maxscript
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
http://www.mediafire.com/download/fwt29 ... struct.rar
- shakotay2
- MEGAVETERAN
- Posts: 4291
- Joined: Fri Apr 20, 2012 9:24 am
- Location: Nexus, searching for Jim Kirk
- Has thanked: 1151 times
- Been thanked: 2244 times
Re: PC Darksiders II: Death Lives maxscript
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.
Kudos to zaramot!
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.
Kudos to zaramot!
Tuts: a) Bigchillghost, viewtopic.php?f=29&t=17889
b) Extracting simple models: http://forum.xentax.com/viewtopic.php?f=29&t=10894
"Quoting the whole thing. Would u ever stop this nonsense?"
b) Extracting simple models: http://forum.xentax.com/viewtopic.php?f=29&t=10894
"Quoting the whole thing. Would u ever stop this nonsense?"
-
- mega-veteran
- Posts: 223
- Joined: Tue Jul 29, 2014 9:06 am
- Has thanked: 3 times
- Been thanked: 14 times
Re: PC Darksiders II: Death Lives maxscript
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!
- shakotay2
- MEGAVETERAN
- Posts: 4291
- Joined: Fri Apr 20, 2012 9:24 am
- Location: Nexus, searching for Jim Kirk
- Has thanked: 1151 times
- Been thanked: 2244 times
Re: PC Darksiders II: Death Lives maxscript
could you rephrase that sentence, please?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!
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 (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.
Tuts: a) Bigchillghost, viewtopic.php?f=29&t=17889
b) Extracting simple models: http://forum.xentax.com/viewtopic.php?f=29&t=10894
"Quoting the whole thing. Would u ever stop this nonsense?"
b) Extracting simple models: http://forum.xentax.com/viewtopic.php?f=29&t=10894
"Quoting the whole thing. Would u ever stop this nonsense?"
-
- mega-veteran
- Posts: 223
- Joined: Tue Jul 29, 2014 9:06 am
- Has thanked: 3 times
- Been thanked: 14 times
Re: PC Darksiders II: Death Lives maxscript
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: could you rephrase that sentence, please?
You mean how to create such a script?
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 = l5pEjR6yyx0shakotay2 wrote: What the heck - why don't we have Toe_R here?
- shakotay2
- MEGAVETERAN
- Posts: 4291
- Joined: Fri Apr 20, 2012 9:24 am
- Location: Nexus, searching for Jim Kirk
- Has thanked: 1151 times
- Been thanked: 2244 times
Re: PC Darksiders II: Death Lives maxscript
yeah, if you start nearly from scratch that's kinda like the question: "can you teach me how to build a rocket"?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.
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.
Tuts: a) Bigchillghost, viewtopic.php?f=29&t=17889
b) Extracting simple models: http://forum.xentax.com/viewtopic.php?f=29&t=10894
"Quoting the whole thing. Would u ever stop this nonsense?"
b) Extracting simple models: http://forum.xentax.com/viewtopic.php?f=29&t=10894
"Quoting the whole thing. Would u ever stop this nonsense?"
-
- mega-veteran
- Posts: 223
- Joined: Tue Jul 29, 2014 9:06 am
- Has thanked: 3 times
- Been thanked: 14 times
Re: PC Darksiders II: Death Lives maxscript
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?
- shakotay2
- MEGAVETERAN
- Posts: 4291
- Joined: Fri Apr 20, 2012 9:24 am
- Location: Nexus, searching for Jim Kirk
- Has thanked: 1151 times
- Been thanked: 2244 times
Re: PC Darksiders II: Death Lives maxscript
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. )
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. )
Tuts: a) Bigchillghost, viewtopic.php?f=29&t=17889
b) Extracting simple models: http://forum.xentax.com/viewtopic.php?f=29&t=10894
"Quoting the whole thing. Would u ever stop this nonsense?"
b) Extracting simple models: http://forum.xentax.com/viewtopic.php?f=29&t=10894
"Quoting the whole thing. Would u ever stop this nonsense?"