• यह 2021 में बनाए गए Deus Ex 1 के lip-sync और blink animation को बेहतर बनाने वाले mod का विवरण है
  • डेवलपर ने पाया कि मूल गेम का lip-sync implementation लॉन्च के समय से ही सही तरह काम नहीं कर रहा था
  • Valve के Half-Life 2 जैसी phoneme extraction और viseme mapping की विधि Deus Ex में भी लागू होती है, इसका विश्लेषण किया गया
  • Unrealscript code में गलत framerate check और blending timing की समस्याओं को ठीक करके अधिक स्वाभाविक animation लागू करने में सफलता मिली
  • पूरी तरह सही implementation के लिए phoneme update frequency की समस्या का अलग से समाधान अभी भी ज़रूरी है

परिचय और पृष्ठभूमि

  • यह mod Deus Ex 1 के character dialogue lip-sync और blink animation को सुधारने वाला प्रोजेक्ट है
  • मूल गेम में lip-sync behavior और blink animation रिलीज़ के समय से ही असामान्य रूप से implement किए गए थे
  • अपने Twitter पर पहले साझा किए गए काम को यहाँ व्यवस्थित करके प्रस्तुत किया गया है
  • mod download अलग लिंक(ModDB) पर उपलब्ध है

मौजूदा lip-sync implementation की जाँच

  • gameplay के दौरान lip-sync में mouth shape transition की समस्या और असामान्य animation behavior की पहचान की गई
  • Chris Norden (Deus Ex डेवलपर) के interview के अनुसार शुरुआती lip-sync system काफ़ी sophisticated था, लेकिन performance कारणों से इसे सरल किया गया
  • Unrealscript हिस्से में कितना implementation बचा है और क्या-क्या बदला जा सकता है, इसकी जाँच की गई
  • source code उपलब्ध नहीं है, केवल script तक पहुँच संभव है

lip-sync कैसे काम करता है

  • लेखक ने पहले Half-Life 2 के lip-sync system का विश्लेषण करके अनुभव हासिल किया था
  • Valve audio file से phoneme निकालकर language information को .wav file के अंत में जोड़ता है, और runtime में उसी timing के अनुसार mouth shape (viseme) बदलता है
  • इस तरीके का फ़ायदा यह है कि पहले से phoneme extraction कर लेने पर runtime load कम हो जाता है

Deus Ex की संरचनात्मक समस्याएँ

  • Deus Ex में phoneme information कहीं भी store नहीं होती, इसलिए संभव है कि extraction runtime में real-time हो रही हो
  • Unrealscript विश्लेषण के अनुसार यह skeletal animation नहीं बल्कि vertex animation आधारित है, और इसमें कुल 7 mouth shapes और 1 blink animation ही उपलब्ध हैं
  • बाहरी audio system से nextphoneme को A, E, F, M, O, T, U या X (mouth closed state) पर सेट किया जाता है, और character script उसी के अनुसार mouth shape बदलती है

bugs और सुधार कार्य

  • मूल code में framerate decision logic उलटी दिशा में काम कर रही थी, इसलिए high frame rate पर भी mouth shape तुरंत बदल जाती थी
  • blending duration (tweentime) बहुत कम (0.1 सेकंड) रखी गई थी, जिससे transition का स्वाभाविक अहसास गायब हो जाता था
  • framerate check condition को ignore करके tweentime को पर्याप्त रूप से बढ़ाकर 0.35 सेकंड किया गया
  • इसके परिणामस्वरूप lip-sync transitions अधिक smooth हो गए

mouth closing और blink handling

  • dialogue खत्म होने के बाद mouth बंद करते समय भी natural blending लागू हो, इसके लिए अतिरिक्त logic जोड़ा गया
  • animation logic पहले केवल bIsSpeaking को check करती थी, लेकिन इसे बदलकर lip-sync animation को हमेशा सक्रिय रहने दिया गया
  • blink speed भी समायोजित की गई ताकि उपयोगकर्ता उसे लगातार notice कर सके

संरचनात्मक सीमाएँ और कमियाँ

  • nextphoneme की update frequency खुद अनियमित है, और यह हर tick पर update नहीं होती — यह एक संरचनात्मक सीमा है
  • इसी वजह से सभी blending सही तरह लागू करने पर भी perfect lip-sync experience संभव नहीं है
  • अगर updates स्थिर interval पर होतीं, तो blending speed को उसी हिसाब से optimize किया जा सकता था, लेकिन मौजूदा संरचना में यह संभव नहीं है
  • NPC और player character classes में वही logic duplicate implementation के रूप में मौजूद है, जो code inefficiency भी दिखाता है

अंतिम संशोधित example code

  • लेख के निचले हिस्से में सुधारे गए lip-sync function का पूरा code दिया गया है
  • मुख्य सुधार: framerate decision को ignore करना, tweentime को काफ़ी बढ़ाना, dialogue के बाद smooth mouth closing, blink frequency और speed को adjust करना

निष्कर्ष

  • इस mod का उपयोग करने पर मूल संस्करण की तुलना में कहीं अधिक स्वाभाविक और बेहतर lip-sync तथा blink animation का अनुभव मिलता है
  • संरचनात्मक सीमाओं के कारण पूरी तरह perfect lip-sync मुश्किल है, फिर भी फिलहाल उपलब्ध तरीकों में यह सबसे अच्छा समाधान है

अभी कोई टिप्पणी नहीं है.

अभी कोई टिप्पणी नहीं है.