RenolY2 / SuperBMD

A library to import and export various 3D model formats into the Binary Model (BMD) format. (Nintendo GC/Wii)
37 stars 10 forks source link

Won't convert models with armatures #38

Open aconeishone opened 2 years ago

aconeishone commented 2 years ago

Says this whenever I try to convert a model with an armature

Searching for the Skeleton RootFound skeleton root: kosinull Found skeleton root: rhandjnt

Unhandled Exception: System.Exception: Cannot convert model: Found more than one root bone: kosinull, rhandjnt at SuperBMDLib.BMD.JNT1.GetRootBone(Scene scene) at SuperBMDLib.Model..ctor(Scene scene, Arguments args, List1 mat_presets, String additionalTexPath) at SuperBMDLib.Model.Load(Arguments args, List1 mat_presets, String additionalTexPath) at SuperBMDLib.Program.Main(String[] args)

Which makes no sense because it also fails to so when using a model directly from pikmin 2 itself

RenolY2 commented 2 years ago

I released a new version that should fix this: https://github.com/RenolY2/SuperBMD/releases/tag/v2.4.0.1

aconeishone commented 2 years ago

I released a new version that should fix this: https://github.com/RenolY2/SuperBMD/releases/tag/v2.4.0.1

Thanks, but now it gives me this error instead


Preparing to convert oildumple from .FBX to .BMD

Sorting Meshes.......√

Searching for the Skeleton Rootago
body
head
regL_momo
regL_sune
regR_momo
regR_sune
Found skeleton root candidate: regR_momo
Found skeleton root candidate: regL_momo

Unhandled Exception: System.Exception: Cannot convert model: Found more than one root bone: regR_momo, regL_momo
   at SuperBMDLib.BMD.JNT1.GetRootBone(Scene scene)
   at SuperBMDLib.Model..ctor(Scene scene, Arguments args, List`1 mat_presets, String additionalTexPath)
   at SuperBMDLib.Model.Load(Arguments args, List`1 mat_presets, String additionalTexPath)
   at SuperBMDLib.Program.Main(String[] args)
RenolY2 commented 2 years ago

Can you send me that fbx?

aconeishone commented 2 years ago

Can you send me that fbx?

Okay, how do you want me to send it to you? Also I got the fbx from converting pikmin 2's models into glb using finmodelutilites, then I modified the texture in blender and exported it as an fbx

RenolY2 commented 2 years ago

You can compress it into a zip file and then upload the zip in a comment here.

aconeishone commented 2 years ago

New folder (4).zip alright here it is

RenolY2 commented 2 years ago

While I did find a way to fix the particular error, after some more testing I realized the skeleton root detection will always be flawed because Assimp doesn't give me a complete list of the model's bones so I removed the auto detection now. https://github.com/RenolY2/SuperBMD/releases/tag/v2.4.1.0

aconeishone commented 2 years ago

ok nice