All Mods Resource Packs Data Packs Shaders Modpacks Plugins
Simple Animator

Simple Animator

by LouisQuepierts • Downloads: 0 • Followers: 0
Description
Gallery
Changelog
Versions

Feature

SimpleAnimator is a simple animation engine that allows players to use BedrockEdition animations to play back player animations.

When playing online, the client synchronizes the animations loaded by the server.

Animation

Animations can be made via BlockBench, and some special Booleans can be manually added after the animation is exported if necessary:

  • override: Specifies whether an animation overrides an existing action and camera orientation. The default value is true. If the value is false, the animation works in addition mode.
  • movable: Whether a player can be moved while playing an animation. The default is false.
  • abortable: Whether the animation can be aborted. The default value is true. If it is false, the animation cannot be interrupted by player action (not recommended if the animation is in loop mode).

In addition, BlockBench project files in the corresponding format can be downloaded to GitHub to facilitate animation.

The mod provides two ways to add animations:
Datapack:
For mod developers, you can choose to put animations into data/[modid]/animations.
The API and more details will be added in a later version of the documentation.
Folder:
For most players, animations can be loaded by dropping the files into [game version path]/animations.

Interaction

Interaction is a new feature added after mod version 1.1.0 that allows two players to interact and play animations(May be misaligned in the case of network instability).
Interaction file import is similar to normal animation, but you need to add subanimations to the animation file: invite, waiting, cancel(optional).
In addition, the animated bones need to include the bones with the requester and receiver prefixes. The specific format can be viewed by Starting-Kit.interact.bbmodel in GitHub.

Commands

/animate play <animation>
/animate stop
/interact invite <player> <interaction>
/interact accept <player>

All Versions

+ Add Version
Name Game version Platforms Published Downloads Actions
1.21.4
Fabric
last yr. 1
1.21.4
Neoforge
last yr. 1
1.21.x
Fabric
last yr. 1
1.21.x
Neoforge
last yr. 1
1.21.x
Fabric
last yr. 1
1.21.x
Neoforge
last yr. 1
1.21.x
Fabric
last yr. 1
1.21.x
Neoforge
last yr. 1
1.21.x
Fabric
last yr. 1
1.21.x
Neoforge
last yr. 1
1.21.x
Fabric
last yr. 1
1.21.x
Neoforge
last yr. 1
1.21.x
Fabric
last yr. 1
1.21.x
Neoforge
last yr. 1
1.21.x
Fabric
last yr. 1
1.21.x
Neoforge
last yr. 1
1.21.x
Fabric
last yr. 1
1.21.x
Neoforge
last yr. 1
1.21.x
Fabric
last yr. 1
1.21.x
Neoforge
last yr. 1
1.21.x
Fabric
last yr. 1
1.21.x
Neoforge
last yr. 1
1.21.x
Fabric
last yr. 1
1.21.x
Neoforge
last yr. 1
1.21.x
Fabric
last yr. 1
1.21.x
Neoforge
last yr. 1
1.20.x
Fabric
last yr. 1
1.20.x
Forge
last yr. 1
1.20.1
Forge
last yr. 1
1.20.1
Forge
last yr. 1
supported 1.21.4
supported 1.21.4
1.21.2 supported
1.21.2 supported
Added missing Float3 network packet
Added missing network packet for Float3
# Bug Fix
Cannot load float2 and float3 to variable keyframes

# Added
Field animator in AnimatorEvent and ClientAnimatorStateEvent
# Bug Fix
Cannot load float2 and float3 to variable keyframes

# Added
Field animator in AnimatorEvent and ClientAnimatorStateEvent
# Added
Pre and Post frames.

# Fixed Bug
Warming during load a bone with only one frame.
# Added
Pre and Post frames.

# Fixed Bug
Warming during load a bone with only one frame.
# Bug Fix
Wrong rotation and position for cape.

# Experimental Feature
Variable keyframes have been slightly updated with types, although it still needs to be used with bones.
You can name a BlockBench Group(Bone) with format var_type(optional)_name_...
Available type names are: float, float2, float3, int, int2, int3, bool, bool2, bool3, vec2, vec3.
example: var_float3_myPosition_acting_int2_myScreenPos
# Bug Fix
Wrong rotation and position for cape.

# Experimental Feature
Variable keyframes have been slightly updated with types, although it still needs to be used with bones.
You can name a BlockBench Group(Bone) with format var_type(optional)_name_...
Available type names are: float, float2, float3, int, int2, int3, bool, bool2, bool3, vec2, vec3.
example: var_float3_myPosition_acting_int2_myScreenPos
# Bug Fix
NullPointerException
# Bug Fix
NullPointerException
# Small Update and Feature Preview
  • This update mostly for developers.**
## Animation Variables
### Animation side
Animation supports keyframes for variables, but since the corresponding animation tool or BlockBench plugin has not yet been developed, the current method of adding animation variables is as follows:
1. Add an empty group in BlockBench
2. Name it with format: var_name1_name2_name3 (underlines are separators, maximum of 3 variables per group)
3. Goto “Animate” and add keyframes for them.

The variable uses the first value of Position, Rotation, Scale.

### Program side
Variables only store in client, you can get a variable by using: ClientAnimator.getVariable(name)
If the running animation does not contain this variable, this function returns an unchangeable VariableHolder with a value of 0.

## Quasi Inverse Kinematics
This is an experimental feature, and only in client side.
This feature provides three built-in variables: ikLeftArm, ikRightArm, ikHead, you can add it in animations to control IK weights.
The IK target can only be set by programs, using: ClientAnimator.setIkTarget(bone, pos).

# Small Update and Feature Preview
  • This update mostly for developers.**
