<html><head><meta http-equiv="content-type" content="text/html; charset=utf-8"></head><body style="overflow-wrap: break-word; -webkit-nbsp-mode: space; line-break: after-white-space;"><span style="caret-color: rgb(0, 0, 0); color: rgb(0, 0, 0);">With animations, it is actually usual to only have as many TimeSensor nodes as there are animations and then switch them on and off one after the other by toggling the *enabled* field, or via *startTime* and *stopTime*. The *fraction_changed* field of each TimeSensor node can also be connected to several interpolators, which is more optimal.</span><div style="caret-color: rgb(0, 0, 0); color: rgb(0, 0, 0);"><br></div><div style="caret-color: rgb(0, 0, 0); color: rgb(0, 0, 0);">Holger</div><br class="Apple-interchange-newline"><div>
<div dir="auto" style="caret-color: rgb(0, 0, 0); color: rgb(0, 0, 0); letter-spacing: normal; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; word-spacing: 0px; -webkit-text-stroke-width: 0px; text-decoration: none; overflow-wrap: break-word; -webkit-nbsp-mode: space; line-break: after-white-space;"><div dir="auto" style="caret-color: rgb(0, 0, 0); color: rgb(0, 0, 0); letter-spacing: normal; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; word-spacing: 0px; -webkit-text-stroke-width: 0px; text-decoration: none; overflow-wrap: break-word; -webkit-nbsp-mode: space; line-break: after-white-space;"><div dir="auto" style="caret-color: rgb(0, 0, 0); color: rgb(0, 0, 0); letter-spacing: normal; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; word-spacing: 0px; -webkit-text-stroke-width: 0px; text-decoration: none; overflow-wrap: break-word; -webkit-nbsp-mode: space; line-break: after-white-space;"><div dir="auto" style="caret-color: rgb(0, 0, 0); color: rgb(0, 0, 0); letter-spacing: normal; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; word-spacing: 0px; -webkit-text-stroke-width: 0px; text-decoration: none; overflow-wrap: break-word; -webkit-nbsp-mode: space; line-break: after-white-space;"><div dir="auto" style="caret-color: rgb(0, 0, 0); color: rgb(0, 0, 0); letter-spacing: normal; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; word-spacing: 0px; -webkit-text-stroke-width: 0px; text-decoration: none; overflow-wrap: break-word; -webkit-nbsp-mode: space; line-break: after-white-space;"><div dir="auto" style="text-align: start; text-indent: 0px; overflow-wrap: break-word; -webkit-nbsp-mode: space; line-break: after-white-space;"><div style="caret-color: rgb(0, 0, 0); color: rgb(0, 0, 0); letter-spacing: normal; text-transform: none; white-space: normal; word-spacing: 0px; text-decoration: none; -webkit-text-stroke-width: 0px;">--</div><div style="caret-color: rgb(0, 0, 0); color: rgb(0, 0, 0); letter-spacing: normal; text-transform: none; white-space: normal; word-spacing: 0px; text-decoration: none; -webkit-text-stroke-width: 0px;">Holger Seelig</div><div style="caret-color: rgb(0, 0, 0); color: rgb(0, 0, 0); letter-spacing: normal; text-transform: none; white-space: normal; word-spacing: 0px; text-decoration: none; -webkit-text-stroke-width: 0px;">Leipzig, Germany</div><div style="caret-color: rgb(0, 0, 0); color: rgb(0, 0, 0); letter-spacing: normal; text-transform: none; white-space: normal; word-spacing: 0px; text-decoration: none; -webkit-text-stroke-width: 0px;"><br></div><div style="caret-color: rgb(0, 0, 0); color: rgb(0, 0, 0); letter-spacing: normal; text-transform: none; white-space: normal; word-spacing: 0px; text-decoration: none; -webkit-text-stroke-width: 0px;">holger.seelig@yahoo.de</div><div>https://create3000.github.io/x_ite/</div></div></div></div></div></div></div>
</div>
<div><br><blockquote type="cite"><div>Am 07.12.2024 um 22:58 schrieb John Carlson <yottzumm@gmail.com>:</div><br class="Apple-interchange-newline"><div><div dir="auto">What I get from that is I have to keep a list of ROUTEs for each animation and add and remove them as each facial animation is toggled.</div><div dir="auto"><br></div><div dir="auto">My argument is to possibly change X3D semantics to go along with what the AI suggested, such that ROUTEs can be enabled/disabled by including them in Switches.  But perhaps I can do something with addChildren and removeChildren without using SAI?</div><div dir="auto"><br></div><div dir="auto">I’m stumbling around for answers which are probably in event utilities, except in a much less understandable way.  I’m looking for something straightforward.  If anyone has a mechanism to enable HAnimDisplacers in groups without Switch, how did you do it?</div><div dir="auto"><br></div><div dir="auto">At some point, I just try it and see what happens.  I’m wondering if someone else has solved this without Switches.</div><div dir="auto"><br></div><div dir="auto">John</div><div><br><div class="gmail_quote"><div dir="ltr" class="gmail_attr">On Sat, Dec 7, 2024 at 3:41 PM Holger Seelig via x3d-public <<a href="mailto:x3d-public@web3d.org">x3d-public@web3d.org</a>> wrote:<br></div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div style="line-break:after-white-space">Routes are not part of the scene-graph. They exist outside of it. Every X3DExecutionContext has a list of all routes:<div><br></div><div><a href="https://www.web3d.org/documents/specifications/19777-1/V3.3/Part1/functions.html#ExecutionContextServices" target="_blank">https://www.web3d.org/documents/specifications/19777-1/V3.3/Part1/functions.html#ExecutionContextServices</a></div><div><br></div><div>Holger</div><div><br id="m_9524295683080952lineBreakAtBeginningOfMessage"><div>
<div dir="auto" style="letter-spacing: normal; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; word-spacing: 0px; text-decoration: none; line-break: after-white-space;"><div dir="auto" style="letter-spacing: normal; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; word-spacing: 0px; text-decoration: none; line-break: after-white-space;"><div dir="auto" style="letter-spacing: normal; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; word-spacing: 0px; text-decoration: none; line-break: after-white-space;"><div dir="auto" style="letter-spacing: normal; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; word-spacing: 0px; text-decoration: none; line-break: after-white-space;"><div dir="auto" style="letter-spacing: normal; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; word-spacing: 0px; text-decoration: none; line-break: after-white-space;"><div dir="auto" style="text-align:start;text-indent:0px;line-break:after-white-space"><div style="letter-spacing: normal; text-transform: none; white-space: normal; word-spacing: 0px; text-decoration: none;">--</div><div style="letter-spacing: normal; text-transform: none; white-space: normal; word-spacing: 0px; text-decoration: none;">Holger Seelig</div><div style="letter-spacing: normal; text-transform: none; white-space: normal; word-spacing: 0px; text-decoration: none;">Leipzig, Germany</div><div style="letter-spacing: normal; text-transform: none; white-space: normal; word-spacing: 0px; text-decoration: none;"><br></div><div style="letter-spacing: normal; text-transform: none; white-space: normal; word-spacing: 0px; text-decoration: none;"><a href="mailto:holger.seelig@yahoo.de" target="_blank">holger.seelig@yahoo.de</a></div><div><a href="https://create3000.github.io/x_ite/" target="_blank">https://create3000.github.io/x_ite/</a></div></div></div></div></div></div></div>
</div>
<div><br><blockquote type="cite"></blockquote></div></div></div><div style="line-break:after-white-space"><div><div><blockquote type="cite"><div>Am 07.12.2024 um 22:16 schrieb John Carlson via x3d-public <<a href="mailto:x3d-public@web3d.org" target="_blank">x3d-public@web3d.org</a>>:</div><br></blockquote></div></div></div><div style="line-break:after-white-space"><div><div><blockquote type="cite"><div></div></blockquote></div></div></div><div style="line-break:after-white-space"><div><div><blockquote type="cite"><div><div dir="auto">Okay, I’m attempting to read the spec:</div><div dir="auto"><br></div><div dir="auto">“<span style="font-family:verdana,arial,helvetica,sans-serif;font-size:26px;background-color:rgb(255,255,255)">All nodes under a Switch continue to receive and send events regardless of the value of  </span><i style="font-family:verdana,arial,helvetica,sans-serif;font-size:26px;background-color:rgb(255,255,255)">whichChoice</i><span style="font-family:verdana,arial,helvetica,sans-serif;font-size:26px;background-color:rgb(255,255,255)">. For example, if an active TimeSensor is contained within an inactive choice of a Switch, the TimeSensor sends events regardless of the Switch's state.”</span></div><div dir="auto"><font face="verdana, arial, helvetica, sans-serif"><span style="font-size:26px;background-color:rgb(255,255,255)"><br></span></font></div><div dir="auto"><font face="verdana, arial, helvetica, sans-serif"><span style="font-size:26px;background-color:rgb(255,255,255)">So I’m guessing that ROUTEs are not nodes, and thus are susceptible to stop receiving and sending events in a Switch.</span></font></div><div dir="auto"><font face="verdana, arial, helvetica, sans-serif"><span style="font-size:26px;background-color:rgb(255,255,255)"><br></span></font></div><div dir="auto"><font face="verdana, arial, helvetica, sans-serif"><span style="font-size:26px;background-color:rgb(255,255,255)">I don’t even know if ROUTEs can send and receive events.  Sure, they can transmit or transfer events.</span></font></div><div dir="auto"><font face="verdana, arial, helvetica, sans-serif"><span style="font-size:26px;background-color:rgb(255,255,255)"><br></span></font></div><div dir="auto"><font face="verdana, arial, helvetica, sans-serif"><span style="font-size:26px;background-color:rgb(255,255,255)">Clarification in some place in the standard is welcome!</span></font></div><div dir="auto"><font face="verdana, arial, helvetica, sans-serif"><span style="font-size:26px;background-color:rgb(255,255,255)"><br></span></font></div><div dir="auto"><font face="verdana, arial, helvetica, sans-serif"><span style="font-size:26px;background-color:rgb(255,255,255)"><br></span></font></div><div dir="auto"><font face="verdana, arial, helvetica, sans-serif"><span style="font-size:26px;background-color:rgb(255,255,255)">John <br></span></font><div dir="auto"><br></div></div><div><br><div class="gmail_quote"><div dir="ltr" class="gmail_attr">On Sat, Dec 7, 2024 at 2:40 PM John Carlson <<a href="mailto:yottzumm@gmail.com" target="_blank">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="auto">Would it be possible to put an animation’s ROUTEs in a Switch that could be toggled on and off with a boolean toggle?</div><div dir="auto"><br></div><div dir="auto">Google AI says:</div><div dir="auto"><br></div><div dir="auto"><div><div><div><div style="margin:0px 0px 20px">Yes, you can absolutely put "ROUTE" nodes within a "Switch" node in X3D; in fact, it's a common practice to use them together to dynamically control which set of connections (via ROUTE) are active depending on which child node of the Switch is currently selected.<span style="white-space:nowrap"> <div style="margin-right:6px;vertical-align:middle"><div style="display:inline-block;vertical-align:middle;outline:0px"><div style="width:28px;outline:solid 1px;border-radius:9999px;margin:0px auto;height:20px;min-height:20px;background-color:transparent"><div style="width:28px;border-radius:9999px;height:20px"><span style="margin:0px;color:rgb(11,87,208)"><span style="display:inline-block;height:18px;line-height:18px;width:18px"></span></span></div></div></div></div></span></div></div></div><div><div style="font-family:"google sans",roboto,"helvetica neue",arial,sans-serif;font-size:23.4px;font-style:normal;font-weight:400;letter-spacing:normal;text-indent:0px;text-transform:none;white-space:normal;word-spacing:0px;text-decoration:none;color:rgb(0,29,53)"></div></div><br></div>I didn’t realize that statements were affected by Switch.</div><div dir="auto"><br></div><div dir="auto">John</div><div><br><div class="gmail_quote"><div dir="ltr" class="gmail_attr">On Sat, Dec 7, 2024 at 1:43 PM John Carlson <<a href="mailto:yottzumm@gmail.com" target="_blank">yottzumm@gmail.com</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)">We are dealing with multiple facial animations.  The thing we want to do is combine animations using HAnimDisplacers.  Currently, our animations go from key = 0 to key = 1, (weight = 0 to weight = 1) and each animation is controlled by a single TimeSensor that we enable or disable.  What we want to do is enable multiple facial animations, yet retain a single TimeSensor.  I have done something with enabling multiple time sensors all at the same time.  So, ideally, we could toggle each facial animation individually.<div dir="auto"><br></div><div dir="auto">Note that one can have multiple simultaneous HAnimDisplacer animations on a single Coordinate, they all add up just fine.  There’s no single animation per body part requirement as there is in other places in X3D (according to Michalis, from my understanding).</div><div dir="auto"><br></div><div dir="auto">I don’t currently know how to individually toggle multiple animations without toggling multiple TimeSensors, so assistance is welcome!  Indeed, a multiple toggle button X3D example would be welcome (hopefully, something we can put in a scenegraph).</div><div dir="auto"><br></div><div dir="auto">Here’s what we currently have <div><a href="https://github.com/coderextreme/ci2had/blob/main/resources/SingleMenuJin.x3d" target="_blank">https://github.com/coderextreme/ci2had/blob/main/resources/SingleMenuJin.x3d</a></div><div dir="auto"><br></div><div dir="auto">As you can see, lots of duplication.</div><div dir="auto"><br></div><div dir="auto">Viewed best in FreeWRL and Sunrize/X_ITE.</div></div><div dir="auto"><br></div><div dir="auto">John </div>
</blockquote></div></div>
</blockquote></div></div></div></blockquote></div></div></div><div style="line-break:after-white-space"><div><div><blockquote type="cite"><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" target="_blank">http://web3d.org/mailman/listinfo/x3d-public_web3d.org</a><br></div></blockquote></div><br></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>
</div></blockquote></div><br></body></html>