[DOA5] How to edit vertex data in PC version. (Converting) (1 Viewer)

Harry Palmer

Potential Patron
Joined
Apr 19, 2015
I am ready for the Step 2 :D
Thanks for your tutorial.

View attachment 24499

All right. That's great. I'll start it right away.

<Step 2-1>

In the step 2, I'll ask two simple questions with a simple guide.
That will be all.

First, import LISA_DLC_004.TMC.
Select body object.
Go to 'Editable Mesh' modifier and select face edit mode. (or you can also select polygon or element edit mode.)
And there, you can check that how many subgroups are there in the body object.
There's 6 subgroups.

Tell me which one is the subgroup for the Skin mesh.
Tell me as the number please.
 
Last edited by a moderator:

delpoint

Potential Patron
Joined
Jun 29, 2012
I did not fully understand meaning by subgroups so attached the screenshot. Hope it is right.:p

pic.jpg
 

Harry Palmer

Potential Patron
Joined
Apr 19, 2015
Well. that's quite right.

On your screenshot, you can see a pull down menu with a text "No Name - (6)"
When you select one of them, some part of the model turns into red. And that part is "one subgroup"
So you could see whole Skin parts were turning into red when you selected "No Name - (6)" from pull down menu.

So the whole body, except the clothes, is subgroup No. 6.

I'll start step 2-2 soon.
 

Harry Palmer

Potential Patron
Joined
Apr 19, 2015
Sorry, I changed the plan a bit and then I'll start the step 3 right away.

<Step 3>
With that, you can check each sub-groups visually. So now you need to know some key information about hex editing.
Before we start, this whole process could have been possible thanks to stuffs that the mariokart64n's script provided. Please remember that.

Now click the body object and right click > Object Properties and go to User Defined section.
You can see numbers. Those are key information.
mesh_data = #(#(44, 44, 44, 44, 44, 44), #(176, 400, 168, 2770, 1367, 5981), #(6123536, 6131280, 6148880, 6156272, 6278152, 6338300), #(), #(), #())


6th sub-group have 5981 vertices and those vertex information are contained in TMCL file, starting from the address 6338300(0x60B6FC).
Goto address 6338300 and check first 12 bytes.

it's 3EB2BB87 BF6EE6B4 3DFEC2DA.

And you can also find this number in TMC file of PC version.
But you have to reverse it to find this.

Reveres it like this.

12345678 12345678 12345678 → 78563412 78563412 78563412

Then it's going to be 87BBB23E....
Now you grab this reversed 12 bytes and find it on TMC file of PC version.

And remember the address of that point in PC TMC file. The address will be 0x4DC40.
Now you get both address on each files.
If you copy the first 12 bytes and paste it into PC TMC file after reversing, then you are converting the first vertex of 6th sub-group.

Now let's go to the next vertex.
The address of first vertex was 6338300.
Add 44 there.
It's 6338344. That's the address of second vertex. Go to there and check first 12 bytes again and reverse it.
Search for that reversed number on PC TMC file again. it will also be there.
Now you get both address of second vertex on each files.

So now you can convert second vertex, too.

You have to repeat it 5981 times, because there are 5981 vertices in 6th sub-group.
I know you can't handle them all manually, so you should have to make a tool for that.

I might be able to provide a tool for that, but in most case, you should have to make your own tool for your own purpose.
Because there are no separate tool makers. You can't say, 'I make the mod, you provide a tool.'
If you can get one from other, then you just got lucky. that's all.
And there are no ready-made tool for each and every steps for you.
For me it was the nature of this league. I'm sorry that I have to say it like this.

And if you are done it with 5981 vertices, then you learned how to convert 6th-group.
You can do it for another sub-groups also.
 
Last edited by a moderator:

delpoint

Potential Patron
Joined
Jun 29, 2012
Alright! I got the idea. Thank you for your tutorial Harry.
I will be glad if you can provide that tool since 5831 times are too much. :rolleyes:
 

