Passa al contenuto principale

Configurazione del Plugin

Configurazione del Modello

Configurazione Standard del Modello

Il nodo Create Runtime Viseme Generator utilizza impostazioni predefinite che funzionano bene per la maggior parte degli scenari. La configurazione viene gestita attraverso le proprietà del nodo di blending dell'Animation Blueprint.

Per le opzioni di configurazione dell'Animation Blueprint, consultare la sezione Configurazione Lip Sync di seguito.

Configurazione del Modello Realistico

Il nodo Create Realistic MetaHuman Lip Sync Generator accetta un parametro Configuration opzionale che consente di personalizzare il comportamento del generatore:

Tipo di Modello

L'impostazione Model Type determina quale versione del modello realistico utilizzare:

Tipo di ModelloPrestazioniQualità VisivaGestione del RumoreCasi d'Uso Consigliati
Altamente Ottimizzato (Predefinito)Prestazioni più elevate, utilizzo CPU più bassoBuona qualitàPuò mostrare movimenti della bocca evidenti con rumore di fondo o suoni non vocaliAmbienti audio puliti, scenari critici per le prestazioni
Semi-OttimizzatoBuone prestazioni, utilizzo CPU moderatoAlta qualitàMaggiore stabilità con audio rumorosoPrestazioni e qualità bilanciate, condizioni audio miste
OriginaleAdatto per l'uso in tempo reale su CPU moderneQualità più altaMaggiore stabilità con rumore di fondo e suoni non vocaliProduzioni di alta qualità, ambienti audio rumorosi, quando è necessaria la massima precisione

Impostazioni delle Prestazioni

Intra Op Threads: Controlla il numero di thread utilizzati per le operazioni di elaborazione interne del modello.

  • 0 (Predefinito/Automatico): Utilizza il rilevamento automatico (tipicamente 1/4 dei core CPU disponibili, massimo 4)
  • 1-16: Specifica manualmente il numero di thread. Valori più alti possono migliorare le prestazioni su sistemi multi-core ma utilizzano più CPU

Inter Op Threads: Controlla il numero di thread utilizzati per l'esecuzione parallela di diverse operazioni del modello.

  • 0 (Predefinito/Automatico): Utilizza il rilevamento automatico (tipicamente 1/8 dei core CPU disponibili, massimo 2)
  • 1-8: Specifica manualmente il numero di thread. Di solito mantenuto basso per l'elaborazione in tempo reale

Dimensione del Blocco di Elaborazione

La Processing Chunk Size determina quanti campioni vengono elaborati in ogni passo di inferenza. Il valore predefinito è 160 campioni (10ms di audio a 16kHz):

  • Valori più piccoli forniscono aggiornamenti più frequenti ma aumentano l'utilizzo della CPU
  • Valori più grandi riducono il carico della CPU ma possono diminuire la reattività del lip sync
  • Si consiglia di utilizzare multipli di 160 per un allineamento ottimale

Impostazione della Dimensione del Blocco di Elaborazione

Configurazione del Modello Abilitato all'Umore

Il nodo Create Realistic MetaHuman Lip Sync With Mood Generator fornisce opzioni di configurazione aggiuntive oltre al modello realistico di base:

Configurazione di Base

Lookahead Ms: Anticipo temporale in millisecondi per una migliore precisione della sincronizzazione labiale.

  • Predefinito: 80ms
  • Intervallo: 20ms a 200ms (deve essere divisibile per 20)
  • Valori più alti forniscono una migliore sincronizzazione ma aumentano la latenza

Tipo di Output: Controlla quali controlli facciali vengono generati.

  • Faccia Completa: Tutti gli 81 controlli facciali (sopracciglia, occhi, naso, bocca, mascella, lingua)
  • Solo Bocca: Solo i controlli relativi a bocca, mascella e lingua

Impostazioni Prestazioni: Utilizza le stesse impostazioni Intra Op Threads e Inter Op Threads del modello realistico regolare.

Impostazioni Umore

Umore Disponibili:

  • Neutro, Felice, Triste, Disgusto, Rabbia, Sorpresa, Paura
  • Sicuro, Eccitato, Annoiato, Giocoso, Confuso

