Kinetix Documentation
Website
  • 🖐️Welcome
  • 🕺About Kinetix
  • 🖌️User-Generated Emote
    • 🤖Video-to-animation AI
    • 🤸Kinetix Emote Standards
    • 🦴Retargeting
    • 🏂Kinanim (Emote streaming)
    • 🖊️Try the User-Generated Emote feature
  • INTEGRATION
    • 🤷SDK or API: what to choose
    • 🤩Kinetix SDK
      • ⚙️SDK - Core Package
      • 🧩SDK - Sample scene
      • 🧑‍💻Tested & approved Game Engines for the SDK
      • 💻SDK Integration in Unity
        • ⬇️Set-up Unity & Import the SDK
          • 🔑Get your Game authentification API Key
          • ⚙️Setup your Unity environment
          • 🔧Install the Kinetix SDK in Unity
          • ⌨️SDK Initialization - Unity
        • ⚡Quickstart - Unity SDK
        • 🦋SDK Core Modules activation - Unity
          • 🔐Account Management in Unity
          • 💃Animation System - Unity
            • 🎢Unity's Animator System
            • 🎨Custom Animation System
            • 🌳Root Motion
              • RootMotion + NavMeshAgent
            • 🎞️Frame Controller
            • 💪IK Controller
            • 🫥Avatar Mask
          • 📶Network - Unity SDK
            • Photon PUN
            • Photon Fusion
        • 🕺User-Generated Emote integration (Unity)
          • Embedding the PWA in your Unity application
          • Validation / Retake
        • 🚧How to update Kinetix SDK in Unity?
        • 📕SDK API Reference - Unity
          • KinetixCore
          • KinetixCore.Account
          • KinetixCore.Animation
          • KinetixCore.Metadata
          • KinetixCore.Network
          • KinetixCore.UGC
        • 📂Unity SDK Changelog
      • 🕹️SDK Integration in Unreal Engine
        • ⬇️Set-up Unreal Engine & Download the SDK
          • 🔑Get your Game authentification API Key
          • ⚙️Set up your Unreal Engine environment
          • 🔧Install the Kinetix SDK in Unreal
          • ⌨️UE SDK Core Package Initialization
        • ⚡Quick Start
        • 🦋SDK Core Modules activation - Unreal
          • 🔐Account Management - UE
          • 💃Animation System - UE
            • Local player system in Unreal Engine
            • Avatar system in Unreal Engine
            • Without uploading an avatar (deprecated)
              • Animation in a Third Person Template
              • Animation in an existing project
          • 📶Network - UE SDK
        • 🕺User-Generated Emote integration (UE)
        • 📕SDK API Reference - UE
          • KinetixCore
          • KinetixCore.Account
          • KinetixCore.Animation
          • KinetixCore.Metadata
          • KinetixCore.Network
        • ⬆️Updating from 0.3 to 0.4
        • 📂UE SDK Changelog
    • 😍Kinetix API
      • 🔑Get your Authentification API key
      • 🔌API routes
      • 🪝API Webhooks
      • 🏓Possible Return Codes
  • Management
    • 🚪Developer Portal
      • 👽Avatar Upload
      • 👮UGC Moderation
    • 🖌️UGE: Guides & Best Practices
      • 📐User-Generated Emote specifications
      • 👌Video recording best practices
      • 👻User-Generate Emote Use Cases
  • SUPPORT
    • 📬Bugs reports & features requests
    • ❓FAQ
      • FAQ: General questions
      • FAQ: Unity SDK
      • FAQ: Unreal Engine SDK
    • 🤕Troubleshooting
    • 📚Glossary of terms
Powered by GitBook
On this page
  • Local player:
  • Remote Peers:
  • Using your custom uploaded avatar for Contact-Aware Retargeting
  • NPC or other local avatars :
  • Loading the full emote and getting the duration :

Was this helpful?

Export as PDF
  1. INTEGRATION
  2. Kinetix SDK
  3. SDK Integration in Unity
  4. SDK Core Modules activation - Unity
  5. Animation System - Unity

Unity's Animator System

SDK Integration if you are using the official animator system from Unity.

Our SDK offers functions in order to handle smoothly Unity's Animation system.

Local player:

To register/unregister your local player animator :

KinetixCore.Animation.RegisterLocalPlayerAnimator(Animator _Animator)
KinetixCore.Animation.UnregisterLocalPlayer()

To stop animation on local player :

KinetixCore.Animation.StopAnimationOnLocalPlayer()

Learn more about our Animation functions in KinetixCore.Animation

Remote Peers:

To register/unregister remote peer animators :

KinetixCore.Network.RegisterRemotePeerAnimator(string _RemotePeerUUID, 
                                               Animator _Animator)
KinetixCore.Network.UnregisterRemotePeer(string _RemotePeerUUID)
KinetixCore.Network.UnregisterAllRemotePeers()

Learn more about our Network functions in KinetixCore.Network

Using your custom uploaded avatar for Contact-Aware Retargeting

First, check Avatar Upload to get the UUID of one of your uploaded avatar.

Then, when registering your local player, you can pass the UUID of one of your uploaded avatar, this will allow the SDK to automatically use your custom retargeted emotes.

KinetixCore.Animation.RegisterLocalPlayerAnimator(Animator _Animator, string _AvatarID)

NPC or other local avatars :

In addition to the local player or remote players, you can also register other avatars (to animate your NPCs or shop avatars for example)

The registering of the avatar returns a string representing the unique Id (UUID) to pass as parameter to the subsequent functions.

string PlayerUUID = KinetixCore.Animation.RegisterAvatarAnimator(Animator _Animator)

You then load the animations with the avatar UUID

KinetixCore.Animation.LoadAvatarAnimation(string _PlayerUUID, string _EmoteID, string _LockId, Action _OnSuccess = null)

And play the animation with

KinetixCore.Animation.PlayAnimationOnAvatar(string _PlayerUUID, string _EmoteID)

Loading the full emote and getting the duration :

To get the Duration of an emote, you must first get a KinetixClip object. You can easily get it via the code sample

KinetixCore.Animation.LoadLocalPlayerAnimation("MyEmoteId", "myLockIdForExampleMyGameName", 
        _OnSuccess: (_Clip) => {
            Debug.Log("Clip started loading and can begin streaming: " + _Clip.Duration);
        },
        _OnComplete: (_Clip) => {
            Debug.Log("The emote was fully downloaded and is loaded: " + _Clip.Duration);
        },
        _OnFailure: () => {
            Debug.LogError("Unable to load emote.");
        });

Please note:

  • You can have the duration in the OnSuccess callback

  • The OnComplete callback ensures the full clip is available

PreviousAnimation System - UnityNextCustom Animation System

Last updated 7 months ago

Was this helpful?

🤩
💻
🦋
💃
🎢