Symptom: I have an animation that sets a visible property to be true or false. It works great. I have another animation that sets the material property opacity to linearly interpolate through a trajectory. It works great. If I put them together (in the array of animations), the second one always fails.
This has proven to be true of many pairs of animations. Setting position twice works, but setting position and then visible breaks the visible, etc.
I've pasted an .html file (I call it test/animation2.html), which shows the issue. The commented out animation demonstrates that the second animation would have worked fine on its own. It's easy to come up with other examples that fail, too.
I dug in a bit to the three.js parsing on this, and see that PropertyBinding.js seems to be binding to the wrong (previous) property. If you inspect, e.g. viewer.animator.actions[1]._propertyBindings[0].binding.parsedPath in the browser javascript console, you will see that the second action is still trying to bind to the property name from the first action. (If my first animation was a position command, and then I sent a visible command, then the visible command will have incorrectly bound to position).
Symptom: I have an animation that sets a visible property to be true or false. It works great. I have another animation that sets the material property opacity to linearly interpolate through a trajectory. It works great. If I put them together (in the array of animations), the second one always fails.
This has proven to be true of many pairs of animations. Setting position twice works, but setting position and then visible breaks the visible, etc.
I've pasted an .html file (I call it
test/animation2.html
), which shows the issue. The commented out animation demonstrates that the second animation would have worked fine on its own. It's easy to come up with other examples that fail, too.I dug in a bit to the three.js parsing on this, and see that PropertyBinding.js seems to be binding to the wrong (previous) property. If you inspect, e.g.
viewer.animator.actions[1]._propertyBindings[0].binding.parsedPath
in the browser javascript console, you will see that the second action is still trying to bind to the property name from the first action. (If my first animation was a position command, and then I sent a visible command, then the visible command will have incorrectly bound toposition
).