Intensità Umore: Controlla quanto fortemente l'umore influisce sull'animazione (da 0.0 a 1.0)

Controllo Umore in Runtime

Puoi regolare le impostazioni dell'umore durante il runtime utilizzando le seguenti funzioni:

  • Imposta Umore: Cambia il tipo di umore corrente
  • Imposta Intensità Umore: Regola quanto fortemente l'umore influisce sull'animazione (da 0.0 a 1.0)
  • Imposta Lookahead Ms: Modifica l'anticipo temporale per la sincronizzazione
  • Imposta Tipo di Output: Passa tra i controlli Faccia Completa e Solo Bocca

Configurazione Umore

Guida alla Selezione dell'Umore

Scegli umori appropriati in base al tuo contenuto:

UmoreIdeale PerIntervallo di Intensità Tipico
NeutroConversazione generale, narrazione, stato predefinito0.5 - 1.0
FeliceContenuti positivi, dialoghi allegri, celebrazioni0.6 - 1.0
TristeContenuti malinconici, scene emotive, momenti cupi0.5 - 0.9
DisgustoReazioni negative, contenuti sgradevoli, rifiuto0.4 - 0.8
RabbiaDialoghi aggressivi, scene di confronto, frustrazione0.6 - 1.0
SorpresaEventi inaspettati, rivelazioni, reazioni di shock0.7 - 1.0
PauraSituazioni minacciose, ansia, dialoghi nervosi0.5 - 0.9
SicuroPresentazioni professionali, dialoghi di leadership, discorsi assertivi0.7 - 1.0
EccitatoContenuti energici, annunci, dialoghi entusiastici0.8 - 1.0
AnnoiatoContenuti monotoni, dialoghi disinteressati, discorsi stanchi0.3 - 0.7
GiocosoConversazioni informali, umorismo, interazioni spensierate0.6 - 0.9
ConfusoDialoghi ricchi di domande, incertezza, sconcerto0.4 - 0.8

Configurazione Animation Blueprint

Configurazione Sincronizzazione Labiale

Il nodo Blend Runtime MetaHuman Lip Sync ha opzioni di configurazione nel suo pannello delle proprietà:

ProprietàPredefinitoDescrizione
Velocità di Interpolazione25Controlla la rapidità con cui i movimenti labiali transitano tra i visemi. Valori più alti risultano in transizioni più veloci e brusche.
Tempo di Reset0.2La durata in secondi dopo la quale il lip sync viene resettato. È utile per prevenire che il lip sync continui dopo che l'audio si è fermato.

Animazione della Risata

Puoi anche aggiungere animazioni di risata che risponderanno dinamicamente alla risata rilevata nell'audio:

  1. Aggiungi il nodo Blend Runtime MetaHuman Laughter
  2. Collega la tua variabile RuntimeVisemeGenerator al pin Viseme Generator
  3. Se stai già utilizzando la sincronizzazione labiale:
    • Collega l'output dal nodo Blend Runtime MetaHuman Lip Sync al Source Pose del nodo Blend Runtime MetaHuman Laughter
    • Collega l'output del nodo Blend Runtime MetaHuman Laughter al pin Result dell'Output Pose
  4. Se utilizzi solo la risata senza sincronizzazione labiale:
    • Collega la tua posa sorgente direttamente al Source Pose del nodo Blend Runtime MetaHuman Laughter
    • Collega l'output al pin Result

Blend Runtime MetaHuman Laughter

Quando viene rilevata della risata nell'audio, il tuo personaggio si animerà dinamicamente di conseguenza:

Risata

Configurazione della Risata

Il nodo Blend Runtime MetaHuman Laughter ha le sue opzioni di configurazione:

ProprietàPredefinitoDescrizione
Velocità di Interpolazione25Controlla la rapidità con cui i movimenti labiali transitano tra le animazioni di risata. Valori più alti risultano in transizioni più veloci e brusche.
Tempo di Reset0.2La durata in secondi dopo la quale la risata viene resettata. È utile per evitare che la risata continui dopo che l'audio si è fermato.
Peso Massimo della Risata0.7Scala l'intensità massima dell'animazione della risata (0.0 - 1.0).

