Repository navigation
Home

The Animation Actor System is a plugin designed to help animators add non-persistent visual props to their animations.
A sandwich, a pocket watch, a flask, or a knife are all examples of where this plugin might be useful. Just add an AnimNotifyState to your animation, tell it which mesh your character should hold, and which bone to attach it to, and boom! there it is.
This wiki is documenting version 2 of the plugin.
Source code is in the repo.
Packaged versions are in the Releases.
Allows you to spawn an actor of an arbitrary subclass of AActor.
Allows you to spawn a SkeletalMeshActor with the specified SkeletalMesh. The Skeletal mesh has 3 available Animation Modes it can be set to:
-
PoseLeader: Uses the mesh that this NotifyState fires on as a PoseLeader component for the spawned mesh. -
AnimSequence: Assigns an Animation Sequence to the spawned mesh. -
AnimBlueprint: Assigns an AnimationBlueprint to the spawned mesh.
Allows you to spawn a StaticMeshActor with the specified StaticMesh. Optionally you can override the collission profile of the mesh.
This plugin registers a new entry in the "Plugins" section of the Project settings. Since this plugin treats all references as soft references by default, the classes of the actors that will be spawned will only be loaded when the corresponding NotifyState is fired for the first time. By default, they will be loaded asynchronously, meaning that if the NotifyState is only active for a very short time, and the actor class is a Blueprint asset of considerable size, it might not appear the first time it fires, since it is not yet loaded. If this is the case for you, consider migrating the class to C++. If that is not an option, you can modify the LoadingBehaviour here in the project settings.
Version 1 of this plugin was one of my first big dives into C++. Since then it has been years, and I have learned a lot, so moving on to version 2 felt quite natural. In the spirit of V1 being a big learning experience for me, I tried to follow everything I have learned since its release and improved pretty much every aspect of this plugin. And while I did this because I wanted to see what I was able to do now, and to have a direct comparison of my growth, I also decided to make it publicly available here on GitHub. Maybe you'll have use for it's functionality, and that's great. But I also designed it in a way that should hopefully be a good introduction into a lot of the systems that Unreal Engine provides and how to create systems that tie into them. So as long as you have at least some basic knowledge of C++ and are able to compile a project in UE that contains this plugin, I hope you might be able to maybe even learn a bit from this plugin.
Feel free to play around with it, dissect it, and see how its different parts interact.
This version of the plugin is V2. If you are coming here from V1, know that V2 is not backwards compatible, and that it is in fact be in conflict with V1 in several regards. It is a complete re-write from the ground up, with many improvements to functionality and UX. So if you are using V1 already, it is probably safer to stay on that. If you start a new project and want to use the Animation Actor System, I highly encourage you start with the latest version of V2.
The Animation Actor System is created and maintained by Aaron Kemner.