|
This document summarizes the ideas behind the Follower nodes proposed in the paper
Linear Filters - Animating Objects in a Flexible and Pleasing Way.
The targeted audience has an understanding for the X3D standard and its authoring.
What Followers are not:
Physics. Although looking like poor-mans-physics, it is not intended to
create any realistic effect. The nodes are just about ... see next paragraph.
What they are:
Follower nodes are about animating things based on runtime information.
You give it a destination and it goes there, no matter where it
currently is, nor where it was currently targeting to, if so.
The result is always a smooth transition. You just specify the duration.
A destination can be a position, an orientation, a color, the
coordinates of a mesh, ... anything.
Difference to Interpolators:
The Follower nodes respond to runtime events. They are flexible
enough to cope with the weirdest user, or the most unforeseen data, and still
create physically consistent behavior. Yes, here is physics, but not in the
sense of correctness, more in the sense of consistence,
meaning that no jumps occur
unless wanted by the author.
In contrast, Interpolator nodes require the path of an
animation be specified at design time. They are not flexible enough to generate smooth
transitions during runtime, if the content author has no more than basic scripting
skills.
Benefits:
If an author has just enough scripting skills to determine where an value
should go, they just insert a Follower node after their scripts and transitions
become animated. No skills required to write a script that sets up an
Interpolator to go from the current value to the desired one.
Illustrations:
See the Door example
and the Room example
Additional Benefits:
Followers (especially Dampers, see below) make user
interfaces or objects under
geometry sensors more live looking. See "test_Sliders.wrl" or "test_OriFollower.wrl"
at the above link. Click on the box of "test_Sliders.wrl" to
turn the effect on and off.
Followers smoothen existing animatins. See "coaster-classical.wrl"
vs. "coaster-damper.wrl".
Although they cannot replace the coming NonlinearInterpolators.
About the Name:
Unfortunately i'm not so happy about the name 'Follower'.
The
word 'Animator'
would fit better, but i feel it is too general. 'TransitionCreator'
or 'Transitioner'
does not sound well. I hope somebody of you has a good idea.
Their Structure:
The concept "Follower node" is just a categorization, some kind
of an abstract node.
Actual nodes are "Damper nodes and Chaser nodes. Like
there are multiple Interpolator
nodes for the various data types in X3D, there are multiple Damper
and Chaser nodes.
Therefore a node hierarchy similar to the following is proposed:
X3DFollowerNode
|
+--- X3DChaserNode
| +--- PositionChaser
| +--- OrientationChaser
| +--- PositionChaser2D
| +--- ScalarChaser
| +--- PlacementChaser
|
+--- X3DDamperNode
+--- PositionDamper
+--- OrientationDamper
+--- ColorDamper
+--- PositionDamper2D
+--- CoordinateDamper
+--- TexCoordDamper
+--- PlacementDamper
The PlacementChaser and PlacementDamper are a
special case as they animatex
the common combination SFVec3f and SFRotation all
at once.
This hierarchy is not fixed. We should discuss about adding/removing
nodes.
Difference between Chaser and Damper:
Pro Chaser:
- Chasers create transitions that terminate after a given amount of
time.
- They feature ease-in and ease-out.
Contra Damper:
- Dampers conceptually have no end of a transition, however visually
- they approach their destination very quickly.
Contra Chaser:
- Their implementation is more complicated.
Pro Damper:
- Their implementation is very light-weight. No loops and no arrays
involved.
- Visually more appealing transitions due to the fact that they
approach their
- destination only asymptotically.
- Have ease-in and asymptotic ease-out.
IMHO in many cases Dampers are more pleasant (user interface elements),
in others Chasers are.
To the paper HomePage.
__.-.__ end of document
|