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, consulta la sezione Configurazione Lip Sync qui sotto.

Configurazione del Modello Realistico

Il nodo Create Realistic MetaHuman Lip Sync Generator accetta un parametro Configuration opzionale che ti permette 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ù alte, 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 rumorosoBilanciamento prestazioni/qualità, condizioni audio miste
OriginaleAdatto per 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 accuratezza

Impostazioni di Prestazione

Intra Op Threads: Controlla il numero di thread utilizzati per le operazioni di elaborazione interna 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 Chunk 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 Dimensione Chunk 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: Tempo di anticipo in millisecondi per una migliore accuratezza del lip sync.

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

Output Type: Controlla quali controlli facciali vengono generati.

  • Full Face: Tutti gli 81 controlli facciali (sopracciglia, occhi, naso, bocca, mascella, lingua)
  • Mouth Only: Solo i controlli relativi a bocca, mascella e lingua

Performance Settings: Utilizza le stesse impostazioni Intra Op Threads e Inter Op Threads del modello realistico regolare.

Impostazioni dell'Umore

Umore Disponibili:

  • Neutrale, Felice, Triste, Disgusto, Rabbia, Sorpresa, Paura
  • Sicuro di sé, Eccitato, Annoiato, Giocoso, Confuso

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

Controllo Umore a Runtime

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

  • Set Mood: Cambia il tipo di umore corrente
  • Set Mood Intensity: Regola quanto fortemente l'umore influenza l'animazione (da 0.0 a 1.0)
  • Set Lookahead Ms: Modifica il tempo di anticipo per la sincronizzazione
  • Set Output Type: Passa tra i controlli Full Face e Mouth Only

Configurazione Umore

Guida alla Selezione dell'Umore

Scegli umori appropriati in base al tuo contenuto:

UmoreIdeale PerIntervallo Tipico di Intensità
NeutraleConversazione generale, narrazione, stato predefinito0.5 - 1.0
FeliceContenuto positivo, dialogo allegro, celebrazioni0.6 - 1.0
TristeContenuto malinconico, scene emotive, momenti seri0.5 - 0.9
DisgustoReazioni negative, contenuto sgradevole, rifiuto0.4 - 0.8
RabbiaDialogo aggressivo, scene di confronto, frustrazione0.6 - 1.0
SorpresaEventi inaspettati, rivelazioni, reazioni di shock0.7 - 1.0
PauraSituazioni minacciose, ansia, dialogo nervoso0.5 - 0.9
Sicuro di séPresentazioni professionali, dialogo di leadership, discorso assertivo0.7 - 1.0
EccitatoContenuto energico, annunci, dialogo entusiasta0.8 - 1.0
AnnoiatoContenuto monotono, dialogo disinteressato, discorso stanco0.3 - 0.7
GiocosoConversazione informale, umorismo, interazioni spensierate0.6 - 0.9
ConfusoDialogo ricco di domande, incertezza, sconcerto0.4 - 0.8

Configurazione dell'Animation Blueprint

Configurazione Lip Sync

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

ProprietàPredefinitoDescrizione
Interpolation Speed25Controlla la velocità con cui i movimenti delle labbra transitano tra i visemi. Valori più alti risultano in transizioni più veloci e più brusche.
Reset Time0.2La durata in secondi dopo la quale il lip sync viene resettato. Utile per evitare che il lip sync continui dopo che l'audio si è fermato.

Animazione della Risata

Puoi anche aggiungere animazioni della risata che risponderanno dinamicamente alle risate rilevate 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 il lip sync:
    • 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 usi solo la risata senza lip sync:
    • 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 una 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
Interpolation Speed25Controlla la velocità con cui i movimenti delle labbra transitano tra le animazioni della risata. Valori più alti risultano in transizioni più veloci e più brusche.
Reset Time0.2La durata in secondi dopo la quale la risata viene resettata. Utile per evitare che la risata continui dopo che l'audio si è fermato.
Max Laughter Weight0.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 lip sync e risata insieme ad animazioni del corpo esistenti e animazioni facciali personalizzate senza sovrascriverle:

  1. Aggiungi un nodo Layered blend per bone tra le tue animazioni del corpo e l'output finale. Assicurati che Use Attached Parent sia true.
  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 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 il lip sync.
  4. Effettua le connessioni:
    • Animazioni esistenti (come BodyPose) → input Base Pose
    • Output animazione facciale (da nodi lip sync e/o risata) → input Blend Poses 0
    • Nodo layered blend → posa Result finale

