[RELEASED] Animation Preview Pro

Overview

Animation Preview Pro for Unity allows you to get an idea about how a character looks like in your scene in different poses. You get an overview of all the animations available for a character or you could just mix a specific character with animations of another asset.

8318355--1091706--app.jpg

Animation Preview Pro

Animation Preview vs Animation Preview Pro

The very positive feedback Animation Preview had was an impact which I honestly didn’t expect. Thank you so very much for your support! After the release you guys had comments and feedback which was really good. So I listend and implemented more features.

The Pro version has these additional requested popular features:

  • Frame Step: navigate the animation clips frame by frame
  • Editor Window: the interaction is done via dialog instead of a monobehaviour
  • Auto Assignment: optionally the current selection is used if it has an animator; it’s all about saving clicks, getting comfort in using the asset, being quick and saving time
  • Filter by name pattern

Why Pro and not an Upgrade?

Animation Preview is based on a Monobehaviour while Animation Preview Pro is based on a ScriptableObject and used in a dedicated EditorWindow. It would have made everything too complicated to maintain. And I couldn’t just change the underlying behaviour, it would have broken existing projects. So a dedicated version was the obviously better choice.

Examples

1 Like

Where to go from here?

Well, since Animation Preview was featured by Code Monkey in

TOP 10 NEW Systems and Tools JULY 2022! | Unity Asset Store

and given the very good sales numbers, Animation Preview Pro is something you guys are interested in. I’ll focus on that :slight_smile:

I just tried the new filter / search feature in Animation Preview Pro. This will make my life easier. Really well done! Great asset! Thank you.

1 Like

Hi Rowlan!
If we bought the pro, we don’t have the standard mono version included too ? (so better for now to buy the standard version no ?)

Also you said in limitations :
“Playing animations that contain eg blends and logic isn’t in the scope of Animation Preview.”

What do you mean by that?
Does it support AnimationEvents ? (It would be the first use case for me here)

Hi Dist0, since you brought it up I just now added an option that you can get Animation Preview for free when you have Animation Preview Pro. Not sure how long I’ll keep that. Personally I’d go Pro and stick with that.It’s just so much more convenient. Unfortunately I can’t backport that to the standard version, hence the decision to make a new asset of it.

No, animation events aren’t supported. That would be way too complicated and end up in doing what Unity does when you enter play mode. Animation Preview takes the animation as it is put into the Animator Controller from eg an fbx file and plays that a single selected animation of it.

I made another video, I thought I’d combine it with Photo Session, an asset I just released:

Here’s the screenshot I took in 4K, directly from inside the editor:

Ah Thanks! I’ve bought them all :wink:

Wait, why not using a simple SendMessage for that ?

The deal is, generally we need to use AnimationEvents mostly for adding synchronized sound to animations (like footsteps sync with limbs, a crying sync with a facial anim,etc…).
But that’s a real pain after for testing the result:
Need to add this animation on a empty animator, add the character on the map, enter the play mode (and wait for that), and only after seeing if the result is ok * NumberOfAnimations * NumberOfCharacters … :face_with_spiral_eyes:

So AnimationPreview would be the Ideal solution for that, but only if it can just fire a method when a event key is reached…
I’ve not tested, but something like that should do the trick: SendMessage(“CallbackNameFromEventKey”, TheValueFromEventKey);

I really like your products generally, but without that it’s a little useless for me (I wouldn’t like to be rough, but the asset name not really match up on what I would like to do with an “Animation Preview PRO” sorry :eyes:)
IE we need Animation preview (with their binded sounds) without having to make an implementation.

This is not what I designed Animation Preview for. It’s for previewing animations in the editor without having to enter play mode.

Example: Malbers has 100+ animations in his assets. I’d like to see all of them quickly in order to make decisions, without having to waste time clicking around, setting things up.

Yes of course, I wanna said, normally without a third party asset for helping us.

@Rowlan Photo Session looks really cool and useful ! Do you know if it is compatible with Deckard renderer (bypassing the DOF of course). In my opinion it should but I your input would be valuable on this. Thanks!

I am buying it now!

