<div dir="auto">Andreas, rereading, it seems like you are doubling up numbers to do the run/jump thing.  I’ve given up on that for now and I’m going with a common time sensor linked to a scalar interpolator, linked to Boolean sequencers which turn on and off animations at the times determined by the Boolean sequencer.  I’m guessing the animation transitions will be discrete an not smooth, so I’m looking for a better solution.</div><div dir="auto"><br></div><div dir="auto">Primarily in the first phase, i wanted to turn on and off animations with startTime an stopTime.  Now I want smooth animations.  I think some of that us done for run animation, jump animation, etc. but not between animations etc.</div><div dir="auto"><br></div><div dir="auto">The nice thing so far is I haven’t wasted time typing all the animations into an X3D text file.  Now I have the animations “prototyped” in JSON, then I have JavaScript emit all the code.  So far, individual animations are working well, but now, one animation is like a fallback when you select another.  The selected animation doesn’t repeat, it goes back to the original with the next cycle, and then cycles on that.</div><div dir="auto"><br></div><div dir="auto">I can probably send you my JavaScript that generates VRML, but I probably can’t send you the timing data right now .</div><div dir="auto"><br></div><div dir="auto">On Tue, Aug 8, 2023 at 6:42 PM Andreas Plesch <<a href="mailto:andreasplesch@gmail.com">andreasplesch@gmail.com</a>> wrote:<div class="gmail_quote" dir="auto"><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left-width:1px;border-left-style:solid;padding-left:1ex;border-left-color:rgb(204,204,204)"><div dir="auto"><div>Apologies in advance for the lack of formatting,  the phone makes it hard.</div><div dir="auto"><br></div><div dir="auto">Let me give it a try but there are many approaches.</div><div dir="auto"><br></div><div dir="auto">If the goal is to have a run animation with a small jump at regular intervals, the simple solution is to combine all interpolation data into a single large interpolator and loop it. If that is not possible or considered wasteful or not elegant enough, the task becomes chaining say 9 repeats of the run animation with one jump animation.</div><div dir="auto"><br></div><div dir="auto">Given a design with a single TimeSensor, actually a solution without event utilities may be preferable. I am thinking of an intermediate ScalarInterpolator which chops up the timer fraction_changed into multiple repeating fractions:</div><div dir="auto"><br></div><div dir="auto">ScInter DEF 'repeater' key '0 0.1 0.1 0.2 0.2 0.3 .. 0.9 1' keyValue '0 0.5 0 0.5 0 0.5 .. 0.5 1'</div><div dir="auto"><br></div><div dir="auto">The run and jump data would still be combined into a single Interpolator which receives the value_changed and where the first half contains run data for a single sequence and the second half jump data.</div><div dir="auto"><br></div><div dir="auto">If it is not possible to have a single combined Interpolator, it is necessary to have dedicated TimeSensors for each animation and perhaps use event utilities. </div><div dir="auto"><br></div><div dir="auto">Counted repeats of run could then be done in the same way with a repeater. When the run time sensor ends, the stop time gets routed to the start time of the jump timer.  When jump timer ends, the stop time gets routed to the start time of the run timer. I think this is all what is needed, no event utilities or scripts but testing will be necessary. </div><div dir="auto"><br></div><div dir="auto">Cheers Andreas </div><div dir="auto"><br></div><div dir="auto"><br></div><div dir="auto"><br></div><div dir="auto"><br></div><div dir="auto"><br><div data-smartmail="gmail_signature" dir="auto">---on the phone---</div><br><div class="gmail_quote" dir="auto"><div dir="ltr" class="gmail_attr">On Tue, Aug 8, 2023, 3:00 PM  <<a href="mailto:x3d-public-request@web3d.org" rel="noreferrer noreferrer" target="_blank">x3d-public-request@web3d.org</a>> wrote:<br></div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left-width:1px;border-left-style:solid;padding-left:1ex;border-left-color:rgb(204,204,204)">Send x3d-public mailing list submissions to<br>
        <a href="mailto:x3d-public@web3d.org" rel="noreferrer noreferrer noreferrer" target="_blank">x3d-public@web3d.org</a><br>
<br>
To subscribe or unsubscribe via the World Wide Web, visit<br>
        <a href="http://web3d.org/mailman/listinfo/x3d-public_web3d.org" rel="noreferrer noreferrer noreferrer noreferrer" target="_blank">http://web3d.org/mailman/listinfo/x3d-public_web3d.org</a><br>
or, via email, send a message with subject or body 'help' to<br>
        <a href="mailto:x3d-public-request@web3d.org" rel="noreferrer noreferrer noreferrer" target="_blank">x3d-public-request@web3d.org</a><br>
<br>
You can reach the person managing the list at<br>
        <a href="mailto:x3d-public-owner@web3d.org" rel="noreferrer noreferrer noreferrer" target="_blank">x3d-public-owner@web3d.org</a><br>
<br>
When replying, please edit your Subject line so it is more specific<br>
than "Re: Contents of x3d-public digest..."<br>
<br>
<br>
Today's Topics:<br>
<br>
   1. Please comment on my ideas (John Carlson)<br>
<br>
<br>
----------------------------------------------------------------------<br>
<br>
Message: 1<br>
Date: Tue, 8 Aug 2023 11:57:26 -0500<br>
From: John Carlson <<a href="mailto:yottzumm@gmail.com" rel="noreferrer noreferrer noreferrer" target="_blank">yottzumm@gmail.com</a>><br>
To: Joe D Williams <<a href="mailto:joedwil@earthlink.net" rel="noreferrer noreferrer noreferrer" target="_blank">joedwil@earthlink.net</a>>,  X3D Graphics public<br>
        mailing list <<a href="mailto:x3d-public@web3d.org" rel="noreferrer noreferrer noreferrer" target="_blank">x3d-public@web3d.org</a>><br>
