Syntax12b.Scn.Fnt ZParcElemsAlloc Syntax10.Scn.FntSyntax24.Scn.Fnt$Syntax12.Scn.Fnt Z  Z l KeplerElemsAllocKeplerGraphsGraphDescKeplerGraphsStarDesc~|~~}}~|~~}}~~~|~~}}~~FilmHeadDescKepler1RectangleDescKepler1LineDescFilmCutPointDesc  Kepler1AttrDesc  oSyntax12i.Scn.Fnt Z Syntax14b.Scn.Fnt ? K O  Z  KeplerGraphsGraphDescKeplerGraphsStarDesc~{FilmHeadDescKepler1AttrDesc||FilmCutPointDescupdown|{straight ahead||}~Kepler1RectangleDesc oo D Z dJ"j Z KeplerGraphsGraphDescKeplerGraphsStarDesc~ {FilmHeadDescKepler1CircleDesc| ||| | |FilmSliderDesc~Kepler1LineDesczzD<{ { {FilmCutPointDescXKepler1RectangleDesc A Z s  Z   Z  K 9  w Film - A Tool for Animating Pictures H. Mssenbck, May 5, 1995  Pictures and diagrams (e.g., OMT diagrams) can easily become complex. The reader - when presented a whole diagram - is often confused by the amount of information. Where should he start reading and in which order should he read the diagram? When such a diagram is drawn on a blackboard it is usually much easier to understand because the reader sees in which steps it is drawn. Film is a tool that lets you move through a diagram step by step and watch how it is drawn. The user can view the process like a film through which he can move forwards and backwards. (One can also regard the diagram as being composed of several layers which can be stacked on top of each other.) While the diagram is drawn it is even possible to explore different branches, i.e., to continue the drawing process in different directions. Finally, it is possible to animate the diagram, i.e., to let parts of the picture slide smoothly from one place to another in order to show how the diagram changes. Film is based on Kepler - a graphics editor developed by Josef Templ for the Oberon System. While using Kepler to draw a picture the user simply sets cut points at those instances in time where the film should stop during replay. Every cut point defines a snapshot of the picture. From this snapshot the user can go the the previous snapshot or to one of several successor snapshots. Figure 1 demonstrates this process. Click at the picture with the left mouse button. Click again to make it the focus. Now click at the command Film.Reset (<- just here). The picture should disappear and is now ready to be replayed. Repeatedly click at Film.Next or Film.Prev to play the film forward or backward.   Figure 1 A small sample film  1. Viewing a Film Film.Reset will "rewind" the film in the focus viewer to its beginning. Film.Next will move the film in the focus viewer to the next snapshot (cut point). Film.Prev will move the film in the focus viewer to the previous snapshot (cut point). Film.Go When you come to a cut point from where you can continue along several branches, these branches are listed in the Log viewer together with the command Film.Go. Click at the command in the desired line to continue along the corresponding branch. Try it in Figure 2.   Figure 2 Following branches (make the picture the focus and click Film.Next )  2. Creating a Film Open a viewer with Kepler.Open and draw the picture as usual. While you are drawing you can set cut points, create branches and define sliders for animation. Since cut points and sliders are not visible in the picture there is the possibility to view the picture as a text. There you can delete, move and select specific parts including invisible ones. 2.1 Setting Cut Points At any moment you can make the current state of the picture a snapshot by invoking the command Film.Cut This will insert a cut point which is invisible in the picture but you can edit it in its textual view (see Section 2.5). Now try to move to the previous snapshot with Film.Prev and then go forwards again with Film.Next . 2.2 Hiding Figures When playing a film sequence you may want to hide figures from some of the previous sequences. For example, you may want to use explanatory text to illustrate a certain snapshot. When moving to the next snapshot, this text should disappear. For hiding a set of figures, just select them and execute Film.Hide When the film is played backwards, the hidden figures reappear, when it is played forwards, they disappear again. 2.3 Creating and Deleting Branches At a cut point you can define a new branch starting at that point. The old branch after the cut point (which is not yet fully replayed) becomes a side branch. Use Film.Next or Film.Prev to get to the desired cut point. Then invoke the command Film.NewBranch (name | string) The argument of NewBranch gives the branch a name. Any future drawings go to the new branch. In order to delete a branch move to the branch point using Film.Prev and Film.Next. Make the branch that you want to delete the first branch and invoke the command Film.DeleteBranch The first branch will be deleted and the second branch will become the first one. 2.4 Defining Sliders A slider shifts a couple of points in the picture along a move vector. Try its effect on Figure 3 by focussing the picture and using Film.Next repeatedly.   Figure 3 Effect of sliders (make the picture the focus and click Film.Next)  A slider can be defined in the following way: a) select a set of points in the picture b) define a move vector by setting two focus points with the left mouse button c) insert the slider with Film.Slide . 2.5 Textual Editing of Films Some film elements such as cut points or sliders are invisible in the picture so they must be edited textually. Film.List will produce a textual list of all figures in the focus picture including invisible elements, of which there are the following ones:  CutPointDesc cut point defining a snapshot SliderDesc slider defining a move action for a set of points MarkDesc mark element serving as a placeholder for a temporarily hidden figure HiderDesc hider defining a hide action; linked to some mark element Every text line represents a film element (usually a figure). The end of each line shows the (x, y) coordinates of the points that define the figure. Film.Delete will delete the figures corresponding to the selected lines in the list. Film.Move will move the selected lines in front of the line containing the caret. The corresponding figures will be moved accordingly (i.e. their drawing order will be changed). This can be used to move cut points to different positions or to insert a figure in a previous scene (i.e., in front of a previous cut point). Film.Select Sometimes it is difficult to see which lines in the list correspond to which figures in the picture. Just select one or several lines in the list and call Film.Select. The corresponding figures will be highlighted in the picture. Note that invisible film elements (cut points, sliders, etc.) cannot be selected in the picture with the right mouse button. When copying a picture containing such invisible elements they have to be selected with Film.Select. Film.GetInfo For invisible film elements the command Film.List will only show minimal information. To see more, select a line representing such an element and call Film.GetInfo. Film.SetBranchName (name | string) This command assigns a new name to the branch starting at the cut point selected in the list produced with Film.List.