## Animation Variables
### Animation side
Animation supports keyframes for variables, but since the corresponding animation tool or BlockBench plugin has not yet been developed, the current method of adding animation variables is as follows:
1. Add an empty group in BlockBench
2. Name it with format: var_name1_name2_name3 (underlines are separators, maximum of 3 variables per group)
3. Goto “Animate” and add keyframes for them.

The variable uses the first value of Position, Rotation, Scale.

### Program side
Variables only store in client, you can get a variable by using: ClientAnimator.getVariable(name)
If the running animation does not contain this variable, this function returns an unchangeable VariableHolder with a value of 0.

## Quasi Inverse Kinematics
This is an experimental feature, and only in client side.
This feature provides three built-in variables: ikLeftArm, ikRightArm, ikHead, you can add it in animations to control IK weights.
The IK target can only be set by programs, using: ClientAnimator.setIkTarget(bone, pos).

# Bug Fix
Animations made with ModifiedRig result in incorrect translation/rotation of the Layers render.
Wrong pivoting point for model part "body" in Modified-Starting-Kits.
# Bug Fix
Animations made with ModifiedRig result in incorrect translation/rotation of the Layers render.
Wrong pivoting point for model part "body" in Modified-Starting-Kits.
# Update!
## Something new?
### Animation Format
  • unlock Option**
There's some little changes on animation files.
Option "override" is replaced with "unlock", for animations, all model part will use override mode as the defualt, use "unlock" option can change specific model part to add mode.
Example: { "unlock": ["HEAD", "LEFT_ARM", "RIGHT_ARM" ] }
For this option, the optional values are HEAD, BODY, LEFT_ARM, RIGH_ARM, LEFT_LEG, RIGHT_LEG.

  • useVanillaRig Option**
Animations now support the use of a more intuitive RigMode, you can find the example BlockBench projects in attachments.
For temporary compatibility with older versions of animation files, the useVanillaRig option defaults to true.
However, this will soon be changed to false in a future release, requiring users/developers to enable it themselves.
However, in the current version, if you need to enable the new RidMode, please add "useVanillaRig" : false to the animation file.

### Security Checks
When inviting others to interact or finding their way in front of the person who sent the invitation, the area in front of them is subject to the simplest security checks, avoid initiating interactions at a point where you can't stand.

### Event System
This feature is for developers:
The new version adds an event system for when you need to execute some code on specific interactions/animations at specific moments.
This system almost same as Forge/Fabric API's event system, use SimpleAnimator.EVENT_BUS.addListener(event, listener) to add a listener.
API docs may not be released that soon, but it won't be delayed for long.
# Update!
## Something new?
### Animation Format
  • unlock Option**
There's some little changes on animation files.
Option "override" is replaced with "unlock", for animations, all model part will use override mode as the defualt, use "unlock" option can change specific model part to add mode.
Example: { "unlock": ["HEAD", "LEFT_ARM", "RIGHT_ARM" ] }
For this option, the optional values are HEAD, BODY, LEFT_ARM, RIGH_ARM, LEFT_LEG, RIGHT_LEG.

  • useVanillaRig Option**
Animations now support the use of a more intuitive RigMode, you can find the example BlockBench projects in attachments.
For temporary compatibility with older versions of animation files, the useVanillaRig option defaults to true.
However, this will soon be changed to false in a future release, requiring users/developers to enable it themselves.
However, in the current version, if you need to enable the new RidMode, please add "useVanillaRig" : false to the animation file.

### Security Checks
When inviting others to interact or finding their way in front of the person who sent the invitation, the area in front of them is subject to the simplest security checks, avoid initiating interactions at a point where you can't stand.

### Event System
This feature is for developers:
The new version adds an event system for when you need to execute some code on specific interactions/animations at specific moments.
This system almost same as Forge/Fabric API's event system, use SimpleAnimator.EVENT_BUS.addListener(event, listener) to add a listener.
API docs may not be released that soon, but it won't be delayed for long.
supported minecraft 1.21
supported neoforge in 1.21
# An Exciting Update!
## Something new here?
### Fabric Version
SimpleAnimator is now available on Fabirc!
WaHoo!
### Interactions
Since this version, SimpleAnimator will include a set of network packages and mechanisms on Interaction.
Interaction is a set of animations that interact between two players, it is also imported using the bedrock format animation file, but it may be slightly different from normal animations.
### Commands
In this version, commands for interactions have been added:
/interact invite <player> <interaction>
/interact accept <player>

## Fixed Bugs
  • Client cannot run due to key frame interpolation resulting in NaN
  • Strange synchronization problem
# An Exciting Update!
## Something new here?
### Interactions
Since this version, SimpleAnimator will include a set of network packages and mechanisms on Interaction.
Interaction is a set of animations that interact between two players, it is also imported using the bedrock format animation file, but it may be slightly different from normal animations.
### Commands
In this version, commands for interactions have been added:
/interact invite <player> <interaction>
/interact accept <player>

## Fixed Bugs
  • Client cannot run due to key frame interpolation resulting in NaN
  • Strange synchronization problem
[1.0.2] 1.0.2 by LouisQuepierts on Aug 01, 2024
Download
# Quick Fix!
Fix bugs:
  • cause forge server cannot start.
  • camera cannot animate during holding item in first-person
[1.0-SNAPSHOT] 1.0-SNAPSHOT by LouisQuepierts on Aug 01, 2024
Download
## Something new?
### Commands
Just like the name of the command, you can play or stop the animation of the player executing the command:
  • animate play [your_animation]
  • animate stop
## Animation
You can use BlockBench to create your animation. If you have no idea with how to get a player model, you can download the BlockBench project right here.
## Else
This mod support ReplayMod, which means all animation can be record by ReplayMod!
The mod is still in development and there may be various bugs :(
Simple Animator Icon
Download Simple Animator
Select game version
Select platform