Ana içeriğe geç

Eklenti Yapılandırması

Model Yapılandırması

Standart Model Yapılandırması

Create Runtime Viseme Generator düğümü, çoğu senaryo için iyi çalışan varsayılan ayarları kullanır. Yapılandırma, Animation Blueprint karıştırma düğümü özellikleri aracılığıyla ele alınır.

Animation Blueprint yapılandırma seçenekleri için aşağıdaki Lip Sync Configuration bölümüne bakın.

Gerçekçi Model Yapılandırması

Create Realistic MetaHuman Lip Sync Generator düğümü, oluşturucunun davranışını özelleştirmenize izin veren isteğe bağlı bir Configuration parametresi kabul eder:

Model Türü

Model Type ayarı, gerçekçi modelin hangi sürümünün kullanılacağını belirler:

Model TürüPerformansGörsel KaliteGürültü İşlemeÖnerilen Kullanım Senaryoları
Highly Optimized (Varsayılan)En yüksek performans, en düşük CPU kullanımıİyi kaliteArka plan gürültüsü veya ses olmayan seslerle fark edilebilir ağız hareketleri gösterebilirTemiz ses ortamları, performans kritik senaryolar
Semi-Optimizedİyi performans, orta düzeyde CPU kullanımıYüksek kaliteGürültülü sesle daha iyi kararlılıkDengeli performans ve kalite, karışık ses koşulları
OriginalModern CPU'larda gerçek zamanlı kullanım için uygunEn yüksek kaliteArka plan gürültüsü ve ses olmayan seslerle en kararlıYüksek kaliteli prodüksiyonlar, gürültülü ses ortamları, maksimum doğruluk gerektiğinde

Performans Ayarları

