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 opzionale Configuration 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 rumorosoEquilibrio tra prestazioni e qualità, 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 di Prestazione

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 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 della Dimensione del Chunk 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 migliore precisione 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

Umidi Disponibili:

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

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

Controllo dell'Umore in 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 influisce sull'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 dell'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
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 dell'Animation Blueprint

Configurazione del 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 passano da un visema all'altro. Valori più alti risultano in transizioni più veloci e più brusche.
Reset Time0.2La durata in secondi dopo la quale il lip sync viene ripristinato. Questo è 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 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 una risata nell'audio, il tuo personaggio si animerà dinamicamente di conseguenza:

Configurazione della Risata

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

ProprietàDefaultDescrizione
Velocità di Interpolazione25Controlla la velocità 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 il lip sync 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 true.
  2. Configura la struttura dei layer:
    • Aggiungi 1 elemento all'array Layer Setup
    • Aggiungi 3 elementi a 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 correttamente stratificate sopra il lip sync.
  4. Effettua le connessioni:
    • Animazioni esistenti (come BodyPose) → input Base Pose
    • Output dell'animazione facciale (dai 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 personalizzate. Non è necessaria alcuna configurazione aggiuntiva.

Ottimizzazione del Comportamento del Lip Sync

Controllo della Protrusione della Lingua

Nel modello standard di lip sync, 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 del 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 Mandibola

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

  1. Dopo il tuo nodo di blend del 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'ampiezza dell'apertura della mandibola (es. 0.9 per ridurre il movimento della mandibola del 10%)

Ottimizzazione Specifica per Stati d'Animo

Per i modelli abilitati agli stati d'animo, puoi ottimizzare specifiche espressioni emotive:

Controllo delle Sopracciglia:

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

Controllo delle Espressioni degli Occhi:

  • CTRL_expressions_eyeSquintInnerL / CTRL_expressions_eyeSquintInnerR - Strizzamento degli occhi
  • CTRL_expressions_eyeCheekRaiseL / CTRL_expressions_eyeCheekRaiseR - Sollevamento delle guance

Confronto e Selezione dei Modelli

Scelta tra i Modelli

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

ConsiderazioneModello StandardModello RealisticoModello Realistico con Stati d'Animo
Compatibilità PersonaggiMetaHumans e tutti i tipi di personaggi personalizzatiPersonaggi MetaHumans (e ARKit)Personaggi MetaHumans (e ARKit)
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ù elevatiRequisiti di risorse più elevati
Funzionalità14 visemi, rilevamento della risata81 controlli facciali, 3 livelli di ottimizzazione81 controlli facciali, 12 stati d'animo, output configurabile
Supporto PiattaformeWindows, Android, QuestWindows, Mac, iOS, Linux, Android, QuestWindows, Mac, iOS, Linux, Android, Quest
Casi d'UsoApplicazioni generali, giochi, VR/AR, mobileEsperienze cinematografiche, interazioni ravvicinateNarrazione emotiva, interazione avanzata con i personaggi

Compatibilità con le Versioni del Motore

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 funzionalità di lip sync affidabili, si prega di utilizzare il Modello Standard.

Questo problema è specifico di UE 5.2 e non influisce sulle altre versioni del motore.

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 con Stati d'Animo quando il controllo dell'espressione emotiva è importante per la tua applicazione
  • Considera le capacità prestazionali della piattaforma target quando scegli tra i modelli
  • Testa diversi livelli di ottimizzazione per trovare il miglior equilibrio per il tuo caso d'uso specifico

Risoluzione dei Problemi

Problemi Comuni

Ricreazione del Generatore per Modelli Realistici: Per un funzionamento affidabile e consistente con i Modelli Realistici, si raccomanda 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.

Ad esempio, potresti ricreare il generatore di lip sync ad ogni avvio della riproduzione, come ogni volta che chiami Play Sound 2D o usi qualsiasi altro metodo per avviare la riproduzione di un'onda sonora e il lip sync:

Recreate Lip Sync Generator On Play Sound

Posizione del Plugin per l'Integrazione con Runtime Text To Speech: Quando si utilizza Runtime MetaHuman Lip Sync insieme a Runtime Text To Speech (entrambi i plugin utilizzano ONNX Runtime), potresti riscontrare problemi nelle build impacchettate se i plugin sono installati nella cartella Marketplace del motore. Per risolvere:

  1. Individua entrambi i plugin nella cartella di installazione di UE sotto \Engine\Plugins\Marketplace (es. C:\Program Files\Epic Games\UE_5.6\Engine\Plugins\Marketplace)
  2. Sposta sia la cartella RuntimeMetaHumanLipSync che RuntimeTextToSpeech nella cartella Plugins del tuo progetto
  3. Se il tuo progetto non ha una cartella Plugins, creane una nella stessa directory del file .uproject
  4. Riavvia l'Unreal Editor

Questo risolve problemi di compatibilità che possono verificarsi quando più plugin basati su ONNX Runtime vengono caricati dalla directory Marketplace del motore.

Configurazione del Packaging (Windows): Se il lip sync non funziona correttamente nel tuo progetto impacchettato su Windows, assicurati di utilizzare la configurazione di build Shipping invece di Development. La configurazione Development può causare problemi con il runtime ONNX dei modelli realistici nelle build impacchettate.

Per risolvere:

  1. Nelle Impostazioni del Progetto → Packaging, imposta la Build Configuration su Shipping
  2. Ripacchetta il tuo progetto

Shipping Configuration

Progetti Solo Blueprint

In alcuni progetti solo Blueprint, Unreal Engine potrebbe comunque compilare in configurazione Development anche quando Shipping è selezionata. Se ciò accade, converti il tuo progetto in un progetto C++ aggiungendo almeno una classe C++ (può essere vuota). Per farlo, vai su Tools → New C++ Class nel menu dell'editor UE e crea una classe vuota. Questo forzerà il progetto a compilare correttamente in configurazione Shipping. Il tuo progetto può rimanere solo Blueprint a livello funzionale, la classe C++ è necessaria solo per la corretta configurazione di compilazione.

Responsività Degradata 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 da un accumulo di memoria. Per impostazione predefinita, la memoria viene riallocata ogni volta che viene aggiunto nuovo audio. Per prevenire questo problema, chiama periodicamente la funzione ReleaseMemory per liberare la memoria accumulata, ad esempio ogni 30 secondi circa.

Ottimizzazione delle Prestazioni:

  • Regola la Dimensione del Chunk di Elaborazione per i modelli realistici in base ai tuoi requisiti prestazionali
  • Utilizza un numero appropriato di thread per il tuo hardware target
  • Considera l'uso del tipo di output Solo Bocca per i modelli abilitati agli stati d'animo quando non è necessaria l'animazione facciale completa