it will throw three.module.js:17181 Uncaught TypeError: Failed to execute 'uniform3fv' on 'WebGL2RenderingContext': Overload resolution failed.
when mixer.update() is called.
When I switch track name from .material[uniforms].ax[value] to .position,
plane’s postion animated properly.
I also tried float uniform track and it works too, looks like it only throws with vector uniforms.
well, change to new THREE.Vector3(0, 1, 0) still throws after mixer.update() call, I believe it just set the initial value of uniform and infer its type by arraylength or THREE.Vector3 type.
what acutally cause the problem is VectorKeyframeTrack set number value to this uniform.
The animation system is not able to parse .material[uniforms].ax[value] so it does not find the path to the respective uniforms property. You have to find another way to animate the uniforms for now.
Thanks for the fiddle! Indeed, the animation system does not support the above path definition. It can not detect an instance of Vector3 as the uniform value. It assumes instead a primitive number in an array which is why a single float works.