<div dir="auto"><div>Well, hopefully the example you had invoked was representative enough to provide patterns for other use. Limited repetition through an intermediate ScalarInterpolator and chaining through stoptime to starttime routing should be helpful for combining any related animations.</div><div dir="auto"><br></div><div dir="auto">Andreas</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, 8:38 PM John Carlson <<a href="mailto:yottzumm@gmail.com">yottzumm@gmail.com</a>> wrote:<br></div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div dir="ltr">I'm not actually doing a run/jump/run/jump/.. thingy.  I just have a list of animations, some of which repeat. Each character has a list of animations.<div><br></div><div>I was experimenting to see if I could get something working.  Currently I have a very long run followed by a short jump (wrong). Plus the animation takes 10 seconds to start.</div><div><br>I do have a skip animation to work on, maybe that's a bit of run and jump.  But not too high.<br><div><br></div><div>John</div></div></div><br><div class="gmail_quote"><div dir="ltr" class="gmail_attr">On Tue, Aug 8, 2023 at 6:42 PM Andreas Plesch <<a href="mailto:andreasplesch@gmail.com" target="_blank" rel="noreferrer">andreasplesch@gmail.com</a>> wrote:<br></div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex"><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 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 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:1px solid rgb(204,204,204);padding-left:1ex">Send x3d-public mailing list submissions to<br>
        <a href="mailto:x3d-public@web3d.org" rel="noreferrer 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 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 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 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 noreferrer" target="_blank">yottzumm@gmail.com</a>><br>
To: Joe D Williams <<a href="mailto:joedwil@earthlink.net" rel="noreferrer 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 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 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 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 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 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 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" rel="noreferrer">x3d-public@web3d.org</a><br>
<a href="http://web3d.org/mailman/listinfo/x3d-public_web3d.org" rel="noreferrer noreferrer" target="_blank">http://web3d.org/mailman/listinfo/x3d-public_web3d.org</a><br>
</blockquote></div>
</blockquote></div></div></div>