PredatorCZ / RevilMax

Revil plugin for 3ds Max
GNU General Public License v3.0
49 stars 15 forks source link

Bones with _sp appended don't work correctly and won't export to fbx/other formats #15

Open idaocracy opened 3 years ago

idaocracy commented 3 years ago

Disclaimer: I work with Ace Attorney models which may be too niche for your consideration, but I thought it would be worth bringing up.

I am a longtime MT framework tool user and as an animator, the ability to load all animations with this tool would be extremely useful. However, when I load animations from a lmt file, in most cases, a few number of bones get cloned and appended with _sp. When this happens to say, the arms, the mesh starts curving around the bone instead of attaching to the bone. And when the results are exported to fbx and imported into blender, the animations won't work and the log returns a number of errors. When I view the file in 3D Viewer, it appears as if their arms are cut off/shrunk into the body. The few models that don't have _sp appended to their bones, on the other hand, export just fine.

I am curious as to what is causing this? I've never had any bigger issue using MT Framework tool with Ace Attorney models, in fact it works marvellously considering it's not part of the focus. If you are not interested in this issue then that is fine, but is there at least a manual way to fix this issue?

PredatorCZ commented 3 years ago

What errors are you getting? Are rebuilding skeleton? Do you have screenshots? etc...

idaocracy commented 3 years ago

When I import the mesh via Mt Framework Tool, the rig looks like this:

image

Normally I load an animation via MT Framework Tool and it will work fine.

When I import the animation via File -> Import -> chr010.lmt, the MaxScript Listener logs these two messages followed by ticks (Two of which end with loopFrame: 20800)

AnimationData Class not found, creating limitations.
Sequencer not found, dumping animation ranges (in tick units)

This is what the rig looks like after the animations have been imported.

image

When browsing the timeline, some animations will look fine but some will have the arm mesh curve around the bones as seen in the screenshot here:
image

When I export to fbx, there will be no errors (but it is still broken) However, if I export to DAE it returns errors that apply to _sp mostly:

While reading or writing a file the following notifications have been raised.
    -Warning: 'Null' type not supported by COLLADA. Only the transform data of node: 'bone255' will be saved.
    -Warning: 'Null' type not supported by COLLADA. Only the transform data of node: 'bone10_sp' will be saved.
    -Warning: 'Null' type not supported by COLLADA. Only the transform data of node: 'bone11_sp' will be saved.
    -Warning: 'Null' type not supported by COLLADA. Only the transform data of node: 'bone12_sp' will be saved.
    -Warning: 'Null' type not supported by COLLADA. Only the transform data of node: 'bone13_sp' will be saved.
    -Warning: 'Null' type not supported by COLLADA. Only the transform data of node: 'bone14_sp' will be saved.
    -Warning: 'Null' type not supported by COLLADA. Only the transform data of node: 'bone15_sp' will be saved.
    -Warning: 'Null' type not supported by COLLADA. Only the transform data of node: 'bone16_sp' will be saved.
    -Warning: 'Null' type not supported by COLLADA. Only the transform data of node: 'bone17_sp' will be saved.
    -Warning: 'Null' type not supported by COLLADA. Only the transform data of node: 'bone18_sp' will be saved.
    -Warning: 'Null' type not supported by COLLADA. Only the transform data of node: 'bone19_sp' will be saved.
    -Warning: 'Null' type not supported by COLLADA. Only the transform data of node: 'bone23_sp' will be saved.
    -Warning: 'Null' type not supported by COLLADA. Only the transform data of node: 'bone24_sp' will be saved.
    -Warning: 'Null' type not supported by COLLADA. Only the transform data of node: 'bone25_sp' will be saved.
    -Warning: 'Null' type not supported by COLLADA. Only the transform data of node: 'bone26_sp' will be saved.
    -Warning: 'Null' type not supported by COLLADA. Only the transform data of node: 'bone27_sp' will be saved.
    -Warning: 'Null' type not supported by COLLADA. Only the transform data of node: 'bone28_sp' will be saved.
    -Warning: 'Null' type not supported by COLLADA. Only the transform data of node: 'bone29_sp' will be saved.
    -Warning: 'Null' type not supported by COLLADA. Only the transform data of node: 'bone30_sp' will be saved.
    -Warning: 'Null' type not supported by COLLADA. Only the transform data of node: 'bone31_sp' will be saved.
    -Warning: 'Null' type not supported by COLLADA. Only the transform data of node: 'bone46' will be saved.
PredatorCZ commented 3 years ago

Seems like a mesh problem, rather than animation. _sp bones are used for scale animations only. (They act like support bones) Not sure about Collada, but FBX has a setting called Convert Deforming Dummies to Bones, you might want to check that.

idaocracy commented 3 years ago

It's on by default.

Like I said, I've never had an issue loading and exporting animations via MT Framework Tool. It doesn't change the bone255 hierarchy when loading any of the animations, which is presumably why it works.

However, loading a singular or all animations using Revilmax changes the bone255 hierarchy, which causes problems. Compare bones 7 through 16 on the pre-Revilmax and post-Revilmax rigs. Bone10 is the right shoulder and Bone11 is the right elbow and post-Revilmax the parent-child relationship is different. I still don't know what these _sp bones are except they always issues problems to the rig when they are present.
image

image