Nravo Kids Development – #2 SmoothMoves (2D Animations)

And here goes one more article about NravoKids development. In this article I will describe my experience with SmoothMoves plugin for Unity3d which is used to create bone animations. So this article is kind of an another asset review. I will try to describe its benefits and drawbacks. To be short the asset is fantastic but has some moments that might have been a little bit better. I will also tell about some tips to keep it mind while using the framework.

 

So below is a brief review of the asset and a little of my exprience using it.

 

Asset #2: SmoothMoves for Unity3D (75$)

Purpose : 2D Bone Animations

Developer Story. Our artist currently works in flash and there are lots of complex skeletal 2D animations in our project so we had to figure out how he could animate characters and not interfere with other assets. So after choosing between SmoothMoves and Puppet2D. Both assets are quite popular but after reading the reviews SmoothMoves slightly overweighted. We have also considered using UniSwf plugin but decided to use some native Unity plugin. 

NOTE

I will not touch touch the subject of performance, draw calls and memory but usability and convenience of usage.

So when do you need this asset? – This tool is great if you have characters with skeletal animations or you have complex bone animations in your project.

 

What is great about SmoothMoves? Almost everything! I will tell a few thing I liked the most. The complete list of features is available on SmoothMoves home page.

 

Animation data and atlas data is stored as a Unity .asset file which makes it easy for artist to edit and commit the file not touching anything else. Also keeping all the SmoothMoves files in a separate folder makes it really easy to find anything. To get the animation working in your scene just add BoneAnimationcomponent to gameObject, set animation (Data field) and build it. It is as simple as that. After this you refer to your BoneAnimationthe same as you did with Animationcomponent.

 

SmoothMoves inspector

TIP

When using SmoothMoves I personally recommend creating a SmoothMoves folder inside your project and the following subfolders:
  • Animations – store you animations here
  • Atlases – store your atlases here, each in its own subfolder with material and texture (NOTE: SmoothMoves atlas keeps references to its source textures, so source files must be kept in the project, unlike NGUI where you can remove source sprites after building the atlas). Also do not forget to set material properties and texture settings for your atlas that work best for you to improve performance or improve quality.
  • Prefabs – store your animation and sprite prefabs here. There is a limitation that BoneAnimation component cannot be in a prefab’s child (Unity does not give you access to prefabs children in editor) so if you need nesting them you will have to instantiate them at runtime.
  • Raw – store your source images here. NOTE: Make sure you use the texture settings of raw sprites which work the best for you (Filtering, Compression etc.)
SmoothMoves folder structure in my project.

SmoothMoves folder structure in my project.

Support and documentation are exceptionally good. Truth to be told it is one of the best documented assets on the Asset Store I’ve seen so far. FAQ and online PDF Documentation can help you out almost all the time. People also claim that developer support is also great.

 

Playmaker Integration! One of the reasons I’ve decided to use SM is that is has all the required Playmaker actions ready to use. Just download actions and you are ready to go.

Playmaker Integration

Playmaker Integration

 

Very intuitive animation editor. Will not go into detail here. Although it freezes for some time when you begin editing it is very intuitive and easy to use.

SM Animation Editor Window

SM Animation Editor Window

 

A grain of salt. Although the framework is very good and high quality there are some not very pleasant moments about it. I am aware that some drawbacks that I am going to tell about may be due to technical limitations or that the framework supports Unity.

 

  • The most annoying bug (don’t know whether it’s Unity or SmoothMoves) is that when you add a new texture to your atlas and press “Rebuild all Animations” button, Sprite components in the scene are not updated and show wrong part of the atlas. (Actually they are updated, but you have to select it in Hierarchy view for Sprite to be updated). So I needed to manually click through all the Sprite prefabs in each scene each time I updated the atlas. Maybe I have missed something but the fact is its very annoying.

Sprites after rebuilding all animations

Sprites after rebuilding all animations

Sprites after rebuilding all animations fixed (Don't pay attention to depth in scene view)

Sprites after rebuilding all animations fixed (Don’t pay attention to depth in scene view)

  • When the projects gets really large rebuilding all animations takes quite a long time (When atlas is updated you have to rebuild your animations).
  • When there are several Sprite prefabs in the scene and you change color for one of them, the other may also change color as well, so I had to make a separate prefabs for each color of the sprite. The thing I’ve learnt is to avoid using Spritecomponent.
  • Depth of BoneAnimation objects is adjusted by Z axis value which is not very convenient.

Conclusion. The asset is definitely worth its price. I can’t imagine how much time I would have spent if making the project without it. Even though it has some minor glitches, if you are into creating a game with lots of skeletal 2D animations you might consider using this one.