Page MenuHome

Graph Editor: Fcurve extrapolation visibility
Confirmed, NormalPublicDESIGN

Description

Tweak option to toggle off visibility of extrapolated f-curves.
Best place for 'Show extrapolation' command with on/off checkbox in the graph editor menu - View.

The option ‘Show extrapolation” is ON

Graph editor behavior is as usual. The option is ON by default.

The option ‘Show extrapolation” is OFF:

Then:

  • Constant extrapolations are hidden.
  • Linear extrapolations are shown.
  • Cycle modifier present but set to No Cycles: see above.
  • Finite cycles are shown. Beyond the cycles: see above.
  • Infinite cycles are shown.

If the extrapolation part of the curves are shown they should be drawn a bit different (lower opacity or dotted) whether show_extrapolation option On or Off.
Single keys. They should be shown just as single keyframes in the graph.

But first of all we have to implement the simplest variant
The option ‘Show extrapolation” is On: shows extrapolated curves.
The option ‘Show extrapolation” is Off. doesn't show extrapolated curves at all, whether it is a cycle, a linear extrapolation or a constant.

Examples:

And this are examples for possible improvements on next possible upgrades:

Constant extrapolation:

Linear extrapolation:

Cycle extrapolation finite:

Cycle extrapolation infinite:

Event Timeline

Sybren A. Stüvel (sybren) changed the task status from Needs Triage to Confirmed.May 7 2020, 12:08 PM
Sybren A. Stüvel (sybren) changed the subtype of this task from "To Do" to "Design".

A small suggestion. I think it would be useful if the extrapolation part of the curves is a drawn a bit different.(lower opacity, dotted, a bit tinner etc.) It gives a bit more information, so you know there are no keyframes prior or following what you see.

what oscar says would be highly appreciated.

A small suggestion. I think it would be useful if the extrapolation part of the curves is a drawn a bit different.(lower opacity, dotted, a bit tinner etc.) It gives a bit more information, so you know there are no keyframes prior or following what you see.

Do you mean to use it with Linear and Cycle extrapolation types only when extrapolation is off?

only when the visibility of the extra is on, in anytype, to easily distinguish between the "live curve" and the generated one

only when the visibility of the extra is on, in anytype, to easily distinguish between the "live curve" and the generated one

So this thing should be used everywhere/everytime, with this new extrapolation option ON and OFF, shouldn't it? Not to replace new option?

Also would be useful if the extrapolation part of the curves is a drawn a bit different (lower opacity/dotted,/bit tinner/etc.) whether show_extrapolation option On or Off. It gives a bit more information, so you know there are no keyframes prior or following what you see.

@Stanislav Ovcharov (Stan1) I agree that this would be nice. To make it possible to just implement it without getting more disucssions, can you pick the one you think is best and update the description & screenshots for this?

Once that's done, I think it's fine to get this implemented. @Stanislav Ovcharov (Stan1) do you have any idea how long it'll take you? Would Blender 2.92 be a reasonable target (so implemented, reviewed, and merged before 25 November)?

I think this all needs to be much simpler.

On: shows extrapolated curves.
Off. doesnt show extrapolated curves at all, wether it is a cycle, a linear extrapolation or a constant.

The whole idea is to be able to get rid of the extra drawing in the graph editor that makes it harder to view.
Wether we want theeming options for when the extrapolated curves are on I think its secondary (could be a slider for opacity).

I think that information about surrounding extrapolated animation that allow to distinguish cycled animations types is important for editing.

I think this all needs to be much simpler.

On: shows extrapolated curves.
Off. doesnt show extrapolated curves at all, wether it is a cycle, a linear extrapolation or a constant.

The whole idea is to be able to get rid of the extra drawing in the graph editor that makes it harder to view.
Wether we want theeming options for when the extrapolated curves are on I think its secondary (could be a slider for opacity).

I don't mind that about such simplifying if it speeds up implementation but what if you have e.g. cycles for some f-curves? you have to remember that you have got these cycles somewhere on your curves or toggle show_extrapolation on and off back and forth to check it. Described in the task variant allows you to toggle show_extrapolation once and forget about it and do you work in a more calm way

