Can you animate UVs using the animation mixer tools?

Can you animate UVs using the animation mixer tools?

No. And it would be extremely inefficient to animate raw buffer data via keyframes.

Would it be more efficient if the values weren’t interpolated? Because I plan to animate them by shifting the uvs every second or so.

Do you mind explaining this in more detail?

I was assuming the inefficiency you mentioned is due to an assumption that the values would be updated every frame… But if I plan to update them every second or so, then it would be updated only a small fraction of the time.

I have UVs that I plan to reposition on the texture, in order to animate various portions of a model. So I was just looking to see if there is a native way to animate them, otherwise I’ll need to just roll my own system of handling it.

If you can move/rotate/scale the UVs all at once — not vertex by vertex — then you could animate material.map.offset or similar properties. See THREE.Texture docs. That should be efficient enough to do at any framerate.

You can shift them on CPU but interpolate/morph them on GPU if necessary, i have no idea what you’re about to do or how it looks like, explaining it in more detail what the goal is with a screenshot is useful to tell if a entirely different approach might be more reasonable at the end.

Like @donmccurdy said depending on your case you might only need to shift the entire texture which would be just a single vector instead the entire UV set.

That’s good to know about shifting all of them, but I’ll need to do it on a per vertex basis.
I have a tilesheet with 2d tiles (like a spritesheet), and I will need to animation multiple tiles on it by moving the uvs every second or so. The uvs for some parts might be moved one way while the uvs of another will be moved another way. So yes, I need to move the uvs per vertex. I know I can do that with geometry.attributes.uv.setXY , and that’s the only way I’ve found to do this. But if there’s another way I’d be interested in knowing.
and no, they can’t be separated into separate texture/models/materials…