Fix camera animation in Blender 5.x (slotted actions) #95
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
This PR fixes the
AttributeError: 'Action' object has no attribute 'fcurves'error when importing COLMAP cameras with animation in Blender 5.x (see #94).Blender 5 introduced slotted actions and removed
Action.fcurves. The addon still relied on the old API incamera_animation_utility.py, which caused the import to fail.Changes:
Add
_get_action_fcurves(target_obj)helper that:action.fcurveson Blender 4.x (legacy path).action.slots,animation_data.action_slotandstrip.channelbag(slot).fcurves.Add
_find_fcurve(...)helper to abstract fcurve lookup.Update
_remove_quaternion_discontinuitiesand_set_fcurve_interpolationto use the new helpers instead of accessingaction.fcurvesdirectly.This keeps compatibility with Blender 4.x while allowing the COLMAP camera import (with animation and quaternion cleanup) to work correctly in Blender 5.x.