timmyc

Content Creator
Joined
Nov 14, 2012
I wrote a tool that can do this conversion, and it works flawlessly for the body mesh. However, I am having some issues with some of the subgroups. The main idea is that only vertices are moved, so given two containers (one pc, one xbox), we only move the vertices information from one to the other. There are some subtle differences through my trial and error.
I am having some issues with Leifang's DLC_004 subgroup 0 (or 1 if not counting first element as 0) due to the fact that the address for the 360 version (6295568) doesn't point to anything on the PC side until a few 44 byte increments after that (6295568 + 44 + 44). After that point, both sides seem to align, but when I try to inject vertex data, stuff starts to get whacky.

Still got some kinks to work out. I think I will have to get into how to parse the entire file to have a more accurate converter.

Thanks for the tutorial Harry. This is very helpful.

.View attachment 24529
 
Last edited by a moderator:

ShodaiDerio

Casual Client
Joined
Jun 26, 2012
I wrote a tool that can do this conversion, and it works flawlessly for the body mesh. However, I am having some issues with some of the subgroups. The main idea is that only vertices are moved, so given two containers (one pc, one xbox), we only move the vertices information from one to the other. There are some subtle differences through my trial and error.
I am having some issues with Leifang's DLC_004 subgroup 0 (or 1 if not counting first element as 0) due to the fact that the address for the 360 version (6295568) doesn't point to anything on the PC side until a few 44 byte increments after that (6295568 + 44 + 44). After that point, both sides seem to align, but when I try to inject vertex data, stuff starts to get whacky.

Still got some kinks to work out. I think I will have to get into how to parse the entire file to have a more accurate converter.

Thanks for the tutorial Harry. This is very helpful.

.View attachment 24529
Thanks everyone for working so hard on the progress! I'm happy to see editing on Leifang too.
 

Harry Palmer

Potential Patron
Joined
Apr 19, 2015
I wrote a tool that can do this conversion, and it works flawlessly for the body mesh. However, I am having some issues with some of the subgroups. The main idea is that only vertices are moved, so given two containers (one pc, one xbox), we only move the vertices information from one to the other. There are some subtle differences through my trial and error.
I am having some issues with Leifang's DLC_004 subgroup 0 (or 1 if not counting first element as 0) due to the fact that the address for the 360 version (6295568) doesn't point to anything on the PC side until a few 44 byte increments after that (6295568 + 44 + 44). After that point, both sides seem to align, but when I try to inject vertex data, stuff starts to get whacky.


Still got some kinks to work out. I think I will have to get into how to parse the entire file to have a more accurate converter.


Thanks for the tutorial Harry. This is very helpful.


Excellent work.
Figuring out how to manage hex data massively with your own tool is not the waste of time.
It will help you a lot if you want to break the given limits in the future.


And I've checked DLC_004 sub-group 1, but it seems the vertex order is not matching.
And I think it's a very rare case.
In that case, you should have to convert entire 44 bytes and do something more, I guess.
I seriously recommend to just wait for max script for PC at this time.


