Didimos can be generated with either FBX or glTF. When using the glTF format, a didimo can be loaded anytime, be it by importing into a Unity project, or even at runtime on a shipped application. The Didimo glTF extension specifies extra material and shader properties, and texture maps, so they are rendered with high visual quality. The extension will also make the importer create all the didimo components needed to handle facial animation.
The glTF importer will automatically handle any glTF didimo placed in the project. It will be creating all the meshes, skinning, materials, animations, and other required components. The glTF asset itself will become a Unity prefab, that can be dragged and dropped into a Unity scene, as any other Unity prefab.
Didimo packages come zipped, so after downloading they must be extracted into the project. The glTF importer will automatically take care of the rest.
To create and download didimos, check our Generate a New didimo page. After downloading and extracting a glTF didimo zip package somewhere Unity can access, didimos can be loaded with the DidimoLoader class. The sample code below exemplifies how to do that. It allows to either load a didimo by specifying a folder where all the didimo files are contained (LoadDidimoInFolder), or to directly specify the path to the didimo file to be loaded, e.g. the avatar.glTF file (LoadDidimoFromFilePath).
string didimoKey = "didimoKey"; string didimoRootPath = "path/to/didimo/root/folder"; DidimoComponents didimoComponents = await DidimoLoader.LoadDidimoInFolder(didimoKey, Path.Combine(Application.dataPath, didimoRootPath )); // Do anything with didimoComponents
The result of the didimo loader task is a DidimoComponents, which contains relevant didimo components that allow for interaction with the didimo, such as DidimoAnimator for playing animations.
To handle glTF assets, the glTFUtility repository was forked, to allow for some changes, mainly to add support for Didimo's custom materials. This dependency can be found at Assets/Didimo/Core/submodules/GLTFUtility. If this dependency is already present in a project, it will have to be deleted.
Updated over 1 year ago