Using Custom Avatars - Ready Player Me Dependency Question

Hi Convai Team and Community,

I’m starting a new project using Convai in Unity and I’m planning to use my own custom avatars, not Ready Player Me avatars. I’ve noticed that the Convai package includes a script (ReadyPlayerMeImporter.cs, located in [Convai\Scripts\Editor\CustomPackage] that automatically attempts to import the Ready Player Me SDK.

My understanding is that Ready Player Me is an optional integration, and not a core dependency of Convai. However, this script seems to force the import, which adds an unnecessary dependency to my project.

My questions are:

  1. Is Ready Player Me truly a required dependency for Convai, or is it optional as I believe?
  2. What is the recommended way to prevent the automatic import of Ready Player Me if I’m not using it? I want to avoid removing all Convai related package files due to keep consistency.

I want to ensure I’m setting up my project correctly from the start and avoiding unnecessary dependencies. Any clarification on this would be greatly appreciated!

Thank you,
Patryk Piotrowski

Hello @Patryk_Piotrowski1,

Welcome to the Convai Developer Forum!

Thank you for providing such detailed information about your project and questions.

  1. Ready Player Me Dependency:
    Convai does not have any dependency on Ready Player Me or any other visual SDK. You can use any custom character you like.
  2. Removing Ready Player Me:
    If you’re not using Ready Player Me, you can easily remove it by following these steps:
  • Delete ReadyPlayerMeImporter.cs located in Assets/Convai/Scripts/Editor/CustomPackage.
  • Then, remove the Ready Player Me package from the Package Manager.
  1. Removing CCTools (Optional):
    If you’re also not using Reallusion Characters, you can remove CCTools as well:
  • Delete CCToolsImporter.cs from the same folder: Assets/Convai/Scripts/Editor/CustomPackage.
  • Remove the CCTools package from the Package Manager.
  1. Adding Custom Characters:
    Convai has no dependencies when adding custom characters. To integrate your custom avatar:
  • If you want to use LipSync, ensure your character has either OVR or ARKit Blendshapes.
  • After importing your character, add the ConvaiNPC component and paste your Character ID into the CharacterID field.
  • For the Animator, you can use the Masculine/Feminine NPC Animators as a base and customize the animations within the states.
  • Feel free to add any other components you need for your character’s functionality.

That’s it! You’re now set up to use custom characters without any unnecessary dependencies.

If you have any other questions, feel free to ask. Good luck with your project!

1 Like

Hello @K3

Thank you so much for the quick and definitive response! It’s great to have confirmation that Ready Player Me is not a required dependency and that we can freely use custom avatars. The instructions for removing ReadyPlayerMeImporter.cs and the RPM package are clear.

However, I do have a follow-up concern and a suggestion regarding the practical implementation of this. While removing the RPM package technically allows us to use custom avatars, it also breaks all the provided example character prefabs in the Convai package. These prefabs have dependencies on the RPMCharacter script (and likely other RPM components). Removing RPM results in missing script references and non-functional prefabs.

This presents a couple of challenges:

  1. Learning from Examples: Many developers, especially those new to Convai, rely on the example prefabs to understand how to set up characters and integrate them with the Convai system. With the prefabs broken, this learning process becomes much more difficult. We have to build everything from scratch, which increases the initial learning curve.
  2. Package Updates: Every time we update the Convai package through the Asset Store, we’ll need to repeat the steps of removing ReadyPlayerMeImporter.cs and the RPM package. This is cumbersome and prone to errors. If we forget to do this after an update, we’ll be back to having the unwanted RPM dependency.

Right now, it feels like the package structure strongly encourages the use of RPM, even though it’s not technically required. Most of the provided prefabs are unusable without it, which makes it difficult to utilize Convai’s features with custom characters without significant extra work.

I understand that restructuring a package is a significant undertaking, but I believe these changes would greatly improve the usability and flexibility of Convai for a wider range of developers. To that end, are there any plans to restructure the Convai package in the future to make the Ready Player Me integration more modular and optional, perhaps as a separate package or a clearly delineated example folder? This would prevent the core package and example prefabs from being inherently dependent on RPM.

Thanks again for your time and consideration.

Thank you for your detailed feedback and valuable suggestions.

Removing RPM doesn’t affect Convai’s core functionality. You can still use the demo characters. The only issue is that since the RPM Animator’s Avatar will also be removed, the characters will stay in an A-pose and won’t play animations. Additionally, because the RPM Avatar Data script (which handles minor data like gender and skin color) is no longer present, you might see “Prefab has missing scripts” warnings. However, this is related to RPM, not Convai, and doesn’t impact any core features.

In short, removing RPM doesn’t cause any loss of functionality in Convai but does mean you won’t be using RPM avatars. As a result, you may see missing scripts on RPM Prefabs, but they don’t affect performance or usage.

The reason RPM was included by default was to support demo characters and make it easier to integrate RPM characters from Convai.com into the SDK. However, we are aware that this has caused some inconvenience. That’s why we’ve moved away from using the RPM Avatar Configurator in the Playground and have implemented our own Avatar Studio.

We’re planning to make the same changes in the SDK soon to eliminate this dependency entirely.

Thanks again for your feedback and patience. If you have any other questions or suggestions, feel free to ask!