Repository navigation
fix(snippets): bind the action slot on the 4.5 LTS channelbag path - #406
Merged
Merged
Conversation
On 4.5 LTS the snippet wrote keys through legacy action.fcurves.new() on a slotless Action. That creates a "Legacy Slot" but never assigns it, so animation_data.action_slot stays None and the object never animates; no error is raised. Measured on 4.5.11: z stayed 0.0 at frame 24 instead of 2.0. The snippet now binds the slot on both versions and builds the 4.5 layer/strip/channelbag path with strip.channelbag(slot, ensure=True), mirroring the skill's get_channelbag_for_slot helper. The skill's legacy section now binds the slot explicitly and says why, and its table and cross-version intro stop recommending bare action.fcurves. Closes #385 Signed-off-by: TMHSDigital <154358121+TMHSDigital@users.noreply.github.com> Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Owner
Author
|
CI evidence on PR head: Blender Smoke ran 5.2.2 LTS (143 passed, 1 skipped, 0 failed) and 4.5.14 LTS (141 passed, 3 skipped, 0 failed); falsifier table 142/136 passed, 0 failed. Merging. |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
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.
Closes #385.
Problem
On 4.5 LTS,
snippets/action-ensure-channelbag-for-slot.pywrote keys through the legacyaction.fcurves.new()on a slotless Action. That creates aLegacy Slotbut never assigns it, soanimation_data.action_slotstaysNone, and the object never animates. No error is raised. The skill recommended the same legacy path.Change
strip.channelbag(slot, ensure=True), mirroring the skill'sget_channelbag_for_slot;action.fcurvessection now bindsaction_slotexplicitly and documents the trap;action.fcurves;Evidence
Proven by live run (
--background --factory-startup; binaries report 5.2.1 LTS and 4.5.11 LTS from.scratch/):add_z_keyframe(f1=0, f24=2) →frame_set(24)zaction_slotbound after the snippetfcurves.new+ explicitaction_slot) → x at f24action.fcurvesremoved in 5.0)Falsification: the pre-fix snippet on 4.5.11 gave z = 0.0 and
action_slot = None, which is the issue's measurement.By inspection only: no CI example covers this snippet directly. The snippet is not in
tests/smoke/catalog.json.🤖 Generated with Claude Code