using animation prevents editing
As a user creating and modifying an animated 3DStreet scene from a Streetmix source, I expect to be able to click on objects in the scene and reposition them using the editor.
However, when animation is turned on the animated characters and vehicles do not behave as expected:
- the bounding box for people is incorrect size (too short and wide)
- when returning to viewer after moving people or cars they return to their previous animated position
- there are only 8 animated characters although there are 16 total characters
animation can be turned on with this line in index.html:
<a-entity id="default-street" street="globalAnimated: true;" streetmix-loader set-loader-from-hash></a-entity>
definition of done:
- as a user I can see animation and I can also move objects and they will respond
A few thoughts:
- should there be an option for animation? should this option only be available before loading the scene? or can it be toggled while the scene is active?
- where should the toggle be located in the UI? is it possible to globally turn off and on all animation?
- what is the desired behavior for a user when they are selecting and moving an animated object? do they want the object to pause? do they want the object to continue its motion from its new location?
Proposed solution:
- ensure that the selecting bounding box is correct for animated characters
- animate the additional 8 characters (3d model work)
- upon selecting an animated object, the properties menu could include clear indication that the object is animated. There can be an option to disable all animations of an object.
- this could also be accomplished with a meta component that controls object behavior such as the "automation" component. if set to "walking" then it is responsible for triggering gltf animation, animation__1, animation__2, etc. The automation component can take responsibility for randomizing animation (such as fast and slow speed walkers on the sidewalk, or similar with cars)
should there be an option for animation? should this option only be available before loading the scene? or can it be toggled while the scene is active?
Global animation can be toggle in the street component. I suggested in this issue how this switch can be made to work correctly. https://github.com/3DStreet/3dstreet/issues
Or I think it could be possible to toggle animation when scene is active without reload the scene. I'll see today
there are only 8 animated characters although there are 16 total characters
But I see only 8 animated characters here: https://github.com/3DStreet/3dstreet-assets-dist/tree/main/sets/human-characters-animation-seperated/gltf-exports/draco Or are they somewhere else? @kfarr , @gnansai
@Algorush excellenté please feel free to continue to explore and share
Separately there is another ticket to track progress of adding 8 more animated characters https://github.com/3DStreet/3dstreet-assets-source/issues/77
Here is PR for this ticket. Now added commit with live toggle globalAnimation https://github.com/3DStreet/3dstreet/pull/435
For the rest of the tasks I’m still doing debugging and testing
Separately there is another ticket to track progress of adding 8 more animated characters 3DStreet/3dstreet-assets-source#77
There is one suggestion about the characters and switching global animation. Now there is a separate glb's with animated character models and a separate glb's with static ones.
- This is unnecessary, since for static ones we can use animated character models, just turn off the animation.
- If use the globalAnimation live switch (without reloading the scene), then only option 1 is suitable
So I'll use 8 for now for the whole scene until another 8 are ready?
@Algorush yes, you're right, this is the best strategy. We should remove the static ones completely from the assets repo and the assets.js file.
However, initially I hesitate as I'd like to wait until all 16 characters are available, but then I think we might as well get started and @gnansai already has this next on his queue, so maybe keep working toward this and I'll wait to merge until the other 8 characters are ready?