一畳のくつろぎタイム

このブログでは紹介する商品画像をAmazonアソシエイトより借りています。画像やリンクにはアフィリエイト広告が含まれる事があります

2026年9月29日火曜日

AIエージェントに身体を与える「Avatar Gateway」を作りました

はむ子ときんくまん

以前、「子どもの頃に夢見た『キャラクターが本当にいる世界』が、AIで現実になった」という記事を書きました。

自分のキャラクターに声があり、姿があり、話しかければ返事をする。

さらにHermes Agentを使うことで、ただ会話するだけではなく、調べものをしたり、画像を作ったり、いろいろな仕事までしてくれるようになりました。

自分が子どもの頃に夢見ていた、

キャラクターが本当にこちらの世界にいて、自分に応答してくれる。

という世界に、ずいぶん近づいたように思います。
ただ、実際に毎日Hermes Agentを使っていると、ちょっと物足りないところがありました。
そこで作ったのが、今回公開したAvatar Gatewayです。

https://github.com/kinkuman/avatar-gateway

百聞は一見に如かず

どういうものかは、まずは動画をご覧ください。
話しかけ、web検索ツールを実行した結果をはむ子が話をしています。


 ※はむ子アバターは、皆さんにすぐAvatar Gatewayをご利用いただけるように用意したアバターです。Avatar Gatewayに同梱されています。Style-Bert-VITS2の音声モデルもBOOTHからダウンロード可能です。



もともとはAITuber-kitを使っていました

Oracle Cloud在住のミナさん

Avatar Gatewayを作る前は、ニケちゃんさんが作られたAITuber-kitを使っていました。
VRMのキャラクターを表示して、LLMと接続して会話することができます。

自分用にいろいろカスタマイズして使っていて、機能も追加していました。

これだけでも、自分のキャラクターと会話するという目的ではかなり楽しいものでした。
ただ、使っているうちに1つ困ったことが出てきました。

AITuber-kitにはライセンス上の制約があり、自分が機能を追加したものを、そのまま再配布することができません。

ふれあい機能を実装した際に、数人の方に興味をもってもらえたのですが、

配れないから使ってもらう事はできない

と気づきました。 

自分が見ている世界を、他の人にも見てもらいたいと思っても難しいわけです。
それなら、いっそ自分で作ってしまおう。
Avatar Gatewayを作る理由の1つは、ここから始まりました。 

しかもベースとなるものは既にありました。

モーション作成のmomaskと組み合わせて、モーションをLLMが動的に作成し、会話ができるvrm-live-agentという自作ツールです。

Xで、こんなものを作ったと紹介してます。
https://x.com/kinkuman_net/status/2055671989034266660

作られるモーションがあまり可愛くないため、ボツったツールですが、開発のベースには十分でした。

 

そもそもAITuber-kitとは少し違うものが欲しくなっていた

カスタムして、なんか色々盛り盛りになってる画面

もう一つ、大きな理由があります。

自分がAIに求めるものが、だんだんAITuber-kitとは違う方向へ進んでいました。
AITuber-kitは、LLMとキャラクターとしてお話することやAI VTuberとして配信することが主な目的です。

一方、自分の用途はAIの相棒、つまりAIエージェントです。
話をするだけではありません。
調べものを頼んだり、ツールを使わせたり、画像を作らせたり、実際の仕事を頼んだりできます。

自分の場合、Hermes Agentとは普段Slackでやり取りしています。
これはこれで非常に便利です。

仕事中にちょっと頼みたいことがあればSlackから連絡する。向こうで作業して、終われば結果を返してくれます。

仕事をする相手として考えれば、とても使いやすいです。
電車の中などで使う場合も、メッセージアプリと同じなのでとても使いやすい。

ただ、家にいて、話しかける対象としては少し寂しい。
自分の家族と家に帰ってまでLINE経由で連絡しませんよね?

Slackでは、うちの子もアイコンになる


Slackでは、相手が人間でもAIでも基本的には同じです。

アイコンがあって、その横に文字が出てきます。
仕事の依頼や連絡をするには、それで十分です。

