Giter Club home page Giter Club logo

hubs-avatar-pipelines's Introduction

Avatar assets and templates for Hubs

This contains some useful working files for editing avatars for 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/Hubs-Foundation/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.

hubs-avatar-pipelines's People

Contributors

aelainelong avatar gfodor avatar j-conrad avatar keianhzo avatar misslivirose avatar rhiannanberry avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

hubs-avatar-pipelines's Issues

Consideration for Humanoid Avatar Mouth Movements

Feedback from IEEEVR: the humanoid avatar animations are a bit hard to see who is speaking - We may want to consider if there is a scale we can apply that would change how the audio responsiveness is handled, but wanted to capture that feedback here as well.

Exporting base for alternate body results in Blender error

I'm putting this here to track it, not because I think it's necessarily an issue with the .blend file, so we don't lose this. This was observed on 2.80 beta (b331515d2e47).

  1. Download the https://github.com/j-conrad/hubs-avatar-pipelines/blob/master/Blender/AvatarBot/AvatarBot_base_for_export_altbody.blend file

  2. Attempt to export as a .glb or .gltf file using the exporter out of box

  3. Result:
    image

This did not happen when I followed the flow of importing the alternate body .glb, making changes, and re-exporting. I'm not familiar enough with Blender to quite get a read on the issue.

Exported model's head does not scale when speaking

Exporting to glTF from the provided AvatarBot_base_for_export.blend gives a model that does not scale the head when you speak in Mozilla Hubs. AvatarBot_Base.glb in the "Exported GLB models" folder has the same issue.

Exporting two objects from Blender makes Mozilla Hubs guess (I assume) at which model is the body and which is the head and does give a setup where the "head" scales. So it's not clear why the setup in this repo does not work.

I'm on Blender 2.82.

Moving with avatars causes mesh glitches in first person perspective

This happens with some of the currently uploaded avatars and also the avatars I made myself. When I use them I see portions of the mesh visible as I move. I see some vertices wobbling or stuck at a point. This glitch is only visible to the user of the avatar other users cannot see it on my avatar.

https://imgur.com/a/t7U9PbO - example

Also I have noticed that if I use a selfie camera this glitch disappears, however when I remove the selfie camera it occurs again.

Any clues? Thank you!

Exporting Video based Avatars from Blender omitting webcam property

I can't seem to find out how to export a webcam based avatar from blender. I've tried importing and exporting both the provided astronaut GLB and the BLEND file, and while both exports show the avatar in hubs, neither allow avatar webcam sharing.

Is there a specific method of exporting the GLB that's required for it to include the relevant webcam properties? Thanks

Can't open .blend files

I can't open the .blend files in any these version of Blender:

2.93
2.92
2.9
2.83.13
2.8

message error:
File format is not supported in file 'path/AvatarBot_base_for_export.blend'

Improve animation workflow for avatars

Follow-up to #5 - it isn't always clear that there are additional steps that have to be taken to enable the audio driven behavior for avatars. This issue is to track work done (e.g. if we create a plugin) to make this easier

avatar disappear when too close to another avatar o camera

i have made a humanoid avatar (custom made in blender ), everything work fine exept the fact that when i come too close to another player or the "selfie camera" option the model disappear insted of become faded like the default one ,any guess what am i doing wrong?it is an expected behaviour?

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.