> For the complete documentation index, see [llms.txt](https://docs.convai.com/api-docs/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.convai.com/api-docs/plugins-and-integrations/convai-unity-sdk/getting-started/add-lip-sync/create-a-lip-sync-profile.md).

# Create a lip sync profile

Explains how to create a custom lip sync profile asset for a blendshape format beyond the three profiles the SDK bundles by default.

A lip sync profile defines the transport format identifier — it tells the SDK which blendshape channel names to expect from Convai.

{% hint style="warning" %}
Convai currently streams blendshape data in three formats only: `arkit`, `metahuman`, and `cc4_extended`. A custom profile is only useful if Convai explicitly supports a custom format for your deployment. Creating a profile with an unsupported format ID will result in no blendshape data being received.
{% endhint %}

For all standard setups, use one of the three bundled profiles and leave this page for advanced or future use.

{% stepper %}
{% step %}

#### Create the asset

In the Project window, navigate to the folder where you want to store the profile. Right-click and select **Create > Convai > Lip Sync > Profile**. Name the asset descriptively — for example, `ConvaiLipSyncProfile_MyRig`.
{% endstep %}

{% step %}

#### Configure the fields

Select the new asset to open it in the Inspector.

| Field                | Description                                                                                      |
| -------------------- | ------------------------------------------------------------------------------------------------ |
| **Profile ID**       | Transport format identifier. Must exactly match the format ID Convai streams for this character. |
| **Display Name**     | Human-readable name shown in the Inspector. Does not affect runtime behavior.                    |
| **Transport Format** | Network transport format string — typically the same as Profile ID.                              |

{% hint style="danger" %}
**Profile ID** must exactly match the identifier Convai uses when streaming blendshape data. A mismatch causes the SDK to fall back to a no-op map — no blendshapes animate.
{% endhint %}
{% endstep %}

{% step %}

#### Assign the profile ID to the component

Set `ConvaiLipSyncComponent._lockedProfileId` to the **Profile ID** string you defined. The SDK looks up this profile from the registry at runtime.
{% endstep %}
{% endstepper %}

### Next steps

After creating the profile, create a map to route its channels to your rig's blendshape names.

{% content-ref url="/pages/dZnu5jciNDbTRscNenck" %}
[Create a custom lip sync map](/api-docs/plugins-and-integrations/convai-unity-sdk/getting-started/add-lip-sync/create-a-custom-blendshape-map.md)
{% endcontent-ref %}


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## Querying This Documentation
If you need additional information that is not directly available in this page, you can query the documentation by asking a question.

Perform an HTTP GET request on the following URL with the `ask` and `goal` query parameters:

```
GET https://docs.convai.com/api-docs/plugins-and-integrations/convai-unity-sdk/getting-started/add-lip-sync/create-a-lip-sync-profile.md?ask=<question>&goal=<user_goal>
```

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is what the user is ultimately trying to achieve, the reason they need the answer. Sharing it helps GitBook give you a better, more relevant answer. A goal is most helpful when it describes the outcome the user wants rather than restating the question. For example, with `ask=how do I create an API token`, a goal like `automate deployments from our CI pipeline` lets GitBook tailor the answer to that use case.

The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
