Recently I took a look at Microsoft’s publicly released “Rocketbox Avatar Library”. Developed and released specifically for research applications with a focus on VR, it seems like an excellet tool to add to the Center for Immersive Experiences catalogue. From my explorations, I’ve come to the conclusion that it is indeed something we’ll get use out of, though there are aspects of it that are limiting so it is not a wholesale solution or replacement for use making our own custom designed avatars. In this post, I’ll go into detail about the pros and cons of this library.
First, let’s talk about the structure itself. The Rocketbox collection comes with over 100 avatars ranging from various occupations, gender, race, age, etc. It even includes some animal avatars for use. Also included in the package is all the textures for the avatars, their source files (in .max format), and a large collection of animations for the humanoid avatars, images of each avatar for easy lookup, and scripts to assist in Unity and Unreal integration. Each human avatar also comes in two varieties: one using a full facial rig for facial animation and one using facial Blendshapes. This adds up to a very massive 26 GB repository of assets. Luckily, it is quite well organized making it easy to find the assets you’re looking for as needed. This means that for our uses, it’s best to just take what avatars we need on a project by project basis and create new isolated packages of them. This is required due to some other issues I’ll be going into anyways, so it works out in the end regardless.
Moving onto the quality of the avatars themselves: they’re highly professional and very well made. All avatars are incredibly efficient in their polygons and come with high quality textures with color, normal and specular maps. They are also fully rigged with well weighted skeletons that allow for very simple and clean animation. As stated above, each humanoid also comes in two versions: face rig and Blendshape. There’s benefits to both of these styles depending on the use. Full face rigs allow for more detailed animation and programmatic nuances like allowing for face-tracking possibilities. On the other hand, Blendhapes allow for easier setup of automated systems like emotional overlays and talk loops. Salsa Lipsync, the plugin we’ve been using focuses on Blendshapes, so we’ll likely be using those ones for the most part.
The main issue with the models and rigs is the lack of customization options. The avatars are built in an incredibly efficient way, which includes making them all singular meshes. Their clothing is hard modeled into their bodies, not being able to be separated or swapped around like you can with custom made CC3 characters. This lack of customization also applies to their style: all the avatars have a sort of “realistic” look. Not quite an extreme level of realism like some CC3 characters, but convincing enough. The detail on them can be a bit uncanny in some lighting though. Changing their textures is certainly possible, though it would certainly be limited by the extents of the model, especially if they have specific work outfits. These issues make it clear that these characters aren’t really built for being the primary focus of an experience. Under close inspection they likely would come off as off-putting. But as background models or distant characters meant to fill in a virtual environment, they should work quite well. If a more “stylized” look is needed, we can also use similar techniques to modify their textures to what I did with high fidelity food models prior.
Moving on, let’s talk about implementation. As stated, the collection comes with scripts to assist in the transfer into Unity and Unreal. The Unity script is very welcome after my initial explorations in Maya of the models. Another issue with them that had me worried was their naming structures for the bones. It was very messy which could have had issues within Unity. However, library came with an editor script that specifically goes into the avatar’s skeleton and renames things as best suited for Unity. This made the automated processes of turning the avatars into Humanoid rigs smooth. As such, actually bringing them into a scene is a simple click and drag. A similar process of standardizing them to the characters I made before is also easily possible, with one exception I’ll go into in the cons below. Within Unity, even in URP, the characters look great. Opacity on hair and other map issues are all automatically resolved without issues from what I’ve seen. The animations included in the library are also easy to process in a similar way and apply to our character animation trees. They seem to be similar to the animations that can be found on Mixamo.
Cons on the implementation side involve some issues with the naming conventions of other aspects not addressed in the Unity Editor script, and the limitations of the animation library. While the skeleton is renamed and fixed up, there’s no standard “mesh” naming scheme among the avatars like there is in the CC3 characters. As such, if left alone we can’t share Blendshape animation details among them. This is a fairly simple fix however, as I just need to give them a similar name among them. This does still need to be it’s own animation set as opposed to the CC3 characters though due to the Blendshape nodes within the characters themselves being very different. With the animation library, a similar issue of lacking customization comes up. The animations are high quality, but also very high keyframed, meaning editing them is hard to do within Unity itself. Even in Maya there’s issues that can come up with trying to customize such premade animations. We’ll need to consider our options when it comes to what animations we want to apply to the characters. One last minor con is in how the characters use their eyes. While they do have eyeball joints, their eyes are semi-spheres rather than full spheres. Meaning with my eye tracking script, it is possible to turn their eyes so much the edge becomes visible. This could be fixed in a few ways if it ever becomes a real problem, so for now we won’t worry about it.
As a final positive note, I want to talk about their animal models a bit. The provided animals range vastly from multiple types of dogs, to chickens, to even camels. These characters obviously don’t have animations with them due to not using humanoid rigs. However, they are all still well rigged. The chicken for example has full bird wing joints going to wings hidden within the model. This allows for some animations where the wings come out that should be rather convincing when not examined closely. I can easily see many situations where some simple looping animations would be possible to make the animals fit into a virtual environment. I’m really excited for the potential with them.
Overall, the Microsoft Rocketbox Avatar Library is a fantastic tool. It will provide us with a lot of useful assets for fleshing out environments with characters. While they have limitations that keep them from being the main focus of an experience, they still provide plenty of utility as props within an experience. Using both the premade avatars from the Rocketbox collection and our custom made characters will give us many new avenues of exploration.
Leave a Reply