Subject: [x3d-public] Please comment on my ideas<br>
Message-ID:<br>
        <<a href="mailto:CAGC3UEmMvo3VnJNSEQLVJDJNDBFv3Tboh7TRD_MSijbP7x23NA@mail.gmail.com" rel="noreferrer noreferrer noreferrer" target="_blank">CAGC3UEmMvo3VnJNSEQLVJDJNDBFv3Tboh7TRD_MSijbP7x23NA@mail.gmail.com</a>><br>
Content-Type: text/plain; charset="utf-8"<br>
<br>
I am reposting this because i didn?t get any comments.  Does this look like<br>
a good approach?  Am I over blowing the steps required?<br>
<br>
On Mon, Aug 7, 2023 at 1:59 PM John Carlson <<a href="mailto:yottzumm@gmail.com" rel="noreferrer noreferrer noreferrer" target="_blank">yottzumm@gmail.com</a>> wrote:<br>
<br>
> Sample code:<br>
><br>
> Every 10 seconds, the character kind of jumps, otherwise, Leif is running.<br>
><br>
> DEF myRunBooleanSequencer BooleanSequencer {<br>
>         key [ 0 0.9 1.1 2.23 4.3 5.5 6.3 7.3 8.5 8.6 10 ]  #<br>
> Leif_humanoid_root_TranslationInterpolator x 10<br>
>         keyValue [ TRUE FALSE TRUE FALSE TRUE FALSE TRUE FALSE TRUE FALSE<br>
> TRUE ]<br>
> }<br>
> DEF myJumpBooleanSequencer BooleanSequencer {<br>
>         key [ 0 0.9 1.1 2.23 4.3 5.5 6.3 7.3 8.5 8.6 10 ]  #<br>
> Leif_humanoid_root_TranslationInterpolator x 10<br>
>         keyValue [ FALSE TRUE FALSE TRUE FALSE TRUE FALSE TRUE FALSE TRUE<br>
> FALSE ]<br>
> }<br>
><br>
> DEF myJumpTimeTrigger TimeTrigger {<br>
> }<br>
><br>
> DEF myRunTimeTrigger TimeTrigger {<br>
> }<br>
><br>
> DEF myJumpBooleanFilter BooleanFilter {<br>
> }<br>
><br>
> DEF myRunBooleanFilter BooleanFilter {<br>
> }<br>
><br>
> DEF myJumpBooleanTrigger BooleanTrigger {<br>
> }<br>
><br>
> DEF myRunBooleanTrigger BooleanTrigger {<br>
> }<br>
><br>
> ROUTE EverythingTimer.fraction_changed TO<br>
> myRunBooleanSequencer.set_fraction<br>
> ROUTE EverythingTimer.fraction_changed TO<br>
> myJumpBooleanSequencer.set_fraction<br>
><br>
> ROUTE myRunBooleanSequencer.value_changed TO myJumpTimeTrigger.set_boolean<br>
> ROUTE myJumpBooleanSequencer.value_changed TO myRunTimeTrigger.set_boolean<br>
><br>
> ROUTE myRunBooleanSequencer.value_changed TO<br>
> myJumpBooleanFilter.set_boolean<br>
> ROUTE myJumpBooleanSequencer.value_changed TO<br>
> myRunBooleanFilter.set_boolean<br>
><br>
> ROUTE myRunBooleanFilter.inputNegate TO RunTimer.enabled<br>
> ROUTE myJumpBooleanFilter.inputNegate TO JumpTimer.enabled<br>
><br>
> ROUTE myRunTimeTrigger.triggerTime TO RunTimer.startTime<br>
> ROUTE myJumpTimeTrigger.triggerTime TO JumpTimer.startTime<br>
><br>
-------------- next part --------------<br>
An HTML attachment was scrubbed...<br>
URL: <<a href="http://web3d.org/pipermail/x3d-public_web3d.org/attachments/20230808/2d63fd3a/attachment-0001.html" rel="noreferrer noreferrer noreferrer noreferrer" target="_blank">http://web3d.org/pipermail/x3d-public_web3d.org/attachments/20230808/2d63fd3a/attachment-0001.html</a>><br>
<br>
------------------------------<br>
<br>
Subject: Digest Footer<br>
<br>
_______________________________________________<br>
x3d-public mailing list<br>
<a href="mailto:x3d-public@web3d.org" rel="noreferrer noreferrer noreferrer" target="_blank">x3d-public@web3d.org</a><br>
<a href="http://web3d.org/mailman/listinfo/x3d-public_web3d.org" rel="noreferrer noreferrer noreferrer noreferrer" target="_blank">http://web3d.org/mailman/listinfo/x3d-public_web3d.org</a><br>
<br>
<br>
------------------------------<br>
<br>
End of x3d-public Digest, Vol 173, Issue 32<br>
*******************************************<br>
</blockquote></div></div></div>
_______________________________________________<br>
x3d-public mailing list<br>
<a href="mailto:x3d-public@web3d.org" target="_blank">x3d-public@web3d.org</a><br>
<a href="http://web3d.org/mailman/listinfo/x3d-public_web3d.org" rel="noreferrer" target="_blank">http://web3d.org/mailman/listinfo/x3d-public_web3d.org</a><br>
</blockquote></div></div>