[x3d-public] displacers in Segment Turning on and off simultaneous animations individually
John Carlson
yottzumm at gmail.com
Wed Feb 5 12:14:53 PST 2025
What I’m hearing is HAnimDisplacer should be the first node under
HAnimSegment.
What I will do in cleanup.py is delete the HAnimDisplacer in HAnimSegment
and insert it back at position 0 in the segment.
John
On Wed, Feb 5, 2025 at 1:57 PM Joe D Williams <joedwil at earthlink.net> wrote:
> > The reason is that Displacers are currently implemented in x3dom only
> for Joints, but not for Segments, unfortunately.
>
>
>
> Please fix because we need to show this working everywhere, level 1 and
> Level 2.
>
>
>
>
> https://www.web3d.org/documents/specifications/19774/V2.0/Architecture/ObjectInterfaces.html#Segment
>
>
>
> So we have several shapes that produce this face and thus several
> Displacer nodes
>
> to control the various shapes to produce the motion and target pose.
>
> .
>
> Most all individual shapes of this face, except those associated with
> other
>
> Joints of the skull like eyes and jaw, are children of skullbase Joint.
>
> If all Displacer nodes and all the shapes that produce the face are placed
> under the
>
> skullbase Joint then there is no way to tell each Displacer which Shape to
> work on.
>
> So, since both Joint and Segment can contain Displacer nodes we just made
> up a
>
> Segment that holds the the geometry and placed the Displacer there.
>
>
>
> I think the general rule is for Level 1 is that a Displacer associated
> with geometry
>
> of a Segment is to be placed as first child of the Segment node.
>
> For Level 2, continuous mesh there may also be be several Displacer nodes
>
> operating at various times so those Displacer nodes are placed as first
> children
>
> of an appropriate Joint, or the first Joint.
>
>
>
> Since in this case that Level 1 hierarchy results in several shapes and
> displacers all under
>
> a single Joint, the skullbase, we decided to try adding a Segment to
> skullbase to hold
>
> each geometry and the associated Displacers for the various poses.
>
> This seemed to work that I think I saw somewhere, and, to me, if done
> consistenty,
>
> should work everywhere.
>
> Notice joekick works fine for Level 2 with displacers in Joint.
>
>
>
> Thanks for Fun with HAnim Displacer,
>
> Joe
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
> -----Original Message-----
> From: John Carlson <yottzumm at gmail.com>
> Sent: Feb 5, 2025 10:31 AM
> To: Andreas Plesch <andreasplesch at gmail.com>, Holger Seelig <
> holger.seelig at yahoo.de>, X3D Graphics public mailing list <
> x3d-public at web3d.org>
> Cc: Joe D Williams <joedwil at earthlink.net>
> Subject: Re: Turning on and off simultaneous animations individually
>
>
> I had one I sent to Holger, probably derived from this one:
>
>
> https://github.com/coderextreme/ci2had/blob/main/resources/JinMouthStretch.x3d
>
>
> What I would do (again) is take out all the segments but the tongue.
>
> There’s no menus involved in this one.
>
> If you need further assistance, like a smaller example, I can help. Also
> all the Jin*.x3d FACS action units can also provide examples.
>
> I’ll be pretty unbusy today. I can allocate some time for creating a
> model, make sure it animates, etc.
>
> If you’re able to allocate some time today, great, we have an HAnim
> meeting tomorrow and showing off X3DOM editor using Displacers would be
> fantastic!
>
> Remember there’s a coord field in HAnimSegment that the HAnimDisplacer
> operates on!
>
> John
>
> On Wed, Feb 5, 2025 at 12:01 PM Andreas Plesch <andreasplesch at gmail.com>
> wrote:
>
>> Hi John,
>>
>> The reason is that Displacers are currently implemented in x3dom only for
>> Joints, but not for Segments, unfortunately. Do you know of a simple but
>> instructive test case of Segments with Displacers ?
>>
>>
>> Andreas
>>
>>
>> On Tue, Feb 4, 2025, 2:33 PM John Carlson <yottzumm at gmail.com> wrote:
>>
>>> I will try to test this in castle model converter.
>>>
>>> I did try setting a value for the outputOnly fields, but the converter
>>> wouldn’t shut up.
>>>
>>> The model below doesn’t seem to animate when one presses the menu
>>> items. Did you get it to animate?
>>>
>>> On Tue, Feb 4, 2025 at 12:27 PM Andreas Plesch <andreasplesch at gmail.com>
>>> wrote:
>>>
>>>> Hi John, all,
>>>>
>>>> It turns out that x3dom currently expects a default value for Proto
>>>> fields even for outputOnly fields. This is due to how Proto fields are
>>>> initialized. They always need to have a value. While the spec. does not
>>>> require this, it seems still good practice to always define a default value
>>>> in the ProtoInterface. There may be a case where an outputOnly field is
>>>> used in ISing where a valid value would be expected. There may be other
>>>> corner cases.
>>>>
>>>> Here is your example with added default values for outputOnly fields:
>>>>
>>>>
>>>> https://andreasplesch.github.io/Library/Viewer/index.html?url=https://gist.githubusercontent.com/andreasplesch/af5ff3148c1159f71d34fb78c1f63024/raw/b3d4470107ab74e301ed48448ab2a4f4154672e0/ManyClocks_John.x3d
>>>>
>>>> This could be fixed in x3dom, by always setting some default value. Is
>>>> there a list of recommended defaults for each data type if no other source
>>>> of defaults is available? For SFTime it seems to be -1.
>>>>
>>>>
>>>> -Andreas
>>>>
>>>>
>>>> On Mon, Feb 3, 2025 at 7:39 AM Andreas Plesch <andreasplesch at gmail.com>
>>>> wrote:
>>>>
>>>>> Hi John,
>>>>>
>>>>> On Mon, Feb 3, 2025 at 12:48 AM John Carlson <yottzumm at gmail.com>
>>>>> wrote:
>>>>>
>>>>>> Andreas, "startTime" is an accessType outputOnly field, so why do I
>>>>>> need to provide a value attribute in fieldValue? I'm kind of confused.
>>>>>> I'm probably missing something in the spec.
>>>>>>
>>>>>
>>>>> You are right, I only outlined scenarios where the accessType allows
>>>>> input or initialization..
>>>>> In the outputOnly case it is not necessary to provide a fieldValue
>>>>> node at all since there is no value which can be provided. Providing the
>>>>> node would indeed be confusing, to both the user code reader and any X3D
>>>>> browser.
>>>>> I believe the spec. is silent on this case in any encoding.
>>>>>
>>>>> Best, Andreas
>>>>>
>>>>>
>>>>>> Thanks for any clarification.
>>>>>>
>>>>>> I have finally enabled schematron on the project, but I'm finding it
>>>>>> hard to understand the messages, and modifications that I make, while
>>>>>> removing the immediate problems, seem to move the problems elsewhere.
>>>>>>
>>>>>> Explaining why I need a "startTime" fieldValue value is my main lack
>>>>>> of understanding, but perhaps I need a whole review of accessType.
>>>>>>
>>>>>> Castle Model Converter reports:
>>>>>>
>>>>>> castle-model-converter: Warning: X3D: X3D XML: <fieldValue> element
>>>>>> references unknown field name "enabled"
>>>>>> castle-model-converter: Warning: X3D: X3D XML: <fieldValue> element
>>>>>> references unknown field name "startTime"
>>>>>> castle-model-converter: Warning: X3D: X3D XML: <fieldValue> element
>>>>>> references unknown field name "stopTime"
>>>>>>
>>>>>> I will try providing a field value in the ProtoInterface
>>>>>>
>>>>>> If I "cleanup" enabled, startTime and stopTime, I get:
>>>>>>
>>>>>> castle-model-converter: Warning: VRML/X3D: Within prototype
>>>>>> "MenuItem", event "inputTrue" references (by "IS" clause) non-existing
>>>>>> event "enabled"
>>>>>> castle-model-converter: Warning: VRML/X3D: Within prototype
>>>>>> "MenuItem", event "triggerTime" references (by "IS" clause) non-existing
>>>>>> event "startTime"
>>>>>> castle-model-converter: Warning: VRML/X3D: Within prototype
>>>>>> "MenuItem", event "triggerTime" references (by "IS" clause) non-existing
>>>>>> event "stopTime"
>>>>>>
>>>>>> I guess what I conclude at this point is, startTime and stopTime are
>>>>>> bad DEF names, but what about enabled as a field? The dominoes are falling.
>>>>>>
>>>>>> About your two scenarios in the other message, perhaps this is
>>>>>> revealing.
>>>>>>
>>>>>> See attached attempt to fix original issue, which resulted in the
>>>>>> above.
>>>>>>
>>>>>> John
>>>>>>
>>>>>> On Sun, Feb 2, 2025 at 3:59 PM Andreas Plesch <
>>>>>> andreasplesch at gmail.com> wrote:
>>>>>>
>>>>>>> I think x3dom, reasonably, expects a value for the fieldValue nodes:
>>>>>>>
>>>>>>> For example:
>>>>>>>
>>>>>>> <fieldValue name="startTime" />
>>>>>>>
>>>>>>> and others.
>>>>>>>
>>>>>>> On Sun, Feb 2, 2025 at 5:42 AM John Carlson <yottzumm at gmail.com>
>>>>>>> wrote:
>>>>>>>
>>>>>>>> Andreas, Joe,
>>>>>>>>
>>>>>>>> Reset Button, Reset_Clock added.
>>>>>>>>
>>>>>>>> See attached zip for details, or visit link;
>>>>>>>>
>>>>>>>>
>>>>>>>> https://create3000.github.io/x_ite/playground/?url=https://raw.githubusercontent.com/coderextreme/ci2had/refs/heads/main/resources/CleanedYouClocks.x3d
>>>>>>>>
>>>>>>>> For some reason, this link doesn't show the live scene?
>>>>>>>>
>>>>>>>>
>>>>>>>> https://andreasplesch.github.io/Library/Viewer/index.html?url=https://raw.githubusercontent.com/coderextreme/ci2had/refs/heads/main/resources/CleanedYouClocks.x3d
>>>>>>>>
>>>>>>>> Puzzled, haven't researched it yet. Looks good in Sunrize and
>>>>>>>> X_ITE, will try FreeWRL next.
>>>>>>>>
>>>>>>>> John
>>>>>>>>
>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>
>>>>>>>
>>>>>>> --
>>>>>>> Andreas Plesch
>>>>>>> Waltham, MA 02453
>>>>>>>
>>>>>>
>>>>>
>>>>>
>>>> --
>>>>> Andreas Plesch
>>>>> Waltham, MA 02453
>>>>>
>>>>
>>>>
>>>> --
>>>> Andreas Plesch
>>>> Waltham, MA 02453
>>>>
>>>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://web3d.org/pipermail/x3d-public_web3d.org/attachments/20250205/c52632ea/attachment-0001.html>
More information about the x3d-public
mailing list