Interpolating a blend space.

I have a blend space set up with direction changes that reacts to keyboard direction changes and it all works fine except the blend does not interpolate with direction changes.

The reason for this is because I know that the input is a fix value bound to changes in direction and I’m thinking that buy using Finterp I could interpolate the values into the blend space.

Where I’m stalled is to do so I’ll have to evaluate that a direction change did occur, which requires comparing a number of values. And it seems a bit messy as you can never really depend on a given state being true or not, IE a change in direction did occur, and the value change will occur from one max direction to another.

The plan in the end is to put all of the direction weighting into the blend space but with all the things that needs to be done for something that seem so simple I can’t help but think there is a better way.

Any suggestions would be of help.

Is this a good direction or is there a better alternative?

Can you post a picture of your blendspace? Is it 2D or 1D?

I can KIND OF visualize what you’re aiming to accomplish (using special animations for rotating/changing facing direction, right?) but I can’t really figure out exactly what implementation you’re going for.

This is already supported within the blendspace asset.
Within your blendspace details on the bottom left corner see Sample Interpolation > Target Weight Interpolation.
Unless you mean something else.

I think you should post a video or and mark when your blendspace didn’t work as intended.
It is pretty hard for sure, say if you have to top down game and want a character to turn to it’s left/back and run, you’d need a series of animation(or even montages) setup so you can pull this off.
(and they have to be pretty much keyframe perfect so that you don’t have jerky animation when blend back to regular normal running forward animation.)

Sure here it is.

Oh, so it’s literally just smoothing the movement of the blendspace current target based on inputs? Just use the Target Interpolation settings inside the Blendspace, that will force the node to lerp to whatever the target inputs specify with no extra work BP-side.

I was thinking you were trying to blend to specific “direction changed” anims, not just lerping around the blendspace.

Well I gave that a go when neo suggested it, my apologies for not mentioning this, but it seems to be rather limited to single value changes.

The longer story is I’m setting up the animation control from a lead animator position, and of course forgot to mention we will be using root motion so the project in hand is not so much about the blending but about timing and adding weight to the movement that fights against linear interpolation. The benefit is once it’s all working through a black box so to speak the animators on the team will only have to deal with additions to the blend space.

More or less I would like to driver the blend space using a procedural input that will account for and included the shift into a different direction. Granted I can add the shift the the graft but it just seems slicker to have it all done in one place.

Can I assume though that the Interpolation speed can be adjusted from with in a blue print and if so what should I be looking for? (so many widgets and so little time)

If so then that would be the widget I’m looking for :wink:

P.S.P.S.

Forgot to add what I want to do is to interpolate from one end of the blend space to the other (-1 to 1) where the sample will interpolated from what is already at 1 into what is already at – 1.

If for example I had the player waving at 0-0 then I want to move through the blend space from running right > wave > running left. Is there is a switch that I’m missing?

P.S. thanks for the help

Input interpolation and sample interpolation variously control this.

For more control than that, I’d go with your original plan of using FInterpTo nodes. Every tick just store the “last desired value” as a variable and use that to feed the “CurrentPosition” node on it.

What are your Character BP acceleration & braking values set to? In your video it looks like they’re set to zero.

Would it be possible to have a look at your anim graph? to see how all of this take place. i tried real hard to understand how this flow graph thing is worcking, but from a level designer artist point of view its all seems really complicated XD