Dev:New Animation Tools

From Synfig Studio :: Documentation
Revision as of 22:16, 29 May 2010 by Jose X (Talk | contribs) (Motion Tool)

(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
Jump to: navigation, search

Animation Tools on Synfig

It may sound a bit harsh, but for a "2d vector animation studio" Synfig Studio has far too few and far too simple animation tools. Only the first five (Normal, Smooth move, Scale, Rotate and Mirror) in the tool box can do some sort of animation.

IMHO this needs to change. So I started thinking about what new tools would be useful for animation.

Motion Tool

The name says it all, a tool designed to easily add motion to any of Synfig's objects.

At the moment one of the first five tools is used to move things around in animation mode in order to create waypoints, and therefore defining the animation. While using Synfig I've notice a few things:

  • Having to jump all around the timeline
  • Guess estimating how fast/slow will the motion be
  • Problems trying to simulate motions in specific patterns (ie. Circular)

Taking this into consideration the Motion Tool could work like this:

  • Only set the time to the start of the motion, the tool inserts waypoints further down the timeline automatically
  • Either type in the speed on the Tool Options panel, or have a graphical representation of it (ducks perhaps)
  • Allow the motion to describe an arbitrary path, the tool calculates the right position, time and number of waypoints to insert
  • Optionally, specify a certain pattern for the motion to follow (ie. Circular)

[A page has been started on design for a string/gui version of functions.]

Morph tool

A tool that can easily morph between two shapes (Blines).

The description makes it sound simple. But there are a few things to consider first:

  • Does the vertexes on each shape correspond with vertexes on another?
  • Where does the vertexes, which don't correspond, go to (in the other shape)?
  • How do you make everything morph smoothly?

Luckily, the code knows exactly how to do it:

  • The vertexes that do correspond in both shapes, are simply interpolated
  • The ones that appear in one shape, but not in the other, have their Activepoint set to On in one shape and to Off in the other
  • The Origin parameter in the Blinepoints tells which part of the other shape a vertex move towards, when there's no corresponding vertex on that shape
  • Interpolation makes everything move smoothly

But the truth is that Activepoints are a rather obscure feature of Synfig. The Morph tool would make them easier to use:

  • First set which shape you want to morph
  • Select the start shape (from another Bline) and time
  • Select the end shape and time
  • Drag the points on the morphed shape around, changing which vertex or part they correspond to (in the corresponding shape)
  • Vertexes are automatically interpolated or turned on/off accordingly

Pose tool

Also a tool to animate shapes, but its objective is to create and apply poses to shapes.

There is a way to Reuse Animations, but it would be better to have an easy (and faster) to use tool for the job.

This tool would be able to:

  • Create poses from ready made shapes
  • Apply these poses to other shapes, animating them
  • Deal with mismatch of the number/position of vertexes

This tool bears many similarities with the morph tool, perhaps it might be possible to make an unified tool that does both jobs well.

Math/Physics tool

It's entirely possible to create mathematically defined motions in Synfig (thanks to it's convert types). But it is also true that this features would be a bit to hard or time consuming to understand and use.

Perhaps this tool could be subdivided in a set of modes:

  • Free falling mode: Objects falling/flying in presence of gravity
  • Elastic deforming: Any sort of elastic object that deforms with force
  • Hair simulation: 2d hair simulation of some sorts

etc...

Perhaps this tool won't be essential in order to animate, but a few simple but cool effects would certainly add a lot to an animation. Of course math/physics can get very complex rather fast. So perhaps only the simplest cases would be considered, specially if they in return produce a rather stunning effect.

Animated Character tool

A tool that makes easier the animation of characters.

Probably would need to be a conjunction of tools, perhaps with a number of submodes:

  • Bones: Used to rig and then to animate a character using bones technique
  • Morph/Pose: Use the poses and transitions that other tools generate and combine them in order to form the entire character
  • Walk: Make your character walk with his feet firm on the ground
  • Talk: Use poses defining phonemes to have the character talk
  • Face: Manage facial expressions (defined by poses), control the focus point of eyes, etc

Particles

They can be done now using a complex conversion type but would be good if they are built in. Genete 18:46, 5 April 2008 (EDT)

Shear, Bend, Perspective, Noise

All they would be applied to ducks. Select the points pick one of them and drag. It would work similar to the mirror or the rotate tools.Genete 18:51, 5 April 2008 (EDT)

Make your own Suggestions

Feel free to add any other tool idea you have, or make comments on the ones already posted. The best would be to have a lot of tools ideas first, then we can see which tools are similar, and make a single unified tool that does many jobs.

I tried to make my tool suggestions practical, imagining what would a real animator working on a project would like from it. Tools that are easy and fast to use and that accomplish a certain goal. On the other hand, I have zero experience on real world animation work, so I was just making things up as go. Imagination is a powerful thing though =).

Latter on, I will also try to look into the implementation details, and post whatever I find here, or perhaps in a page specific to each tool. Then we can tweak the tool to fit what's possible to implement, or come up an idea on how to implement the tool. Hopefully this method will help to achieve a complete implementation, even if little by little.

The idea is to at least end up with a well defined tool, and a good starting point for a developer to start his work.