Key Frame Animation – Arma 3

From Bohemia Interactive Community
Jump to navigation Jump to search
No edit summary
No edit summary
Line 1: Line 1:
[[File:A3_KeyFrameAnimation_Overview.gif|right]]
== Overview ==
== Overview ==
It's all about '''Key Frame Animation''' with real time preview with '''3DEN''' integration.
It's all about '''Key Frame Animation''' with real time preview with '''3DEN''' integration.

Revision as of 13:26, 30 November 2017

A3 KeyFrameAnimation Overview.gif

Overview

It's all about Key Frame Animation with real time preview with 3DEN integration. A Key Frame is a location on a timeline which marks the beginning or end of a transition. It holds special information that defines where a transition should start or stop. The intermediate frames are interpolated over time between those definitions to create the illusion of motion. This interpolation is performed mathematically by the CPU.

Keyframing is the simplest form of animating an object (be it 2D or 3D). Based on the notion that an object has a beginning state or condition and will be changing over time, in position, form, color, luminosity, or any other property, to some different final form. Keyframing takes the stance that we only need to show the "key" frames, or conditions, that desribe the transformation of this object, and that all other intermediate positions can be figured out from these.


This system is all about interpolation and can be used for the following:

  • Camera Scene / Cut-Scene: Camera path and timing
  • 2D animations: Ability to animate UI controls on screen
  • 3D animations: Ability to animate objects in the 3D world
  • Numeric animation: Ability to animate any number transition

The low level system also includes a library of Non-Linear Interpolation methods that can be used independently from the rest.

Interpolation Algorithm

  • Linear - Linear interpolation is a method of curve fitting using linear polynomials to construct new data points within the range of a discrete set of known data points
  • Bezier Cubic - Non linear interpolation that uses 4 control points, Cubic Bezier interpolation
  • Ease In - Non linear interpolation that starts slow and ends at desired speed
  • Ease Out - Non linear interpolation that starts at desired speed and slows down the closer it is from the end
  • Ease In Out - Non linear interpolation that starts slow and speeds up to desired speed reaching the half way through, slowing down the closer it is from the end
  • Hermite - Non linear interpolation and only different a variation of Ease In Out
  • Bounce In - Non linear interpolation that bounces at start
  • Bounce Out - Non linear interpolation that bounces at the end
  • Bounce In Out - Non linear interpolation that bounces at start and end
  • Quintic In - Quintic version of ease in
  • Quintic Out - Quintic version of ease out
  • Quintic In Out - Quintic version of ease in out
  • Berp - Boing interpolation that overshoots target and comes to a rest after
  • Interpolate - Non linear interpolation from current value to target value based on speed, scaled by distance
  • Interpolate Constant - Linear interpolation from current value to target value based on speed

There's both Float and Vector versions for each of the above methods

Math

  • Bezier Length - Computes the length of a bezier spline
  • Clamp - Clamps a float between min and max (inclusive)
  • Clamp Vector - Clamps all axis of a vector between min and max (inclusive)
  • Delta Time - Helper function to get and manage DeltaTime
  • Find Look At - Calculates Forward and Up vectors to orientate an objects looking at position from another position
  • Nearest Point - Computes the nearest point in a line
  • Pow - Helper function for Expoent Power
  • Pulsate - Pulsates a value between 0 and 1 with desired frequency and offsets
  • Vector Divide - Divides a vector by a float

Template:Stub