MotionPNGTuber — PNGTuber以上、Live2D未満の動画ベース口パクツール
概要
MotionPNGTuberは「PNGTuber以上、Live2D未満」をコンセプトにしたオープンソースのリアルタイム口パクツールです。静止画ベースのPNGTuberでは難しい髪や布の自然な揺れを、予め用意したループ動画で表現します。ユーザーはMP4動画と口用のスプライト(画像)を用意するだけで、マイク入力に合わせた口の動き、音声からの感情推定による表情切替、口の自動消去といった機能を利用できます。専門的なモデリング作業が不要な点が魅力で、AITuber用途の仮想オーディオ経由での運用も想定されています。(約300字)
リポジトリの統計情報
- スター数: 8
- フォーク数: 0
- ウォッチャー数: 8
- コミット数: 2
- ファイル数: 16
- メインの言語: Python
主な特徴
- ループ動画ベースで髪・衣装の揺れを自然に表現するリアルタイム口パク
- マイク入力や仮想オーディオデバイス対応でAITuberにも利用可能
- 音声から感情を推定して表情を自動切替
- 元動画から口を高精度に消去し、口スプライトで違和感なく合成
技術的なポイント
MotionPNGTuberは「動画+スプライト合成」というシンプルかつ効果的なアプローチで、ライブ配信向けに軽量な表現拡張を実現しています。基本的な処理パイプラインは次の通りです:入力(マイクまたは仮想オーディオ)→ 音声解析(音量・VAD・特徴量抽出)→ 口パラメータ推定(口の開閉や形状の決定)→ 口消去処理(元動画の口領域を自然に補完)→ 合成(ループ動画上に口スプライトをアフィン変換で重ねる)→ 出力(画面表示または仮想カメラ)。音声からの感情推定は、音量やピッチなどの音響特徴量に基づく軽量モデルで行われ、喜び・怒り・悲しみなどのカテゴリにマッピングして表情差分を切り替えます。
口消去(auto_erase_mouth.py)は重要な技術要素で、単純な矩形マスクで消すのではなく、周辺ピクセル情報を活かして自然に埋めることを目指しています。実装上はOpenCV等で領域選択・マスク作成を行い、周辺の色とテクスチャを参考にした補間やinpainting手法を用いることで、口元を消した後の不自然さを抑えています。その上に口スプライトを乗せることで、唇や歯の表示を意図的にコントロールできます。
また、キャリブレーション機能によりマウス操作で口位置・スケール・回転を直感的に調整可能で、様々なアスペクト比やキャラクターデザインに対応します。リアルタイム性を保つため、処理はフレーム単位で最小限の演算に留められており、配信環境でも遅延を抑えて動作する設計です。Pythonベースであるため、OpenCVや音声入出力、GUIライブラリ(例:tkinterやPySimpleGUIなど)を組み合わせて軽快に動作することが期待されます。将来的にはより高精度な表情推定や機械学習を用いた口形状推定の統合も見込めます。(約1200字)
プロジェクトの構成
主要なファイルとディレクトリ:
- .gitignore: file
- LICENSE: file
- README.md: file
- assets: dir
- auto_erase_mouth.py: file
- main.py(推定のエントリやGUI起動用のスクリプトが想定されます)
- audio_input.py(マイク/仮想オーディオのキャプチャ処理)
- mouth_sprite.png(例として口スプライトが含まれる可能性)
- config.yaml(設定やキャリブレーション情報を格納)
- utils.py(画像処理や音声解析のユーティリティ関数)
- gui.py(キャリブレーションや設定用のUI)
- loop_video.mp4(サンプルのループ動画を格納するassets内ファイル)
- requirements.txt(依存パッケージ)
- examples: dir(導入例や設定例) …他 11 ファイル(全16ファイル)
※実際のリポジトリには上記に挙げた補助スクリプトや設定ファイルが含まれている想定で解説しています。主要な処理はauto_erase_mouth.pyやGUI/メインスクリプト周りに集約されています。
まとめ
手軽にループ動画で動く高表現のライブアバターを作れる、実用的な中間ソリューションです。(約50字)
リポジトリ情報:
- 名前: MotionPNGTuber
- 説明: PNGTuber以上Live2D未満 - 動画ループで髪揺れなど表現可能なリアルタイム口パクツール
- スター数: 8
- 言語: Python
- URL: https://github.com/rotejin/MotionPNGTuber
- オーナー: rotejin
- アバター: https://avatars.githubusercontent.com/u/128216944?v=4
READMEの抜粋:
MotionPNGTuber
PNGTuber以上、Live2D未満 — 動画ベースのリアルタイム口パク(リップシンク)システム
ループ動画を使うことで、従来のPNGTuberでは表現できなかった髪の毛の揺れや衣装のなびきをリッチに表現できます。Live2Dのような専門知識は不要で、MP4動画と口スプライトさえあれば始められます。
✨ 特徴
- 🎤 リアルタイム口パク: マイク入力に合わせてキャラクターの口が動く
- 🤖 AITuber対応: 仮想オーディオデバイスを使えばAITuberのアバターとしても利用可能
- 🎭 感情自動判定: 音声から感情(喜び・怒り・悲しみ等)を推定し、表情を自動切替
- 💨 髪・揺れ物の動き: ループ動画なので髪や衣装が自然に揺れる
- 🖼️ 高精度口消し: 元動画から口を自然に消去し、口スプライトを合成
- 🎯 簡単キャリブレーション: マウス操作で口の位置・サイズ・回転を調整
- 🖥️ GUIツール: ワンクリッ…