Setting a skeleton to an animation frame

Recently started playing around with animations. While the Blender → Unreal pipeline has some gotchas (make sure you don’t scale components in Blender prior to mesh joining!) it was very easy to get simple skinned meshes into unreal.

But I can’t work out how to set a skeleton frozen on a single frame in blueprints. The problem is something like an aimpose and it looks like its fairly simple to do far more complex blends with the system but I want to drive an animation to a specific frame, either lerped over time or absolutely.

My assumption is I’m missing the obvious!

Example: Door opening, animated door, want to control the position 0->1 from blueprint or C++, position is set by animation, for whatever reason. How do I control the animation position applied to the door to control the position.

I’m not looking for solutions that would do this via transforming a doors location etc (perhaps its a rolling garage door), more the general issue of posing a skeleton at frame X on an animation (or %, normalized offset etc).

Oh - and as a caveat I may want to push this pose into blends with other animations in the animation blueprint, or a blendspace.

Perhaps the solution, perhaps not, but I couldn’t resist…

[Going to need a montage][1]

[1]:

Found it… knew there had to be a simple solution, its just hidden.

  1. Create animation blueprint
  2. Set your skeletal component to use the animation blueprint
  3. Add a node to play your animation
  4. Right click on said node and “convert to single frame animation”. (<- this is the bit I didn’t see until today)
  5. Create a variable to input the frame offset

Now I just have to work out how to set that variable via the main blueprint / from C++ and how to normalize it relative to the animation length so I can just use 0->1, but it seems like this will be more normal blueprint programming.

For completeness, as it took a little elbow grease to get the variable from my actor blueprint to my animation blueprint here’s a solution that seems to work:

In the animation blueprint:

  1. Get component that owns the anim instance
  2. Get actor that owns the component
  3. Cast the actor to the correct blueprint type
  4. Get the variable

I’m not sure about update order issues, may need to do this in a specific event handler in the animation blueprint and cache the value somewhere but the communication sees to work.

Thank god for this comment. I was really going through all the Anim BP nodes until… I realized from this comment you need to right click a Play anim node to find this option…

Hello, did you find a solution (maybe a animBP solution) which allows a normalized 0 to 1 input for or instead of “explicit time” for the “Sequence Evaluator” (aka single frame anim)?
I would prefer to have it normalized to make more systemic graphs than specific to the timing of a single animation.

Thank you! :slight_smile: