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 tramite 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: Tempo di anticipo in millisecondi per una maggiore precisione nella 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 (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 (0.0 a 1.0)
  • Imposta Lookahead Ms: Modifica il tempo di anticipo 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 delle labbra 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 evitare che il lip sync continui dopo che l'audio si è fermato.

Animazione della Risata

Puoi anche aggiungere animazioni della 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 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 utilizzi 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 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 delle labbra transitano tra le animazioni della 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 alle animazioni del corpo esistenti e alle 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 impostato su 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 le animazioni facciali personalizzate: In Curve Blend Option, seleziona "Use Max Value". Ciò consente 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 layered blend → 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 eccessivo movimento in avanti della lingua 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 Add Curve Pin
  3. Aggiungi un curve pin 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 (ad esempio, 0.8 per ridurre la protrusione del 20%)

Controllo dell'Apertura della Mascella

La sincronizzazione labiale realistica può produrre movimenti della mascella eccessivamente reattivi a seconda del contenuto audio e dei requisiti visivi. 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 Add Curve Pin
  3. Aggiungi un curve pin con il nome CTRL_expressions_jawOpen
  4. Imposta la proprietà Apply Mode del nodo su Scale
  5. Regola il parametro Value per controllare l'ampiezza dell'apertura della mascella (ad esempio, 0.9 per ridurre il movimento della mascella del 10%)

Perfezionamento Specifico per Umore

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

Controllo Sopracciglia:

  • CTRL_L_brow_raiseIn.ty / CTRL_R_brow_raiseIn.ty - Sollevamento sopracciglia interno
  • CTRL_L_brow_raiseOut.ty / CTRL_R_brow_raiseOut.ty - Sollevamento sopracciglia esterno
  • CTRL_L_brow_down.ty / CTRL_R_brow_down.ty - Abbassamento sopracciglia

Controllo Espressione Occhi:

  • CTRL_L_eye_squintInner.ty / CTRL_R_eye_squintInner.ty - Strizzamento degli occhi
  • CTRL_L_eye_cheekRaise.ty / CTRL_R_eye_cheekRaise.ty - Sollevamento guancia

Confronto e Selezione del Modello

Scelta tra i Modelli

Quando si decide quale modello di sincronizzazione labiale utilizzare per il proprio progetto, considerare questi fattori:

ConsiderazioneModello StandardModello RealisticoModello Realistico con Umore
Compatibilità PersonaggiMetaHumans 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 risate81 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 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 di UE 5.2 che necessitano di una funzionalità di sincronizzazione labiale affidabile, si prega di utilizzare il Modello Standard invece.

Questo problema è specifico per UE 5.2 e non influisce sulle altre versioni dell'engine.

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 target 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 del 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 della sincronizzazione labiale 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 con il runtime ONNX. Tuttavia, è completamente compatibile sia con il modello Standard che con il modello Realistico abilitato all'umore. Utilizza servizi TTS esterni se hai specificamente bisogno del modello Realistico regolare con funzionalità TTS.

Ottimizzazione delle Prestazioni:

  • Regola la Dimensione del Blocco di Elaborazione per i modelli Realistici in base alle tue esigenze di prestazione
  • Utilizza conteggi di thread appropriati per il tuo hardware di destinazione
  • Considera l'uso del tipo di output Solo Bocca per i modelli abilitati all'umore quando l'animazione facciale completa non è necessaria