This Week in Fyrox #15

Fyrox is an open-source (opens new window) Rust game engine with lots of out-of-box game-ready features and a full-featured editor. Changes of this week was mostly focused on animation system improvements.

# Blend Space

blend space

Blend space is an animation blending technique which allows you to blend multiple animations into one based on two numeric input parameters (sampling point). Blend space consists of any number of points, located in the value space; these points are triangulated:

blend space 2

To blend animation, you need to pass sampling point in (visualized as a crosshair on the screenshot) and the blend space will calculate weights for three animation poses around the sampling point. See the gif above to get better understanding.

Where this technique is used? In pretty much any relatively complex modern game. It is used mainly to blend locomotion animations based on two parameters: speed and direction. For example, on the X axis you can have direction angle and on Y axis - speed. Then you put desired animations on the blend space, and it will blend everything accordingly to speed and direction: if a character moves fast, then running animation will prevail, if it needs to run left - direction will be -1 and running left animation will prevail and so on. It is a very powerful and flexible technique, that helps achieving naturally looking animations on most conditions.

# Book Improvements

The book is slowly, but surely getting improvements. 7 sections were proofread and improved with more info.

# Other

It is now possible to show/hide debug shapes (for lights, cameras, etc.) in the editor.

# Full List of Changes in Random Order

  • Added blend space.
  • Added blend space editor in the ABSM editor.
  • Ability to enable/disable debug geometry in the editor.
  • Various book improvements.
  • Implement Reflect for RefCell + Rc<RefCell>