Nota: Il rilevamento della risata è attualmente disponibile solo con il Modello Standard.

Combinazione con Animazioni Esistenti

Per applicare la sincronizzazione labiale e la risata insieme ad animazioni corporee esistenti e animazioni facciali personalizzate senza sovrascriverle:

  1. Aggiungi un nodo Layered blend per bone tra le tue animazioni corporee e l'output finale. Assicurati che Use Attached Parent sia vero.
  2. Configura l'impostazione del layer:
    • Aggiungi 1 elemento all'array Layer Setup
    • Aggiungi 3 elementi ai Branch Filters per il layer, con i seguenti Bone Name:
      • FACIAL_C_FacialRoot
      • FACIAL_C_Neck2Root
      • FACIAL_C_Neck1Root
  3. Importante per le animazioni facciali personalizzate: In Curve Blend Option, seleziona "Use Max Value". Questo permette alle animazioni facciali personalizzate (espressioni, emozioni, ecc.) di essere stratificate correttamente sopra la sincronizzazione labiale.
  4. Effettua le connessioni:
    • Animazioni esistenti (come BodyPose) → ingresso Base Pose
    • Output dell'animazione facciale (dai nodi di sincronizzazione labiale e/o risata) → ingresso Blend Poses 0
    • Nodo di blend stratificato → Posa Result finale

Layered Blend Per Bone

Perfezionamento del Comportamento della Sincronizzazione Labiale

Controllo della Protrusione della Lingua

Nel modello standard di sincronizzazione labiale, potresti notare un movimento eccessivo della lingua in avanti durante certi fonemi. Per controllare la protrusione della lingua:

  1. Dopo il tuo nodo di blend della sincronizzazione labiale, aggiungi un nodo Modify Curve
  2. Fai clic con il tasto destro sul nodo Modify Curve e seleziona Aggiungi Pin Curva
  3. Aggiungi un pin curva con il nome CTRL_expressions_tongueOut
  4. Imposta la proprietà Modalità Applicazione del nodo su Scala
  5. Regola il parametro Valore per controllare l'estensione della lingua (ad esempio, 0.8 per ridurre la protrusione del 20%)

Controllo Apertura Mascella

La sincronizzazione labiale realistica può produrre movimenti della mascella eccessivamente reattivi a seconda del tuo contenuto audio e delle tue esigenze visive. Per regolare l'intensità dell'apertura della mascella:

  1. Dopo il tuo nodo di blend della sincronizzazione labiale, aggiungi un nodo Modify Curve
  2. Fai clic con il tasto destro sul nodo Modify Curve e seleziona Aggiungi Pin Curva
  3. Aggiungi un pin curva con il nome CTRL_expressions_jawOpen
  4. Imposta la proprietà Modalità Applicazione del nodo su Scala
  5. Regola il parametro Valore per controllare l'ampiezza dell'apertura della mascella (ad esempio, 0.9 per ridurre il movimento della mascella del 10%)

Affinamento Specifico per Umore

Per i modelli abilitati all'umore, puoi affinare espressioni emotive specifiche:

Controllo Sopracciglia:

  • CTRL_expressions_browRaiseInL / CTRL_expressions_browRaiseInR - Sollevamento sopracciglia interno
  • CTRL_expressions_browRaiseOuterL / CTRL_expressions_browRaiseOuterR - Sollevamento sopracciglia esterno
  • CTRL_expressions_browDownL / CTRL_expressions_browDownR - Abbassamento sopracciglia

Controllo Espressione Occhi:

  • CTRL_expressions_eyeSquintInnerL / CTRL_expressions_eyeSquintInnerR - Strizzamento occhi
  • CTRL_expressions_eyeCheekRaiseL / CTRL_expressions_eyeCheekRaiseR - Sollevamento guancia

Confronto e Selezione Modelli

Scelta tra Modelli

Quando decidi quale modello di sincronizzazione labiale usare per il tuo progetto, considera questi fattori:

