How to batch Playable graph.Evaluate() from multiple gameObjects?

As described in an old forum - graph.Evalute is a single threaded call ( awaited for multiple animation jobs and graph update for a single gameObject).
We need to batch multiple of those graphs and evaluate them using all available cores.

Is it possible or do we need to completely redesign from scratch all animation and start all over again? ( e.g. DOTS Animation Jobs + custom system and components to apply all the weights\time\animation clip per node onto root gameObject)

It is very frustrating when Unity can’t even see the obvious use cases…

if anybody is still interested - you simply switch

Graph.SetTimeUpdateMode( DirectorUpdateMode.UnscaledGameTime );

and in your Update method where you are using actual Evaluate(delta):

_animator.speed = deltaTime / Time.unscaledDeltaTime;


This is not exactly evaluated as you wish, as PlayableDirector will schedule and batch all of the graphs somewhere from update to LateUpdate - only once per frame.