Sitting in chairs
Is your feature request related to a problem? Please describe. I want my avatar to sit in a chair.
Describe the solution you'd like Maybe a way to make them look like they were sitting on a chair or a couch or around a table? Ideally, an avatar could walk up to a chair and when he/she puts their mouse over it they can click and their avatar would go into a sort of sitting position on the chair?
Describe alternatives you've considered Waypoints in spoke. A waypoint snaps your avatar to a location/rotation/scale. Lots of options for remaining locked, etc. It does not, however, change anything about the pose or animation
Additional context Right now the placement of the waypoint means one of two things when someone clicks it. Either
- the camera will match the waypoint exactly OR
- the character controller will snap to the nav mesh underneath the waypoint and the camera will end up wherever it ends up depending on the height of the player.
I could imagine augmenting this some seat-specific functionality (and maybe a separate top-level node in Spoke) that does something slightly different. Perhaps something like:
- Scene author creates a "butt spot" (name tbd) where the avatar's butt should end up
- Avatar author creates a "butt" node that should match the "butt spot" exactly after the click
- Avatar author creates animations like "stand-to-sit" and "sitting idle" and "sit-to-stand" which we play on entering and exiting the seat. We'd probably need some fallbacks for when the avatar does not have a butt node and we'd need to do some work to managing what it looks like when someone teleports into or out of the seat.
Requested by discord user Mohoman
┆Issue is synchronized with this Jira Task
Yes, this seems like it would be the correct way to implement it Virbela does the "sitting" very well if you want to just do it the way they do it You can try their world for free here: https://www.virbela.com/
I just tried to achieve this with Way Points. Most avatars are just a torso so my idea was setting the the Y value of the way point low on the seat so the bottom of the torso would be aligned with the chair. This is what it looks like:

Unfortunately there's a problem, you'll notice the bottom of the avatar is clipping into the seat, you have to ensure enough of the avatar is clipping to make it stay, if you place it any higher it seems that collisions push the avatar out of the seat and it ends up at its regular standing height (Edit: Just realized I probably could of turned off collision on the chair but haven't tested as I really need my chairs collidable).
This made me think about how sitting should be implemented, possibly similar to the Spawn Point element which is implemented as a Way Point element with the "Spawn Point" option checked. Sitting would be great if it was implemented as part of Way Point as it already contains options that would be relevant.
A few thoughts about this implementation
- Most VR apps show that sitting is available when you hover the VR pointer or mouse over the chair. Currently Way Point requires the user to press a button and then hover over it.
- Allowing custom icons on Way Points would allow a sitting icon to be displayed to explain to the user what the way point is for. Here's an example with the current icon:
