🍮

AI VTuber開発日記 〜AIキャラクターの作成からOBSを用いたYouTube配信まで〜

に公開

はじめに

この記事の対象者

  • これからAIキャラクターを作りたいと考えている
  • OBS Studioの使い方やYouTube配信の方法が知りたい
  • 15日という限られた期間でどれくらいのことができるようになるのか知りたい

背景

Shizuku AIが米VC大手から大型資金調達を受けて、企業価値が約120億円になったとのことでAI VTuberに興味を持った方も多いと思う。

このニュースを受けて、これからAI VTuberやAIキャラクターを開発しようと考えている方向けに、私が15日間という限られた期間でAITuber開発をしたときの日記を公開することにした。

半年ほど前の内容であるため、少し古い情報も含まれているがAIキャラクターの作成方法やOBS Studioを使ったYouTube配信等にも触れており、これから活動をするために何をすればよいか?を知るきっかけになれば嬉しい。

それでは始めよう。

1日目:aituber-kitを使ってAIニケちゃんと会話してみる

2025年6月16日、ぬこぬこさんが主催するAITuber会に申し込んだ。

https://aimeetup.connpass.com/event/356935/

申込みが遅れたため、現状は補欠。だが、参加できる可能性を信じてAITuber開発に挑戦する。

https://x.com/gosrum/status/1934607477670310037

7/4(金)まであと18日しかない。早速AITuberの作り方を学ぶところから始める。

どんなキャラクターを作って何をしたいかは現時点では考えず、まずは動くものを作る方針で進める。

aituber-kitを使ってみる

まずはイメージを掴むために、ニケちゃんさんのaituber-kitを使ってみる。

https://github.com/tegnike/aituber-kit

開発は可能な限りEVO-X2(Ubuntu)で行うことにする。

$ git clone aituber-kit
$ cd aituber-kit
$ pnpm install
$ pnpm run dev

webブラウザでhttp://localhost:3000にアクセスすれば、AIニケちゃんを召喚できる。
EVO-X2ならぬるぬる動く!


LLM設定(Ollamaを使う場合)

  • 歯車マーク→AI設定→AIサービスを選択Ollamaを選択
  • URLを入力http://localhost:11434/apiと記入
  • モデルを選択Ollamaに導入済みのモデルを選択する。
    • ここはドロップダウンメニューで選べるようにしたらもっと便利になりそう。
      http://localhost:11434/api/tagsで確かモデルのlistが読み込めたはず。

合成音声設定(AivisSpeech Engineを使う場合)

この設定はおそらく迷うことはなさそう。

AivisSpeech Engineを未導入の場合は下記の手順で導入可能。WindowsやMacはアプリをインストールすればもっと簡単に使えると思う。

https://aivis-project.com/

AivisSpeech Engineの導入

Docker未導入の場合は、例えば下記を参考に導入する。

https://docs.docker.com/engine/install/ubuntu/

導入済みの場合は、下記のコマンドでAivisSpeech Engineを起動できる。
途中permissionの問題のエラーが出たが、Claudeに聞いて解決。

$ git clone https://github.com/Aivis-Project/AivisSpeech-Engine.git
$ cd AivisSpeech-Engine
$ docker pull ghcr.io/aivis-project/aivisspeech-engine:cpu-latest
docker run --rm -p '10101:10101' \
  -v ~/.local/share/AivisSpeech-Engine:/home/user/.local/share/AivisSpeech-Engine-Dev \
  ghcr.io/aivis-project/aivisspeech-engine:cpu-latest

これでOllamaで選択したLLMモデルと会話し、出力テキストを合成音声で再生することが可能になった。今日はここまで。

https://x.com/gosrum/status/1934622823575912616


2日目:キャラクター作成

ニケちゃんさんがゼロから始めるAITuberの作り方の記事で、あえてAITuberKitを使わないでAITuberを作る方法をまとめてくれているので、詰まるまでは勉強も兼ねてこれに従って開発を進める。

https://note.com/nike_cha_n/n/n6cac5ad7bc9d#ab837428-0320-4907-9faf-ffa00388ab73

まずはキャラクターを作成するところから始める。

VTubeStudioの導入

まずSteamをインストールする。

https://store.steampowered.com/about/

若干分かりづらかったが、下記のページを参考にアカウント作成などもしながら導入を完了した。

https://wyllwaks.hatenablog.com/entry/2024/11/07/013115

次に、VTubeStudioをダウンロード、インストールする。

https://denchisoft.com/

LAUNCHしてみる。

こいつ...動くぞ!

VTubeStudioをOpenSeeFaceの顔認識機能付きで動作させるための手順(linux向け)

もはやAITuberから脱線している気もするが、VtubeStudioをLinuxで動かす方法が書かれてそうなページを発見。よく見ると、顔認識機能を使えるらしい。とりあえずインストールしてみる。

https://github.com/DenchiSoft/VTubeStudio/wiki/Running-VTS-on-Linux/

$ git clone https://github.com/emilianavt/OpenSeeFace
$ cd OpenSeeFace
$ mv pyproject.toml pyproject.toml.orig
$ uv init --python 3.10
$ uv add onnxruntime opencv-python pillow numpy==1.26.1
$ echo -e "ip=0.0.0.0\nport=11573" > "$HOME/.local/share/Steam/steamapps/common/VTube Studio/VTube Studio_Data/StreamingAssets/ip.txt"
$ uv run facetracker.py -W 1280 -H 720 --discard-after 0 --scan-every 0 --no-3d-adapt 1 --max-feature-updates 900 -c 0 --ip 127.0.0.1 --port 11573

これで、Webcamがあればリアルタイムで顔認識される。

あとは、VTubeStudioでSettings→Webcam Trackingの設定でCamer ONにすれば、距離、顔の向き、目の動き?あたりがキャラクターにリアルタイムに反映される。残念ながら手足や表情の動きは反映されないようだ。

https://x.com/gosrum/status/1934909475305193978

これで私もVTuberの仲間入り!YouTubeチャンネルも作ったし、まずは金の盾目指して頑張るぞ!


キャラクターモデルを作る(前編)

冗談はさておき、こんなに頑張ったのにオリジナルのキャラクターモデルがまだできていない。

AITuberKitではLive2DかVRMが使えるらしいので、それぞれ作り方を調べてみる。VTubeStudioはLive2Dのみ?

Live2D

もちろん、モデルを買うこともできるが、自作することもできる。

あまり自信はないが、調べた限り下記の手順で作れるらしい。

  1. PhotoShop、CLIP STUDIO PAINT、Kritaなどで、パーツを分解したpsdを作成する。
  2. Live2D Cubism Editorで動きをつける。

VTubeStudioでも動かせるのは良さそうだが、若干難易度が高そうなので一旦後回しにする。

VRM

こちらも作成済みのモデルを購入することもできるが、VRoid Studioを使うことでモデルを作れるらしい。

https://vroid.com/ja/studio

早速SteamにVRoid Studioを導入。

起動。

モデルを作るのは後回しにして、サンプルキャラクターをロードし、VRMファイルをエクスポートしてみる。

aituber-kit/public/vrmに格納すれば、AITuber-Kitの設定画面で格納したモデルを選択できるようになることを確認した。試しにAvatarSample_M.vrmを読み込んでみる。

問題なく読み込まれることが確認できたので、あとはVRoid Studioでモデルを作成すればAITuberKitで自作モデルを動かせることになる。というわけで、満を持して自作モデルを作ってみる。めちゃくちゃ時間がかかりそうだ。

お気に入りの画像を渡したら、それに近いパーツや衣装を自動的にそれに近いものを選択してくれるサービスが欲しい。


3日目:キャラクター作成2

キャラクターモデルを作る(後編)

とりあえずキャラクターの作成は完了!
無駄に二種類の衣装を作ってしまった。浴衣強い。2枚目はスカートの色を変えたかったけど少し大変そうだったのでとりあえずデフォルトのままにした。




衣装とか色々カスタマイズできそうで、正直もっとこだわりたい気持ちもあるが、どれだけ時間があっても足りなくなりそうなので一旦このVRMモデルを使うことにする。名前はまだない。

航路を再確認する

ニケちゃんさんの記事において、今後の手順は下記の通り。

  • キャラクターを作る
    • モデルの作成:VRMモデルを利用
    • キャラクター設定
  • 使用するツールの準備
    • LLM:Ollama/gemini-2.5-flash/gpt-4o
    • TTS:AivisSpeech
    • 配信ソフトウェア:OBS Studio
    • YouTube API
    • YouTube チャンネル作成
  • AITuberプログラムの作成
    • ...

