Future of the animation feature
Boudewijn Rempt
boud at valdyas.org
Sun Dec 21 14:27:11 UTC 2014
On Sun, 21 Dec 2014, Sven Langkamp wrote:
> On 12/21/14, Boudewijn Rempt <boud at valdyas.org> wrote:
>> On Saturday 20 December 2014 Dec 21:09:57 Timothée Giet wrote:
>>
>>> That is a good terminology explanation, I think.
>>
>> Okay, keeping this terminology, I think that it boils down to what Jouni
>> already said: what's primary, the row, or the column -- the layer or the
>> frame.
>>
>> So, we either create the concept of time, and place KisImage inside it, or
>> take KisImage, and place the concept of time in KisImage. My thoughts were
>> all going in the first direction, but under the shower I started thinking of
>> the implications of the second direction.
>
> I'm clearly in favor of putting the time into the image. It's better
> to combine static with animated objects e.g. a static background with
> several animated layers in front of it.
>
> Beside that I think it would offer better performance. If you insert a
> new layer the already composited parts stay the same.
>
>> I'm not sure what will be easier, technically, when it comes to things like
>> rendering the layerstack, preparing cached frames, swapping out KisNodes,
>> but here are some points:
>
> I think it's easier to implement. If you e.g. want to insert a new
> layer into the image it's much simpler. If you have time outside of
> the KisImage you have to sync all the images.
But don't think in terms of 'the image' -- if the timeline is outside
KisImage, we'd generate a KisImage for every frame, with references to the
nodes used in the timeline.
>
>> * If we put the idea of time in KisImage, we shouldn't create special
>> layers.
>
> Agreed.
>
>> * We should instead make time a first-class property of KisImage, with a
>> 'still' image having just one frame.
>
> Yes, KisImage should have a current frame which is the state that you
> are working on. Changing that would move any layer with an animation
> to the specified frame.
>
>> * All layers (including group layers) should get the idea of time
>
> Group layers should be timeless objects, so only the layers inside
> them are animated. If the group layer had time, it would be possible
> that the layers stack changes during the animation which I think is a
> nightmare to manage.
Well, no... Because grouplayers have visibility, and that needs to be
animatable.
>
> So layer may or may not have animation support e.g. generate layer,
> file layer or vector layer. These might need a totally different type
> of animation.
Yes -- well, every layer has the basic animation of visibility, position,
opacity, blending mode.
>
>> * Time should apply not just to paint devices, but also to properties like
>> visibility, and for filter layers and masks, to the filter config.
>
> I think things like visibility should be global e.g. the user might
> want to watch the animation with one element hidden so he just hides
> that layer.
Yes, and no -- the user for sure would like to be able to hide all of a
layer in one go, but it's also necessary to toggle visibility, opacity
etc. on a frame-by=frame base.
> Not sure how we model the changes of the properties.
BOudewijn
More information about the kimageshop
mailing list