Step 1: Installation

To integrate KuteEngine into your own Unity Project, you need to use the Unity Package Manager.

Import packages

All of our public content is available from our GitHub repo as Unity custom packages. You need two packages to start:

  1. virtualbeingstech, which contains the runtime DLL of KuteEngine. This is always needed, no matter what type of being you create.

  2. A rig-specific package: humanoids for now! If you need other types of characters, please reach out to us via our website or Discord.

Installation of the packages is as follows:

  1. Import the latest version of the virtualbeingstech-unity package (instructions there).

  2. Set up your Key through Virtual Beings > Settings menu.

If you don't have a Key, you can use the Demo key! For the time being, this will give you access to three commercially usable humanoid characters. Make sure to join our Discord and stay until the full release to preserve your three-character license after the alpha!

  1. Import the Being package of your choosing. For example, you can import the Humanoid Being Package.

Run the samples

Each Being package is shipped with samples, accessible through the Unity Package Manager window. You can import them and try them out.

Before installing any sample that contains the word URP or HDRP, make sure to install the corresponding render pipeline.

Here's an example of the look demo scene in the HDRP samples for humanoids, featuring procedural look-at behavior and facial expressions.

Once you have imported your packages and optionally tried out the samples, you can start preparing your scene to activate a Being.


KuteEngine needs at least two layers defined in Unity:

  • Ground Layer -> Defines the ground and / or a surface where the being can walk or move.

Assign this layer to any gameObject, with a Collider, that should be walkable.

  • Being Layer -> Defines the Being.

Assign it to your Being Prefabs (and all of it's children).


This component handles all of the KuteEngine components in your current scene.

  1. Add a BeingInstaller.cs component to your scene.

  2. Assign to it a BeingInstallerSettings scriptable object (you can create a new one via Assets -> Create -> VIRTUAL BEINGS -> Being Installer Settings).

  3. In the BeingInstallerSettings scriptable object, fill in at least:

    1. Being Manager Settings -> Defines all the Beings

      Needs a Being Shared Settings scriptable object, a Being prefab, and a Being Settings scriptable object.

    2. Navigable Terrain Settings -> Defines the navigation of the beings

      Assign it Ground Layer

This component defines a walkable area for any Being.

  1. Add a NavigableTerrain component to your scene.

    1. Add a BoxCollider to the BoundingBoxForNavServer field.

    2. Assignable Character Layers -> Corresponds to the Being Layer


Add NavigationObstacle.cs script on any GameObjects that should behave as obstacles (static or dynamic). No need to add them for Interactable gameObjects.


An Interactable represents an object that the Being should know about, or even interact with.

You define how a Being should react to any type of interactable (look, evade, search for, play with, etc...)

Add an InteractableController.cs component to your gameObject.

  1. Set Obstacle Type to define how it interacts with navigation system.

  2. Add Interactable Properties depending on what you want

    1. Add Movable properties if the interactable can move.


A being can and will interact with player, depending on your activities.

  1. Add PlayerAgent.cs component to your main camera.

The main camera needs to be tagged MainCamera.

Last updated