ツールの準備はすでにわりとできているので、あとはキャラクター設定とYouTube APIの設定、AITuberプログラムの作成ができれば良いことになる。

しかしこれで作れるのはスタンダードなAITuber、つまりライブチャットを取得してそれに基づいて回答を返すAITuberであり、なんとなく自分が作りたいものではないような気がする。

では、私は何を作りたいのか?もっと具体的には、誰のために、どんなAITuber(or AIキャラ)を作りたいのか?それをよく考えてから次の行動に移るべきかもしれない。


4日目:成功しているAITuberから学ぶ

あまり先入観を持ちたくはないものの、AITuberについて知らなすぎるのも良くない。

ということで、今日はニケちゃんさんがAITuberの情報をまとめたサイト「AITuberList」で先行研究を調査する。

https://aituberlist.net/

確認したら、このメモを記載時点で総勢208名が登録されている。時間の都合上、登録者数が1万人以上のAITuberに絞って調査することにする。このフィルターを通すと18名が該当するようだが、一部AITuberは除外しても良いだろう。

歌上手くないか?

いくつかのAITuberのチャンネルを再生してみた。

その中で特に気になったのが、歌枠というもの。普段喋っているときは明らかにAIっぽさがにじみ出ているのだが、歌っているときはAIっぽさが感じられない。いやむしろ心が動かされる感じがある。例えば下記の動画。

https://www.youtube.com/watch?v=fgou27df2ks

これはどういうことなのだろう?もともと歌を歌うための合成音声ソフト?でキャラクター音声を作っているのだろうか?それとも人間が歌っている?

そしてモーションもかなり自然に見える。さすが登録者5万人クラスは格が違うと感じた。


5日目:OBS Studio

今日は仕事で遅くなってしまったので、配信ソフトウェアであるOBS Studioの導入のみ行うことにする。

OBS Studioの公式HPを見ると、Linux版があるのでこちらをダウンロードする。どうやらUbuntu 24.04以降では、公式PPA経由でOBS Studioをインストールできるようだ。

$ sudo add-apt-repository ppa:obsproject/obs-studio
$ sudo apt update
$ sudo apt install obs-studio

OBSでYouTube Liveに配信する際の設定と配信を方法を徹底解説の記事を参考に進める。

YouTubeライブ配信の有効化

まず最初に、YouTube側でライブ配信を有効化させる必要があるとのことで、早速ライブ配信を有効化する。

リクエストして、電話番号を登録すると24時間の待ち時間が発生するようだ。

OBSの設定

OBSを起動し、必要な設定を行う。


とりあえず上記のような感じで設定を進め、アカウント接続ボタンを押してGoogleアカウントとの連携を行う。


上記の画面で次へを押すと、サーバーに接続できず。。。

ライブ配信がまだ有効化されてないため?遅くなってしまったので、今日はここまで。


6日目:OBS Studio続き

YouTube Studioでライブ配信が有効化されていることを確認する。

次に、OBS Studioで改めてサーバーに接続すると今度は成功した。

出力・映像設定

記事を参考に、下記のように設定した。

音声設定

音声はマイクを使わない予定で、どう設定すべきかわからないため、一旦デフォルトのままにする。

マイクのフィルタ設定も記事の通りに進める。

うーむ、マイクはAIキャラの合成音声を出力したいのだが、これでできるのかいささか疑問だ。

次はいよいよYouTubeで配信を開始する方法らしい。ちょっと遅くなってしまったので、今日はここまでにしよう。


7日目:ライブ配信〜コメント取得→音声合成による発話まで

YouTube Data APIキーの設定

下記の記事に基づいてYouTube Data API v3キーを取得する。
https://hanami-web.tokyo.jp/blog/website-running/youtubeapikey/

とりあえず、A-Utaさんのメモに従って設定を行った。情報ありがとうございます!

https://x.com/UtaAoya/status/1936395464376738091

AITuberKit側の設定

設定(歯車マーク)→YouTube設定画面を開き、YouTubeモードをONにすると、YouTube APIキーとYouTube Live IDを入力する欄が現れる。

