Hello guys,
I have been searching on the forum but unfortunately didn't find a solution for my problem.
What I'm trying to achieve is have part of my timeline only play once.
This is what I have
function modelPositionNose(){
controls.enabled = false;
const decalNose = scene.getObjectByName("topNoseSmallDecal")
let tl = gsap.timeline()
tl.to(activeModel.position, { duration: 1.5, x: 0, y: -0.8, z: 0 }, 'simultaneously')
tl.to(activeModel.rotation, { duration: 1.5, x: 0, y: 0, z: 0.35, }, 'simultaneously')
tl.to(camera.position, { duration: 1.5, x: -0.5, y: 0, z: 0, }, 'simultaneously' )
tl.fromTo(decalNose.material, {duration: 1, opacity: 0}, { opacity: 0.5, repeat: 1, yoyo: true }, '+=1')
tl.to(decalNose.material, { duration: 0.5, opacity: 0}) //THIS PART SHOULD ONLY PLAY ONCE
tl.to(activeModel.position, { duration: 1.5, x: 0, y: 0, z: 0 }, '+=1')
tl.to(activeModel.rotation, { duration: 1.5, x: 0, y: 0, z: 0 }, '-=1.5')
tl.to(camera.position, { duration: 1.5, x: -1.1, y: 0.55, z: 1.05,
onUpdate: function() { controls.update(); },
onComplete: function() { controls.enabled = true; } }, '-=1.5' )
}
And here you can see everything working: Board Configurator2 | Boardschmiede Custom Shaped Kiteboards (creativist-lab.com)
The problem that when the timeline keeps playing on each button click that the part of the model that already has been color changed by the user becomes invisible again.
Hopefully my question is clear.
Thanks in advance for any help!