January 2023

Skeleton and Animation Script Merge

Talas and Cobble are two different characters who use different 3D models, skeletons, and animation scripts.

To put it simply, a skeleton is a structure of elements that can be put in motion in a 3D model.

MMVS Character Skeleton

This skeleton is animated through animation scripts and some code that will choose which animations should be played, if they should be repeated, at which speed, how to blend them, and so on.

The current problem is that Talas and Cobble don’t use the same skeleton, and this prevents me from using a single animation script for both.

It wasn’t a problem at the beginning since their respective scripts were fairly different. But as time passed and edits were made, especially with v0.4’s additions (such as free movement for Talas), those scripts became very similar.

Now, if I edit either script, I must edit the other as well. This reduces future possibilities, makes the process restrictive and this will only get worse when I add new characters.

Before v0.4.4 Anim Diagram

Cobble And Talas are both anthropomorphics creatures. They have a similar structure, having two arms, two legs, a head, a spine, etc. It is possible to use a single skeleton for those two characters, and thus, a single animation script. It will be up to the script to select what animations should be played depending on the character.

I started by comparing the two skeletons to list out their differences, then created a main skeleton that will be used by every anthropomorphic character in the game. Each character will have small differences, but that won’t be an issue if taken into account by the main skeleton.

Cobble and Talas don’t have the same amount of articulations in their toes. The main skeleton contains only the common, necessary articulations. While Cobble and Talas both have four toes, I chose to add a fifth one on the main skeleton that can be used on characters with five toes.

There is a consequent amount of small differences like those, and I had to edit the characters’ rigs to make them compatible. (as a reminder, a rig is the virtual toolbox that allows a character’s animation. I define a skeleton’s structure from said rig.)

Cobble Rig

The next step was to create a main animation script that would be used by every anthropomorphic character. I will not explain every single step, but I enhanced the current script to more easily separate animations used by Talas and those used by Cobble.

  • I now have a main script that manages all general data, such as calculating a character’s speed
  • I also have a secondary script that manages animation blending by using calculated data (for example, it decides if it must use a running or a walking animation depending on the speed returned by the main script)

There exists multiple versions of the secondary script with different parameters depending on the character. Talas’ walking animation won’t be the same one used by Cobble.

Since v0.4.4 Anim Diagram

I have spent most of this month’s time fusing skeletons and animation scripts. I also edited those skeleton’s bones’ hierarchy, which required to import every in-game animation over.

I have opened 189 blender files, fixed animations then exported those to update 380 raw animation files in Unreal Engine.

 

New Animations

Since fusing skeletons and animations took lots of time, I didn’t have enough left to work on new animations. I will work on those during February.

For the time being, I added new animations so that Talas can lean against a wall.

I also configured controls for the Game Master and the Artificial Intelligence.

Talas can have fun tapping his talons on the ground or rising his toes.

I will continue those animations in Februaty, and add more options and situations.

 

Game Master Conditional control

I have made big edits on the Game Master system through November in order to ease tool configuration and to add more control on the player’s side.

New edits were made to contribute further to this simplification and to avoid having code duplicates. I have also configured a BluePrint that allows to choose the tool’s mode as well as which actions and parameters to use depending on the selected mode.

I still need to do some tweaks and some tests, and then I will only need to update every other Game Master tool.

 

Tooltips and Controls

After completing fixes and translations, I reworked the tooltip system. The player shall see contextual tooltips on his interface, displaying the available controls and contextual information. For the time being, it is mainly used by the Game Master.

Tooltips Controls

These tooltips may also appear in the customization or in-game during micro mode to add informations regarding possible interactions.

Obviously, this isn’t the final render. I will replace the yellow text and arrows later with known icons, such as action buttons, keyboard keys, etc.

Action Buttons

Updating the system itself isn’t that long, but updating every dependencies will be tedious and lenghty.

Thanks for reading!

Patreon - Discord - Twitter