Maniphest T101930

NLA Actions Stash remove doesn't work on overriden linked data
Closed, ResolvedBUG

Assigned To
Bastien Montagne (mont29)
Authored By
Efim Petelin (efimpetelin)
Oct 19 2022, 1:59 PM
Tags
  • BF Blender
  • Core
  • Overrides
Subscribers
Bastien Montagne (mont29)
Efim Petelin (efimpetelin)
Germano Cavalcante (mano-wii)
Scurest (scurest)

Description

System Information
Operating system: Windows-10-10.0.19044-SP0 64 Bits
Graphics card: NVIDIA GeForce RTX 3080/PCIe/SSE2 NVIDIA Corporation 4.5.0 NVIDIA 522.30

Blender Version
Broken: version: 3.3.1, branch: master, commit date: 2022-10-04 18:35, hash: rBb292cfe5a936
Worked: (newest version of Blender that worked as expected)

Short description of error
There is no obvious way to remove Action Stash track in NLA Editor for linked armature/object.

Exact steps for others to reproduce the error

  • Download attached files and open ActionStash_on_linked_data.blend or
    • Open a new Blender instance
    • Optionally delete all objects
    • Link the objects from to_be_linked.blend
    • create library override on the Armature to be able animate it.
    • Go to Animation workspace
    • Animate a bone (rotation in 2 frames is enough)
    • Change the Dope Sheet mode to Action Editor
    • press the "Stash" button
    • Go to Nonlinear Animation editor
  • Try deleting the [Action Stash]

You cannot delete this track or stripe in it with conventional way.
Only with python:

D.objects['My_Rig'].animation_data.nla_tracks[0].name
'[Action Stash]'

D.objects['My_Rig'].animation_data.nla_tracks.remove(D.objects['My_Rig'].animation_data.nla_tracks[0])

Example files here:

Revisions and Commits

rB Blender

Related Objects

Mentioned Here
rBc0bd240ad0a1: LibOverride: Add initial support for adding new NLA tracks.

Event Timeline

Efim Petelin (efimpetelin) created this task.Oct 19 2022, 1:59 PM
Scurest (scurest) added a subscriber: Scurest (scurest).Oct 19 2022, 5:07 PM

Click on the track in the NLA editor and pick Edit > Delete Track.

Efim Petelin (efimpetelin) added a comment.Oct 19 2022, 8:21 PM
In T101930#1434462, @Scurest (scurest) wrote:

Click on the track in the NLA editor and pick Edit > Delete Track.

My bad: it doesn't work for linked armatures (and objects may be), only with python console.

Scurest (scurest) added a comment.Oct 19 2022, 8:30 PM

Can you update the exact steps then?

Efim Petelin (efimpetelin) renamed this task from NLA Actions Stash remove doesn't work to NLA Actions Stash remove doesn't work on overriden linked data.Oct 19 2022, 8:41 PM
Efim Petelin (efimpetelin) updated the task description.
Germano Cavalcante (mano-wii) updated the task description.Oct 20 2022, 3:51 PM
Germano Cavalcante (mano-wii) changed the task status from Needs Triage to Confirmed.Oct 20 2022, 3:53 PM
Germano Cavalcante (mano-wii) changed the subtype of this task from "Report" to "Bug".
Germano Cavalcante (mano-wii) added projects: Core, Overrides.
Germano Cavalcante (mano-wii) added subscribers: Bastien Montagne (mont29), Germano Cavalcante (mano-wii).

I can confirm the problem.
The NLA_OT_tracks_delete operator ignores the track if BKE_nlatrack_is_nonlocal_in_liboverride(ale->id, nlt).

This code was added in rBc0bd240ad0a1: LibOverride: Add initial support for adding new NLA tracks. (cc @Bastien Montagne (mont29))

Bastien Montagne (mont29) closed this task as Resolved by committing rB9f5602197512: Fix T101930: NLA Actions Stash remove doesn't work on overriden linked data..Oct 22 2022, 5:25 PM
Bastien Montagne (mont29) claimed this task.
Bastien Montagne (mont29) added a commit: rB9f5602197512: Fix T101930: NLA Actions Stash remove doesn't work on overriden linked data..
Bastien Montagne (mont29) added a comment.Oct 22 2022, 5:27 PM

Note that the fix cannot address the issue with existing strips, the required data was completely erased by the stashing code... New stashes will behave as expected though.