Pherakki / Blender-Tools-for-DSCS

This repository provides a work-in-progress addon for Blender 2.8 that can (to some degree) import model files from the PC version of Digimon Story: Cyber Sleuth. It provides new options in File > Import and File > Export named "DSCS Model", which should be pointed towards 'name' files in the game data. The file format is mostly understood; but some bugs remain and there are some Blender issues yet to be understood. Also has experimental support for the PS4 version, and for Megido72.
MIT License
21 stars 3 forks source link

will support other game files? (name,skel,geom,anim) #5

Open Kendaman opened 3 years ago

Kendaman commented 3 years ago

Thank you for the wonderful plugin. This works magically for DSCS.

By the way, I know other games that use files such as mvgl and skel, geom. For example, megido 72. This plugin is for Digimon, but are there any plans to support it for other games? If you are interested, I will upload a sample.

Pherakki commented 3 years ago

I don't have any plans to update the plugin for other games at the moment (it's not finished for DSCS yet, after all) but if there are minor changes between the file versions I may add experimental support for other game files. Feel free to upload a sample - I can't promise I'll implement support for it, but I will take a look and see how difficult it would be to extend the tools for it.

Glad you're enjoying the plugin so far. :)

Kendaman commented 3 years ago

thanks reply, Pherakki. Send a sample file to your gmail account. mvgl can be decompressed with the same tools as DSCS.

And you too, thank you for making the plugin! If you are interested in other games and have time, please go. It is kindness, not obligations.

Pherakki commented 3 years ago

For Megido, looks like there's only a few differences in the geometry file to look at, so I'll take a look at this. I got a test case importing correctly already, but I need to put those changes into the code properly. The animation files throw some unpleasant errors though, so that might take a bit longer.

Kendaman commented 3 years ago

Thanks for the check, Pherakki! I'm looking forward to the follow-up report! Do not hurry, proceed at your own pace.

Pherakki commented 2 years ago

Fixed the bug that was in the priority queue before this, now working on implementing this feature. Thanks for being patient. :)

Pherakki commented 2 years ago

The latest commit should implement a loader for Megido72 models. The textures are PVR though, and Blender can't load those by default... and I haven't had any luck finding a GitHub repo that can read them, so you might have to do some research to find something that can convert the textures. I've tested all the models you uploaded, and I can load them all in and they seem to work correctly, so let me know if you find any that don't work - you can also upload some more and I can test a few more if you want.

I'm going to keep the issue open for now because 1) We should check for any issues with other models, 2) The unresolved texture issue, 3) Animations don't load yet.

Kendaman commented 2 years ago

Thank you for updating the plugin! I tried it immediately. I haven't checked all the models yet, but most of the humanoid models can be read. An error will occur for the monster model, so I will send a sample URL from gmail again.

The known problems are that the bones are oriented differently on the left and right, and the UVs on the mesh are disabled. I hope these are fixed in the future!

I'll send you all the mvgl related to the model file later, but I'll continue to test the file reading! Textures have PVR magic headers, so I'll try to convert them with some software!


EDIT https://developer.imaginationtech.com/pvrtextool/ PVR could be loaded with this tool. need to change the extension from .img to *.pvr.

*EDIT2 sorry, I'm wrong. UV seems to be loaded. However, it is very small in the upper left or right corner. Normal UV can be obtained by magnifying about 63% with blender (further vertical inversion)

Pherakki commented 2 years ago

I can now load up all models; there was an additional way of storing vertex normals I hadn't seen in any of the models yet that was missing. Not pushed this change yet though.

The bone orientations are actually correct - you'll see that the animations only work with these orientations (models like chrXXXX_skXXXX will load up animations currently if you import in QA mode, if you want to check this; many DSCS models are also like this).

The UVs are a trickier problem. They seem to use a kind of data compression I'm not familiar with, but I'm throwing more things at it to figure out the compression technique. At least I know that what I'm doing at the moment results in the right shape, just the wrong scale...

Pherakki commented 2 years ago

Well, I semi-figured out the UVs. I got something that works, but I think it's a hack which might destroy some important data... or the data isn't important at all. Latest commit should make all models loadable, according to my test, and also "fix" the UVs. Last thing to go is the animations (which already work for some models, as I noted above).

Pherakki commented 2 years ago

Ok, and I've got that done much quicker than I expected too. The animation files now load for all characters and monsters.

There's still some issues - some models have incorrect rotations and translations in the animations, and some animations don't load due to errors. These issues are also present in the DSCS models, but to a lesser extent. Therefore, I think that any further fixes to the Megido animations do not require any Megido-specific code, and they will be fixed when the DSCS models are also fixed. The annoying thing is that lots of the Megido animations seem to suffer from these errors.

It would be good to hear if you spot anything wrong with the models after these changes - if the models all seem to load fine, I think we can probably close this issue now. I think the animations will get fixed when I find and fix the bugs with the DSCS models. You can also re-open the issue or start new ones if you have further issues, including animation problems if you think further work doesn't fix them :) (I'll also use the Megido data in my regression checks from now on)

Kendaman commented 2 years ago

Great update! thank you very much! I'm sorry I've been a little busy since then and couldn't do many tests. I don't have much time now, but I plan to test it again next week.

Thank you for a really great update!

Pherakki commented 2 years ago

Most of the animation issues have now been fixed. There's still a few issues; weapons tend to be displaced from the characters (and monster 61 has a related issue with its hands), but other than those displacement issues everything that I've manually checked seems to work good.

Pherakki commented 2 years ago

Did you find the time to test out the new features?

Kendaman commented 2 years ago

I'm sorry to have kept you waiting! I've finally finished my work and will check tomorrow and the day after tomorrow! I haven't been able to check it at all since I last contacted you, so I'm really looking forward to a fixes and loading of 3D models!

Kendaman commented 2 years ago

megido m335 Sorry I made you wait! Currently checking. First, UV loading is now accurate! Now we don't have to fix it manually. I'll also test other models and animations!

*Edit The anime will load without any problems! It's very nice. Continue testing.

Just in case for other users testing. The dem000 ***. name file is a 2D animation file, not a 3D model. Just like spine.

Kendaman commented 2 years ago

As is often seen in other models, the positive and negative of the location information may be incorrect on the left and right of the animation. There are not many models that use location for animation, but it seems that such a problem occurs with the model that uses it. The Megido72 model has different bone orientations on the left and right, which may be the cause. If the position is wrong, it seems that the correct information is usually obtained by simply inverting the positive and negative directions. m236 *In the case of the sample, the right arm is below the ground, which can be fixed by changing the Y position from 0.711 to -0.711.