Avatars
As part of being part of the ODK ecosystem, you get some fairly extensive Avatar management out of the box. There's a few pieces to what's available, that we'll go through here.
What avatars are available?
Currently we've proved avatar implementation for the following collections:
Bored Ape Yacht Club
Meebits
Kodas
Moonbirds
There are also individual avatars meshes available for the following collections:
Mutant Ape Yacht Club
Voyagers (Otherside)
If you log into an experience with an account that has a wallet linked with a relevant token, you'll be able to select that avatar as your in-game character from the Web Browser Avatar tab.
Both the Koda and Moonbirds collections also have unique Animation Blueprints to allow custom animations (beyond the standard Otherside animations set).
More collections will be brought online as the ODK matures.
How are the avatars implemented?
To provide dynamic access to a vast array of dynamic characters, at runtime we download and encode the relevant character meshes from their GLB definitions. This implementation allows us to utilize our Carnival renderer which allows us to scale the number of unique characters in a world at once to 10,000+ !
How is it implemented within the ODK?
Current supported avatar types are tracked within the BPE_ODK_AvatarType enum within Unreal.
The flow for selecting a player is as follows.
Retrieve the player's current selected avatar token via the KVStore within
BPC_ODK_PlayerProfileComponent.Once the avatar type has been verified, request the character load on
BPMC_ODK_AvatarComponent. This component manages loading the specific GLB on theM2M_CharacterAssetComponentas well as replicating the avatar type information out to observing clients.BPMC_ODK_AvatarComponentlistens for avatar info updates, and then callsRefreshAvatarTypeAnimStateon all clients whenever an update is observed. This functionality is currently responsible for setting the correct ABP + crowd details for the avatar.
If you're interested in observing when a player's avatar type changes, then bind to the OnAvatarTypeUpdated event on the BPMC_ODK_AvatarComponent.
Last updated

