Monkanim ... v2?

While Maud supports animation retargeting, it doesn’t include Monkanim v2 … yet.

2 Likes

@nehon :slight_smile:

You always have a good way to put people into thinking. :slight_smile:

As I work in both Unity mechanim and know detailed about jME, i may show some different parts and features that I may want in both. Currently I guess Unity animation is much more advanced, don’t get me wrong :slight_smile: but let compare the two into topic of API, Abstract level and Tools. If you toward Unity framework (as I read) and you don’t have a full picture yet, this post may have some value (is it?).

UNITY

API:

Old Unity version before 2017 compose of:

  • Animation, Motion, AnimationClip,
  • AnimationState, AnimationStateMachine, Animator ( run-time Component), AnimatorController, Transitions, Trigger,
  • Hooker (Behavior) and a Generic Event system.
  • Skeleton, Avatar, Mask to specify Data and Action to some target Mesh
  • Smart Value driven Graph of State and Value (called Mechanim).
  • Humanoid Structure analizer with Fuzzy. Mechanim have a AAA “Machine learning model data” that created by analysing real human movements!

2017 version has Playable API that a little bit more complex. That is a Graph of Graph of Playable Value!

Implementation:
Animator (Component) take a TreeTimeline (Tracks) by Name of Keyframes of Value or Ref (Curves), and Playback.

StateMachine take a Graph of State and Transitions that input Triggers a fire Events to Behavior allow scripts to hook in.

Tools
They have

  • Timeline Editor for Curves.
  • Retargeting in Editor with Mechanim
  • Exporter/ Importer from main 3d model format and a Hookable Importing API.
  • There are a lot of Commercial Tools for Cinematic, 2D, Tweening purpose.

What I did with Unity

  • 50+ games as developer and later director
  • In-house editors for 2d/3d/Cinemactic/MotionCapture animation

JME
What I did with jME

  • A lot of games and tools
  • In-house editors for 2d/3d/Cinemactic/MotionCapture animation ( I also try to “copy” Unity in some aspects)
  • I’ve tried to rewrite the whole jME Animation system and make my own editor 2d/3d with Component/Blueprint style.

API & Implementation

  • Animation is a Playable Data, AnimationTrack is a Serials of Data, a Timeline (No TreeTimeLine)
  • No StateMachine (Maybe in Monkanim will introduce)
  • AnimationControl is a Updater of Animation
  • Skeleton and Bone, basic Mask are Data, Configuration, Factor of Deformation that a Mesh morph along with SkeletonAnim
  • Basic Event system
  • Cinematic System that play a Curves of Value but no Transistion (Ease)

Critic:

  • A Generic Asset system but lack of Extension point and Hooker or a proper Document Object Model system <= I did extended AssetManger to create a full reloadable AssetSystem that Cache, handle Asset identity, data and Dependency. This is heavy work but a Must to extend animations to wider audiences.
  • Blender importer is good but because the lack of Extension point is hard to extract info
  • AnimationControl is the main problem when I redesign, its not abstract away so can not inject Driver (StateMachine and Trigger) into it. <= If we can inject thing into this or can Exten this abstract is will be much much easier…
  • A Builtin generic Event system <= No big deal…
  • A proper Tool to create Animation/Cinematic <= We all wish for it ( I abandoned mine)
  • Component flavor (use Lemur) or write a mini Composable Data system (use Rx)

So both are good! But Unity is a little bit more open to extend…

Actually my team can extend jME 3.1 to its limit and later modify some core classes (just a few) to make a very complex animations system with even live rigging/ targeting and smart bones, morpher that can be import from CCD like Max or Blender.

I always put my self in you guys shoes before write down any critic (because I my self also can not put a success end to our product of jME editor) but that’s some insight you may find interesting.

1 Like

About the easy to extend characteristic of Unity and to prove my point.

This is Anima2d a tool that use its own Bone Component but can procedure AnimationClip and AnimationStateMachine that imply Unity API.

This is the Animator yaml which basicly text :slight_smile: with some id if the AssetSystem is smart enough

This is the tool that I created to import own 2d animation into Unity (Not spine).

Dont be offend but cheer, this is a conversion from a jME code base and we can use the same characters and animation in a jME project!!!

I will try to open source the whole thing sometime.

3 Likes

Don’t mean to revive an old topic. But I’ve recently been using the monkanim branch to test out some animation features like morph targets, bone animations, etc. I was wondering if there is a way I can copy animations from one model to another similar to the use case I had previously here:

In short I have multiple GLTF files that are 1 animations per file, and I would like to copy from the GLTF files to my main rig. Currently what I’m doing is copying the AnimClip classes to my main rig AnimComposer instance, but when I try to play the copied animation, it doesn’t play. Is there a correct way to copy animations from different files to a main rig?

1 Like

mhh I never tried… something must be wrong, I’ll look into it.

1 Like

Hey nehon,
thank you for the new animation system. It is very cool :slight_smile:

Are there any news? I think some of the tweens are mandatory such as: parallel, sound, effect or maybe a more generic tween? The generic tween can then be used to trigger custom events like applying damage to an entity, playing sounds or something.

I also think a state machine is still necessary to create situations such as: making a combo attack while walking. Am I right?

And is there any way to set the loop mode of the animations?