Welcome to mirror list, hosted at ThFree Co, Russian Federation.

git.blender.org/blender.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorBrad Clark <RiggingDojo>2022-02-10 13:01:47 +0300
committerSybren A. Stüvel <sybren@blender.org>2022-02-10 13:08:00 +0300
commit26740aaf516b8726d198ac43f45071fcc923fb5b (patch)
treecca6a802282ac83ce8d0d296128b27c5519df902 /source/blender/editors/space_nla
parent9e9355190c0c7ae61a752602274637f91c4d8bf3 (diff)
Fix T84486: NLA, disable "Sync Length" after split
Turn off "Sync Length" when splitting an NLA strip. The NLA Strip-Action Clip has a setting called "Sync Length" that is on by default and helps to update the length of the clip to the current actions keyframes so the strip shows the entire actions stored animation. When you split one of these strip-action clips in the NLA to trim it shorter or to move it somewhere else in the NLA tracks to blend or work with, the "Sync Length" setting stays checked on. You can have many strips in the NLA that all look to the same action, if you split one strip , you now have two strips showing or linked to the same action. To see or edit keyframes on a strip, you enter tweak mode. When you exit tweak mode, if "Sync Length" is active on the strip-action clip settings, the strip length is changed/reset to match the action keys. When you have many clips, this causes all of them to evaluate and update no matter where they are in the NLA. This destroys/undoes all the user work to trim down and place the clips in the NLA. **Description of the proposed solution:** This patch/change would turn off, the "Sync Length" setting when the split tool was used on a strip/action clip to help protect the users choice to trim and keep the clip that length. It doesn't change the ability to turn the setting back on or off, it just makes sure that the user doesn't accidentally or unknowingly loose work. The same process happens when an action is created that has a "manual range" set that is different than the length of the actions start-end keyframes. It makes sense to do the same thing for the split tool. **Alternative solutions:** While the user could know this and turn off this setting by hand, it is easy to forget and or the user might think that it only happened to the one clip they were editing and not realize it happened to all the trimmed versions, changing the users choice without the user knowing it happened. **Limitations of the proposed solution:** It only fixes the split tool, if another tool was created and some how impacted the clip length we would need to have that tool also take the sync length into account. Reviewed By: sybren Maniphest Tasks: T84486 Differential Revision: https://developer.blender.org/D10168
Diffstat (limited to 'source/blender/editors/space_nla')
-rw-r--r--source/blender/editors/space_nla/nla_edit.c7
1 files changed, 5 insertions, 2 deletions
diff --git a/source/blender/editors/space_nla/nla_edit.c b/source/blender/editors/space_nla/nla_edit.c
index 1376dade659..28041c0389f 100644
--- a/source/blender/editors/space_nla/nla_edit.c
+++ b/source/blender/editors/space_nla/nla_edit.c
@@ -1397,8 +1397,11 @@ static void nlaedit_split_strip_actclip(
nstrip->actstart = splitaframe;
}
- /* clear the active flag from the copy */
- nstrip->flag &= ~NLASTRIP_FLAG_ACTIVE;
+ /* Make sure Sync Length is off. With that setting on, entering and exiting tweak mode would
+ * effectively undo the split, because both the old and the new strip will be at the length of
+ * the Action again. */
+ strip->flag &= ~NLASTRIP_FLAG_SYNC_LENGTH;
+ nstrip->flag &= ~(NLASTRIP_FLAG_SYNC_LENGTH | NLASTRIP_FLAG_ACTIVE);
/* auto-name the new strip */
BKE_nlastrip_validate_name(adt, nstrip);