Upcoming Animator/WorldModel Behavior Change

Hello developers,

There is an upcoming change to Animators that may impact your experiences.

Animators search all of its parent’s descendants for animatable joints to update, unless that descendant has it’s own Humanoid, AnimationController, or Animator.

Next Thursday, August 26, Animators will only find and step animated joints within their WorldModel. It will NOT search for animated joints inside other WorldModels, you will instead need a separate Animator for each WorldModel.

For example, if you have a WorldModel in your animated avatar, which has joints to animate inside, those will no longer be stepped after this change - you would need to put a separate Animator inside that WorldModel to animate those joints.

Typically, each thing you want to animate is given its own Animator, so we suspect no one is doing this (at least not intentionally). If you are, please let us know if you’ll be able to update your experiences or share why this use case is important to you!

146 Likes

This topic was automatically opened after 10 minutes.

Could we get some insight as to why this change is being made? Additionally, it’s important to know if this behaviour will also apply to regular Models in the future or if it’ll continue to work as it does now.

My team’s experience doesn’t animate in ViewportFrames but we rely on this behaviour for regular Models very extensively. Specifically, running animations on the Humanoid that also act on Models parented to the character where that Humanoid is.

It’s not exactly been apparent that having separate Animators for each animated model is the intended method of animating multiple models as well, we’ve always been used to using one Animator per whole group of models provided said models all eventually descend one model (e.g. models animated inside character).

Don’t want to raise any alarms but without knowing the reason why this change is being made, it’s also in the air whether there’s intention to add this behaviour elsewhere or if it’s just for ViewportFrames.


For clarity’s sake, hierarchy:

Model
    Humanoid
        Animator
    WeaponModel

Animation is ran on Animator. Said animation has keyframes for joints inside WeaponModel.

14 Likes

Will this mean animating things that’s not characters or playable things be possible, or things like a combination of an npc character animation with an object animation, like say a cutsceen of a npc walking around picking stuff up and moving it.

I know it is possible to animate objects, but not sure of how I’m thinking would be possible

As I said in my post I made a few days ago here:

6 Likes

Wait so i am confused. If there is an animator in the worldmodel/is a descendant, it will not animate things anymore? If so, I probably will not be affected.

7 Likes

Just wondering, what’s the exact reason for doing this? (Not that I have anything against it!) Performance, Clarity or just for the sake of it?

Also will we possibly be getting more graphical features for viewport frames such as particles, beams, trails, Ambient Occlusion, PBR lighting etc?

btw will this help performance?

13 Likes

Now all we need is actual PBR lighting in the viewport frames lol

17 Likes

This behavior change is only for WorldModels, it will not be extended to regular Models.

Yea it’s a performance blocker. Allowing the animator to step joints across different WorldModels can cause issues when trying to step all the animators in parallel. Knowing that all the joints of a given Animator are in the same world dramatically simplifies things.

19 Likes

I’m not sure what is the reason for this update.

4 Likes

No clue if this is related or not, but was this the predicted fix to the persistent animation bug that you were investigating?

6 Likes

I’m really wondering why this is happening

3 Likes

Will this see significant performance improvements for games with many animated WorldModels (eg: a store UI with many ViewportFrames with a WorldModel and Animator in each)? If so, what’s the gained amount?

5 Likes

I can tell off the bat that this is a performance blocker and I’m actually happy with this. Separating animators per WorldModel is neat and much easier to manage.

3 Likes

I’m confused also i wanna know what this means for people who use animation plugins i personally liked the one roblox animator.

2 Likes

So does this mean I will need to put multiple WorldModels if I want to animate multiple characters in a single ViewportFrame?

2 Likes

No, just make sure all joints are in the same WorldModel.

4 Likes

Is there some notable changes to a player should it occur when joining the experience on or after Thursday 2021-08-26, ie one of my experiences RDK 3000-Tristar World or ones I regularly visit ie Sizzleburger, or Pinewood Computer Core?

3 Likes

Why not make it have a new property instead, I actually think this is better, but some may not want this, so if you add a new property, they will have the option to make it this way, this may actually interfere with a lot of current games that use multiple animators that are playing different animations per child, plus, you’ll add a new feature instead of deprecating the system that everyone is use to, no problems, no harm right?

3 Likes

There would be a performance impact of doing this, I believe.

4 Likes

This update doesn’t affect this, it only affects animators not being able to sense joints outside of their WorldModel from now on.

3 Likes