-
Notifications
You must be signed in to change notification settings - Fork 323
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
export_optimize_animation_size
option removes keyframes with identity transform
#2430
Comments
Hello, Can you please provide a test.blend file with all the settings used at export (by using |
Hey, thank you for the response! Yes, the setting Here's a zip file containing a working and broken example minimized from one of my game's assets: Both files have two actions, Both animations have one bone keyed, named In In When exporting My game plays back the animations from this blend file layered on top of each other. I tried exporting both files to Thanks for taking the time to look at this! |
This is not the purpose of this option. This option is used to keep only first and last keyframes when you have a serie of identical keyframes. Exporting or not intentionally keyframes is the purpose of Here is the combination logic of For all bones of the rig:
|
Thank you for the write-up about the options in the exporter! I worked with a member of my team and I was able to find the root cause of the original issue on our end. The glTF exporter uses the "LINEAR" interpolation mode when exporting keyframes that are different, but uses the "STEP" interpolation mode when all keyframes are the same. Our engine ignores channels with the "STEP" interpolation mode. I did this originally because of a different behavior that seems like a bug. The test case files I linked have only one bone animated (
We've been diving into the code to try to figure out why that is the case. How can I configure the exporter to not include channels for bones that are not keyframed? |
I see what you mean about
I think these two sentences contradict each other about the behavior of the property. The first sentence makes me believe that having the property set to True will cause all bones to always be keyframed. The second sentence says that when the property is False, all bones will always be keyframed. The actual behavior looks to be the first sentence. I thought I needed to have Are you open to accepting PRs to improve documentation on this configuration? I think I understand what these properties are for now and I'd love to help make the documentation reflect that. |
Hello, |
Is your feature request related to a problem? Please describe.
I use the
export_optimize_animation_size
setting in a game character pipeline. We use this so that only the bones that we intentionally keyframe have animation data exported.However, turning on this setting also seems to delete channels that are keyframed with no extra transform. This makes it so that when I layer the exported animations in-game, those bones get moved by the animation from the lower layer instead of being set to the identity transform.
The keyframes look like this:
As a workaround, I can rotate those bones a very slight amount (like 0.1 degrees) and they'll be exported, but now my animation is slightly off.
Describe the solution you'd like
I'd like for the exporter to either keep those keyframes, or as a backup, for there to be another option introduced to not delete these keyframes. I created them on purpose, I don't want them deleted!
Describe alternatives you've considered
I could implement animation masking in our game engine and write a Blender add-on to let artists mask bones out. Then, we could turn off this setting in the glTF exporter and just ignore the extra fields.
The text was updated successfully, but these errors were encountered: