We use the following rules for each controller:
IF angularError IS FarL THEN speed IS FastR
IF angularError IS CloseL THEN speed IS SlowR
IF angularError IS Zero THEN speed IS Zero
IF angularError IS CloseR THEN speed IS SlowL
IF angularError IS FarR THEN speed IS FastL
From this, the controller returns a fuzzy output for
the speed of the joint. The output is defuzzified us-
ing a centroid defuzzifier to obtain the matching scalar
value for the speed. By keeping the output values for
speed low, all joints rotate in small increments over
time.
Hence, it is possible to animate using only a static
target position, instead of requiring motion paths as
was the case with IK.
The animator has no exact control over the path
taken by the end effector towards such static target
positions. If however control is wanted, the animator
can choose to use motion paths instead.
By adding rotational information to the target po-
sition, we can extend our approach to support axial
rotation of the individual bones, which in turn can re-
duce artefacts during transitions between phases.
7 RESULTS
The handshake animation can be configured in two
important ways, on one hand the choice of animation
controllers in both characters, and on the other hand
the influence of character properties such as position,
scale and personality. Video footage of all configura-
tions can be found on http://vimeo.com/107897074.
7.1 Animation Controller Configuration
We evaluated four test configurations for both anima-
tion controller independence and animation controller
performance.
Table 2: Four configurations of animation controllers.
# Controller 1 Controller 2
1 Jacobian Transpose Jacobian Transpose
2 CCD CCD
3 Fuzzy logic Fuzzy logic
4 CCD Fuzzy logic
For each test configuration, we evaluated the po-
sitional precision of the end effector or right hand of
each character during the shake phase. Three metrics
were calculated as a measure of error: (1) the distance
between both end effectors, (2) the distance between
the hand of character 1 and the target, and (3) the dis-
tance between the hand of character 2 and the target.
The resulting values are presented in Figure 9.
Note that distance is expressed in engine units, cor-
responding to centimetres in the real world.
The summarized results for all graphs are dis-
played in Table 3. For errors, we calculated both the
mean and the standard deviation. Execution times
are also shown as a measure of performance (mea-
sured as number of CPU ticks per frame on an In-
tel(R) Core(TM) i7-2600 3.40GHz).
Configuration 1 achieves an overall high accuracy
with only a small decrease halfway the animation, as
shown in Figure 9(a). However, this high level of pre-
cision comes at the cost of a comparatively higher ex-
ecution time (see Table 3).
Configuration 2 has an overall lower precision
than Jacobian Transpose with a comparatively better
precision halfway the shake (see Figure 9(b)). Ad-
ditionally, the video footage shows that the hands do
not maintain their relative alignment. This is due to
the iterative rotation of joints in CCD, which makes
the final bone in the chain align with the target. This
is particularly visible at the end of the approach phase
and start of the retreat phase.
Configuration 3 has both subjects using fuzzy
logic controllers. As can be seen in Figure 9(c) and
Table 3, the precision of this configuration has an
overall lower precision than with both IK methods.
The path of the gradient shows that fuzzy logic has
reactive behaviour. The error increases because it is
unable to keep up with the animation target. At the
peak of the shake phase, the target switches direction
and moves towards the delayed end-effector, decreas-
ing the error severely. After passing the end effec-
tor, the error increases again towards the end of the
shake phase. The complete error shows similar be-
haviour, which can be accredited to a small difference
in movement speed of both hands.
Configuration 4 shows the hybrid controller ap-
proach. The performance, shown in Figure 9(d), is
not surprisingly a superposition of the separate er-
ror rates. It shows how our underlying interaction
framework operates independently of specific anima-
tion controller types. To our knowledge, this is not
possible in the current state-of-the-art.
As can be seen in Table 3, Jacobian Transpose IK
(configuration 1) performs with the lowest error rate
in all cases, but at the expense of having the lowest
computational performance. CCD IK (configuration
2) has a slightly higher error rate, but has the best
performance of all. Fuzzy logic (configuration 3) of-
fers a tradeoff with an error rate that is higher than
CCD and a performance in between CCD and Jaco-
bian Transpose. The resulting precision of the hybrid
configuration (configuration 4) is an average between
ProceduralAnimationofHumanInteractionusingInverseKinematicsandFuzzyLogic
345