Layered Blend Per Bone

Selezione del Set di Morph Target

Il Modello Standard utilizza asset di pose che supportano intrinsecamente qualsiasi convenzione di denominazione dei morph target attraverso la configurazione dell'asset di pose personalizzato. Non è necessaria alcuna configurazione aggiuntiva.

Affinamento del Comportamento del Lip Sync

Controllo della Protrusione della Lingua

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

  1. Dopo il tuo nodo di blend lip sync, aggiungi un nodo Modify Curve
  2. Fai clic destro sul nodo Modify Curve e seleziona Add Curve Pin
  3. Aggiungi un pin curva con il nome CTRL_expressions_tongueOut
  4. Imposta la proprietà Apply Mode del nodo su Scale
  5. Regola il parametro Value per controllare l'estensione della lingua (es. 0.8 per ridurre la protrusione del 20%)

Controllo dell'Apertura della Mascella

Il lip sync realistico può produrre movimenti della mascella eccessivamente reattivi a seconda del tuo contenuto audio e dei requisiti visivi. Per regolare l'intensità dell'apertura della mascella:

  1. Dopo il tuo nodo di blend lip sync, aggiungi un nodo Modify Curve
  2. Fai clic destro sul nodo Modify Curve e seleziona Add Curve Pin
  3. Aggiungi un pin curva con il nome CTRL_expressions_jawOpen
  4. Imposta la proprietà Apply Mode del nodo su Scale
  5. Regola il parametro Value per controllare l'intervallo di apertura della mascella (es. 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 del Modello

Scelta tra Modelli

Quando decidi quale modello di lip sync utilizzare per il tuo progetto, considera questi fattori:

ConsiderazioneModello StandardModello RealisticoModello Realistico Abilitato all'Umore
Compatibilità PersonaggiMetaHumans e tutti i tipi di personaggi personalizzatiSolo MetaHumansSolo MetaHumans
Qualità VisivaBuon lip sync con prestazioni efficientiRealismo migliorato con movimenti della bocca più naturaliRealismo migliorato con espressioni emotive
PrestazioniOttimizzato per tutte le piattaforme inclusi mobile/VRRequisiti di risorse più altiRequisiti di risorse più alti
Funzionalità14 visemi, rilevamento risata81 controlli facciali, 3 livelli di ottimizzazione81 controlli facciali, 12 umori, output configurabile
Supporto PiattaformaWindows, Android, QuestWindows, Mac, iOS, Linux, Android, QuestWindows, Mac, iOS, Linux, Android, Quest
Casi d'UsoApplicazioni generali, giochi, VR/AR, mobileEsperienze cinematografiche, interazioni ravvicinateStorytelling emotivo, interazione avanzata con i personaggi

Compatibilità Versione Engine

Problema di Compatibilità 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 UE 5.2 che necessitano di funzionalità lip sync affidabili, si prega di utilizzare invece il Modello Standard.

Questo problema è specifico di UE 5.2 e non influisce su altre versioni dell'engine.

Raccomandazioni sulle Prestazioni

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

Compatibilità TTS

Tipo ModelloSupporto TTS Locale (via 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 Abilitato all'Umore✅ Supporto completo✅ Supporto completoCompatibile con tutte le opzioni TTS

Risoluzione dei Problemi

Problemi Comuni

Ricreazione Generatore per Modelli Realistici: Per un funzionamento affidabile e coerente con i Modelli Realistici, si consiglia di ricreare il generatore ogni volta che si desidera alimentare 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 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 con il runtime ONNX. Tuttavia, è completamente compatibile sia con il modello Standard che con il modello Realistico Abilitato all'Umore. Usa servizi TTS esterni se hai specificamente bisogno del modello Realistico regolare con funzionalità TTS.

Degradazione della Reattività del Lip Sync: Se riscontri che il lip sync diventa meno reattivo nel tempo quando utilizzi Streaming Sound Wave o Capturable Sound Wave, ciò potrebbe essere causato dall'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 Processing Chunk Size per i modelli Realistici in base ai tuoi requisiti prestazionali
  • Usa conteggi di thread appropriati per il tuo hardware target
  • Considera di utilizzare il tipo di output Mouth Only per i modelli abilitati all'umore quando l'animazione facciale completa non è necessaria