If character's don't rely on traditional speech text, you don't need to rely on AC's built-in speech system - instead relying on e.g. animation or timeline Actions to display things visually.
However, one hybrid approach that may make things easier is to create speech Actions as normal, but instead use their speech text as an internal reference for what animation you want to play.
For example, if the Player says the word "hello", you could attach a script that alters the Subtitles menu to play an animation by this same name. Something along the lines of:
using System;
using UnityEngine;
using AC;
public class PlaySpeechAnim : MonoBehaviour
{
private void OnEnable () { EventManager.OnMenuTurnOn += OnMenuTurnOn; }
private void OnDisable () { EventManager.OnMenuTurnOn -= OnMenuTurnOn; }
private void OnMenuTurnOn (Menu menu, bool isInstant)
{
Speech speech = menu.speech;
if (speech != null && menu.RuntimeCanvas)
{
Animator animator = menu.RuntimeCanvas.GetComponentInChildren<Animator> ();
if (animator)
{
animator.Play (speech.FullText);
}
}
}
}
This script hooks into the OnMenuTurnOncustom event, and - when a Unity UI-based Subtitle menu turns on, looks for that menu's Animator component and plays an animation with the same name as the speech text.
Comments
If character's don't rely on traditional speech text, you don't need to rely on AC's built-in speech system - instead relying on e.g. animation or timeline Actions to display things visually.
However, one hybrid approach that may make things easier is to create speech Actions as normal, but instead use their speech text as an internal reference for what animation you want to play.
For example, if the Player says the word "hello", you could attach a script that alters the Subtitles menu to play an animation by this same name. Something along the lines of:
This script hooks into the OnMenuTurnOn custom event, and - when a Unity UI-based Subtitle menu turns on, looks for that menu's Animator component and plays an animation with the same name as the speech text.