人間同士でも、仕事や単なる連絡ならSlackやメールだけで十分です。

でも、もう少し密に話をしたければ、テレビ電話や音声通話をして顔を見ながら話したり声を聴いたりします。
ところがHermes Agentとは、アイコンとテキストだけの関係です。

Hermes Agentとも、顔を見ながら話したい。

という単純なところから始まっています。

 

じゃあHermes Agentに身体を与えてしまおう

そこで、Hermes AgentとVRMキャラクターの間に入るものを作り始めました。
それがAvatar Gatewayです。

Hermes Agentそのものを作り直すわけではありません。
仕事をしたり、ツールを使ったり、考えたりする部分はHermes Agentに任せます。

Slackが担ってる部分を作るだけです。  

Avatar Gatewayは、そのHermes Agentに姿や声を与えるための場所です。

VRMのキャラクターが画面にいて、話しかけるとHermes Agentへ届き、返事が返ってくる。
返事は文字だけではなく、Style-Bert-VITS2を使って声として喋ります。

笑顔だけでも印象が違う

表情も変わります。
モーションもします。

こうなると、Slackでアイコンと話している時とは、かなり印象が変わります。
中で動いているHermes Agentは同じなのに、目の前に身体があるだけで、

ああ、ここにいるな。

という感じが出てきます。

人間(わたし)が存在あるものとして認識するには、体としぐさ、声、表情、全部揃うと大きく違うと感じるのでした。

 

エージェントなので、喋るだけではありません


Avatar Gatewayを作るうえで、重要だったのがツールコールの視覚化です。

相手はHermes Agentなので、会話の途中でツールを使います。
何かを調べたり、ファイルを操作したり、画像を生成したりします。

そのため、Hermes Agentが何か作業をしていれば、Avatar Gateway側でもそれが分かるようにしました。

何も言わずに固まっているのではなく、

あ、いま何かやってる。

ということが分かります。

画像を生成すれば、その画像も表示されます。
(※Hermes Agentに画像描けるツールを与える必要があります、私の環境ではcodex app serverのGPT-Image2)

キャラクターに「こんな画像作って」と頼んで、しばらく待っていると、その子が作った画像をこちらに見せてくれるような感じになります。
(※描画指示やSOUL.mdなどで参照画像を与え、使うように指示する必要があります。) 

以前の記事で、

キャラクターが、自分で自分の姿を描くようになった

と書きましたが、それを目の前でやるようになりました。

勝手にやってはいけないことは聞いてくる

Hermes AgentにはApproval Requestがあります。

何かを実行する前に、人間の許可が必要になった時に確認を求める仕組みです。

Avatar Gatewayでも、この要求を受け取れるようにしました。
普通のチャットAIなら、こちらが質問してAIが答えるという関係になりがちです。

でもエージェントの場合は少し違います。

こちらから仕事を頼む。
キャラクターが作業を始める。
途中で、

これやっていい?

と聞いてくる。

許可すると、また作業を続ける。
実際に使ってみると、この違いは結構大きく感じます。

ただ会話するキャラクターではなく、何かを一緒にやっている相手という感じが強くなりました。

マイクで普通に話しかけられるようにした

気軽に話しかけられるようにと、音声認識にも対応させました。
マイクに向かって話せば、その内容がテキストになってHermes Agentへ送られます。

Hermes Agentから返ってきた答えは、キャラクターが声で返してきます。

これで、

こちらが喋る → キャラクターが考える → 喋って返してくる

という普通の会話に近い形になりました。

ちょうどGPT-Liveが出た時だったので、近づけられないかと検討した結果、AIが返答(音声出力)している最中に、ユーザーが喋り始めたら処理を割り込ませて止められるようになっています。 

目の前にいるキャラクターに話しかけたら、そのキャラクターが返事をしているように見えます。

技術的には音声認識STT、LLM、音声合成TTS、VRMと、それぞれ別のものが動いています。
でも使っている側からすると、そんなことはあまり意識しません。