Intra Op Threads: Dahili model işleme işlemleri için kullanılan iş parçacığı sayısını kontrol eder.

  • 0 (Varsayılan/Otomatik): Otomatik algılama kullanır (tipik olarak mevcut CPU çekirdeklerinin 1/4'ü, maksimum 4)
  • 1-16: İş parçacığı sayısını manuel olarak belirtin. Daha yüksek değerler çok çekirdekli sistemlerde performansı artırabilir ancak daha fazla CPU kullanır

Inter Op Threads: Farklı model işlemlerinin paralel yürütülmesi için kullanılan iş parçacığı sayısını kontrol eder.

  • 0 (Varsayılan/Otomatik): Otomatik algılama kullanır (tipik olarak mevcut CPU çekirdeklerinin 1/8'i, maksimum 2)
  • 1-8: İş parçacığı sayısını manuel olarak belirtin. Genellikle gerçek zamanlı işleme için düşük tutulur

İşleme Parça Boyutu

Processing Chunk Size, her bir çıkarım adımında kaç örneğin işlendiğini belirler. Varsayılan değer 160 örnek'tir (16kHz'de 10ms ses):

  • Daha küçük değerler daha sık güncellemeler sağlar ancak CPU kullanımını artırır
  • Daha büyük değerler CPU yükünü azaltır ancak dudak senkronizasyonu tepkiselliğini azaltabilir
  • Optimal hizalama için 160'ın katlarının kullanılması önerilir

Setting Processing Chunk Size

Ruh Hali Etkin Model Yapılandırması

Create Realistic MetaHuman Lip Sync With Mood Generator düğümü, temel gerçekçi modelin ötesinde ek yapılandırma seçenekleri sağlar:

Temel Yapılandırma

Lookahead Ms: Gelişmiş dudak senkronizasyonu doğruluğu için milisaniye cinsinden öngörü zamanlaması.

  • Varsayılan: 80ms
  • Aralık: 20ms ila 200ms (20'ye bölünebilir olmalı)
  • Daha yüksek değerler daha iyi senkronizasyon sağlar ancak gecikmeyi artırır

Output Type: Hangi yüz kontrollerinin oluşturulduğunu kontrol eder.

  • Full Face: Tüm 81 yüz kontrolü (kaşlar, gözler, burun, ağız, çene, dil)
  • Mouth Only: Sadece ağız, çene ve dil ile ilgili kontroller

Performance Settings: Normal gerçekçi modelle aynı Intra Op Threads ve Inter Op Threads ayarlarını kullanır.

Ruh Hali Ayarları

Mevcut Ruh Halleri:

  • Neutral, Happy, Sad, Disgust, Anger, Surprise, Fear
  • Confident, Excited, Bored, Playful, Confused

Mood Intensity: Ruh halinin animasyonu ne kadar güçlü etkilediğini kontrol eder (0.0 ila 1.0)

Çalışma Zamanı Ruh Hali Kontrolü

Çalışma zamanında ruh hali ayarlarını aşağıdaki işlevleri kullanarak ayarlayabilirsiniz:

  • Set Mood: Mevcut ruh hali türünü değiştirin
  • Set Mood Intensity: Ruh halinin animasyonu ne kadar güçlü etkilediğini ayarlayın (0.0 ila 1.0)
  • Set Lookahead Ms: Senkronizasyon için öngörü zamanlamasını değiştirin
  • Set Output Type: Full Face ve Mouth Only kontrolleri arasında geçiş yapın

Mood Configuration

Ruh Hali Seçim Kılavuzu

İçeriğinize göre uygun ruh hallerini seçin:

Ruh HaliEn İyi KullanımTipik Yoğunluk Aralığı
NeutralGenel konuşma, anlatım, varsayılan durum0.5 - 1.0
HappyOlumlu içerik, neşeli diyalog, kutlamalar0.6 - 1.0
SadMelankolik içerik, duygusal sahneler, kasvetli anlar0.5 - 0.9
DisgustOlumsuz tepkiler, tatsız içerik, reddetme0.4 - 0.8
AngerAgresif diyalog, çatışma sahneleri, hayal kırıklığı0.6 - 1.0
SurpriseBeklenmedik olaylar, açıklamalar, şok tepkileri0.7 - 1.0
FearTehdit edici durumlar, kaygı, gergin diyalog0.5 - 0.9
ConfidentProfesyonel sunumlar, liderlik diyaloğu, iddialı konuşma0.7 - 1.0
ExcitedEnerjik içerik, duyurular, coşkulu diyalog0.8 - 1.0
BoredMonoton içerik, ilgisiz diyalog, yorgun konuşma0.3 - 0.7
PlayfulGündelik konuşma, mizah, hafif etkileşimler0.6 - 0.9
ConfusedSoru ağırlıklı diyalog, belirsizlik, şaşkınlık0.4 - 0.8

Animation Blueprint Yapılandırması

Lip Sync Yapılandırması

Blend Runtime MetaHuman Lip Sync düğümünün özellikler panelinde yapılandırma seçenekleri vardır:

ÖzellikVarsayılanAçıklama
Interpolation Speed25Dudak hareketlerinin visemler arasında ne kadar hızlı geçiş yaptığını kontrol eder. Daha yüksek değerler daha hızlı ve ani geçişlere neden olur.
Reset Time0.2Dudak senkronizasyonunun sıfırlandığı saniye cinsinden süre. Bu, ses durduktan sonra dudak senkronizasyonunun devam etmesini önlemek için kullanışlıdır.

Kahkaha Animasyonu

Ayrıca, seste algılanan kahkahalara dinamik olarak yanıt verecek kahkaha animasyonları ekleyebilirsiniz:

  1. Blend Runtime MetaHuman Laughter düğümünü ekleyin
  2. RuntimeVisemeGenerator değişkeninizi Viseme Generator pin'ine bağlayın
  3. Zaten dudak senkronizasyonu kullanıyorsanız:
    • Blend Runtime MetaHuman Lip Sync düğümünden çıktıyı Blend Runtime MetaHuman Laughter düğümünün Source Pose pin'ine bağlayın
    • Blend Runtime MetaHuman Laughter düğümünün çıktısını Output Pose'un Result pin'ine bağlayın
  4. Sadece dudak senkronizasyonu olmadan kahkaha kullanıyorsanız:
    • Kaynak pozunuzu doğrudan Blend Runtime MetaHuman Laughter düğümünün Source Pose pin'ine bağlayın
    • Çıktıyı Result pin'ine bağlayın

Blend Runtime MetaHuman Laughter

Seste kahkaha algılandığında, karakteriniz buna göre dinamik olarak animasyonlanacaktır:

Kahkaha Yapılandırması

Blend Runtime MetaHuman Laughter düğümünün kendi yapılandırma seçenekleri vardır:

ÖzellikVarsayılanAçıklama
İnterpolasyon Hızı25Dudak hareketlerinin kahkaha animasyonları arasında ne kadar hızlı geçiş yapacağını kontrol eder. Daha yüksek değerler daha hızlı ve ani geçişlere neden olur.
Sıfırlama Süresi0.2Kahkahanın sıfırlanmadan önceki süresi (saniye cinsinden). Bu, ses durduktan sonra kahkahanın devam etmesini önlemek için kullanışlıdır.
Maksimum Kahkaha Ağırlığı0.7Kahkaha animasyonunun maksimum yoğunluğunu ölçekler (0.0 - 1.0).

Not: Kahkaha tespiti şu anda yalnızca Standart Model ile kullanılabilir.

Mevcut Animasyonlarla Birleştirme

Dudak senkronizasyonu ve kahkahayı mevcut vücut animasyonları ve özel yüz animasyonlarının üzerine yazmadan uygulamak için:

  1. Vücut animasyonlarınız ile son çıktı arasına bir Layered blend per bone düğümü ekleyin. Use Attached Parent özelliğinin true olduğundan emin olun.
  2. Katman kurulumunu yapılandırın:
    • Layer Setup dizisine 1 öğe ekleyin
    • Katman için Branch Filters'a aşağıdaki Bone Name değerlerine sahip 3 öğe ekleyin:
      • FACIAL_C_FacialRoot
      • FACIAL_C_Neck2Root
      • FACIAL_C_Neck1Root
  3. Özel yüz animasyonları için önemli: Curve Blend Option'da "Use Max Value" seçeneğini seçin. Bu, özel yüz animasyonlarının (ifadeler, duygular vb.) dudak senkronizasyonunun üzerine düzgün şekilde katmanlanmasına olanak tanır.
  4. Bağlantıları yapın:
    • Mevcut animasyonlar (örneğin BodyPose) → Base Pose girişi
    • Yüz animasyon çıktısı (dudak senkronizasyonu ve/veya kahkaha düğümlerinden) → Blend Poses 0 girişi
    • Katmanlı karıştırma düğümü → Son Result pozu

Layered Blend Per Bone

Morph Target Set Seçimi

Standart Model, özel poza varlığı kurulumu aracılığıyla herhangi bir morph target adlandırma kuralını doğal olarak destekleyen poza varlıklarını kullanır. Ek yapılandırmaya gerek yoktur.

Dudak Senkronizasyonu Davranışını İnce Ayarlama

Dil Çıkıntısı Kontrolü

Standart dudak senkronizasyonu modelinde, belirli fonemler sırasında aşırı ileri dil hareketi fark edebilirsiniz. Dil çıkıntısını kontrol etmek için:

  1. Dudak senkronizasyonu karıştırma düğümünüzden sonra bir Modify Curve düğümü ekleyin
  2. Modify Curve düğümüne sağ tıklayın ve Add Curve Pin seçeneğini seçin
  3. Adı CTRL_expressions_tongueOut olan bir eğri pini ekleyin
  4. Düğümün Apply Mode özelliğini Scale olarak ayarlayın
  5. Dil uzantısını kontrol etmek için Value parametresini ayarlayın (örneğin, çıkıntıyı %20 azaltmak için 0.8)

Çene Açma Kontrolü

Realistic dudak senkronizasyonu, ses içeriğinize ve görsel gereksinimlerinize bağlı olarak aşırı duyarlı çene hareketleri üretebilir. Çene açma yoğunluğunu ayarlamak için:

  1. Dudak senkronizasyonu karıştırma düğümünüzden sonra bir Modify Curve düğümü ekleyin
  2. Modify Curve düğümüne sağ tıklayın ve Add Curve Pin seçeneğini seçin
  3. Adı CTRL_expressions_jawOpen olan bir eğri pini ekleyin
  4. Düğümün Apply Mode özelliğini Scale olarak ayarlayın
  5. Çene açma aralığını kontrol etmek için Value parametresini ayarlayın (örneğin, çene hareketini %10 azaltmak için 0.9)

Ruh Haline Özel İnce Ayarlama

Ruh hali etkin modeller için belirli duygusal ifadeleri ince ayarlayabilirsiniz:

Kaş Kontrolü:

  • CTRL_expressions_browRaiseInL / CTRL_expressions_browRaiseInR - İç kaş kaldırma
  • CTRL_expressions_browRaiseOuterL / CTRL_expressions_browRaiseOuterR - Dış kaş kaldırma
  • CTRL_expressions_browDownL / CTRL_expressions_browDownR - Kaş indirme

Göz İfadesi Kontrolü:

  • CTRL_expressions_eyeSquintInnerL / CTRL_expressions_eyeSquintInnerR - Göz kısma
  • CTRL_expressions_eyeCheekRaiseL / CTRL_expressions_eyeCheekRaiseR - Yanak kaldırma

Model Karşılaştırması ve Seçimi

Modeller Arasında Seçim Yapma

Projeniz için hangi dudak senkronizasyonu modelini kullanacağınıza karar verirken bu faktörleri göz önünde bulundurun:

DeğerlendirmeStandart ModelRealistic ModelMood-Enabled Realistic Model
Karakter UyumluluğuMetaHuman'lar ve tüm özel karakter türleriMetaHuman'lar (ve ARKit) karakterleriMetaHuman'lar (ve ARKit) karakterleri
Görsel Kaliteİyi dudak senkronizasyonu ve verimli performansDaha doğal ağız hareketleriyle gelişmiş gerçekçilikDuygusal ifadelerle gelişmiş gerçekçilik
PerformansMobil/VR dahil tüm platformlar için optimize edilmişDaha yüksek kaynak gereksinimleriDaha yüksek kaynak gereksinimleri
Özellikler14 visem, kahkaha tespiti81 yüz kontrolü, 3 optimizasyon seviyesi81 yüz kontrolü, 12 ruh hali, yapılandırılabilir çıktı
Platform DesteğiWindows, Android, QuestWindows, Mac, iOS, Linux, Android, QuestWindows, Mac, iOS, Linux, Android, Quest
Kullanım AlanlarıGenel uygulamalar, oyunlar, VR/AR, mobilSinematik deneyimler, yakın plan etkileşimlerDuygusal hikaye anlatımı, gelişmiş karakter etkileşimi

Motor Sürüm Uyumluluğu

UE 5.2 Uyumluluk Sorunu

Unreal Engine 5.2 kullanıyorsanız, UE'nin yeniden örnekleme kütüphanesindeki bir hata nedeniyle Realistic Models doğru çalışmayabilir. Güvenilir dudak senkronizasyonu işlevselliğine ihtiyaç duyan UE 5.2 kullanıcıları için lütfen Standart Model kullanın.

Bu sorun yalnızca UE 5.2'ye özgüdür ve diğer motor sürümlerini etkilemez.

Performans Önerileri

  • Çoğu proje için, Standart Model kalite ve performans arasında mükemmel bir denge sağlar
  • MetaHuman karakterleri için en yüksek görsel sadakate ihtiyaç duyduğunuzda Realistic Model kullanın
  • Uygulamanız için duygusal ifade kontrolü önemli olduğunda Mood-Enabled Realistic Model kullanın
  • Modeller arasında seçim yaparken hedef platformunuzun performans yeteneklerini göz önünde bulundurun
  • Belirli kullanım durumunuz için en iyi dengeyi bulmak için farklı optimizasyon seviyelerini test edin

Sorun Giderme

Yaygın Sorunlar

Realistic Models için Jeneratör Yeniden Oluşturma: Realistic Models ile güvenilir ve tutarlı çalışma için, bir süre hareketsizlikten sonra yeni ses verisi beslemek istediğinizde jeneratörü her seferinde yeniden oluşturmanız önerilir. Bunun nedeni, sessizlik dönemlerinden sonra jeneratörleri yeniden kullanırken dudak senkronizasyonunun çalışmayı durdurmasına neden olabilen ONNX çalışma zamanı davranışıdır.

Örneğin, dudak senkronizasyonu jeneratörünü her oynatma başlangıcında, örneğin Play Sound 2D'yi her çağırdığınızda veya ses dalgası oynatmayı ve dudak senkronizasyonunu başlatmak için başka bir yöntem kullandığınızda yeniden oluşturabilirsiniz:

Recreate Lip Sync Generator On Play Sound

Runtime Text To Speech Entegrasyonu için Eklenti Konumu: Runtime MetaHuman Lip Sync'i Runtime Text To Speech ile birlikte kullanırken (her iki eklenti de ONNX Runtime kullanır), eklentiler motorun Marketplace klasörüne kurulmuşsa paketlenmiş yapılarda sorunlar yaşayabilirsiniz. Bunu düzeltmek için:

  1. Her iki eklentiyi de UE kurulum klasörünüzdeki \Engine\Plugins\Marketplace altında bulun (ör. C:\Program Files\Epic Games\UE_5.6\Engine\Plugins\Marketplace)
  2. Hem RuntimeMetaHumanLipSync hem de RuntimeTextToSpeech klasörlerini projenizin Plugins klasörüne taşıyın
  3. Projenizde Plugins klasörü yoksa, .uproject dosyanızla aynı dizinde bir tane oluşturun
  4. Unreal Editor'ü yeniden başlatın

Bu, birden fazla ONNX Runtime tabanlı eklentinin motorun Marketplace dizininden yüklendiğinde oluşabilecek uyumluluk sorunlarını giderir.

Paketleme Yapılandırması (Windows): Dudak senkronizasyonu Windows'taki paketlenmiş projenizde doğru çalışmıyorsa, Development yerine Shipping yapı yapılandırmasını kullandığınızdan emin olun. Development yapılandırması, paketlenmiş yapılarda realistic models ONNX çalışma zamanı ile ilgili sorunlara neden olabilir.

Bunu düzeltmek için:

  1. Proje Ayarları → Packaging'de, Build Configuration'ı Shipping olarak ayarlayın
  2. Projenizi yeniden paketleyin

Shipping Configuration

Blueprint-Only Projects

Bazı yalnızca Blueprint projelerinde, Unreal Engine Shipping seçili olsa bile Development yapılandırmasında yapı oluşturmaya devam edebilir. Bu olursa, projenizi en az bir C++ sınıfı ekleyerek (boş olabilir) bir C++ projesine dönüştürün. Bunu yapmak için, UE editör menüsünden Tools → New C++ Class seçeneğine gidin ve boş bir sınıf oluşturun. Bu, projenin Shipping yapılandırmasında doğru şekilde oluşturulmasını zorlayacaktır. Projeniz işlevsellik açısından yalnızca Blueprint olarak kalabilir, C++ sınıfı yalnızca doğru yapı yapılandırması için gereklidir.

Düşük Dudak Senkronizasyonu Tepkiselliği: Streaming Sound Wave veya Capturable Sound Wave kullanırken dudak senkronizasyonunun zamanla daha az duyarlı hale geldiğini deneyimliyorsanız, bu bellek birikiminden kaynaklanıyor olabilir. Varsayılan olarak, yeni ses eklendiğinde her seferinde bellek yeniden tahsis edilir. Bu sorunu önlemek için, biriken belleği serbest bırakmak için ReleaseMemory işlevini periyodik olarak, örneğin her 30 saniyede bir çağırın.

Performans Optimizasyonu:

  • Performans gereksinimlerinize bağlı olarak Realistic modeller için İşleme Parça Boyutunu ayarlayın
  • Hedef donanımınız için uygun iş parçacığı sayılarını kullanın
  • Tam yüz animasyonuna ihtiyaç duyulmadığında, ruh hali etkin modeller için Mouth Only çıktı türünü kullanmayı düşünün