APIキーは上記で取得したAPIキーを入力し、YouTube Live IDにはOBSで配信枠を作成後に採番されるIDを入力すれば良い。具体的には、ライブ配信のURLがhttps://youtube.com/live/G_4m84Q_K3Yならば、G_4m84Q_K3Yを入力すればOK。

色々設定が大変だったが、なんとかAIキャラがコメントを取得して回答を返すところまではできた!

個人的にハマったのが、チャット画面でボタンをクリックしないとコメントを読み込まないこと。


↑この状態だとコメントが読み込まれない

上記のように、YouTubeの再生ボタンのようなアイコンがあり、これをクリックしてようやくコメントが読み込まれるようになる。これに気づくまで4回ぐらい配信枠を作ってしまった。


↑この状態だとコメントが読み込まれる。

https://x.com/gosrum/status/1936757975718453457

AITuberKitあってこそ1週間でここまでこれたが、ゼロから作っていたら10倍以上はかかっていたと思う。改めてニケちゃんさんに大感謝!!

さて、今後は誰のために何を作りたいか?を改めて検討した上で、AIキャラ作りを続けていきたい。


8日目:小休止

8日目からは数日経ってから書いているのだが、このあたりから出張やらなにやらで本業が忙しくなってきた。

そのため、当日のXの投稿を貼り付けて、思い出した内容があれば追記する。

https://x.com/gosrum/status/1937160698465042514

Tailscale使えば自宅のEVO-X2にアクセスはできるが、13年前に発売したポンコツノートPCではGUIを使った開発は厳しい。

モーションについての記事はとても興味深くて、数日後に自作モーション作成にトライすることになる。


9日目:Mastra + Ollama

この日もほとんど時間がなくて目立った進捗はなし。

Mastra + Ollamaの需要を知り、記事にすることを決意する。

https://x.com/gosrum/status/1937539121263837208

あと数日経ってから気づいたのだが、香夜 さくらさんのAIキャラと私の作ったキャラがかなり似通っていることに気がついた笑

私の方がキャラメイクが後だったようなので、別の衣装も作ることにした。


10日目:ローカルAIエージェントの記事執筆

Mastra+ Ollama+MCPを用いたローカルAIエージェントの記事を執筆しつつ、最後にAITuberKitへの接続を試みる。

https://zenn.dev/robustonian/articles/mastra_ollama_mcp

しかし残念ながら、ollama-ai-providerはTool使用時のStreamingモードに対応しておらず、一方でAITuberKitはStreamingモードにしか対応してないことが判明。。。


11日目:Ollama Tool Streaming対応に挑戦

ローカルAIエージェントの記事を仕上げて公開。

その後、AITuberKitとMastra + OllamaのローカルAIエージェントを接続すべく、Ollama Tool Streaming対応に挑戦した。

とりあえずプルリクエストやフォークを確認したところ、Tool Streamingに対応したforkを発見した。

https://github.com/FabianMHz15/ollama-ai-provider

ただしそのままでは動かなかったので、Claude Codeに修正してもらいAITuberKitに導入することで、接続することができた!

https://x.com/gosrum/status/1938255419467829470

ただ、このままでは自分しか使えないので、npmにデプロイするなりして誰でも簡単に導入できるようにした上で記事にまとめたい。


12日目:AIキャラのアニメーションを変更してみる

AITuberKitのモーションはどこで定義されているのか確認したところ、下記のファイルがアニメーションのファイルになっていることがわかった。

https://github.com/tegnike/aituber-kit/blob/main/public/idle_loop.vrma

そして、vrmaファイルについて調べたところ、BoothでVRMアニメーションセットが無料で公開されていた。ありがたい!

https://booth.pm/ja/items/5512385

早速ダウンロードしてpublicに格納し、下記の/idle_loop.vrmaのファイル名を編集することでモーションを変更することができた。

https://github.com/tegnike/aituber-kit/blob/9ed2c2412c7072e1f4a3e404a707d92e24842d81/src/features/vrmViewer/viewer.ts#L60

さらに、blenderでVRMやvrmaファイルを読み込んで再生できることを知った。

https://note.com/sachi2222/n/nab71c50c7651

blenderに下記のアドオンを導入することでVRMをインポートできるようになる。

https://extensions.blender.org/add-ons/vrm/

https://x.com/gosrum/status/1938629032809287849