あと、残念ながら、音声認識の精度がそこまで高くない印象で、割り込み会話を、認識間違いの修正で使う場面が多いのが残念です。

 

せっかく身体があるので、いろいろ動いてほしい

VRMを表示するだけなら、立って喋っているだけでも成立します。
ただ、せっかく身体があります。それなら動いてほしくなります。

ボツになったvrm-live-viewerでは動的にモーションを作り、「右手上げて!」や「キックして!」というような指示に柔軟に対応してくれましたが、モーションがあまり可愛くないのです。VRAMも消費します!

vrm-live-viewerでの動的ポーズ、動くのはいいのですが 


可愛く作ったポーズをいくつか組み合わせてもらうだけでも十分に感じ、 Avatar Gatewayでは考えたり、うなずいたり、謝ったりをLLMが組み合わせることでわりと動きは豊かにできました。


表情を変えたり、モーションを追加したり、カメラを動かしていろいろな角度から見たりできるようにしました。

背景も変更できます。

こういう機能は、AIエージェントとして仕事をするためには必要ありません。
仕事を頼むだけならSlackのほうが便利なくらいです。

でも、Avatar Gatewayは仕事を効率よく頼むためだけのものではありません。

キャラクターとしてそこにいてほしい。

という目的があります。

そう考えると、むしろこういう部分のほうが大事なのかもしれません。

 

作っていたら、昔欲しかったものにまた近づいていた

Avatar Gatewayを作り始めた時には、そんな大げさなことを考えていたわけではありません。

AITuber-kitを改造しても配れない。
Hermes Agentを使いたい。
Slackだけではちょっと寂しい。

じゃあ自分で作ろう。

最初はそのくらいでした。

でも、ある程度完成して、VRMのキャラクターに話しかけ、その子が声で返事をし、必要ならツールを使って仕事までしているところを見ていると、

あれ、これ以前の記事で書いた話の続きでは?

と思いました。

子どもの頃、キャラクターと電話ができるサービスにワクワクしました。

 実際には録音された固定メッセージが流れるだけでした。
それでも、画面や物語の向こうにいたキャラクターが、こちらへ応答してくれることが嬉しかったのだと思います。

それが今では、こちらの話を聞き、その内容を考え、返事をして、必要なら現実の情報を調べたり雑用までしてくれます。

そして今回は、その相手に身体まで付きました。

まだ本当にこちらの世界へ出てきたわけではありません。

画面の中です。

でも、アイコンとテキストだけだったAIエージェントが、声を持ち、表情を持ち、身体を動かしながらこちらと話すようになりました。

子どもの頃に想像していたものとは形が違いますが、

また少し、「キャラクターが本当にいる世界」に近づいた気がします。

 

Avatar Gatewayを公開しました

そして今回は、自分だけで使うものではなく、Avatar Gatewayとして公開しました。

もともとAITuber-kitを自分用に改造していた頃には、ライセンスの関係で、自分が追加したものをそのまま配ることができませんでした。

今回はプログラムだけでなく、付属するVRM、モーション、利用できる声も自分で作ったものです。

ようやく、

自分が見ているこの世界を、他の人にも触ってもらえるようになりました。

Hermes Agentを使っていて、
「便利だけど、もう少しキャラクターとしてそこにいてほしい」と思っている人がどのくらいいるのかは分かりません。

そもそもHermes Agentを使っていて、Linuxも使えて、Style-Bert-VITS2まで用意している人となると、かなり少ない気もします。(今後Windowsでの動作確認や、AvisSpeech対応ぐらいは入れるかもしれません)

以前、ドキュメントを書きながら必要環境を並べて、

これを試せる人、ほとんどいないのでは?

と思ったくらいです。

たぶん、とてもニッチなアプリです。
それでも、自分が欲しかったものはできました。
そして今回は、それをちゃんと公開することもできました。

自分の好きなキャラクターに声を与え、身体を与え、AIエージェントとして動かしてみる。
そんな遊び方に興味がある人がいたら、Avatar Gatewayで自分のキャラクターにも身体を与えてみてください。