Extensions to animation features (GSoC)
ClosedPublic

Authored by jounip on Sep 17 2016, 9:22 AM.

Details

Summary

New features:

  • Keyframing support for layer opacity, content in filter layer, fill layer, transparency mask and filter mask
  • Interpolation for opacity keyframes
  • Animation curves docker
  • Color labels for keyframes
  • Filtering by keyframe color for onion skins
  • Initial code for animating and interpolating transformation masks (disabled for now)

Ref T1101
Ref T146

Diff Detail

Repository
R37 Krita
Branch
animation-pentikainen
Lint
No Linters Available
Unit
No Unit Test Coverage
jounip updated this revision to Diff 6788.Sep 17 2016, 9:22 AM
jounip retitled this revision from to Extensions to animation features (GSoC).
jounip updated this object.

ok, so testing this now...

  1. Add new keyframe in the animation curves docker doesn't work. Doing new opacity-keyframe via the regular animation docker does work.
  2. I cannot see any curves in the editor when doing a simple frame 1 to 3 fade-out with two opacity frames. The terminal spits out the following:
QPainterPath::arcTo: Adding arc where a parameter is NaN, results are undefined

It does this about a gazillion times. I have the curves docker undocked, but I doubt this has any effect on the code.

  1. Labeling, saving and loading goes fine, except that once you start labeling, the subsequent keyframes you make are also labeled. Is this intentional?
  2. animating the pixel values of transparency, filter and fill layers/masks seems to work okay here.

also, reviewers :)

timotheegiet added a subscriber: timotheegiet.EditedSep 17 2016, 11:05 AM

ok, so testing this now...

  1. Add new keyframe in the animation curves docker doesn't work. Doing new opacity-keyframe via the regular animation docker does work.

Yes I noticed that, except I also noticed the add keyframe button does work after creating (two initial points) a point on the first frame from the animation docker.

  1. I cannot see any curves in the editor when doing a simple frame 1 to 3 fade-out with two opacity frames...

Yes, first you have to click Custom interpolation on a node to access the tangent curve to manipulate it.

  1. Labeling, saving and loading goes fine, except that once you start labeling, the subsequent keyframes you make are also labeled. Is this intentional?

Yes this is intentional, we discussed this at the sprint (imagine you start doing keyframes.. set a color, then all next new keyframes have this color.. then you switch to another color when starting inbetweens, etc...)

  1. animating the pixel values of transparency, filter and fill layers/masks seems to work okay here.

Another little issue I have with the animation curve docker: the values displayed vertically (on the left side of the graph) don't make any sense (opacity 0 is around 100, and opacity 100 around 400...

  1. Add new keyframe in the animation curves docker doesn't work. Doing new opacity-keyframe via the regular animation docker does work.
  2. I cannot see any curves in the editor when doing a simple frame 1 to 3 fade-out with two opacity frames. The terminal spits out the following: ` QPainterPath::arcTo: Adding arc where a parameter is NaN, results are undefined ` It does this about a gazillion times. I have the curves docker undocked, but I doubt this has any effect on the code.

That sounds strange. I haven't seen this bug before, nor can I replicate it. Can you replicate it reliably?

Another little issue I have with the animation curve docker: the values displayed vertically (on the left side of the graph) don't make any sense (opacity 0 is around 100, and opacity 100 around 400...

Yes, it looks like there's something wrong with the ruler numbers. I'll look into it.

I can reliably reproduce the same error message with these steps:

-New file, create one or two frames on layer2
-Go on frame 6, create new opacity keyframe from animation docker
-Go on frame 3, add a keyframe from the curve docker button

You can see it makes a vertical red line at frame 3 on the graph, but doesn't make an actual node.. like a ghost node or something.. and immediatly I get these messages in the log:
QPainterPath::arcTo: Adding arc where a parameter is NaN, results are undefined

timotheegiet accepted this revision.Sep 18 2016, 11:05 AM
timotheegiet added a reviewer: timotheegiet.

I think this can be merged today, before the merge window closes.

The features work, and those two bugs (add keyframe button and ruler numbers) can be fixed in master after that.

This revision is now accepted and ready to land.Sep 18 2016, 11:05 AM
This revision was automatically updated to reflect the committed changes.