世界を動かす技術を、日本語で。

私の「デウス・エクス」リップシンク修正モッド

概要

  • Deus Ex 1 のリップシンクとまばたき問題の修正Modの技術解説
  • 問題の根本は Unrealscript 内のタイミングとブレンド処理の不具合
  • Valveの Half-Life 2 との比較によるリップシンク技術の考察
  • Unrealscript による具体的な修正内容とその限界点
  • 改善点と今後の課題の整理

Deus Ex 1 リップシンク&まばたき修正Modの技術解説

  • Deus Ex 1 のリップシンクとまばたきは発売当初から不具合が存在
  • 2021年に Unrealscript を用いて修正Modを作成・公開
  • オリジナルのリップシンクは 口の動きが不自然 で、まばたきもほぼ見えないほど高速
  • 開発者Chris Nordenのインタビューから、当初は高度なリップシンク機能が存在したが、 パフォーマンスの都合で簡略化
  • Half-Life 2のような 音声ファイルへの事前情報付与 (phoneme extraction)は未採用で、 リアルタイム解析 のため負荷が高かった可能性

リップシンク技術の仕組みと問題点

  • リップシンクは 音声の中の音素(phoneme) を判定し、 口の形(viseme) にマッピングすることで実現
  • Half-Life 2では オフライン解析 で音素情報を.wavファイルに付与し、効率化
  • Deus Ex 1では リアルタイムで音素解析 していた疑い
  • キャラクターの頭部モデルは 7種類のvisemeとまばたき アニメーションを持つ
  • nextphoneme 変数により口の形を切り替え、 IsSpeaking 時のみ処理

Unrealscriptの不具合と修正内容

  • アニメーションのブレンド時間(tweentime)の計算ロジックに フレームレート判定の逆転ミス
    • 本来は高fps時にブレンド、低fps時はスナップ切り替えのはずが逆になっていた
    • ブレンド時間も 0.1秒では速すぎ0.35秒 に変更し滑らかに
  • IsSpeaking=false 時に口が即座に閉じる仕様→ 常時ブレンド処理 に変更し、自然な口閉じへ
  • tweentime 初期値が0で顎がスナップ閉じ→ 0.3秒 に設定
  • まばたきの頻度が高すぎたため、 間隔を大幅に拡大 し自然な動きへ

残る問題点と限界

  • nextphoneme の更新頻度が低く、一定でないため、ブレンドが正しく機能しない場合あり
  • Unrealscript外(C++側) での処理のため、現状は根本的な解決が不可
  • プレイヤーキャラとNPCで 同様の関数が重複実装 されている構造上の非効率

修正後のUnrealscript概要

  • フレームレート判定ロジックの削除、 tweentime の適正化
  • IsSpeaking チェックの緩和で口閉じの自然化
  • まばたき処理のタイミング見直し
  • これにより 滑らかなリップシンクと自然なまばたき を実現

今後の課題

  • nextphoneme の更新頻度を上げるには C++ソースコードへのアクセスが必要
  • 音素解析を オフラインで事前処理 する仕組みが理想
  • 現状のUnrealscriptの枠内では これ以上の改善は困難

ダウンロードリンクや詳細はTwitter投稿参照

Hackerたちの意見

あの変なリップシンクのおかげで、史上最も面白い動画の一つが生まれたよね。: https://www.youtube.com/watch?v=Js02m-7qHyE

声優の演技も、2番目か3番目に面白いよね。: https://www.youtube.com/watch?v=JHX5-SvRXTs

うわ、懐かしい!これ、めっちゃ覚えてる。私にとって一番面白かったのは、ゲームの変なリップシンクを真似してたところだね。

デウスエクスは、史上最も面白い動画の一つを達成するのにパロディ動画なんて必要ないよ。 https://youtu.be/ekVI_UoEYRc?si=f-txpkn32J3S8YQj

ゲームのファンには朗報!Aspyrが「デウスエクス:リマスタード」を発表したよ。: https://www.youtube.com/watch?v=f1RdKezTYNk でも、ファンたちは「デマスタード」って呼んでるみたい。

