OpenMLTD / MLTDTools

Tools for THE iDOLM@STER Million Live! Theater Days (MLTD/MiriShita/ミリシタ) / 偶像大师百万演唱会剧场时光工具箱
BSD 3-Clause Clear License
142 stars 17 forks source link

All MillionDance motions&(most) bones are bugged from my exe #30

Closed saramew closed 4 years ago

saramew commented 4 years ago

I've successfully extracted assets and created models (for the most part), and the models can run motions ripped by other people fine most of the time.

I have tried many different settings, and they all seem to come out the same way. Somehow after applying a motion converted by my exe, my models end up like this: 1 This has been my biggest issue that I can't find some sort of work-around for. I'm assuming it has something to do with the motion file renaming and resizing the bones- I've tried default settings and some other settings as well and I haven't seen much of a difference.

My other issue I'm having is some (seemingly random number) of the models come out having double bones, with one being taller... 2 I am not sure what causes this. Closing and re-opening sometimes stops this from happening, but I don't notice until after converting. The models with double bones seem to work normally as well when a motion is applied. Double bone Matsuri here can run another user-made Datte Princess, also from MLTDTools. Unsure if they did any extra steps to the motion files.

I've also noticed adjusting their height via 'Consider Idol Height' seems to bug them out pretty badly in my experience. My Konomi's bones are way out of bounds, so any motion applied to this pmx warps. 3 I've worked around the mismatched bones by exporting all to the default 1.60m then editing in pmx editor, so it's not too bad, but I can't imagine the 'Consider Idol Height' is working properly in my case. The PMX Editor models I scaled also work with the other user MLTDTools conversions.

I'm positive all of this is my error, so I apologize! I've spent a few hours trying to work around these issues and figured I'd ask here what I'm doing wrong after not being able to figure it out on my own.

Sozuke commented 4 years ago

for some reason in mmd the dances and the camera do not work as they should, you can repair the dance (assuming you know how to edit motions in mmd) using the button "bone frame multiply position-angle"

1, select all the bones of the model except the center and groove

2 using the range select option select all the frames of those bones

3 go to : edit-bone frame multiply position-angle

and multiply the position to 0 (leave the angle the same)

saramew commented 4 years ago

for some reason in mmd the dances and the camera do not work as they should, you can repair the dance (assuming you know how to edit motions in mmd) using the button "bone frame multiply position-angle"

1, select all the bones of the model except the center and groove

2 using the range select option select all the frames of those bones

3 go to : edit-bone frame multiply position-angle

and multiply the position to 0 (leave the angle the same)

Thank you! This helped! However, the motions are extremely slowed down when I'm using MMM. The speed LOOKS normal in MMD aside from the horror movie warping. Do you think it's because I exported as 60 fps?

hozuki commented 4 years ago

@Sozuke Thank you for the solution! Now I know why the strange transforms occur. In VMD, I compute the translation and rotation for each bone for each frame, and write the values as-is. Most of the bones in PMX are marked as "rotation only" and this flag is handled by MMM. However MMD seems to ignore this flag, so no matter the bone can translate (& rotate) or not, the translation and rotation in that frame will always be applied. (Will MMD fix that?) I've added a new commit to solve this problem. Now the motion can be used in MMD.

image

hozuki commented 4 years ago

@saramew

First, double skeletons. The models with double skeletons can play the motions from MLTD normally, because some bones are dummies (also reflected in their avatar and GameObject hierarchy, look for "ANIM_NAME" node). So they don't have weights on vertices, and they are not controlled by the motions. I'm not sure what the role is; maybe it is a mistake made by the modellers.

Then the character scaling problem. I've never seen this before... the bones and mesh usually match. I'll test this model later (should be sr073).

And yes, MMM treats VMD motions as 30 fps (because it's the implicit, standard frame rate for MMD systems). So you need to: 1) set animation frame rate to 60 (in Settings-Editor-Timeline), and 2) after importing, "stick" the frames together. I wrote a simple plugin for this purpose.

hozuki commented 4 years ago

I tested sr073 and the scaling is correct.

image image

Left: sr073_039kon with default settings (height = 160cm) Right: sr073_039kon with height = 143cm

saramew commented 4 years ago

I tested sr073 and the scaling is correct.

image image

Left: sr073_039kon with default settings (height = 160cm) Right: sr073_039kon with height = 143cm

Maybe there really is something funky with my .exe, because my Konomi still contues to have the 160cm bones in the latest release. However, I tried downloading the CI auto build and the issue is fixed within that exe. I'll take it as a win! Huge thanks to you and Sozuke. I'm sure I'm going to use your tools (especially MillionDance) religiously, as I do dance covers. :)

hozuki commented 4 years ago

All right, I'll issue a new release asap to avoid this confusion...

hozuki commented 4 years ago

A new release v0.3.0 was released some days ago. It still has some bugs but the ones mentioned in this issue were fixed.