So it was chosen to implement first the simplest way, just on \ off.
On: shows extrapolated curves.
Off. doesn't show extrapolated curves at all, whether it is a cycle, a linear extrapolation or a constant.

I'll see if I can finish a patch for the simple approach . The upgrades appear non-trivial as I'm not sure how to properly determine the fcurve extents when multiple fmodifiers exists and how they interact with eachother (cycles modifier, limits modifier, restricted ranges, etc).

This comment was removed by Luciano Muñoz Sessarego (looch).

Cool! but it's not resolved yet, isn't it?)

no he just started :)

but you closed it as resolved)

interesting, I didnt!, and i tried deleting that and i can only mark as resolved or invalid... can you gimme a hand here @Sybren A. Stüvel (sybren) ?

Philipp Oeser (lichtwerk) reopened this task as Confirmed.Tue, Feb 16, 3:09 PM

When the design work is finished, and implementation can start, either one of these two should happen:

  1. Close the design task as resolved (because the design work is done) and create a new TODO task for keeping track of the implementation, or
  2. Re-classify this task as TODO task.

I think the 2nd option is the most suitable here, as it's not a huge amount of work that needs a separate task for tracking it.

The design description has this as 2nd sentence:

Best place for 'Show extrapolation' command with on/off checkbox in the graph editor menu - View.

I don't see a motivation for this, though. Why is this the best spot? What makes this preferred over just having a user preference that sets this?

Is the description of this design task up to date with what's being implemented in D10442: Graph Editor: FCurve Extrapolation Visibility? If not, please @Stanislav Ovcharov (Stan1) or @Wayde Moss (GuiltyGhost) update it so that any reviewers know how the code should behave.

Best place for 'Show extrapolation' command with on/off checkbox in the graph editor menu - View.

I don't see a motivation for this, though. Why is this the best spot? What makes this preferred over just having a user preference that sets this?

Well it looks logical enough for me to place it here..

When the design work is finished, and implementation can start, either one of these two should happen:

  1. Close the design task as resolved (because the design work is done) and create a new TODO task for keeping track of the implementation, or
  2. Re-classify this task as TODO task.

I think the 2nd option is the most suitable here, as it's not a huge amount of work that needs a separate task for tracking it.

I would choose the option 1 because it is ready for master. And I would leave it even as it is. Looch is right when said that you should know \ remember all your fcurve cycles or linear extrapolation if exist. So there is no big need for further tweaks but I don't mind about it.
So I would edit and close it if you accept.

Well it looks logical enough for me to place it here..

Ok, so it's a personal choice. That's fine, but it's better when it's actually been discussed & decided upon by more people in the module. The placement of the option also has implications as to where the option is stored, and how global it is.

An alternative would be to have this as a user preference. That has an impact on how teams of animators look at each others' files.

When the design work is finished, and implementation can start, either one of these two should happen:

  1. Close the design task as resolved (because the design work is done) and create a new TODO task for keeping track of the implementation, or
  2. Re-classify this task as TODO task.

I think the 2nd option is the most suitable here, as it's not a huge amount of work that needs a separate task for tracking it.

I would choose the option 1 because it is ready for master.

Not if there are still questions about the design.

And I would leave it even as it is.

I don't understand. Option 1 is "close this design task, create a new TODO task for the actual implementation". You can't leave this task as it is AND close it and create a new one.

I believe it should go in the view menu as it is an option that you'd often change, I'd rather it be off by default because just by having it off it improves readability in the graph editor and I'd turn it on just when I "NEED" to see the extrapolation which is how I normally do it in at work all the time, I only turn it on in rare occasions, because i need the graph editor to display as minimal and clear information as it can (its already a spaghetti mess, i don't want more stuff cluttering it)
Also this might mean a bit of a performance improvement by drawing less curves by default, but I dont know how true this las phrase is, i'm just speculating.