うん、見た目がダサいね。なんで人は、すべての面が平らなゲームを作れないんだろう。私の脳はその非現実的な完璧さが好きなんだ。

発表について見た中で、一番的確なコメントは「2000年から2003年に持ってきたみたいだね」だったな。

ゲームのファンはリマスター版をいつも批判するから、あんまり意味ないよね。

6年前に出たデウスエクス: ザ・リカット・リマスタードよりもどうして見た目が悪いの? https://www.youtube.com/watch?v=xmOCsiZgAbg

古いスタイルとアセットが現代のライティングやテクスチャ(特にAIでアップスケールされたもの)と混ざるから、ちょっと光沢があって全体的に少しおかしく見えると思う。GTAのリマスターでも同じことが起こったし、他のローンチ問題はさておき。とはいえ、こういう試みを楽しむ少数派の一人だから、少なくともこれらの現代版は高解像度やワイドスクリーンのサポートがあって、ちょっとだけ動作が良くなることが多いからね。初期2000年代のゲームのジャンクさは好きじゃないけど、情熱的なコミュニティメンバーが作ったモッドが同じことをもっと良くやれる理由はないと思う。企業がそれを外注して、急いで予算内で何かを作ろうとするのが不思議だよね。俺が見た中で古いゲームに新しい視点を与える最高の試みは、マフィア ディフィニティブ エディションとシステムショックだと思う。あれは基本的にリメイクだけど、オリジナルに忠実なんだよね。

まあ、GMDXの方が全然いいよ。

Revisionの方がこれよりずっと良いし、ファンが作ったものなんだよね。 https://store.steampowered.com/app/397550/Deus_Ex_Revision/ Aspyrのこの「リマスター」を考えると、Nightdiveが存在してくれて嬉しいよ。

リマスターは一般的にオリジナルより劣ってることが多いね。稀に例外もあるけど、だいたいは混ざった感じか、オリジナルより明らかに悪い体験になることが多い。リメイクも同じ。

DXのヘッドショットの当たり判定も壊れてるよ。これは、15年以上前にDX SDKを見た記憶からだけど… DXのキャラクターに使われる当たり判定の形状は、シリンダー一つなんだ。ゲームは、そのシリンダーのどこで弾が当たったかを見て、頭、体、脚のどれかを判断するんだよ。衝突点の高さをチェックして、下のX%が脚、上のY%が頭、真ん中が体って感じで。もし頭の部分に当たったら、さらにチェックが入って、時々体当たりとしてカウントされることもある。長い間見つめてると、頭のエリアが方位に合わせて1/8に分かれてるように見えるコードがあったんだ(北、北東、東、など)。N-E-S-Wの八分の一に当たるとヘッドショット、NE-NW-SE-SWに当たると体当たりとしてカウントされるみたい。キャラクターに対して角度が回転するのか、世界に対して絶対的なのかは分からなかったけど。シリンダーの上部に当たった時のチェックもあったと思うから、ヘッドヒットとしてカウントされるにはシリンダーの中心に近くないといけなくて、外側の縁に近いと体当たりとしてカウントされる感じ。うーん、図を作った方がいいかな。ここにあるよ: https://imgur.com/a/KG6MF1k 彼らがやろうとしてたのは、実際の頭の当たり判定を頭のレベルの小さい部分にすることで、肩を越えて外れた弾が体当たりとしてカウントされるようにすることだったんだと思う。テストマップを作って、プレイヤーと静的なテスト敵を一直線に配置すれば、固定位置からは確実に機能するはず。でも実際にDXをプレイすると、いろんな角度から敵に近づくと、ヘッドショットが謎に失敗するんだよね。

これで、過去25年間に5回プレイしたこのゲームのスタンプロッドとバトンのめちゃくちゃな挙動が説明できるね。

安い球体-レイ交差テストをたくさん使わなかったのが意外だね。もっと正確だっただろうに。

GMDXはとっくにそれを直しておくべきだったね。

