Skip to main content
Version: Latest

AIPlayer Set up

Full setup process (4 steps)
  • Step 1: Add AIPlayer's parent layout to the page you want to use.
  • Step 2: Prepare App ID, authentication key(User Key) that will be used in the Authenticate function.
  • Step 3: Get the AI to use by implementing the Authenticate response.
  • Step 4: Initialize AIPlayer to the desired AI.

You can create AIPlayer and get the View(UserControl) object through the GetObject() function.

// practical use example
private AIPlayer _aiPlayer; // AIPlayer object to be used in cs
public AIPlayerView AIPlayerObject // View (UserControl) of AIPlayer to be used in xaml
get => _aiPlayer.GetObject();
private set => OnPropertyChanged(nameof(AIPlayerObject));

Step 1. Organize your layout

Configure the View to use AI Human in the XAML file. Create a ContentControl to place the AI and bind the AIPlayer. In the CS file, the property of the actual binding object is defined.

public AIPlayerView AIPlayerObject
get => _aiPlayer.GetObject();
private set => OnPropertyChanged(nameof(AIPlayerObject));

<ContentControl Margin="0" Grid.Column="0" Content="{Binding Path=AIPlayerObject}" />

The Authenticate function requires 2 parameters. These two are App ID and User Key information.

UserKey is a unique string generated by DeepBrain AI and should never be disclosed. If you call the API using this authentication key, you will receive available Default AI data and a token to be used in the future.

If token refresh is required because the token expired, it can be refreshed by calling Authenticate() again.

Step 3. Implement Authenticate and Get the AI list

If you have all the necessary Authenticate function parameters mentioned in step 2, you are ready for authentication. Input these parameters inti Authenticate AIHuam.AIAPI.Instance and implement a callback function. If authentication is successful, AI list will be returned. If you do not have permission to any of the AIs, aiList returns null.

public ObservableCollection<AIAPI.AI> AIs { get; private set; }


AIAPI.Instance.Authenticate(APPID, USERKEY, (aiList, error) => {
string message = string.Empty;
if (error == null)
message = $"Auth Complete, Avaliable Count : {}";

/* e.g.)

AIs = new ObservableCollection<AIAPI.AI>();
foreach (AIAPI.AI item in
message = $"Auth Error : {error.ToString()}";

AIHuman.Utils.Log.Write(message, Log.Level.Info);

Step 4. Initialize AIPlayer to the desired AI

After authentication, you can check the list of AIs that can be used and initialize them to the desired AI. First, create the AIPlayerOptions object with the desired AIAPI.AI.aiName as shown in the example code below. If you want to remove the AIPlayer object that you were using before, use the Dispose function to release the resource.


Used as a parameter to create AIPlayer objects. Valid only at initialization, refer to implementations to use properties or functions of AIPlayer objects at runtime.


Set the AI you want to initialize.
Assigns the AIList.AI.aiName value acquired by the AIHuman.Core.AIAPI.Authenticate or GetAIList function to this property. If you assign any value, the AIPlayer may not initialize normally.


Set the Scale of the AI at the initialization.
The default is 1.0f.


Set the Margin of the AI at initialization.
The default is null.


Set the Speed of the AI at initialization.
The default is 1.0f.


Set the Disconnection of the AI at initialization.
The default is false.


Set the local Caching Strategy of the AIPlayer at initialization.
The default is AIHuman.Interface.AIPlayerCachingStrategy.V1.


Set the Maximum Local Caching Count of the AIPlayer at initialization.
The default is 2000 units. The unit is AIClipSet.

public AIPlayer AIPlayerObject // View Binding object


private AIAPI.AI _selectedAI;
public AIAPI.AI SelectedAI
get => _selectedAI;
if (value == null)

_selectedAI = value;


private void UpdateSelectedAI()
if (_aiPlayer != null)
_aiPlayer = null;


AIPlayerOptions options = new AIPlayerOptions(SelectedAI.aiName);
//options.AICachingStrategy = AIPlayerCachingStrategy.V2; // for using local caching
//options.CacheLimit = 300; // for using local caching Limit
//options.AIScale = 1.2f; // for AI Human Scale
//options.AISpeed = 1.2f; // for AI Human Speed
//options.AIMargin = AIMargin; // for AI Human Position
//options.AIDisconnection = true; // for AI Human network on/off-line

_aiPlayer = new AIPlayer(options, this);
AIPlayerObject = _aiPlayer.GetObject();


Depending on the option, the AIPlayer changes to an operable standby (IDLE) state after initialization (download and load resources) is completed. It can also receive a callback as a second parameter in the AIPlayer constructor.

Dev Tips!
  • You can set various options using AIPlayerOptions objects!
  • You can inherit AIHuman.Interface.IAIPlayerCallback and receive a callback for events, etc. through the implemented object!
  • The API Reference also specifies this!

Callbacks such as AI events will be covered in the next chapter.