Skip to content

Animation: BlendAction does not honor speed #1303

Closed
@MeFisto94

Description

@MeFisto94

I have to give this a check, chances are I am doing things wrong or there is some documentation about this already, this issue is more of a reminder to me, but:

composer.action("Run").setSpeed(4f);
System.out.println(composer.action("Run").getSpeed()); // 4

BlendAction action = composer.actionBlended("Walking, Running", new LinearBlendSpace(1, 4), "Walk", "Run");
action.getBlendSpace().setValue(4f);

//composer.setCurrentAction("Walking, Running");
composer.setCurrentAction("Run");

This sets the speed of the Running Animation to 4.
If the BlendAction is used, the Running Animation clearly isn't up to speed.

Edit: I already found something: actionBlended calls "makeAction" instead of action, so it does not use the "cached" action for Run but creates a fresh one from the AnimClips.
Personally I have an odd feeling about using Strings as keys and the Controls being giant hash maps, specifically if all the methods return Actions.

It feels like I am supposed to pass them and keep multiple almost identical Actions, but this only works in some scenarios, depending on what the Control has in it's HashMap.

The problem is we probably cannot/shouldn't refactor the whole code, specifically as the old animation system was designed the same way.

Metadata

Metadata

Assignees

No one assigned

    Labels

    To be investigateddefectSomething that is supposed to work, but doesn't. Less severe than a "bug"

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions