âïļSDK - Core Package
The SDK's Core Package includes all the mandatory technologies and features a game needs to implement and leverage the User-Generated Emote feature at its full potential.
When designing our SDK we focused on developing features that make you save time and allow you to easily integrate the User-Generated Emote feature within your game. Each of the Core Package modules are flexible so they match with any dev environment.
Learn more about the SDK's 3 Core Modules inAnimation system, #smart-networking & Account management.
Animation system
One of the many challenges developers face when integrating emotes or animations in game is to play them on any avatars. It is even more complex when a game or 3D digital world includes different avatars, with eventually different skeletons. At Kinetix, the user-generated emotes are created on Kinetix's Standard Avatar. To play them on your custom avatar, we have developed a proprietary retargeting algorithm that transfers any 3D animation (emote) to any 3D humanoid character, and fits with any animator system (Unity, Unreal Engine, and custom animator systems).
When loading a humanoid avatar, Kinetix's Core Package calls the associated user-generated emotes to handle the retargeting. The process consists of downloading the GLB file of the emotes and retargeting them with the registered avatar to generate Legacy AnimationClips that perfectly fit your avatar(s). The retargeting process is optimized to keep a constant frame rate of your application. Each time a new emote is loaded, it is added in the queue of the retargeting module and perform N actions per frame.
To avoid the conflict between generation of humanoid AnimationClip at runtime and the Animator, we developed a proprietary Animation System composed of "KinetixCharacterComponent", "ClipSampler" and "BlendAnimation" scripts. They are automatically added at the GameObject (Unity) / Actor (Unreal Engine) of your animator when you initialize your SDK.
That way, when a player triggers a user-generated emote in-game, our Core Package samples at runtime the pre-generated AnimationClip. It guarantees to always play high-quality emotes with constant level of performance. Once you have registered your animator, (Unity's animator, Unreal Engine's animator or custom animator) this process becomes seamless.
Head over to Animation System - Unity & Animation System - Unreal Engine to learn more and integrate.
Emote networking & caching
Adding dynamically and playing multiple emotes simultaneously can be very tricky issue: in the vast majority of games, it's not possible to store thousands or millions of user-generated emotes in player's cache or to hardcode the emotes files, which leads to storing emotes on a cloud.
The concept is to cache the Peers ID by registering them via our SDK. A KinetixCharacterComponent is added to local and remote players. Using a simple implementation, you will be able to get the current pose of the local player and apply it to the remote player.
To ensure real-time communication between clients our solution compresses the volume of messages that are shared by only serializing poses from played emotes. This technique is +200 times more lightweight than sharing emotes files, and allows multiple players to play and see user-generated emotes simultaneously.
Head over to Kinanim (Emote streaming) to learn more. Configure the network for your game: - Network - Unity SDK - Network - Unreal SDK
Account management
Managing and distributing the right content to the right gamer usually takes a lot of time and implies custom developments.
Kinetix's SDK include an Account management solution to fetch user-generated emotes and their data with players while guaranteeing their data privacy. It facilitates content distribution and monetization for game studios / developers while ensuring that players will easily retrieve their user-generated emote in their inventory in-game in a seamless way.
This Account management module also lets you track user-generated emotes usage metrics and optimize emotes distribution in your game accordingly (all metrics accessible from Developer Portal).
Last updated