ConsiderazioneModello StandardModello RealisticoModello Realistico con Umore
Compatibilità PersonaggioMetaHumans e tutti i tipi di personaggio personalizzatiSolo MetaHumansSolo MetaHumans
Qualità VisivaBuona sincronizzazione labiale con prestazioni efficientiRealismo potenziato con movimenti della bocca più naturaliRealismo potenziato con espressioni emotive
PrestazioniOttimizzato per tutte le piattaforme inclusi mobile/VRRequisiti di risorse più elevatiRequisiti di risorse più elevati
Caratteristiche14 visemi, rilevamento risata81 controlli facciali, 3 livelli di ottimizzazione81 controlli facciali, 12 umori, output configurabile
Supporto PiattaformaWindows, Android, QuestWindows, Mac, iOS, LinuxWindows, Mac, iOS, Linux
Casi d'UsoApplicazioni generali, giochi, VR/AR, mobileEsperienze cinematografiche, interazioni ravvicinateStorytelling emotivo, interazione avanzata con i personaggi

Compatibilità Versione Motore

Problema di Compatibilità con UE 5.2

Se stai utilizzando Unreal Engine 5.2, i Modelli Realistici potrebbero non funzionare correttamente a causa di un bug nella libreria di ricampionamento di UE. Per gli utenti di UE 5.2 che necessitano di una funzionalità di lip sync affidabile, si prega di utilizzare il Modello Standard invece.

Questo problema è specifico per UE 5.2 e non influisce su altre versioni del motore.

Raccomandazioni sulle Prestazioni

  • Per la maggior parte dei progetti, il Modello Standard fornisce un eccellente equilibrio tra qualità e prestazioni
  • Utilizza il Modello Realistico quando hai bisogno della massima fedeltà visiva per i personaggi MetaHuman
  • Utilizza il Modello Realistico con Umore quando il controllo dell'espressione emotiva è importante per la tua applicazione
  • Considera le capacità prestazionali della piattaforma di destinazione quando scegli tra i modelli
  • Prova diversi livelli di ottimizzazione per trovare il miglior equilibrio per il tuo caso d'uso specifico

Compatibilità TTS

Tipo ModelloSupporto TTS Locale (tramite Runtime Text To Speech)Supporto TTS EsternoNote
Modello Standard✅ Supporto completo✅ Supporto completoCompatibile con tutte le opzioni TTS
Modello Realistico❌ Supporto limitato✅ Supporto completoConflitti runtime ONNX con TTS locale
Modello Realistico con Umore✅ Supporto completo✅ Supporto completoCompatibile con tutte le opzioni TTS

Risoluzione dei Problemi

Problemi Comuni

Ricreazione del Generatore per Modelli Realistici: Per un funzionamento affidabile e coerente con i Modelli Realistici, si raccomanda di ricreare il generatore ogni volta che si desidera fornire nuovi dati audio dopo un periodo di inattività. Ciò è dovuto al comportamento del runtime ONNX che può causare l'arresto del lip sync quando si riutilizzano i generatori dopo periodi di silenzio.

Compatibilità TTS Locale: Il TTS locale fornito dal plugin Runtime Text To Speech non è attualmente supportato con il modello Realistico regolare a causa di conflitti del runtime ONNX. Tuttavia, è completamente compatibile sia con il modello Standard che con il modello Realistico con Umore. Utilizza servizi TTS esterni se hai specificamente bisogno del modello Realistico regolare con funzionalità TTS.

Responsività del Lip Sync Degradata: Se riscontri che il lip sync diventa meno reattivo nel tempo quando utilizzi Streaming Sound Wave o Capturable Sound Wave, ciò potrebbe essere causato da un accumulo di memoria. Per impostazione predefinita, la memoria viene riallocata ogni volta che viene aggiunto nuovo audio. Per prevenire questo problema, chiama la funzione ReleaseMemory periodicamente per liberare la memoria accumulata, ad esempio ogni 30 secondi circa.

Ottimizzazione delle Prestazioni:

  • Regola la Dimensione del Blocco di Elaborazione per i modelli Realistici in base alle tue esigenze prestazionali
  • Utilizza un numero appropriato di thread per il tuo hardware di destinazione
  • Considera di utilizzare il tipo di output Solo Bocca per i modelli con umore quando l'animazione facciale completa non è necessaria