Please, Take a Seat!

High Fidelity is all about empowering people to communicate, create, and interact with one another in virtual reality in the most natural way possible. Featuring buttery smooth movement using inverse kinematics, High Fidelity’s use of hand controllers, head position and rotation provides an intuitive and realistic sense of presence when communicating with other avatars. Because of the importance of this inverse kinematic movement, we focused on making your avatars walk together, stand together, dance and fly together. Full body movement. Naturally, there is another frequently used means to position your body in space - sitting!

We had held off on implementing sitting because it required mixing static animation (for the lower body) and realtime controller-driven body upper body motion with IK. Well, the wait is finally over, as we have finally implemented a mixed animation/realtime IK sit system. It was entirely written in our JavaScript API and makes an outstanding example of blending animation and realtime input in VR.

How’s the chair work?
Glad you asked! When an avatar walks up to the front of the chair, they are actually stepping into an invisible zone entity, which detects the avatar and triggers the sit script. The sit script then rotates the avatar to sit in the correct position atop the chair, turns on a lower-body sitting animation, and switches your camera to a 3rd-person orbit camera view. While seated, you can look around, move your hands and arms, head and neck, all moving naturally, but your lower body remains seated and static. Then to get back up, simply walk forward. The sit script detects the motion and ends the sitting state.

How can I try it?
While in High Fidelity, try rezzing out any of the chairs from our Furnishings category on the Marketplace. Here are a few examples which all share the same sit script.

Customizing or making a new chair
Using one of our default, example chairs from our High Fidelity Marketplace, you can rez out a chair of your own. By making the base mesh invisible (turn off the Visible property) and placing it over other surfaces (such as benches, giant mushrooms or sofas) you can derive all kinds of new sitting experiences.  

If you’d like to make a complete chair of your own, you can do that too. Just grab the basic chair from Marketplace here, import the FBX into Maya, Blender, or other 3D modeling tool, create and place a new chair model over the basic chair from the FBX. Be sure to match the rotation, scale and position as closely as possible. Export this new FBX, replace the SourceURL in the chair model with your new model’s URL, reset the dimensions and use the scale button in edit.js to reach the right size. Try making something new. If you’re a fan of heavy metal, you can make a rocking chair!

A few caveats
In the current state, you may encounter some animation issues if you use the teleporter feature while seated, and be aware that if you turn on edit mode while seated, you are still in the 3rd person orbit camera mode, so it’s best to keep standing if you are building in world (for now).

If you haven’t tried sitting down in VR, you ottoman!

 

Hello! I'm Caitlyn Meeks, Director of Content at High Fidelity Inc in San Francisco.  We're busy making the metaverse!