Delay on Particle Object=

  • Hi Gamze,

    The best way to add a delay feature is to use the DelayedCallbackEvent. I modified the ParticleControlHelper below to do just that. The change adds a "Delay Time" property to the inspector that lets you specify the number of seconds to wait after the trigger event. Let me know if it works for you! 

    Best,

    Peter

     

    // ParticleControlHelper.js
    // Version: 0.0.1
    // Event: Lens Initialized
    // Description: Plays Particle on trigger

    // @input string particleTrigger = TouchStartEvent { "widget": "combobox", "values": [ { "label": "Brows Lowered", "value": "BrowsLoweredEvent" }, { "label": "Brows Raised", "value": "BrowsRaisedEvent" }, { "label": "Brows Returned To Normal", "value": "BrowsReturnedToNormalEvent" }, { "label": "Face Found", "value": "FaceFoundEvent" }, { "label": "Face Lost", "value": "FaceLostEvent" }, { "label": "Kiss Finished", "value": "KissFinishedEvent" }, { "label": "Kiss Started", "value": "KissStartedEvent" }, { "label": "Mouth Closed", "value": "MouthClosedEvent" }, { "label": "Mouth Opened", "value": "MouthOpenedEvent" }, { "label": "Smile Finished", "value": "SmileFinishedEvent" }, { "label": "Smile Started", "value": "SmileStartedEvent" }, { "label": "Touch Start", "value": "TouchStartEvent" }, { "label": "Touch End", "value": "TouchEndEvent" }, { "label": "Tap", "value": "TapEvent" } ] }

    //@ui {"widget":"separator"}
    //@input float delayTime = 0

    //@ui {"widget":"separator"}
    // @input bool stoppable = false
    // @input string particleStopper = TouchEndEvent { "widget": "combobox", "values": [ { "label": "Brows Lowered", "value": "BrowsLoweredEvent" }, { "label": "Brows Raised", "value": "BrowsRaisedEvent" }, { "label": "Brows Returned To Normal", "value": "BrowsReturnedToNormalEvent" }, { "label": "Face Found", "value": "FaceFoundEvent" }, { "label": "Face Lost", "value": "FaceLostEvent" }, { "label": "Kiss Finished", "value": "KissFinishedEvent" }, { "label": "Kiss Started", "value": "KissStartedEvent" }, { "label": "Mouth Closed", "value": "MouthClosedEvent" }, { "label": "Mouth Opened", "value": "MouthOpenedEvent" }, { "label": "Smile Finished", "value": "SmileFinishedEvent" }, { "label": "Smile Started", "value": "SmileStartedEvent" }, { "label": "Touch Start", "value": "TouchStartEvent" }, { "label": "Touch End", "value": "TouchEndEvent" }, { "label": "Tap", "value": "TapEvent" }], "showIf":"stoppable" }


    // Get the Particle's Mesh Visual
    var meshVis = script.getSceneObject().getFirstComponent("Component.MeshVisual");
    // Variable to store what time particle started
    var startTime;

    // Update the particle time every frame when needed
    function update()
    {
    if (startTime)
    {
    // Calculate how many seconds have elapsed since we've triggered partcles
    var particleTime = getTime() - startTime;

    // Pass it in to our Particle Material
    meshVis.mainPass.externalTimeInput = particleTime;
    }
    }
    var updateEvent = script.createEvent("UpdateEvent");
    updateEvent.bind(update);

    // On an event, store the time when particle is triggered
    function startParticle()
    {
    startTime = getTime();

    }

    var delayEvent = script.createEvent("DelayedCallbackEvent");
    delayEvent.bind(startParticle);

    // After delay, call startParticle function
    function startCountdown()
    {
    delayEvent.reset(script.delayTime);
    }

    var particleTriggerEvent = script.createEvent(script.particleTrigger);
    particleTriggerEvent.bind(startCountdown);


    if (script.stoppable) {
    // On an event, store the time when particle is triggered
    function stopParticle()
    {
    startTime = 0;
    meshVis.mainPass.externalTimeInput = 0;
    }
    var particleStopEvent = script.createEvent(script.particleStopper);
    particleStopEvent.bind(stopParticle);
    }
    Comment actions Permalink
Have a comment?

Please sign in to leave a comment.

We're here to help! We just need a little bit of information...

What system are you using?

Have you downloaded the latest version of Lens Studio?

Please download the latest version of Lens Studio. If you still run into this issue, please come back and report it!

Is this issue causing Lens Studio to crash?

What system do you run Lens Studio on?

Version

Graphics

Follow the next steps to help us solve your issue:

  • Copy and paste this text into your TerminalCommand Window
    open ~/Library/Preferences/Snap/Lens\ Studio/ %LOCALAPPDATA%\Snap\Lens Studio Copy Text
  • Press ReturnEnter to run the command. The Lens Studio folder will automatically open
  • Prepare to upload your files: zip the "Log" Folder by right-clicking and choosing "compress."
    Locate the Log.txt file right above it.

    Attach a screenshot of the issue:

Name:

Email:

What is this most relevant to?

Please enter a brief description of your issue:

Thanks for submitting this issue.

Unfortunately, it's likely due to the operating system or hardware you're using – since they don't meet the system requirements for Lens Studio.

Still, we hear you loud and clear, and are logging the issue in case there's ever a workaround we can provide!

Minimum Requirements

Operating System: Windows 10 (64 bit); MacOS 10.11+

Hardware: Minimum of Intel Core i3 2.5Ghz or AMD Phenom II 2.6Ghz with 4 GB RAM; Intel HD Graphics 4000 / Nvidia GeForce 710 / AMD Radeon HD 6450 or better; screen resolution of 1280x768 or higher

We'll try to resolve this issue as soon as possible. Thanks for letting us know about it!

Keep an eye out for a followup email from us. We may have a couple more questions for you, or we might already have a solution to offer.

Happy creating!