Interesting animation approach


#1

Simple and easy: https://twitter.com/citizen_no7/status/1058368225136775168


#2

TLDR for people who don’t want to click through to twitter?


#3

It is about ue4 blendspaces. Godot has thrse too. Urho lacks high level animation constructs (and I think most of developers are against them as these add code.and not needed for tetris and.asteroids clones). If somebody needs these I think entire high level animation tree can be copied from Godot and implemented on top of AnimationController and AnimationState.


#4

I think that’s unfair. The engine is capable of much more than that.

I’d also argue that’s a matter of preference. I, personally, don’t find something like this to be cleaner or intuitive:


#5

You mess-up blendspaces with blurprint.


#6

But isn’t blendspaces implemented using blueprints (or a blueprint-style interface)?


#7

@JTippetts1 it’s the overgrowth few keyframes thing just done in UE4’s blendspaces.

If somebody needs these I think entire high level animation tree can be copied from Godot and implemented on top of AnimationController and AnimationState.

That’s bonkers overkill, 1D and 2D blend spaces are trivial. 3D blend states aren’t particularly hard either.

Implementing on-top-of instead of as-part-of animation wouldn’t be a great idea IMO, because of networking and ice-skating client-side.


#8

No, it is implemented in C++ and it uses data-driven approach

They are accessible from blueprint for scripting purposes but not have to.

See https://docs.unrealengine.com/en-us/Engine/Animation/Blendspaces

See https://docs.unrealengine.com/en-US/engine/animation/blendspaces/overview

Basically, 2D blendspace is 2D plane where you can set points, and each point is assigned animation.

Then you can set blendspace to some value, like Vector2(0.5, 0.1) and it will result in blending animations

according to that point. Please use the above links for better explanation. The idea is to use single vector
value for blending 200 animations together. Very good technique, I use it in Godot.
https://godotengine.org/article/godot-gets-new-animation-tree-state-machine


#9

I see. It seems very helpful indeed. I wonder how much performance that costs in the end.


#10

@turbo9 This shouldn’t cost too much resources. EDIT: Meant “should not” :confused:

Urho currently does allow you to set weights for each animation. Doesn’t this allow the creation of “blendspaces” with a few lines of code?


#11

This will not cost much at all.
It is just to calculate weight parameters.
I think if some data-driven way existed in Urho to configure AnimationController and states, it would br trivial to implement this tecnique in Urho editor which would skyrocket usability.


#12

Basically no runtime cost at all for constant case and only tiny time to recalculate weights for runtime modification.


#13

Yeah, I honestly don’t see how this is any different from just setting animation weights.


#14

You can’t set a curve for the blending between weight values in Urho. I think that’s the only difference.


#15

You can’t set a curve for the blending between weight values in Urho. I think that’s the only difference.

Is the Spline class broken?


I suppose there’s no reason the AnimationController couldn’t forward weights and the like to dynamic attributes (not unlike scripts). That exposes value-animation and whatever other madness anyone cooks up that plays with attributes (I have linking / binding in my fork).


#16

There’s also a ton of “well … that’s not so crazy” simple stuff in the recent talk about Doom-2016’s animation.

Nothing really new there (except the duh with trajectories), but it’s explained with pretty outstanding clarity for such a brief talk. Itching to try out the footstep stuff.


#17

Just in case anyone needs more info on how it works: https://www.youtube.com/watch?v=7b9WM8TVdpA