I didn’t test it with Deckard Renderer. It’s tricky enough to get it right with all the render pipeline versions and subversions (HDRP is at 15 now!)

But if it doesn’t work the way you want it to, I have no problem confirming to Unity to give you a refund.

@Rowlan Don’t worry if it does not work with deckard. I will use it without it. Is that possible that Photo Session capture only in play mode? And not in scene view…

You can capture in both play and edit mode

I took a look at sending animation events. It’s quite possible to do this with Unity means. However Unity is limited. It doesn’t seem to be possible to play an unselected particle system gameobject. And what should happen when I send an event? Everyones assets must be prepared for that. It’s something I can never get right to satisfy everyone.

So here’s a script that you can attach to your clip in the animator controller as state machine behaviour:

/// <summary>
/// Example about using a state machine event on an animator.
///
/// Add this behaviour to the animation clip of your preference in your animator.
/// </summary>
public class AnimatorStateEventReceiver : StateMachineBehaviour
{
    override public void OnStateEnter(Animator animator, AnimatorStateInfo stateInfo, int layerIndex)
    {
        PrintEvent("OnStateEnter", animator, stateInfo, layerIndex);
    }
    override public void OnStateExit(Animator animator, AnimatorStateInfo stateInfo, int layerIndex)
    {
        PrintEvent("OnStateExit", animator, stateInfo, layerIndex);
    }
    override public void OnStateUpdate(Animator animator, AnimatorStateInfo stateInfo, int layerIndex)
    {
        PrintEvent("OnStateUpdate", animator, stateInfo, layerIndex);
    }
    override public void OnStateMove(Animator animator, AnimatorStateInfo stateInfo, int layerIndex)
    {
        PrintEvent("OnStateMove", animator, stateInfo, layerIndex);
    }
    override public void OnStateIK(Animator animator, AnimatorStateInfo stateInfo, int layerIndex)
    {
        PrintEvent("OnStateIK", animator, stateInfo, layerIndex);
    }

    public void PrintEvent(string eventName, Animator animator, AnimatorStateInfo stateInfo, int layerIndex)
    {
        AnimatorClipInfo[] animationClip = animator.GetCurrentAnimatorClipInfo(0);

        if (animationClip.Length == 0)
            return;

        int frameCount = (int)(animationClip[0].clip.length * animationClip[0].clip.frameRate);
        int currentFrameInClip = (int)(stateInfo.normalizedTime * (animationClip[0].clip.length * animationClip[0].clip.frameRate));

        currentFrameInClip = Mathf.Clamp(currentFrameInClip, 0, frameCount);

        Debug.Log("Animator State Event: " + eventName + ", frame " + currentFrameInClip + " / " + frameCount);

    }
}

This will invoke the logging event as an example, even in frame stepping mode. Basically you could check the current frame in the clip, compare it with a public frame number variable in that class and process as you please at your convenience by implementing your desired functionality there.

oh that’s really nice, but I think that you maybe missunderstood what I’m was talking about, just those little events like here : Unity - Manual: Use Animation Events

You enter a method name in Function field and after you need a Script with that function on your gameobject and magic happens… (The animation will send this event when looping)

That’s why for simplicity I think about a SendMessage with the Function name and value… So we don’t need to register to anything, it will only work if a script with the method is present (with the good signature off course…)

Animation Preview comes with full source by the way. If it’s just that, feel free to extend it. I’d be happy to make an API if necessary :slight_smile:

Hi,
You are creating the best and very useful assets for me.
I am glad you cover also Photo Session here.
How to create the Volume for the Depth of Field effect in Photo Station.
In the included documentation it is supposed to be a “Create” button for it,
but I could not find it - see below.
I am using URP with Unity 2021.3.6f1.
Thanks in advance.

Could you please explain, how to capture the screen with Animation Preview Pro in the Unity Editor
without entering Play mode and using Photo Session.
I have tried to press F12 or click the Capture Screenshot button, but with no result…
Thanks in advance.

Never mind.
One need to be in Game view to get a screenshot from Photo Session.

I see, that you use Scene Camera Theft to synchronize Scene and Game view.
Where did you find it?

That Great. Thanks!

1 Like