Skip to content

MozillaReality/hubs-avatar-pipelines

Repository files navigation

Avatar assets and templates for Mozilla Hubs

This contains some useful working files for editing avatars for Mozilla Hubs.

IMPORTANT: If you are cloning this repo, you MUST first install GitLFS or else many of the files will not work.

Depending on how involved you'd like to get in the avatar creation process, you might choose to simply 're-skin' the existing robot avatar by painting your own texture maps, or create your own fully custom 3D model.

Reduce Cloning Size

Cloning the full repository can be difficult on a slow connection due to its large size. The majority of this comes from Substance/, which is several GB, and is not necessary unless you intend on using Substance Painter when customizing an avatar. If you do not intend to modify the avatars using Substance Painter, you can exclude the files in Substance/ from being downloaded by GitLFS by following these commands:

mkdir hubs-avatar-pipelines && cd hubs-avatar-pipelines
git init
git remote add -f origin https://github.com/MozillaReality/hubs-avatar-pipelines.git
git config lfs.fetchexclude "Substance"
git pull origin master

This reduces the project download size from several GB to less than one GB.

Making your own custom avatar skin

A quick and easy way to create a custom avatar in Hubs is to create a custom skin using an image editor or texturing tool. We have a Getting Started Tutorial to help you create your first avatar skin.

You can use the following resources:

UV Layout example

The UV layout for the base robot avatar is purposefully symmetrical along the X (horizontal) axis. This makes it relatively easy to paint one half of the texture(s) and flip it to the other side. Some image editing applications such as Photoshop have built-in mirroring tools that allow you to paint both halves in real time.

Panda Bot example

The simplest version of re-skinning the robot avatar would be to simply paint a 'baseColor' map. However, because Hubs uses glTF standards it supports many of the map types associated with physically-based materials. The default avatar is currently using:

  • Base Color
  • Emissive
  • Normal
  • Ambient Occlusion
  • Roughness (black = glossy, white = rough)
  • Metallic (black = non-metal, white = fully metallic)

NOTE: Ambient Occlusion, Roughness, and Metallic must be combined in one singular image with each texture occupying the Red, Green, and Blue channels respectively. This is sometimes referred to as an 'ORM' texture.

It is highly recommended that texture resolution be kept at 1024x1024 or below. This is mostly due to Hubs being a web-based application where large download times for bigger files can hurt performance, especially on mobile devices. All textures MUST be powers of 2 (64, 128, 256, 512, etc.)

Making your own custom avatar model

We offer the following resources if you'd like to modify our Robot avatar:

We recommend using The lastest stable version of Blender for custom models since we have provided example files that you may use as a guide. (Typically, skeleton setup varies between modeling appications which can make importing/exporting skeletons a bit tricky due to unexpected changes in bone rotations, but it is still possible to use something other than Blender.) Note: the .blend files were created with Blender due to the built-in glTF exporter. The glTF importer/exporter for Blender is currently in rapid development. Expect some bugs and please report them!

Hubs avatars are meant for VR, which means that you should work in real world units. A typical avatar height is roughly 1.7 meters. Note: This is typically a 'standing height'. The lack of legs shown here is a part of that overall height.

avatar height diagram

Files with the suffix _base refer to the most barebones, basic robot avatar template that can be used as a reference when creating new avatar models. Typically, the Blender workflow would be to either 'Link' or 'Append' the objects from AvatarBot_base_for_export.blend in order to use the existing armature (skeleton) and any animations that go along with it, using them as a basis for your own model that you would attach to it.

The armature is based largely upon the same hierarchy and naming conventions of the skeleton provided by High Fidelity. This also happens to have a similar structure to VRChat in terms of bone orientations. However, in our current implementation in Hubs, we have eliminated some of the bones within the hierarchy, namely the lower body and arm joints since we are not using any sort of inverse kinematics (IK) at the moment. This may change in future iterations.

License

All assets are licensed with the Creative Commons Attribution-ShareAlike 4.0 International License.

Code is licensed with the Mozilla Public License 2.0.

About

Mozilla Hubs avatars and related assets for avatar customization.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Contributors 4

  •  
  •  
  •  
  •