Hi there! You are currently browsing as a guest. Why not create an account? Then you get less ads, can thank creators, post feedback, keep a list of your favourites, and more!
Quick Reply
Search this Thread
Instructor
Original Poster
#1 Old 29th Jun 2010 at 1:08 PM
Default Bone Assignments change on export
I'm working on a mesh. It has four separate groups. Different vertices of different groups are assigned to different bones.

Then I export the mesh using Wes' object plugins. When I noticed the animations were off in the game I imported the mesh again (the one I exported). And I noticed that the bone assignments had changed.
I tried exporting a couple of times with my original bone assignments and every time I checked, the bone assignments changed upon export.

Is there a way to keep the bone assignments?

This space intentionally left blank...
Advertisement
Alchemist
#2 Old 29th Jun 2010 at 1:21 PM
What clone are you using?
Instructor
Original Poster
#3 Old 29th Jun 2010 at 1:22 PM
I'm using the Time Machine as a clone (I'm working on a new Time Machine mesh).

This space intentionally left blank...
Alchemist
#4 Old 29th Jun 2010 at 5:31 PM
Did you change the joint order in your mesh?

The ObjTool was designed to replicate the original object structure, in order to allow for easier replication of simple mods (unlike TSRW, which was designed to make things from scratch).

Bone assignments are indices to a joint list, the first joint is 0, the next 1, and so on. I suspect that if you did rearrange the joint list order in MilkShape, the assignment indices are now out-of-sync with the original joint list order. I don't think I put anything in the compiler that would reindex the assignments during recompilation.

If you like to say what you think, be sure you know which to do first.
Instructor
Original Poster
#5 Old 29th Jun 2010 at 5:37 PM
Quote: Originally posted by WesHowe
Did you change the joint order in your mesh?

Not that I'm aware of... I didn't touch the joints as far as I know. The problem seems to be that when in one group I assign vertices to different joints. Like vertice A would be assigned to Joint B, and Vertice B to Joint C. But when I export it, vertice A and B would suddenly both be assigned to Joint B.

Also, the reassigning happens when exporting from Milkshape. If I export to sa3c from Milkshape and then straight back into Milkshape the joints are reassigned.

This space intentionally left blank...
Alchemist
#6 Old 29th Jun 2010 at 8:44 PM
Quote: Originally posted by Nukael
Also, the reassigning happens when exporting from Milkshape. If I export to sa3c from Milkshape and then straight back into Milkshape the joints are reassigned.


I would still bet that you have a difference in the joint order between the original mesh import and what you are working on. Something like A C B instead of A B C. The skeletal structure is retrieved from the old .s3ascg file before it is renamed to .bak and a new one is created.

If you like to say what you think, be sure you know which to do first.
Instructor
Original Poster
#7 Old 29th Jun 2010 at 10:30 PM
Quote: Originally posted by WesHowe
I would still bet that you have a difference in the joint order between the original mesh import and what you are working on. Something like A C B instead of A B C. The skeletal structure is retrieved from the old .s3ascg file before it is renamed to .bak and a new one is created.

Thanks for the feedback. So I redid my whole mesh and the assignments, taking care not to touch the joint order. But the problem persists. I attached my Milkshape file and the original LOD file and the exported s3asc file, the one with the wrong joint assignments. The bones you want to check are:
0x01C51636 (should be the left front door)
0xE75ADF45 (should be the right front door)
0xCD68F001 (should be the main body, but when exported, the two front doors are assigned to this joint as well)

To be honest... I don't even know how I would go about changing the joint order in Milkshape.
Attached files:
File Type: rar  TardisHighPoly02GroupsAssigned.rar (136.0 KB, 5 downloads) - View custom content

This space intentionally left blank...
Alchemist
#8 Old 29th Jun 2010 at 11:31 PM
Is the LOD file you sent the original extracted file or one that you have already worked on?

While it is not anything you did (I don't think), the issue is related to the joint order in the lod file. The root joint in group03 (the 4th of 5) is at index 3, in the rest of the files (that have joints) it is at index 0. This effectively moves 0xCD68F001 between 0x01C51636 and 0xE75ADF45... there are other joints on the list, but following our earlier analogies, the list (in the .s3ascg file) was changed from A,B,C to B,A,C.

I don't know when I might look at this next.

By the way, there is no relevant information in any of the *.s3asc files (they are always 0 bytes in size). The mesh data is actually in the (one or more) *.s3ascg files that are also created. The *.s3ascg file itself is just used for the filename, which the importer chops up and reformats to find the rest of the related files (one *.s3ascg file per group). In this case, there is one *.s3asc file and five companion *.s3ascg files... if you want to copy them somewhere else for some reason (like a backup), always copy the whole set.

If you like to say what you think, be sure you know which to do first.
Instructor
Original Poster
#9 Old 30th Jun 2010 at 12:19 AM Last edited by Nukael : 30th Jun 2010 at 10:47 AM.
The LOD is the original extracted one, so it's unaltered. Oh well, I'm glad you found out what is doing it. And at the same time I'm now totally stuck with this particular object...

I've been experimenting with the TSR workshop plugins, and while the plugins keep the proper assignments, TSRW isn't cut out to make an object as complex as this.

Thanks also for the info on the *.s3asc files, good to know!

[Edit] So I opened up the *.s3ascg files in notepad and edited the joint order in the group03 file, so that the root joint was indexed at 0. Did the whole reassigning in Milkshape and exported but no go... the joints still keep reassigning upon export.

This space intentionally left blank...
Back to top