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

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

動画をご覧ください。

字幕一覧(クリック)

(00:00:06) それでは今回ですね、新しく作った自作のパペットを紹介していこうと思うんですけども
(00:00:16) 私今までですね、動画を作る時に頻繁に登場してたのが、この左端にいますですね
(00:00:27) Adobe Dr. Apple SmithというAdobeのキャラクターです。パペットです。
(00:00:37) で、これものすごく素晴らしいんですよね。顔の向きに応じて、首もゆっくり動きますし
(00:00:48) 口も目も非常にスムーズに動くという優れものなんですけども
(00:00:54) ただ問題がありまして、それはこのAdobeのですね、サブスクに入らないと使えないんですよ。
(00:01:05) これがですね、一番安い組み合わせでもってしても月1200円。
(00:01:15) それはなかなか今のご時世、このキャラクター使うだけで
(00:01:23) で、その他のAdobeのサービスというのはですね、画像加工したり色々面白みはあるんですけども
(00:01:33) 今や生成AIを使うとほとんど似たようなことができるんですね。
(00:01:41) だからもう生成AIがあれば、メディアの加工もできるし、プログラム作成もできますしね。
(00:01:51) 色んなことが可能なんです。だからそれは非常にもったいない。
(00:01:58) だからできればこのAdobeのサービスを停止して
(00:02:07) もう自前で作ったこのパペットですね。Adobeと比べれば見劣りするんですけどもね。
(00:02:16) まあそれでもこのように目も動きますし、口も動くしで、首も多少動く。
(00:02:23) まあそんな形でですね、使い物にはなんとかなってるかなと思うんですよ。ここは割り切りですね。
(00:02:32) ええまあ、この自前のパペットでですね、これからやっていこうと思ってます。
(00:02:39) ええと、それではですね、今回作ったお手製のパペットですね、を紹介していきたいと思います。
(00:02:49) まだ名前はないんですが、まあimakatブログで使っていこうと思うキャラクターですね。
(00:02:59) いまかっちゃん、変だね。なんだろうね。なんかいい名前があるといいんですけどね。
(00:03:11) まあ、とにかくですね、今から紹介していきたいと思います。
(00:03:16) で、基本的には作るのはですね、Google Geminiですね。
(00:03:25) Google Geminiを使ってですね、Geminiにプログラムを書いてもらうと。
(00:03:34) いうことをして進めます。これが非常に賢いんでね。
(00:03:41) こちらがその日本語で質問していけば、どんどん作ってくれるという代物でございます。
(00:03:49) で、それに従ってですね、あのMacの中にフォルダを用意します。
(00:03:58) フォルダとファイルを用意するということが必要になります。
(00:04:03) mypuppet_systemっていうのを作ってですね、その中にavatar_module
(00:04:13) その中にrun_puppet.py、これが動かすためのPythonプログラムです。
(00:04:20) で、assets、これが動かす対象となる画像ですね、それが入ってます。
(00:04:30) あとconfigのjsonが入ってます。assetsを開くと
(00:04:37) 目の動き用、口の動き用、体ですね、それとあと頭。
(00:04:49) そういう形でですね、パーツごとに分けて作っていきます。
(00:04:55) 例えば目一つ見てみましょうか。ちょっと小さいですけどもね。
(00:05:02) これはeye_up.png、上目遣いの目だけです。
(00:05:13) こういうふうに作りますね。で、作ってもらったプログラムをですね、run_puppet.py
(00:05:22) 先ほどもちょっと出てきましたけども、そういう形で書き込みます。
(00:05:29) で、それをですね、ターミナルですね、それをターミナルで実行するという形をとってます。
(00:05:43) なかなか素晴らしい出来でして、ちょっと頭の動きが
(00:05:49) 少し動いたり動かなかったりってこともあるんですが、まあ大体問題なく動いてくれてると。
(00:05:59) 少し動き出すと、少し不安定な動きになるっていうのが今の課題です。
(00:06:07) ええ、そんなところでですね、作り上げたパペットです。
(00:06:12) まあいろんな形で使っていこうと思っております。
(00:06:18) ええと、それではですね、まあ次にこのさっき作ったパペットですけれども
(00:06:29) まあ実際に今このように動いてますが、これあのターミナルから起動するというのは
(00:06:38) 結構慣れないと面倒くさい話なんで、ちょっとやってみますとね。
(00:06:46) こういうコマンドをですね、打ち込むんです。で、立ち上げると。
(00:06:56) まあこんなような形で立ち上がって、それを使うという形になるわけですね。
(00:07:05) これ今私が話してる声で連動してます。
(00:07:13) まあところがこれは非常に難しい、厄介なんでですね、これは使いたくないわけですよ、みんな。
(00:07:22) で、どういう方法をとるかというと、AppleのAutomatorというものを使ってですね
(00:07:30) まあ簡単なプログラムを書き込むというふうなですね、作業をします。
(00:07:40) こういうものですね。MacのAutomatorを立ち上げてですね
(00:07:48) で、そこでシェルスクリプトを実行ってものを選択して、ここに収めます。
(00:07:57) で、それでとっても短いプログラムですけども、こういうプログラムを書きます。
(00:08:05) 実はこれさっきですね、ターミナルに打ち込んだコマンドと全く同じなんですね。
(00:08:13) それをここに書き込んで、アプリケーションとして登録するということをやります。
(00:08:23) そうしますと、まあこういう、自作パペット起動.app、ってものができます。
(00:08:30) で、この状態でですね、これをクリックします。
(00:08:37) そうすると、実はここから立ち上がることができます。
(00:08:48) この、自作パペット起動.app、をクリックして立ち上がった画面がこれになります。
(00:08:56) このような方法でですね、アプリ化して起動させるというのが非常に楽な使い方になります。
(00:09:05) 以上、補足でした。

自作パペット_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」**の完成です!
これからは、このアプリアイコンをダブルクリックするだけで、サクッとパペットを呼び出せるようになりました。

おわりに

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