13日目:webカメラで撮ったモーションをAIキャラに反映する

blenderでVRMを導入する手順のスクリーンショットを備忘録的に書き留めておく。

ここまでできれば、vrmファイルをドラッグ・アンド・ドロップするだけでモデルをロードできる。ただし、それなりに重いので注意。

次にvrmaアニメーションをロードする方法を示す。これはかなりわかりにくかった。

まず、画面右上の<ボタンを押すか、nキーを押す。

VRMタブをクリックし、VRM 0.0になっていたらVRM1.0にするとSpring Boneがクリックできるようになる。そうすると、下にEnable Animationという表示が出るのでクリックしてチェックを入れる。

最後に、更にその右側のArmatureを選択した上でvrmaファイルをドラッグアンドドロップするとアニメーションが読み込まれる。この状態で下の再生ボタンをクリックすればアニメーションが再生される。

ただし、EVO-X2(Ubuntu)はGPUがまだ対応していないためか、10fps弱とかなり再生が遅かった。
まあともあれ、これでblender上でアニメーションの再生ができるようになった。

最後に、blender MCPを導入してClaude Desktopからオリジナルのアニメーションが作れないかなと期待したものの、案の定うまくいかず断念。

ただし、こちらの記事ではBlender MCPで表情のコントロールができているようなので、うまい指示ができればモーション作成もいけるかもしれない。いや、これはコントロールしているだけで、作成まではしていないか🤔

https://note.com/kongo_jun/n/nc52833bfb588


webカメラからモーション生成

色々とやり方ありそうだが、XR Animatorを使ってbvhというモーションファイルを作成し、bvh2vrmaというツールを用いることで.vrmaを作成することができた。

XR Animatorは少しクセがあるツールだと感じたが、色々と触っていたら使い方がわかると思う。

bvh2vrmaはシンプルで非常にわかりやすいため、使い方に迷うことはないだろう。

https://booth.pm/ja/items/4513654

https://github.com/vrm-c/bvh2vrma

https://x.com/gosrum/status/1938993801386959221


14日目:AITuberKitの機能拡張

自分が作りたいAIキャラのイメージができてきた。

そのために、AITuberKitのOllamaで画像を読み取る機能が欲しかったがどうも対応していなかったため、Claude Codeに依頼して追加してもらった。

ついでに、チャット欄に画像をペーストできる機能も追加した。こちらはAIキャラに欲しい機能というよりは利便性向上が目的。

https://x.com/gosrum/status/1939338239330169048

後回しになっているけど、forkしたリポジトリを公開予定。


15日目:一旦クローズ

AITuber会まであと3日だが、今週は忙しくほとんど進捗が見込めない。

そして今、記事を書きながらこの二週間強の軌跡を整理していた。

https://x.com/gosrum/status/1939705483553837317

どのようなAIキャラが作りたいかについては、ここでは書かずにできればAITuber会に参加して語りたい。

とりあえずこれでAITuber会の参加資格は得られたはずだが、補欠には変わりないので参加できない可能性がわりと高いという認識。

とはいえ、ここまで色々なことに挑戦できたのはぬこぬこさんがAITuber会を企画いただいたこと、そしてニケちゃんさんがAITuberKitというめちゃくちゃ使いやすいツールを公開してくれていたことが大きい。
→圧倒的感謝!ありがとうございます!!!

まだ自分が作りたいAIキャラはほとんどできていないが、今後も折りを見て開発を続けていきたい。


まとめ

現在に戻って後日談で締めることにする。

実はこの日記を書いてAITuber会に参加したあとはAITuber開発があまりできていない。その理由はSora2を始めとする動画生成AIの著しい性能向上が大きいだろう。

というのも、2Dまたは3Dモデルを用いたAIキャラクターは表現力が限られており、自由度の高さで動画生成が勝るからだ。ただし、動画生成の場合はコスト面やリアルタイム性で課題が残っている。

また、動画生成の台頭だけでなくAITuber開発を本格的に続けられていない理由は他にもあるのだが、本記事は内容が盛りだくさんになってしまったので別の機会に述べることにする。

Shizuku AIをきっかけとして、またAIキャラクター界隈が盛り上がることを期待している。また、本記事がAI VTuber開発をこれから始めようとするきっかけになれば幸いである。

Discussion