30.06.2013 Views

Texte intégral / Full text (pdf, 20 MiB) - Infoscience - EPFL

Texte intégral / Full text (pdf, 20 MiB) - Infoscience - EPFL

Texte intégral / Full text (pdf, 20 MiB) - Infoscience - EPFL

SHOW MORE
SHOW LESS

Create successful ePaper yourself

Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.

4.4. Automatic Motion Adaptation for Gaze<br />

4.4 Automatic Motion Adaptation for Gaze<br />

In the previous section, we explained how we define the interest points over an animation<br />

for each character. In the present section, we explain how we adapt the initial motions to<br />

obtain the desired gaze attention behaviors. Algorithm 4.2 shows the course of action at<br />

each timestep once the elementary scores have been computed.<br />

Algorithm 4.2: Simulation Loop<br />

Data: elementary scores<br />

Result: motion adjustments<br />

1 begin<br />

2 for all frame f do<br />

3 for all character C do<br />

4 for all entity E do<br />

5<br />

compute overall score<br />

6<br />

7<br />

8<br />

9<br />

10<br />

11<br />

12<br />

end<br />

select maximum score<br />

check attention threshold<br />

if maximum score above threshold then<br />

set gaze constraint<br />

check temporal contribution<br />

edit motion<br />

Each of the interest points we have calculated for a character C can be considered as<br />

a gaze constraint li in a set of gaze constraints L. C’s motion thus has to be adjusted to<br />

meet these constraints. Since the interest points can be dynamic (in the case where they<br />

are moving entities), we have to compute the joint displacements to be applied to the base<br />

motion at each frame. As this is done on a per-frame basis, the overall performance of our<br />

system critically depends on the performance of our IK solver. To this end, we propose a<br />

robust and very fast dedicated gaze IK solver.<br />

The skeletons we use are composed of 86 joints. Our method adjusts 10 of them: 5 spinal<br />

cord joints, 2 cervical joints, 1 head joint and 2 eye joints in order for the characters to align<br />

their gaze to the interest points. The eyes are swing joints and have 2 DOF. All others are ball<br />

and socket joints that have 3 DOF. This amounts to 28 DOF in all. By considering only this<br />

subset of the full skeleton, we greatly reduce the complexity of our algorithm. This allows<br />

us to have very small computational times and thus to animate a large number of characters.<br />

Our method consists of two distinct phases. The first one computes the displacement map<br />

to be applied in order to satisfy the current gaze constraint. We name this spatial resolution.<br />

At each timestep, if there is an active constraint, we launch an iterative loop starting with the<br />

bottom of the kinematic chain (lumbar vertebrae) and ending with the top of the kinematic<br />

chain (the eyes). At each iteration, we calculate the total remaining rotation to be done by<br />

the average eyes position (global eye) to satisfy the constraint and determine the ratio of this<br />

rotation to be applied to the current joint. The remaining rotation to be done by each eye joint<br />

55

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!