top of page

Acerca de

Deep cuts

Explaining several feature decisions

There is a narrow gray strip at the sides of the canvas view which can be used in animating strokes coming from off-screen to on-screen.  The gray strip cannot be drawn on and it not part of the canvas view, but a pencil stroke on top of it is still being logged.  This will be apparent if, say, you've adjusted the canvas view so that you're on its edge, you begin a pencil stroke on the canvas, then move across the gray strip.  In this case, the stroke label will appear on the canvas, but adjacent to that part of the gray strip where you stopped drawing -- the stroke is present, just off-screen.  Drawing another stroke entirely on-screen and well within the canvas, then 'autoTweening' between these two frames, will thus produce a sequence of the stroke becoming progressively more revealed as it moves on-screen.  You can thus avoid the process of manually drawing all these frames where each of your drawings of the stroke meet the edge of the canvas.  

​

The default 'undo/redo' buttons have been disabled in the pencil toolbar because they complicate the numeric label appending to pencil strokes after 'erase' operations.  For example, label appending needs to assume that new pencil strokes are always appended to the end of an array, whereas if a stroke has been erased/deleted from position X in some array, 'undo'ing that erase will replace the stroke in exactly that position from which is came, which creates problems.  'Undo' is a convenient feature but difficult to make work smoothly in the app.

​

The total number of frames in a project cannot be reduced to fewer than two.  As a result, if you try a remove operation that would result in the total number of frames being less than two, it will not execute.  This would happen if, say, you only have one layer, and you highlight all frames and then attempt to remove them.  Likewise, if there are multiple layers which are blank and you try to remove all frames on one of them, this will not execute.  You can always remove frames if the total number of those you highlight is at least 2 fewer than the total number of frames.  You can likewise always copy or clear as many frames as you want as these operations do not modify the total number of frames.

​

You cannot 'autoTween' more than 200 frames at once.  The purpose for the limit is app stability and there are probably not many circumstances where tweening more than this number is useful if the app is used in an expected way.  There is currently no limit on the number of strokes in a frame, nor the number of strokes nor their length that can be autoTweened.  

​

When you erase strokes, the number on labels attached to them may be re-allocated to the strokes that remain on the frame.  Whether or not the re-allocation occurs depends on those strokes erased -- if those erased all had numbers strictly greater than numbers attached to the strokes which remain, a complete integer sequence of numeric labels 0 to n will still exist on the canvas after erasure without number reallocation.  If, however, prior to erasure, stroke labels 0 to n+1 were on canvas and for example the "0" stroke was erased, then the "0" label will be reallocated to that stroke previously labelled with n+1.  In this way, a complete integer sequence without holes will be maintained after the erasure, the goal of the practice.  When multiple strokes are erased simultaneously, reallocation occurs such that the canvas ends up with a complete integer sequence, but minimizes the total number of label reassignments.  Integer sequences uninterrupted with holes need to be maintained on each frame so that stroke interpolation is coherent.  Every stroke number label needs a corresponding one in the adjacent keyframe.  If one integer sequence of labels is longer in one frame than another, only the first k number labelled strokes will be autotween'ed, where k is the minimum of the number labels in the two key frames.

​

Sometimes, strokes are so short that they cannot be autoTween'ed with the correspondingly labelled stroke in the adjacent keyframe.  In these cases, that stroke will simply not be interpolated.  Strokes must be extremely short for the autoTweening to fail in this way.  

​

Remove/paste frames works in an unconventional way whereby the user can reduce the total number of frames in the project sequence if certain conditions apply.  Likewise when pasting frames the total number of frames in the sequence could increase, but will not necessarily.  Here we describe how the app makes these decisions. 

​

When removing frames, the app looks at the highest index among non-empty frames (frames with strokes in them) for all layers apart from the one from which frames are being deleted.  When removing frames, the total length of the sequence in the project will be potentially reduced this much, and no more.  So if, say, the total project sequence length is 30 frames on 2 layers, you are deleting 5 frames from layer 1, and layer 2's frame 28 is non-empty, the total length of the sequence will decrease to 28, and 3 blank frames will be added to the end of layer 1.

​

When pasting frames, the app examines the highest index'ed non-empty frame of that layer into which you paste.  if there are a greater number of empty frames after this index than the number of frames you are pasting, there will be no change to the total length of the project sequence.  If, however, there are fewer blank frames after the index than those being pasted, the difference will be added to the total number of frames for that layer.  And because all layers are of the same number of frames, that difference in blank frames will be added to the end of the other, non-active layers.  So if there are 2 layers of 30 frames, you are pasting 5 frames into layer 1 at frame 25, there is a non-empty frame at frame 28, the total length of the project sequence will become 33, with layer 1 now ended with a non-empty frame, formerly frame 28, and layer 2 with at least 3 empty frames at its end which were added.  

​

Designing remove/paste in this way allows one to accomplish the multiple goals of the features themselves, re-aligning any layer relative to other layers, and modifying the total length of the project sequence such that it is no longer that it needs to be nor shorter than makes sense.  Though note that with respect to exporting movies, one can always specify the frames being exported by changing the 'first' and 'last' frames within the 'Playback range' section of 'Settings'.

​

​

bottom of page