Comment on page
Creating and uploading custom chairs
In Breakroom, seating isn't just meant to be attractive—it's functional. Learn how to create custom, animated chairs that can interface with Breakroom's gesture and camera systems.
In order to offer your users a truly unique virtual experience, you may wish to create customized, functional chairs or other seating options. In order to illustrate this process, this document will guide you through the following steps:
- Creating an empty parent game object.
- Importing an example chair model into Unity.
- Applying that model to the parent game object.
- Adding the necessary components to make a cohesive, functional seat item.
In Unity, right click in the Hierarchy and create an empty parent game object. Change the transform and rotation values to 0/0/0 in the Inspector panel, and rename the object as required. We will use this empty game object as the "container" for Breakroom's Room Furniture and Virtual Good components, which we will install later in this tutorial.
Unity, with the Hierarchy and Inspector panels highlighted. Our game object is called "Chair Demo."
There are two ways you can import the 3D model you want to use for your chair object into Unity.
- 1.Navigate to Assets > Import New Asset. This will launch a standard import window. Select the 3D model file on your computer, and then click the Import Button.
- 2.Locate the 3D model file in Windows Explorer and click on it. Then drag the model file into Unity's Project Asset folder directly.
Both FBX or OBJ file types are supported. FBX is the preferred format.
The Import New Asset window open, with a 3D model file selected.
Select the chair model file in the Project Asset folder, and drag it onto the empty parent game object we previously created in the Hierarchy. Make any needed changes to the position and rotation of the object, and then name the chair (see our suggested naming conventions below).
While the chair model is still selected in the Hierarchy, click the Add Component button located at the bottom of the Inspector panel and add a mesh collider. We will use this further on in the tutorial.
Unity, with arrows showing the chair model selected within the Hierarchy.
While your mouse cursor is positioned over the parent game object, right click and select the option to create a new empty game object. Name this object "Seat Position." We will use this object as a container for the Seat Position component, allowing us to move the seat animation independently from the chair model in order to make necessary adjustments.
Select the new Seat Position game object. In the Inspector panel, click the Add Component button near the bottom, and add the Seat Position component. You will notice a green rectangle appear over the chair model.
Unity, with the Seat Position object highlighted in the Hierarchy.
Animations can be imported into the Project Asset folder the same way you imported the chair model. After you import an animation file, ensure the animation is set to Humanoid animation type under the Rig tab. Drag the animation file into the Animation slot under the Seat Position component. You should now see a wireframe view of the animation appear within the green rectangle.
Animation slots can be found within the Seat Position component.
Once you add your animation, you may find that it forces your avatar through the chair, or otherwise needs to be adjusted. You can do this by selecting the Seat Position game object in the Hierarchy and moving it into the correct position using Unity's movement tools.
Adjusting the Seat Position component allows you to fix animations that are too low or too high for your chosen chair.
If different animations are necessary for male and female avatars, you can use the Male/Female animation slots and leave the universal Animation slot empty.
You can now make any final adjustments to the model or animation positions prior to uploading. The wireframe animation also serves as an excellent guide for adjusting the overall size of the chair model.
Adjusting the size/position of the chair model and the position of the linked animation. Unity's movement tools are highlighted.
In order to upload the chair object to Breakroom, we will need to add the Room Furniture component. Select the parent game object in the Hierarchy, and then add the Room Furniture component by clicking the Add Component button located at the bottom of the Inspector panel. Breakroom requires that all chair objects be placed on the floor, so check the "Place on Floor" option under Placement.
Finally, select the chair model itself in the Hierarchy and drag it to the Main Collider slot. The chair model contains the mesh collider we installed earlier.
Unity, with relevant portions of the Room Furniture component highlighted.
Next, we will add the Virtual Good component to the parent game object. This is the main settings component for the game object, and contains information such as the item's name, category, inventory image, etc.
Select the parent game object in the Hierarchy, and add the Virtual Good component by clicking the Add Component button located at the bottom of the Inspector panel. Pay close attention to the instructions in this component. A red warning icon indicates that required information is missing, while a yellow caution icon indicates that information is strongly advised, but not required.
For this tutorial, we will set the Type to Furniture, the Category to Furniture/Chair, and give the chair a name and description. We will also give it a brand name and author under the Author tab.
Unity, with relevant portions of the Virtual Good component highlighted.
To complete your chair, you will need to drag the parent game object into the Project panel to create a prefab. You can then right click on that prefab and select Upload to Sinespace to upload the item.
Drag the parent game object to the Project panel to finish fabrication.
When integrating chairs into the conferencing system, Breakroom uses a nametag allow/ignore system. For ease of setup, we strongly advise that you institute and follow a simple naming convention. For example, a series of auditorium chairs might be named Auditorium_Chair 1, Auditorium_Chair 2, etc.
You can upload a group of seats/furniture as a single game object instead of uploading them individually. Just make sure that you follow a naming convention, as explained above.