Virtual Humans are coming, and they're here to change the way we train for soft skills. Virti is leading the charge in this new frontier of training, so in this blog series we're giving you a behind-the-scenes look at how our Virtual Humans are created and what they can do. Whether you're a developer looking to learn about how we’ve created our Virtual Humans or simply curious about the details of this new technology, this series is for you.
When creating realistic Virtual Humans, there are many factors to consider. One of the most important is how to address the character's movements, environment and animations. In this blog post, Unity Developer Alex Hodson takes us on a tech deep-dive into how Virti uses a CDN and Unity addressables to facilitate realistic, lifelike motion and detailed, customisable environments for our characters.
Virtual Humans by Virti
Create AI-powered Virtual Humans on mobile, desktop and in AR/VR to scale soft-skills training.
- Web and Desktop
- VR headsets, including the Meta Quest 2
For Web and VR there are 3D Avatars displayed in Environments and students can interact with these avatars through conversations or actions. This is useful for soft-skills training, where a learner can practise difficult conversations with realistic feedback from the AI Human. By providing a realistic experience, but having it be repeatable and controlled, learners can get feedback on their approach to conversations and confrontations in the workplace, whatever the industry.
For consistency we want the same high-fidelity Avatars and Environments displayed on both the web and VR platforms, but with performance being a limit on web devices especially, we need to be able to customise the assets on a platform-dependent basis.
Our unique solution to this was to implement a Unity Addressable based solution, that helps us keep our avatars diverse and realistic across all devices, whilst being customisable on a by-device basis. To do so, we split our Unity projects into three:
- A WebGL Unity project that contains the framework for the web specific settings and interactions.
- A VR(Android\Windows) Unity project that contains the framework for the VR specific settings and interactions.
- An Art Asset project that contains the Avatars and Environments. This is used to generate the Asset Bundles that are uploaded to a content delivery network hosted in the cloud, for quick distribution.
These art assets can then be optimised based on the target platforms then built using the Unity Addressable system. They are then deployed to a Content Delivery Network that is hosted in an Amazon Web Services bucket. The final structure of the bucket looks like this:
After building the assets for each supported platform, they are uploaded to the AWS bucket under a versioned folder. There is a configuration setting which specifies the version of the assets that are to be used. This means that testing and quality assurance can be performed against the new set of assets prior to launching the new version. All this is a very technologically complex process that ensures we can have the best assets available to all users regardless of their device. Given that realism and accuracy are at the core of the Virti mission, it was crucial to us to ensure this process was foolproof, to deliver the best possible quality and fidelity to the end-user, and help them learn by being immersed in a virtual space.
There are many benefits from this process, as opposed to a single Unity project containing all the assets:
- Smaller initial builds. The basic build can be kept to a very small size as it doesn’t need to contain the art assets that it may or may not need.
- For the Web the download times are greatly reduced as only assets that are required for a specific scenario are downloaded.
- For VR the install size is kept to a minimum as this also doesn’t require all the art assets to be released in the build.
- For all platforms we can update the art assets without having to re-deploy the core app.
- If there are any asset issues or problems then a small config change will point the application back to the previous version of the assets.
What does this mean for our customers? This is one of those scenarios where hopefully all this hard work goes completely unnoticed. The more invisible and seamless this work is to the end user, the more effective this system will be. We take pride in ensuring everything we release is seamless, integrated and realistic - and this just helps us do so!
If you’re a developer interested in getting started with addressables, this Unity Learn tutorial can help you kick off your project and help you master the basics.
As we continue to develop our Virtual Humans, we're looking at ways to make them even more lifelike and engaging. Stay tuned for future blog posts where we'll explore new features and applications for this exciting technology! In the meantime, if you want to see Virti in action, head over to our website and book a demo. You won't be disappointed.