video-games. It also means that there are many open
license animations available to test and develop, espe-
cially for humanoid models.
With animations, it is possible to perform many
complex and varied types of movements very eas-
ily. With a simple gesture, the puppet can perform
a dance, make a basketball move or climb a wall.
On the other hand, because of their repetitive na-
ture, animations can end up limiting the amount of
expression a performer can infuse into a marionette.
However, this is a problem that can be avoided by us-
ing methods like blending between two animations, or
by using Unity’s Blendtree system (that blends more
than two animations by using different variables). In
this way, the performer will be able to control a hand-
ful of parameters that will allow him to determine, for
example, how high the puppet will jump or how bad
he will fall after jumping.
Animations have been integrated as one of the
movement types used for the puppets. The loco-
motion movement mode explained in Section 4.2.4,
for example, uses a Blendtree to interpolate between
walking, running and turning. The jump movement
mode detailed in Section 4.2.5 uses simple animations
played in sequence.
3.2 Inverse Kinematics
Inverse Kinematics (IK) is a process that receives a
few simple inputs, and determines the position and
rotation of a set of bones. It will, for example, receive
the position and the rotation of the wrist of a charac-
ter, and in turn determine the positions and rotation
of the forearm and upper arm bones. An extensive
survey of this technology is presented by Aristidou et
al.(Aristidou et al., 2018).
By allowing the performer to do a range of addi-
tional movements with precision, Inverse Kinematics
adds a layer of flexibility and expressiveness to the
puppet. On top of that, they can be used in conjunc-
tion with classic animation, by using masks. With this
feature, it is possible to choose which bones will use
the animation and which will use Inverse Kinematics.
Our program uses Unity’s Inverse Kinematics sys-
tem to perform its head and arm movements. As ex-
plained in Section 3, IK is used rotate the head in the
direction we want while respecting constraints that
make this movement look natural. The arms move-
ment mode, described in Section 4.2.3, uses the palm
position and wrist rotation given by the Leap Motion
to determine the configuration of all other bones in
the arm.
3.3 Physically based Animation
Physically based animation makes an object perform
realistic movement by using physics simulation. Sim-
ulating physics with mathematical equations has been
a topic of research for centuries, and because of that,
most of the theory behind what we need for this work
has been around for a while. Yet to perform these
simulations in real-time in a stable and aesthetic fash-
ion is a whole different matter. It is still possible with
a lot of loose simplifications, but it can still behave
unexpectedly.
Theoretically, physically-based animations would
let a puppeteer perform any and every movement he
desires. It would also allow very interesting interac-
tions with the scenario, like making the puppet stum-
ble on a rock or be blown away by the wind. However,
trying to use this type of movement with in practice
reveals a lot of challenges (Bousquet, 2015).
Physics systems can be very unstable, especially
when many bones and ropes are being used. This hap-
pens because there is a considerable number of con-
straints that need to be satisfied, which increases the
likelihood that something unexpected occurs, given
the number of approximations made. This can be mit-
igated to a certain degree by fine-tuning and configur-
ing the used model. However, this is a tiresome trial-
and-error procedure that also goes against the philos-
ophy of our work since it makes the framework less
agnostic to the model used.
In addition, the biggest disadvantage that comes
with this type of movement is the limitation of the
hand as a controller. It is a very difficult task to make
complex movements with this system because of all
the degrees of freedom involved. Waiving is trivial for
example, but walking or jumping in a realistic manner
becomes almost impossible.
It is then no surprise that in real-life puppetry, con-
trols that consist of simply attaching strings to the
puppet’s limbs are almost non-existent. They most
commonly use a set of complex mechanisms that al-
low the performer to reproduce realistic movements
while pulling a few strings at a time.
With this in mind, we implemented two physi-
cal simulation systems as prototypes by using using
Unity’s rigid body simulation:
• One where strings were attached from the tips of
each finger to each different limb. It proved to be
very hard to perform complex movement this way
because of the difficulty of moving fingers inde-
pendently, and their limited range of movement.
• The other resembles a classic method of pup-
peteering called the crossbar. All the strings are
attached to a plane, and the performer would then
Expanded Virtual Puppeteering
63