This Week in Fyrox #4

Fyrox is a Rust game engine with lots of out-of-box game-ready features and a full-featured editor. Fourth week of November continues the work started three weeks ago - animation system rework and editor improvements.

# Animation Editor Improvements

animation editor

Animation editor got some important improvements. Toolbar (the strip at the top of the editor) now allows you to set animation length, rename, duplicate currently selected animation. The most significant part is that the editor is now have fully working preview functionality. All you need to do to switch to the mode is to click on Preview and use Play/Pause and Stop buttons. Any change made in the scene automatically disables the preview mode and reverts the state of animated nodes to the state that they had before the preview mode.

As you can see, now the editor has a time ruler (the strip right below the toolbar with the bright text values) with a cursor that shows current playback position and allows you to change it in preview mode.

The editor now have an ability to duplicate currently selected animation, this is very useful if your have multiple animation clips "baked" in one animation timeline. To split the animations, you need to create respective amount of copies and set playback range of each copy. Currently, the editor does not allow you to do that automatically, but it will be added in future versions.

# Curve Editor Improvements

Curve editor is one of the most important parts of the animation editor and it has some improvements too. It is now possible to show values for different axes separately (for example, you might want to show only Y axis values). Grid size is now configurable too, as well as zoom limits.

# Other

Some time on this week was also spent on some bug fixes. There was an issue with message UI passing mechanism - some messages were lost (opens new window), because of leftover code that somehow sneaked in latest major (0.28) release of the engine.

# What's next?

The next step will be to battle-test both animation and state machine (ABSM) editors. This will help to understand weak points in the animation system design and fix them. Ergonomics of the new editors will also be tested, it should be comfortable to work with them, they shouldn't slow you down.

Dope sheet is also required for the editor, it will help you to get an overview of your animation and help you to edit multiple values at once.

The animation editor is still does not have an ability to load animations from external files to currently edited animation player. This is important functionality, because in some cases you have a file per animation and to use them in animation blending state machine, they all have to be in the same animation player.

As usual, there is a lot of work left, you want to help with something, please check Issues (opens new window) page of the engine. If you have some decent experience with UI design and want to help to improve editor's visual appearance and ergonomics, don't hesitate and post your UI mockup in the Issues (opens new window) page.

# Full List of Changes in Random Order

  • Clear animation editor state when changing selection.
  • Toolbar for the animation blending state machine editor.
  • Animation preview for the animation editor and the animation blending state machine editors.
  • Precise cloning of scene nodes (previously, some fields were ignored during copying).
  • Ability to enable or disable animation blending state machine (ABSM) scene nodes.
  • Correctly sync state of the animation editor to current selection.
  • Ability to explicitly set animation length (previously length was calculated based on location of key frames)
  • Ability to set animation length and playback speed in the animation editor.
  • Configurable zoom limits for curve editor widget
  • Configurable grid size in the curve editor widget
  • Fixed incorrect ui message passing in the plugins (kudos to @bolshoytoster (opens new window))
  • Time ruler for the animation editor.
  • Send ViewPosition and Zoom messages instead of direct zoom and view position modification in the curve editor widget.
  • Ability to show/hide axes values in the curve editor widget
  • Animation root node is removed - it is not needed anymore, because animation can animated pretty much any node in a scene.
  • Remove unused items from performance statistics
  • Ability to set playback time in the animation editor by a click on time ruler.
  • Ability to set time ruler value by mouse drag.
  • Cursor for the animation editor time ruler.

# Support

If you want to support the development of the project, click one of the links below. Preferable way is to use Boosty (opens new window) - this way the money will be available for the development immediately. Alternatively you can can use Patreon (opens new window), but in this case the money will be on-hold for unknown period of time (details are here (opens new window)).

Also, you can help by fixing one of the "good first issues" (opens new window), adding a desired feature to the engine, or making a contribution to the book (opens new window)