Dope Sheet standard mode does not show Grease Pencil keyframes #97477

Closed
opened 2022-04-20 17:15:47 +02:00 by Matias Mendiola · 38 comments

System Information
Operating system: Windows-10-10.0.19041-SP0 64 Bits
Graphics card: GeForce GTX 1070/PCIe/SSE2 NVIDIA Corporation 4.5.0 NVIDIA 460.89

Blender Version
Broken: version: 3.1.2, branch: master, commit date: 2022-03-31 17:40, hash: cc66d1020c
Worked: N/A

Short description of error
even though the Dope Sheet Filter options show the Grease Pencil option, the Dope Sheet does not show any Grese Pencil keyframe in the standard mode.

gpencil_dopesheet_bug.jpg

Exact steps for others to reproduce the error

  • Add a Grease Pencil to the scene.
  • Draw some keyframes.
  • Open the Dope Sheet editor in the standrad mode and see that no keyframe is showing up even though the Grease Pencil filter is on.
**System Information** Operating system: Windows-10-10.0.19041-SP0 64 Bits Graphics card: GeForce GTX 1070/PCIe/SSE2 NVIDIA Corporation 4.5.0 NVIDIA 460.89 **Blender Version** Broken: version: 3.1.2, branch: master, commit date: 2022-03-31 17:40, hash: `cc66d1020c` Worked: N/A **Short description of error** even though the Dope Sheet Filter options show the Grease Pencil option, the Dope Sheet does not show any Grese Pencil keyframe in the standard mode. ![gpencil_dopesheet_bug.jpg](https://archive.blender.org/developer/F13012517/gpencil_dopesheet_bug.jpg) **Exact steps for others to reproduce the error** - Add a Grease Pencil to the scene. - Draw some keyframes. - Open the Dope Sheet editor in the standrad mode and see that no keyframe is showing up even though the Grease Pencil filter is on.
Author
Member

Added subscriber: @mendio

Added subscriber: @mendio

Added subscriber: @mano-wii

Added subscriber: @mano-wii

Changed status from 'Needs Triage' to: 'Needs Developer To Reproduce'

Changed status from 'Needs Triage' to: 'Needs Developer To Reproduce'

Not sure if it's a bug, although I would expect the Dope Sheet mode to display all sorts of keyframes. (dope-sheet-modes )
I think it's something for the #animation_rigging or #grease_pencil team to clarify.

Not sure if it's a bug, although I would expect the `Dope Sheet` mode to display all sorts of keyframes. ([dope-sheet-modes ](https://docs.blender.org/manual/en/3.2/editors/dope_sheet/introduction.html#dope-sheet-modes)) I think it's something for the #animation_rigging or #grease_pencil team to clarify.

Added subscriber: @antoniov

Added subscriber: @antoniov

We have opened this task to annotate this request that is not 100% a bug, but a missing important feature.

We have opened this task to annotate this request that is not 100% a bug, but a missing important feature.

Changed status from 'Needs Developer To Reproduce' to: 'Confirmed'

Changed status from 'Needs Developer To Reproduce' to: 'Confirmed'

Added subscriber: @pablovazquez

Added subscriber: @pablovazquez

Removed subscribers: @antoniov, @mendio

Removed subscribers: @antoniov, @mendio

Added subscriber: @frogstomp-4

Added subscriber: @frogstomp-4

There is also an addon addressing this, but last time I checked it was not mature enough, I'm checking with the author on the progress of it.
Addon: https://gitlab.com/andarta.pictures/blender/gp-dopesheets

Point being: depends on scope of the task of course, given the limited core team... maybe it is best to be left to community efforts that are already on the way.

There is also an addon addressing this, but last time I checked it was not mature enough, I'm checking with the author on the progress of it. Addon: https://gitlab.com/andarta.pictures/blender/gp-dopesheets Point being: depends on scope of the task of course, given the limited core team... maybe it is best to be left to community efforts that are already on the way.
Member

Added subscriber: @antoniov

Added subscriber: @antoniov
Member

In #97477#1344437, @antoniov wrote:
We have opened this task to annotate this request that is not 100% a bug

I would consider this a bug. The filter has no effect, as far as I can tell.

So either the filter should be removed from the menu (hopefully in favor of introducing a way to show all types of keyframes from other modes too, such as Mask or Cache). Or it should at least show Grease Pencil keyframes as expected.

> In #97477#1344437, @antoniov wrote: > We have opened this task to annotate this request that is not 100% a bug I would consider this a bug. The filter has no effect, as far as I can tell. So either the filter should be removed from the menu (hopefully in favor of introducing a way to show all types of keyframes from other modes too, such as Mask or Cache). Or it should at least show Grease Pencil keyframes as expected.
Author
Member

Totally agree with @pablovazquez , If the Grease Pencil filter button is not working as expected we should consider this a bug

Totally agree with @pablovazquez , If the Grease Pencil filter button is not working as expected we should consider this a bug

Added subscriber: @amelief

Added subscriber: @amelief

FYI I'm starting to try and tackle this issue, unless someone else is working on it already ?

FYI I'm starting to try and tackle this issue, unless someone else is working on it already ?
Member

Added subscriber: @nrupsis

Added subscriber: @nrupsis
Member

@amelief generally if someone is working on it, they would assign themselves to the task.

If you want to work on / claim this task, I would go ahead and assign it to yourself.

@amelief *generally* if someone is working on it, they would assign themselves to the task. If you want to work on / claim this task, I would go ahead and assign it to yourself.
Amélie Fondevilla was assigned by Matias Mendiola 2022-05-10 18:55:50 +02:00

I've been going through the code, and my understanding of it is the following. So far, I've been able to add the gplayers keyframes in the dopesheet, BUT it fails in most operations, such as translating a keyframe or switching to graph mode. I believe this is because every channel in the dopesheet is assumed to have a F-curve (while GPlayers dont).

I found that many operations act differently whether the context is ANIMCONT_DOPESHEET or ANIMCONT_GPENCIL. Maybe the solution is to have different behavior within the channels of the ANIMCONT_DOPESHEETto filter channels that dont have F-curves. It seems like it was already discussed as I see some commented code mentioning an ANIMFILTER_CURVESONLY (e.g. transform_convert_action.c:779) which could be used to filter such channel, but it does not seem to be implemented.

My main question is, in order to get this bug fixed, should I go on with this and try to implement this filter, or would someone be against going in that direction or advice otherwise ?

I've been going through the code, and my understanding of it is the following. So far, I've been able to add the gplayers keyframes in the dopesheet, BUT it fails in most operations, such as translating a keyframe or switching to graph mode. I believe this is because every channel in the dopesheet is assumed to have a F-curve (while GPlayers dont). I found that many operations act differently whether the context is `ANIMCONT_DOPESHEET` or `ANIMCONT_GPENCIL`. Maybe the solution is to have different behavior within the channels of the `ANIMCONT_DOPESHEET`to filter channels that dont have F-curves. It seems like it was already discussed as I see some commented code mentioning an `ANIMFILTER_CURVESONLY` (e.g. transform_convert_action.c:779) which could be used to filter such channel, but it does not seem to be implemented. My main question is, in order to get this bug fixed, should I go on with this and try to implement this filter, or would someone be against going in that direction or advice otherwise ?

Added subscriber: @dr.sybren

Added subscriber: @dr.sybren

@dr.sybren Could you help to @amelief in the problem she has.

@dr.sybren Could you help to @amelief in the problem she has.
Member

Added subscriber: @filedescriptor

Added subscriber: @filedescriptor

Added subscriber: @yann-lty

Added subscriber: @yann-lty

In #97477#1357928, @amelief wrote:
Maybe the solution is to have different behavior within the channels of the ANIMCONT_DOPESHEETto filter channels that dont have F-curves. It seems like it was already discussed as I see some commented code mentioning an ANIMFILTER_CURVESONLY (e.g. transform_convert_action.c:779) which could be used to filter such channel, but it does not seem to be implemented.

My main question is, in order to get this bug fixed, should I go on with this and try to implement this filter

Please do! Maybe you can "rename" it (between quotes because it doesn't even exist yet) to ANIMFILTER_FCURVESONLY, that way it's clear that it's about the FCurves (and not curve objects).

> In #97477#1357928, @amelief wrote: > Maybe the solution is to have different behavior within the channels of the `ANIMCONT_DOPESHEET`to filter channels that dont have F-curves. It seems like it was already discussed as I see some commented code mentioning an `ANIMFILTER_CURVESONLY` (e.g. transform_convert_action.c:779) which could be used to filter such channel, but it does not seem to be implemented. > > My main question is, in order to get this bug fixed, should I go on with this and try to implement this filter Please do! Maybe you can "rename" it (between quotes because it doesn't even exist yet) to `ANIMFILTER_FCURVESONLY`, that way it's clear that it's about the FCurves (and not curve objects).

Still needs some work, but here is a first try to solve this issue.

This is in the description, but here are 3 specific things I don't know how to do :

  • change icon in the layers group channel : for now it is the pencil icon, but it may be more logical to have the layers icon here

  • update keyframe display when adding a keyframe in autokeying mode : works in the GP dopesheet, but not in the main one for gplayers. I've looked all over the code, and did not find where to add a notifier or such

  • cleaning function : i've spotted at least one function that needs to be changed to properly clean memory (transform_convert_action.c:858), but I don't exactly know how to look for other ones and fix them.

Still needs some work, but here is a first try to solve this issue. This is in the description, but here are 3 specific things I don't know how to do : - change icon in the layers group channel : for now it is the pencil icon, but it may be more logical to have the layers icon here - update keyframe display when adding a keyframe in autokeying mode : works in the GP dopesheet, but not in the main one for gplayers. I've looked all over the code, and did not find where to add a notifier or such - cleaning function : i've spotted at least one function that needs to be changed to properly clean memory (transform_convert_action.c:858), but I don't exactly know how to look for other ones and fix them.

@amelief thanks for working on this, just tried, loved it already!

@amelief thanks for working on this, just tried, loved it already!

@amelief IIRC all icons definitions are done in anim_channels_defines.c

@amelief IIRC all icons definitions are done in `anim_channels_defines.c`

In #97477#1362791, @antoniov wrote:
@amelief IIRC all icons definitions are done in anim_channels_defines.c

Thanks, I found it !

> In #97477#1362791, @antoniov wrote: > @amelief IIRC all icons definitions are done in `anim_channels_defines.c` Thanks, I found it !

I worked on the selection-in-dopesheet-summary issue, and it seems to imply some changes in the current code, I kind of need advice and/or approval from both grease pencil and animation team on this.

Since it is a bit complex to explain, I started a devtalk on it, idk whether it's good pratice or not. If not I can always remove it to have the discussion here. Anyways, it's there : https://devtalk.blender.org/t/gpencil-layers-integration-in-main-dopesheet-selection-issue/24527

I worked on the selection-in-dopesheet-summary issue, and it seems to imply some changes in the current code, I kind of need advice and/or approval from both grease pencil and animation team on this. Since it is a bit complex to explain, I started a devtalk on it, idk whether it's good pratice or not. If not I can always remove it to have the discussion here. Anyways, it's there : https://devtalk.blender.org/t/gpencil-layers-integration-in-main-dopesheet-selection-issue/24527
Member

Yes, for these more complicated questions, devtalk is the way to go. To me it looks like this will have to be answered by the animation module. I would suggest to post the link in the animation-module channel on blender.chat. (I see that you asked that question there as well).

Yes, for these more complicated questions, devtalk is the way to go. To me it looks like this will have to be answered by the animation module. I would suggest to post the link in the `animation-module` channel on blender.chat. (I see that you asked that question there as well).

In #97477#1364200, @filedescriptor wrote:
Yes, for these more complicated questions, devtalk is the way to go. To me it looks like this will have to be answered by the animation module. I would suggest to post the link in the animation-module channel on blender.chat. (I see that you asked that question there as well).

Yea ok, thanks, I posted it on the chat

> In #97477#1364200, @filedescriptor wrote: > Yes, for these more complicated questions, devtalk is the way to go. To me it looks like this will have to be answered by the animation module. I would suggest to post the link in the `animation-module` channel on blender.chat. (I see that you asked that question there as well). Yea ok, thanks, I posted it on the chat

Added subscriber: @DenisB

Added subscriber: @DenisB

Some update on this issue.
So, good news is, it's not actually a bug ! The filter has an effect on gpencil animation data.
What I mean is if you animate any property of a grease pencil object data panel, then it will show up on the main dopesheet and can be hidden with the filter (like "X Location (Fill)" in the image).
That's it. Problem solved. Hurray !

Just kidding, we still need to put these GPLayers in the dopesheet..
The fact that gpencil animation data appears in the same group in the dopesheet seems to be an issue for including GPlayers in the GPencilData summary, I think because it only takes into account "action channels"..
Actually, you may notice that the GPencil summary is also not done properly in the grease pencil dopesheet, and the same problem occurs when animating node properties in a 3D material.

summary_issue-annotated.png

Sooo, I don't know what to do with this. Should GPLayers be in a specific 'green' subgroup like "Object Transforms" ? (not sure this will solve the problem though..)

Some update on this issue. So, good news is, it's not actually a bug ! The filter has an effect on gpencil animation data. What I mean is if you animate any property of a grease pencil object data panel, then it will show up on the main dopesheet and can be hidden with the filter (like "X Location (Fill)" in the image). That's it. Problem solved. Hurray ! Just kidding, we still need to put these GPLayers in the dopesheet.. The fact that gpencil animation data appears in the same group in the dopesheet seems to be an issue for including GPlayers in the GPencilData summary, I think because it only takes into account "action channels".. Actually, you may notice that the GPencil summary is also not done properly in the grease pencil dopesheet, and the same problem occurs when animating node properties in a 3D material. ![summary_issue-annotated.png](https://archive.blender.org/developer/F13129327/summary_issue-annotated.png) Sooo, I don't know what to do with this. Should GPLayers be in a specific 'green' subgroup like "Object Transforms" ? (not sure this will solve the problem though..)
Member

Added subscriber: @lichtwerk

Added subscriber: @lichtwerk
Member

So, good news is, it's not actually a bug ! The filter has an effect on gpencil animation data.

Ah! I guess this does make sense. Maybe we should close this task then and open a new one for the feature you are working on. @lichtwerk how would you handle this?

Sooo, I don't know what to do with this. Should GPLayers be in a specific 'green' subgroup like "Object Transforms" ? (not sure this will solve the problem though..)

I would not worry about keyframes not showing in the summary for now. It looks like this could be reported as another issue.
Displaying layers in a subgroup would make sense to me. That would separate them cleanly from animated properties. But it might also cause too much indentation so that might be a counter argument.

> So, good news is, it's not actually a bug ! The filter has an effect on gpencil animation data. Ah! I guess this does make sense. Maybe we should close this task then and open a new one for the feature you are working on. @lichtwerk how would you handle this? > Sooo, I don't know what to do with this. Should GPLayers be in a specific 'green' subgroup like "Object Transforms" ? (not sure this will solve the problem though..) I would not worry about keyframes not showing in the summary for now. It looks like this could be reported as another issue. Displaying layers in a subgroup would make sense to me. That would separate them cleanly from animated properties. But it might also cause too much indentation so that might be a counter argument.

Hi ! I feel like the patch is ready for further review.
Two things are still missing : summaries (as discussed above), and graying out some fcurves related operators in the dopesheet menu. Though, it seems like they both correspond to a pre-existing behavior, so they could be dealed with in a separate issue, as suggested by Falk David.

It would be great if someone could review the code :)

Hi ! I feel like the patch is ready for further review. Two things are still missing : summaries (as discussed above), and graying out some fcurves related operators in the dopesheet menu. Though, it seems like they both correspond to a pre-existing behavior, so they could be dealed with in a separate issue, as suggested by Falk David. It would be great if someone could review the code :)

This issue was referenced by 92d7f9ac56

This issue was referenced by 92d7f9ac56e0ff1e65c364487542dfb7c32a0a67

Changed status from 'Confirmed' to: 'Resolved'

Changed status from 'Confirmed' to: 'Resolved'
Sign in to join this conversation.
No Label
Interest
Alembic
Interest
Animation & Rigging
Interest
Asset Browser
Interest
Asset Browser Project Overview
Interest
Audio
Interest
Automated Testing
Interest
Blender Asset Bundle
Interest
BlendFile
Interest
Collada
Interest
Compatibility
Interest
Compositing
Interest
Core
Interest
Cycles
Interest
Dependency Graph
Interest
Development Management
Interest
EEVEE
Interest
EEVEE & Viewport
Interest
Freestyle
Interest
Geometry Nodes
Interest
Grease Pencil
Interest
ID Management
Interest
Images & Movies
Interest
Import Export
Interest
Line Art
Interest
Masking
Interest
Metal
Interest
Modeling
Interest
Modifiers
Interest
Motion Tracking
Interest
Nodes & Physics
Interest
OpenGL
Interest
Overlay
Interest
Overrides
Interest
Performance
Interest
Physics
Interest
Pipeline, Assets & IO
Interest
Platforms, Builds & Tests
Interest
Python API
Interest
Render & Cycles
Interest
Render Pipeline
Interest
Sculpt, Paint & Texture
Interest
Text Editor
Interest
Translations
Interest
Triaging
Interest
Undo
Interest
USD
Interest
User Interface
Interest
UV Editing
Interest
VFX & Video
Interest
Video Sequencer
Interest
Virtual Reality
Interest
Vulkan
Interest
Wayland
Interest
Workbench
Interest: X11
Legacy
Blender 2.8 Project
Legacy
Milestone 1: Basic, Local Asset Browser
Legacy
OpenGL Error
Meta
Good First Issue
Meta
Papercut
Meta
Retrospective
Meta
Security
Module
Animation & Rigging
Module
Core
Module
Development Management
Module
EEVEE & Viewport
Module
Grease Pencil
Module
Modeling
Module
Nodes & Physics
Module
Pipeline, Assets & IO
Module
Platforms, Builds & Tests
Module
Python API
Module
Render & Cycles
Module
Sculpt, Paint & Texture
Module
Triaging
Module
User Interface
Module
VFX & Video
Platform
FreeBSD
Platform
Linux
Platform
macOS
Platform
Windows
Priority
High
Priority
Low
Priority
Normal
Priority
Unbreak Now!
Status
Archived
Status
Confirmed
Status
Duplicate
Status
Needs Info from Developers
Status
Needs Information from User
Status
Needs Triage
Status
Resolved
Type
Bug
Type
Design
Type
Known Issue
Type
Patch
Type
Report
Type
To Do
No Milestone
No project
12 Participants
Notifications
Due Date
The due date is invalid or out of range. Please use the format 'yyyy-mm-dd'.

No due date set.

Dependencies

No dependencies set.

Reference: blender/blender#97477
No description provided.