Yes I know you've found out there's more things to convert,
But what you have done is exactly same thing with what you can do with 'TMC importer for PC' in the future.
(Even I haven't seen such a thing yet.)


You saw that you can only move existing vertices with 3DSmax script.
So I don't think you need to convert other parts of the file yet. Am I right?


Or If you can do, you can do modification directly on the PC format, and no need to go back.
 
Last edited by a moderator:

synce

Potential Patron
Joined
Mar 10, 2013
I wrote a tool that can do this conversion, and it works flawlessly for the body mesh. However, I am having some issues with some of the subgroups. The main idea is that only vertices are moved, so given two containers (one pc, one xbox), we only move the vertices information from one to the other. There are some subtle differences through my trial and error.
I am having some issues with Leifang's DLC_004 subgroup 0 (or 1 if not counting first element as 0) due to the fact that the address for the 360 version (6295568) doesn't point to anything on the PC side until a few 44 byte increments after that (6295568 + 44 + 44). After that point, both sides seem to align, but when I try to inject vertex data, stuff starts to get whacky.

Still got some kinks to work out. I think I will have to get into how to parse the entire file to have a more accurate converter.

Thanks for the tutorial Harry. This is very helpful.

.View attachment 24529

13798404511496247745.GIF
 

timmyc

Content Creator
Joined
Nov 14, 2012
Excellent work.
Figuring out how to manage hex data massively with your own tool is not the waste of time.
It will help you a lot if you want to break the given limits in the future.


And I've checked DLC_004 sub-group 1, but it seems the vertex order is not matching.
And I think it's a very rare case.
In that case, you should have to convert entire 44 bytes and do something more, I guess.
I seriously recommend to just wait for max script for PC at this time.


Yes I know you've found out there's more things to convert,
But what you have done is exactly same thing with what you can do with 'TMC importer for PC' in the future.
(Even I haven't seen such a thing yet.)


You saw that you can only move existing vertices with 3DSmax script.
So I don't think you need to convert other parts of the file yet. Am I right?


Or If you can do, you can do modification directly on the PC format, and no need to go back.

Thanks Harry. I have learned a great deal just getting my hands dirty messing around with the binaries. It's been a fun experience for my very first step into the game modding scene.

I got some tips from Lilstormcloud on how to fix a particular issue with Leifang neck seam. I think the biggest challenge I face now is that I have no experience with 3d modeling tools and that I have no access to the original xbox 360 version of the meshes you released. I will have to try my best to work backwards this time.

As for your question, I don't think I need to convert other parts of the files yet. Unless I want to try something more advanced like moving bones around or something. Is there any applications for such modification yet?

Thanks!
 

timmyc

Content Creator
Joined
Nov 14, 2012
There are no tools for that.

I think I am getting the gist of this now. In order to add/remove vertices, it is much much more involved than simply moving them around. Since adding or removing vertices requires one to update blocks such as ObjGeo/GeoDecl/MdlObj blocks to add the bits there and there is a very high chance of screwing up using hex editor for someone as novice as myself. I will have to get a firmer understanding of the file structure before I can comprehend this.

On a side note, if you have time, could you please share with me the details of those models you released on the PC? I am particularly interested in what original 360 models that they are based on so I can attempt to fix little things like neck seams and so on as my side project. It would be great if you wouldn't mind sharing the xbox 360 TMC files with me.

Thanks!
 

Harry Palmer

Potential Patron
Joined
Apr 19, 2015
All right, you deserve it.
It will help you to achieve some part of you plan.

But don't expect that you will get every answer for everything.
You might have noticed that if you have looked into some of plugin or script, it's been solved 100% since long ago and no one made a full tutorial for that.
It was just about barely chasing at least for me.

I played enough and thanks for being my audience till the end, seriously.
Thank you.
 
Last edited by a moderator:

timmyc

Content Creator
Joined
Nov 14, 2012
Thanks! I managed to fix (partially) the neck problem with your help and the folks at Xentax (lilstormcloud, protocolx27 and so on). Here's a beta screenie.

I figured out the neck vertex IDs from the lisa_DLC_004(which appears to be what the 360 models are based on), figured out the neck vertices for Leifang and transferred the vertex information from one to the other using another little app I wrote.

It is still beta so it still looks Frankensteined, but through this exercise I think I know what needs to be done to fix it now. At least the head isn't "floating" now.

I did notice that a lot of the answers I seek are already in the plugins and scripts that are used to read the models, I will just have to dig deeper into that to get a better understanding. It is not easy due to unfamiliarity with these languages/scripts. You have done enough to get me started.

View attachment 24548
 
Last edited by a moderator:

Users who are viewing this thread

Top


Are you 18 or older?

This website requires you to be 18 years of age or older. Please verify your age to view the content, or click Exit to leave.