Should I be creating C++ Animations Systems

My current project is completely handled through c++ classes.

I am starting to get into the animations handling part and I was wondering is there a way I can cleanly handle animation states in the C++ side or should I be creating complex animation blueprints and just linking variables on the c++ side?

I haven’t used a single blueprint yet so i was just wondering is having all c++ and all of a sudden the animations for a skeletal mesh handled in a blueprint the proper way?

I don’t want to start mixing if I don’t have to.
I’m looking for the “this is how the pro would handle it” sort of path. I know i can mix both I know i can just do a whole game with blue prints but I love my c++. So just trying to see how creating a full c++ project works.

And if the answer for a full c++ project is make the animation state things in c++ then is there any good link references on how to be creating these states and link behaviors in c++ for UE4.

You will need to create an animation blueprint.

This will allow you to create complex state machine which is what you want if you wish to build a robust animation system for your characters.

If you want to keep some control on the C++ side, you can create your own AnimationInstance class that your Anim Blueprint will inherit from.

Whatever you decide, you first need to familiarize yourself with the animation blueprint (and really, blueprint in general!) so here is the link to the documentation: Animation Blueprints | Unreal Engine Documentation

I know it is tempting to keep everything in C++, I have this reflex too, but Blueprint are useful and should be used, even if they are only handling events and trivial manipulation. Learn about them, force yourself to use them even, and then decide where they are best used in your game.

I went to a talk at one point and there was this Epic Game guy (forgot his name) but he was basically saying every gameplay classes (or a bunch of them) all add their blueprint counterpart. For example, MyGameNPCCharacterBase, was his c++ class, MyGameNPCCharacter was the blueprint created inheriting from MyGameNPCCharacterBase. By doing that, you basically allow programmers to add native code functionalities that needs the speed, and the designer using your class can add a simple functionnality by himself in the blueprint version.

Hope this helps!