Ana içeriğe geç

Eklentiyi nasıl kullanırsınız

Bu kılavuz, MetaHuman karakterleriniz için Runtime MetaHuman Lip Sync'i kurma sürecinde size yol gösterir.

Not: Runtime MetaHuman Lip Sync hem MetaHuman hem de özel karakterlerle çalışır. Eklenti, aşağıdakiler dahil çeşitli karakter türlerini destekler:

  • Popüler ticari karakterler (Daz Genesis 8/9, Reallusion CC3/CC4, Mixamo, ReadyPlayerMe, vb.)
  • FACS tabanlı blendshape'lara sahip karakterler
  • ARKit blendshape standartlarını kullanan modeller
  • Preston Blair fonem setlerine sahip karakterler
  • 3ds Max fonem sistemleri
  • Yüz ifadeleri için özel morf hedefleri olan herhangi bir karakter

Yukarıdaki tüm standartlar için viseme haritalama referansları da dahil olmak üzere, özel karakterlerin kurulumu hakkında ayrıntılı talimatlar için Özel karakter kurulum kılavuzuna bakın.

Önkoşullar

Başlamadan önce, aşağıdakileri sağlayın:

  1. MetaHuman eklentisinin projenizde etkinleştirilmiş olduğundan emin olun (Not: UE 5.6'dan itibaren, MetaHuman işlevselliği doğrudan motora entegre edildiği için bu adım artık gerekli değildir)
  2. Projenizde en az bir MetaHuman karakter indirilmiş ve mevcut
  3. Runtime MetaHuman Lip Sync eklentisi kurulu

Standart Model Uzantı Eklentisi

Standart (Daha Hızlı) Modeli kullanmayı planlıyorsanız, uzantı eklentisini kurmanız gerekir:

  1. Standart Lip Sync Uzantı eklentisini Google Drive adresinden indirin
  2. İndirilen arşivden klasörü projenizin Plugins klasörüne çıkarın (bu klasör yoksa oluşturun)
  3. Projenizin bir C++ projesi olarak ayarlandığından emin olun (herhangi bir C++ kodunuz olmasa bile)
  4. Projenizi yeniden derleyin
not
  • Bu uzantı yalnızca Standart Modeli kullanmak istiyorsanız gerekir. Yalnızca Gerçekçi Model'e ihtiyacınız varsa, bu adımı atlayabilirsiniz.
  • Eklentileri manuel olarak nasıl oluşturacağınız hakkında daha fazla bilgi için Eklentileri Oluşturma eğitimine bakın

Ek Eklentiler

  • Ses yakalama (örneğin, mikrofon girişi) kullanmayı planlıyorsanız, Runtime Audio Importer eklentisini yükleyin.
  • Metinden sese işlevselliğini eklentilerimle kullanmayı planlıyorsanız (kendi özel TTS'niz veya başka bir ses girişiniz olabilir), o zaman Runtime Audio Importer eklentisine ek olarak şunları da yükleyin:

Kurulum Süreci

Adım 1: Yüz animasyon Blueprint'ini bulun ve değiştirin

MetaHuman karakterinizin yüz animasyonları için kullanılacak bir Animation Blueprint'i değiştirmeniz gerekiyor. Varsayılan MetaHuman yüz Animation Blueprint'i şu konumda bulunur:

Content/MetaHumans/Common/Face/Face_AnimBP

Yüz Animasyon Blueprint'i

Dudak senkronizasyonu işlevselliğini uygulamak için birkaç seçeneğiniz var:

Varsayılan Face_AnimBP'yi doğrudan açın ve değişikliklerinizi yapın. Yapılan değişiklikler bu Animation Blueprint'i kullanan tüm MetaHuman karakterlerini etkileyecektir.

Not: Bu yaklaşım kullanışlıdır ancak varsayılan Animation Blueprint'i kullanan tüm karakterleri etkileyecektir.

Önemli: Runtime MetaHuman Lip Sync karıştırma, varsayılan MetaHuman'ın Face_Archetype_Skeleton'ında bulunan yüz kemiklerini içeren bir poza erişimi olan herhangi bir Animation Blueprint varlığında uygulanabilir. Yukarıdaki seçeneklerle sınırlı değilsiniz - bunlar sadece yaygın uygulama yaklaşımlarıdır.

Adım 2: Event Graph kurulumu

Yüz Animation Blueprint'inizi açın ve Event Graph'a geçin. Ses verilerini işleyecek ve dudak senkronizasyonu animasyonu oluşturacak bir jeneratör oluşturmanız gerekecek.

  1. Zaten yoksa Event Blueprint Begin Play düğümünü ekleyin
  2. Create Runtime Viseme Generator düğümünü ekleyin ve Begin Play olayına bağlayın
  3. Çıktıyı grafiğin diğer bölümlerinde kullanılmak üzere bir değişken olarak kaydedin (ör. "VisemeGenerator")

Runtime Viseme Generator Oluşturma

Adım 3: Ses girişi işleme kurulumu

Ses girişini işlemek için bir yöntem kurmanız gerekir. Ses kaynağınıza bağlı olarak bunu yapmanın birkaç yolu vardır.

Bu yaklaşım, mikrofon konuşurken dudak senkronizasyonunu gerçek zamanlı olarak gerçekleştirir:

  1. Runtime Audio Importer kullanarak bir Capturable Sound Wave oluşturun
  2. Ses yakalamaya başlamadan önce, OnPopulateAudioData delegesine bağlanın
  3. Bağlanan fonksiyonda, Runtime Viseme Generator'ınızdan ProcessAudioData'yı çağırın
  4. Mikrofondan ses yakalamayı başlatın

Kopyalanabilir düğümler.

Ses Yakalama Sırasında Dudak Senkronizasyonu

Adım 4: Anim Graph kurulumu

Event Graph'ı kurduktan sonra, üreteci karakterin animasyonuna bağlamak için Anim Graph'a geçin:

Dudak Senkronizasyonu

  1. MetaHuman yüzünü içeren pozu bulun (genellikle Use cached pose 'Body Pose''dan)
  2. Blend Runtime MetaHuman Lip Sync düğümünü ekleyin
  3. Pozu Blend Runtime MetaHuman Lip Sync düğümünün Source Pose'una bağlayın
  4. RuntimeVisemeGenerator değişkeninizi Viseme Generator pinine bağlayın
  5. Blend Runtime MetaHuman Lip Sync düğümünün çıkışını Output Pose'un Result pinine bağlayın

Blend Runtime MetaHuman Lip Sync

Seste dudak senkronizasyonu algılandığında, karakteriniz buna göre dinamik olarak canlanacaktır:

Lip Sync

Kahkaha Animasyonu

Seste algılanan kahkahalara dinamik olarak yanıt verecek kahkaha animasyonları da ekleyebilirsiniz:

  1. Blend Runtime MetaHuman Laughter düğümünü ekleyin
  2. RuntimeVisemeGenerator değişkeninizi Viseme Generator pinine bağlayın
  3. Zaten dudak senkronizasyonu kullanıyorsanız:
    • Blend Runtime MetaHuman Lip Sync düğümünün çıkışını Blend Runtime MetaHuman Laughter düğümünün Source Pose'una bağlayın
    • Blend Runtime MetaHuman Laughter düğümünün çıkışını Output Pose'un Result pinine bağlayın
  4. Yalnızca dudak senkronizasyonu olmadan kahkaha kullanıyorsanız:
    • Kaynak pozu doğrudan Blend Runtime MetaHuman Laughter düğümünün Source Pose'una bağlayın
    • Çıkışı Result pinine bağlayın

Blend Runtime MetaHuman Laughter

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

Laughter

Yüz ve Vücut Animasyonlarıyla Birleştirme

Mevcut vücut animasyonları ve özel yüz animasyonlarını (ifadeler, duygular veya diğer yüz hareketleri gibi) geçersiz kılmadan dudak senkronizasyonu ve kahkaha uygulamak için:

  1. Vücut animasyonlarınız ve son çıktı arasına bir Layered blend per bone düğümü ekleyin. Use Attached Parent seçeneğ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 3 öğe ekleyin, aşağıdaki Bone Name'lerle:
      • 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çin. Bu, özel yüz animasyonlarının (ifadeler, duygular vb.) dudak senkronizasyonunun üzerine düzgün şekilde katmanlanmasını sağlar.
  4. Bağlantıları yapın:
    • Mevcut animasyonlar (BodyPose gibi) → Base Pose girişi
    • Yüz animasyon çıktısı (dudak senkronizasyonu ve/veya kahkaha düğümlerinden) → Blend Poses 0 girişi
    • Layered blend düğümü → Son Result pozu

Layered Blend Per Bone

Neden işe yarıyor: Dal filtreleri, yüz animasyon kemiklerini izole ederek dudak senkronizasyonu ve kahkahaların yüz hareketleriyle özel olarak harmanlanmasını sağlarken orijinal vücut animasyonlarını korur. "Use Max Value" eğri harmanlama seçeneği, eğrileri toplamsal olarak harmanlamak yerine her eğriden maksimum değeri alarak, özel yüz animasyonlarının (ifadeler ve duygular gibi) dudak senkronizasyonuyla çakışma olmadan düzgün şekilde birleştirilmesini sağlar. Bu, doğal entegrasyon için MetaHuman yüz rig yapısıyla eşleşir.

Not: Dudak senkronizasyonu ve kahkaha özellikleri, mevcut animasyon kurulumunuzla yıkıcı olmayan şekilde çalışmak üzere tasarlanmıştır. Sadece ağız hareketi için gereken belirli yüz kemiklerini etkilerler, diğer yüz animasyonlarını olduğu gibi bırakırlar. Bu, onları animasyon zincirinizde herhangi bir noktada güvenle entegre edebileceğiniz anlamına gelir - diğer yüz animasyonlarından önce (bu animasyonların dudak senkronizasyonu/kahkahayı geçersiz kılmasına izin vererek) veya onlardan sonra (dudak senkronizasyonu/kahkahanın mevcut animasyonlarınızın üzerine harmanlanmasına izin vererek). Bu esneklik, dudak senkronizasyonu ve kahkahayı göz kırpma, kaş hareketleri, duygusal ifadeler ve diğer yüz animasyonlarıyla çakışma olmadan birleştirmenize olanak tanır.

Dudak Senkronizasyonu Davranışını İnce Ayar

Temel dudak senkronizasyonu işlevselliğini kurduktan sonra, projenizin gereksinimlerine daha iyi uyması için ağız hareketinin belirli yönlerini ince ayar yapmak isteyebilirsiniz.

Dil Çıkıntı 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. Blend Runtime MetaHuman Lip Sync veya Blend Realistic MetaHuman Lip Sync 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. CTRL_expressions_tongueOut adında bir curve pini ekleyin
  4. Düğümün Apply Mode özelliğini Scale olarak ayarlayın
  5. Dil çıkıntı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ü

Gerçekçi 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 blend 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. CTRL_expressions_jawOpen adında bir curve pini ekleyin
  4. Düğümün Apply Mode özelliğini Scale olarak ayarlayın
  5. Çene hareket aralığını kontrol etmek için Value parametresini ayarlayın (örneğin, çene hareketini %10 azaltmak için 0.9)

Yapılandırma

Dudak Senkronizasyonu Yapılandırması

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

Ö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 Yapılandırması

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

ÖzellikVarsayılanAçıklama
Interpolation Speed25Dudak hareketlerinin kahkaha animasyonları 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.2Kahkahanın sıfırlandığı saniye cinsinden süre. Bu, ses durduktan sonra kahkahanın devam etmesini önlemek için kullanışlıdır.
Max Laughter Weight0.7Kahkaha animasyonunun maksimum yoğunluğunu ölçeklendirir (0.0 - 1.0).

Dudak Senkronizasyonu Modelleri Arasında Seçim Yapma

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

DeğerlendirmeStandart ModelGerçekçi Model
Karakter UyumluluğuMetaHumans ve tüm özel karakter türleriSadece MetaHumans
Görsel KaliteVerimli performansla iyi dudak senkronizasyonuDaha doğal ağız hareketleriyle geliştirilmiş gerçekçilik
PerformansMobil/VR dahil tüm platformlar için optimize edilmişBiraz daha yüksek kaynak gereksinimi
Kullanım SenaryolarıGenel uygulamalar, oyunlar, VR/AR, mobilSinematik deneyimler, yakın plan karakter etkileşimleri

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 Gerçekçi Model doğru çalışmayabilir. Güvenilir dudak senkronizasyonu işlevselliğine ihtiyaç duyan UE 5.2 kullanıcıları lütfen bunun yerine Standart Model'i kullanın.

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

Çoğu proje için, Standart Model en geniş karakter türü yelpazesini desteklerken kalite ve performans arasında mükemmel bir denge sunar. Gerçekçi Model, performans ek yükünün daha az kritik olduğu bağlamlarda özellikle MetaHuman karakterleri için en yüksek görsel doğruluğa ihtiyaç duyduğunuzda idealdir.