もしかしたら間違ってるかもしれないけど、俺は関わってないからあくまで推測なんだけど、君が言ってるそのジャンクさは、DXが最初はフォールアウトみたいなゲームになる予定だったのが、FPSに方向転換したからじゃないかな。トラブルシューティングの古いコードや、3Dの世界にうまく適応できなかったゲームデザインの選択が残ってたんだと思う。でも、俺の記憶が間違ってるかもしれないけどね。

史上最高のゲームの一つだよ。これがウォーレン・スペクターが作ったもので、ロメロが金を無駄にしてダイカタナを何度も書き直してる間に生まれたもの。アイオン・ストームから出た唯一の価値あるものだね。たくさんのエマージェントなゲームプレイがあって、ほとんどいつもパズルを解く方法が複数ある。ステルス、 brute forceの近接戦、遠距離戦、爆発物、コンピュータハッキング… 分岐するストーリーに複数のエンディング。絶対プレイすべきだよ。

アイオンストームから出た唯一の価値あるものだね。アナクロニクスもそう。10/10のゲームではないけど、その時代には絶対にしっかりした作品だった。

大きな修正モッドでダイカタナをかなりプレイしたけど、あれは良いゲームが隠れてる感じで、もっと良い状態でリリースされてれば素晴らしい作品になってたと思う。でも、実際にはそうならなかったね。商業プロジェクトがその可能性を探るためにオーバーホールやリメイクをするのは難しいし、その負担をどうにかしないといけない。デューク・ヌケム・フォーエバーも似たような感じだと思う。もしあれが14年も続くサーガじゃなくて、ちゃんとしたプロジェクトだったら、早期の成功に酔ってお金がありすぎて責任感がないのが毒になってるみたい。

それと、サウンドトラックの名作も忘れちゃいけない。今でも聴くと鳥肌が立つよ。

「私はもっと大きなシステムのプロトタイプです」という言葉は、今のLLM時代のキャッチフレーズを予告してたね。「すぐに君たちの神ができるよ、そしてそれを自分の手で作るんだ。」

HL2の言及、いいね!リップシンクや表情デモにすごく感動したのを覚えてるよ。: https://youtu.be/Bdbhr2pZUgg あのデモは実際、今でもかなり良い感じだと思う。

当時は本当にすごかった。今は、ODのトレーラーがフェイシャルアニメーションに関して最先端を見せてると思う(おそらくアンリアルエンジンを使ってるんだろうね)。10年後にODのトレーラーと最先端のものの間に似たような違いが見られるか気になるな。

ウォーレン・スペクターの2017年GDCでのデウス・エクスのポストモーテムには、たくさんの面白い話が詰まってるよ。ウォーレンのゲームプロジェクトを始める前の6+2+1の質問とか、チーム1とチームA(誰もチームBやチーム2になりたがらなかった)とか、プレアルファに到達した日、ゲームが楽しくないことに気づいたこととか、LAMの壁登りや爆発物を使った問題解決、JCデントンの名前の由来なんかもね。

ちなみに、デウス・エクスのOSTの作曲家の一人、アレクサンダー・ブランドンがYouTubeチャンネルを持ってて、視聴者からの質問に定期的に答えてるよ。

ゲーム音楽の中で一番好きな曲の一つだな、モロウィンドに次ぐくらいかも。リンクのおかげで、アレックスがスカイリムのアンカノの声もやってたって知ったよ!投稿ありがとう :)

面白いモッドと解説だね。でも、俺にとってデウス・エクスのジャンクさは、その良さの一部なんだよね。特別な声優の演技やその他の要素と一緒にね。

実際、いくつかの役にはプロの俳優を雇ったけど、NPCはかなりひどいよね…。

モッダーたちはこのゲームの修正と復元にものすごく努力してるよ。開発者たちは本来、プレイヤーに主人公の性別を選ばせたかったけど、リソースが足りなくて実現できなかったんだ。だから、コミュニティがJCの全セリフを再録音して、他の部分も編集してほぼシームレスに戻したんだよ。

すごい、びっくりだね!

デウスエクスのcoopモッドも忘れないでね。 https://steamcommunity.com/sharedfiles/filedetails/?id=19486...

あの声優さん、JCのモノトーンなセリフを完璧に演じてるね!