Skip to content

Keyframe Animation Pipeline

Brice Donval edited this page Jan 7, 2020 · 2 revisions

Table of Contents

KeyFrameAnimationPipeline

(Original Author: Dr. Jing HUANG) This page shows the management of the key frame animation pipeline in Greta System. This system is based on the procedural kinematics method for rigid body deformation and spherical linear interpolation for joint rotation generation.

pipeline

  • scatter process describes the reception of different signals(different body parts) that arrive in our animation module.
  • gather process describes the process that we fill body information with different body parts to create a complet body.
  • kinematics describes the process that we use forward kinematics and inverse kinematics to solve the geometrical rotations for skeletal system.
  • iterpolation describes the process that we interpolate key frame into frames for the final animation sequence (we use spherical linear interpolation [SLERP]).
  • Bap Conversion Quaternion --> Bap format (for body joints' rotations).

scatter and gather

  • Different signals of body parts will scatter from previous modules and gather into animation pipeline.
  • Four different signals till now will be gathered to create full body key frames with a same time stamp.
  • Then, forward kinematics and inverse kinematics will be applied to generate key postures depending on the posture descriptions.

kinematics

we use our Mass-Spring solution for inverse kinematics (IK). Ref: Jing Huang and Catherine Pelachaud. An efficient energy transfer inverse kinematics solution. In Proceedings of Motion In Game 2012, volume 7660, pages 278–289, Berlin, Heidelberg, 2012. LNCS [Fichiers:IKgesture.png]

iterpolation

  • SLERP
where t is the interpolation parameter (between 0 and 1), q0 and q1 represent two rotations, Ω is the half angle between them.

Getting started with Greta

Greta Architecture

Quick start

Advanced

Functionalities

Core functionality

Auxiliary functionalities

Preview functionality

Nothing to show here

Previous functionality (possibly it still works, but not supported anymore)

Clone this wiki locally