脱Adobeサブスク!Google Geminiで自作パペット(アバター)を作ってみました

今回は、これからの動画作成で活躍してくれる**「新しく作った自作のパペット(アバター)」**について紹介したいと思います。
これまで私の動画には、画面の左下に「Adobe Dr. Apple Smith」というキャラクターが頻繁に登場していました。顔の向きに合わせて首が動き、目や口もスムーズに動く非常に素晴らしいパペットだったのですが……実は今回、彼からの「卒業」を決意しました。

動画をご覧ください。

動画はまだ準備中です。

自作パペット_py.pub.txt
要約:
このPythonスクリプトは、pygame、OpenCV、sounddeviceを活用したライブ配信向けキャラクターパペットシステムです。ウェブカメラによる顔認識とマイクからの音声入力に基づき、パペットの頭の傾き、口の形、目の動き(瞬き、視線)をリアルタイムで制御します。
最大の特徴は「超・安定ロック版」と称される、徹底した動きの安定化設定です。カメラのノイズや顔の微細な動きに過剰に反応しないよう、顔位置のノイズを極限まで丸めるSMOOTH_FACTORを設定。特に、CENTER_LOCK_ZONEにより、顔が画面中央の一定範囲内にある場合は頭の傾きを完全に0度にロックし、安定感を高めています。傾く量、速度、戻る速度も控えめに調整され、全体的に落ち着いた自然な動きを実現。音声入力が閾値を超えると口が開き、ランダムな瞬きや視線移動も行われます。スペースキーで顔の基準位置をリセット可能です。
付属のAutomatorスクリプトは、指定された仮想環境をアクティブ化した後、このパペットシステムを起動するためのものです。
公開スクリプトに関するお問い合わせは以下へ↓

なぜパペットを自作しようと思ったのか?

最大の理由は**「コスト」**です。
Adobeの素晴らしいパペットを使うためには、当然ながらAdobeのサブスクリプションに加入する必要があります。一番安いプランの組み合わせでも、月額1,200円ほどかかってしまいます。
「このキャラクターを使うためだけに、毎月課金し続けるのはどうなんだろう?」と悩んでいました。今は生成AI(画像生成AIやテキスト生成AI)がこれだけ発達し、メディアの加工やプログラムの作成まで何でもできる時代です。「それなら、AIの力を借りて自分で作ってしまおう!」と思い立ったのがきっかけです。

新キャラクター「いまかっちゃん(仮)?」

というわけで、完全自前で作り上げたのがこちらのパペットです。(※名前は暫定で「いまかっちゃん」と思いつきましたが、ちょっと変な感じもしています。)
Adobeのパペットと比べてしまうと多少見劣りする部分はありますが、動画用としては十分な機能を持っています。
音声連動: 私が話す声に連動して口がパクパクと動きます。
目の動き: 上目遣いなど、視線も動きます。
首の動き: 多少ですが顔の向きも変わります。(※現状、少し不安定な動きになることがあり、今後の課題です)
動画を作る上での「使い物」にはなんとか仕上がったかなと、個人的には割り切って満足しています。

Google Geminiに丸投げ!?

「どうやって作ったの?」と疑問に思うかもしれませんが、実はプログラミングの大部分は**AI(Google Gemini)**にお願いしました。
Geminiに質問する: 日本語で「こういう動きをするプログラムを書いて」と質問し、Pythonのコードを書いてもらいます。Geminiは非常に賢く、どんどんコードを生成してくれました。
パーツ画像の用意: 目(上・下・右・左)、口(開・閉)、体、頭など、パーツごとに細かく分けた画像(PNG形式)を用意します。
フォルダ構成: Macの中に専用フォルダ(mypuppet_systemなど)を作り、Pythonの実行ファイル(run_puppet.py)と、先ほどの画像パーツ群(assetsフォルダ)を格納して連動させました。

Mac「Automator」で起動を劇的にラクにする方法

自作プログラムの弱点として、「毎回ターミナル(黒い画面)を開いてコマンドを打ち込まないと起動しない」という厄介な問題がありました。これでは面倒ですよね。
そこで、Mac標準アプリの**「Automator」**を使って、ワンクリックで起動できるように一工夫しました。
手順: Automatorを立ち上げ、「シェルスクリプトを実行」を選択。そこにターミナルで打ち込んでいた短いコマンドをコピペするだけ。
アプリ化: これをアプリケーションとして保存すれば、**「自作パペット起動.app」**の完成です!
これからは、このアプリアイコンをダブルクリックするだけで、サクッとパペットを呼び出せるようになりました。

OBSへのパペット設定

OBSへのパペットの組み込みですが、OBSのソース→ウインドウキャプチャ、この中から、パペットのあるウインドウを選択します。

STREAM DECKがあると便利です。マルチアクションにて、OBS.app→自作パペット起動.app、と設定すればラクです。

おわりに

今後はこの「自前パペット」を相棒にしていこうと思っています。生成AIを活用すれば、プログラミングの深い知識がなくても、日常の「ちょっと不便」「コストを削りたい」を解決できるツールが作れてしまいます。便利ですね。