環境設定おさらい
ステップ1 完了:作業フォルダの作成と展開
まず、AITuberの「家」となるフォルダを作ります。
1. PC上の適当な場所(デスクトップなど)に新しいフォルダを作成します(例:my-aituber)。
2. Cursorのメニューから File > Open Folder... を選択し、作成したフォルダを開きます。
ステップ2 完了:AIに「開発のルール」を教える (.cursor/rules)
Cursorには、AIにプロジェクト固有のルールを記憶させる機能があります。これにより、AIが勝手に古い書き方をしたり、不適切なコードを書くのを防ぎます。
1. Cursorのファイルエクスプローラーで、プロジェクトルート(一番上の階層)に .cursor というフォルダを作成します。
2. その中に rules というフォルダを作成します。
3. rules フォルダの中に、global_architecture.mdc というファイルを作成し、以下の内容をコピペして保存してください。これはAITuber開発の「憲法」になります。
---
description: プロジェクト全体のアーキテクチャとコーディング規約
globs: *.py
alwaysApply: true
---
# 基本原則
あなたはPythonによるAITuberシステムの専門開発者です。以下の原則を厳守してください。
1. 完全非同期駆動:
- すべてのI/O操作(API通信、ファイル読み書き、待機)は `asyncio` を使用した非同期処理として実装してください。
- `requests` ライブラリの使用は禁止です。代わりに `aiohttp` または `httpx` を使用してください。
- `time.sleep()` は禁止です。必ず `await asyncio.sleep()` を使用してください。
2. 型安全性とドキュメント:
- すべての関数・メソッドにはPythonの型ヒント(Type Hints)を付与してください。
- DocstringはGoogleスタイルで記述し、引数、戻り値、発生しうる例外を明記してください。
3. エラーハンドリング:
- 例外を握りつぶす(passのみ)処理は禁止です。必ず `loguru` を使用してエラーログを出力してください。
- API通信などの不安定な処理には、リトライロジックを実装してください。
4. 構成管理:
- APIキーや設定値はコードにハードコーディングせず、環境変数(.env)または設定クラスから読み込んでください。
ステップ3 完了:AIに「専門知識」を与える (@Docs)
AITuber開発に必要な外部ツールの説明書(ドキュメント)をCursorに読ませます。これにより、AIが最新のAPI仕様に基づいてコードを書けるようになります。
1. Cursorの設定を開きます(Cmd + , または Ctrl + ,)。
2. Features > Docs に移動します。
3. Add new doc をクリックし、以下のURLを登録してください。
◦ VTube Studio API: https://github.com/DenchiSoft/VTubeStudio
◦ OpenAI Python SDK: https://github.com/openai/openai-python
◦ VOICEVOX Engine API: https://voicevox.github.io/voicevox_engine/api/
◦ Pytchat (コメント取得): https://pypi.org/project/pytchat/
※ 名前(Prefix)は「VTubeStudio」「OpenAI」「VoiceVox」「Pytchat」など分かりやすいものを付けてください。
ステップ4:Composerで土台を一括生成する ←ココから!
最後に、Cursorの強力な機能「Composer」を使って、必要なファイル構成を一気に作ります。
1. Cmd + I (Windowsは Ctrl + I)を押して、Composer(小さな入力ウィンドウ)を開きます。
2. 以下のプロンプト(命令文)をコピペして送信(Enter)してください。
現在のディレクトリに、AITuber開発用のPythonプロジェクト構造を作成してください。
モジュラーモノリス構成を採用し、以下のディレクトリと空ファイルを作成してください。
構成:
- config/settings.py (環境変数管理)
- core/orchestration.py (メインループ制御)
- core/logger.py (ログ設定)
- modules/perception/youtube.py (コメント取得)
- modules/cognition/llm_client.py (OpenAI連携)
- modules/cognition/memory.py (記憶管理)
- modules/expression/voicevox.py (音声合成)
- modules/expression/vtube_studio.py (アバター制御)
- main.py (エントリーポイント)
- requirements.txt (依存ライブラリ)
- .env (APIキー用テンプレート)
- .gitignore (Python推奨設定)
requirements.txtには以下を含めてください:
openai, pytchat, aiohttp, python-dotenv, loguru, websockets, pydantic-settings
3. Cursorが作成計画(Plan)を提示するので、「Accept All」(または Save All)をクリックして実行します。
自動でプログラム作成!「Composer」
今回はCursor特有の「Composer」という機能をつかってファイルを一気に作るらしいのですが…
つくる人そもそも”Composer”ってなんぞや?
教えてLM!
Cursor操作特化LMの回答
Composer(コンポーザー)とは、Cursorに搭載された
「プロジェクト全体を編集・生成できるAIエージェント機能」のことです。
従来のAIチャット機能が「相談相手」であるのに対し、Composerは実際に手を動かして複数のファイルを同時に作成・編集してくれる「専属のエンジニア」のような役割を果たします。
今回、AITuber開発のプロジェクト構成を一気に作るためにComposerを使う理由は、まさにこの「複数ファイルの一括生成能力」にあります。
Composerの主な特徴
複数ファイル同時編集・作成
通常のチャットやインライン編集(Cmd + K)は、基本的に「開いているファイル」や「選択した箇所」の修正が得意ですが、Composerは一度の指示で複数のファイルやフォルダを同時に新規作成・編集できます。今回の「ディレクトリ構造と空ファイルを一気に作る」という作業に最適です。
プロジェクト全体の理解
Composerはプロジェクト全体の文脈(Context)を理解し、ファイル間の整合性を保ちながらコードを書くことができます。
「計画(Plan)」と「実行」
指示を受けると、AIがいきなり書き始めるのではなく、まず「どのファイルを作成し、どう編集するか」という**計画(Plan)**を提示します。ユーザーがそれを確認して「Accept(適用)」することで、安全に大規模な変更を行えます。
今回の手順のポイント
ご提示いただいた手順は、Composerの能力を最も活かせる典型的な使い方です。
• Cmd + I:
これでComposer(「Bar Mode」と呼ばれるフローティングウィンドウ)を呼び出します。
• プロンプト入力:
フォルダ構成やファイル名を具体的に指示することで、AIがその設計図通りに実装プランを立てます。
• Accept All:
提示された作成計画に問題なければ、これをクリックするだけで、実際にファイル群があなたのフォルダに生成されます。
この作業により、手動で1つずつフォルダやファイルを作る手間が省け
AITuber開発の土台が一瞬で完成します。



よくわからんが
とにかく一瞬なんだな!
「全部つくって!」とお願いしてみる。
1,Composerを開きます
Cmd + I (Windowsは Ctrl + I)を押して、Composer(小さな入力ウィンドウ)を開きます。
すると”NewChat”というエリアが出てきました。これが”Composer”らしいです。


2,プロンプト(命令文 お願い)を入力。
この中の文章をそのままコピペ!
現在のディレクトリに、AITuber開発用のPythonプロジェクト構造を作成してください。
モジュラーモノリス構成を採用し、以下のディレクトリと空ファイルを作成してください。
構成:
config/settings.py (環境変数管理)
core/orchestration.py (メインループ制御)
core/logger.py (ログ設定)
modules/perception/youtube.py (コメント取得)
modules/cognition/llm_client.py (OpenAI連携)
modules/cognition/memory.py (記憶管理)
modules/expression/voicevox.py (音声合成)
modules/expression/vtube_studio.py (アバター制御)
main.py (エントリーポイント)
requirements.txt (依存ライブラリ)
.env (APIキー用テンプレート)
.gitignore (Python推奨設定)
requirements.txtには以下を含めてください:
openai, pytchat, aiohttp, python-dotenv, loguru, websockets, pydantic-settings
3. Cursorが作成計画(Plan)を提示するので、「Accept All」(または Save All)をクリックして実行します。
”以下のプロンプト(命令文)をコピペして送信(Enter)してください。”現在のディレクトリに、AITuber開発用のPythonプロジェクト構造を作成してください。
モジュラーモノリス構成を採用し、以下のディレクトリと空ファイルを作成してください。
構成:
config/settings.py (環境変数管理)
core/orchestration.py (メインループ制御)
core/logger.py (ログ設定)
modules/perception/youtube.py (コメント取得)
modules/cognition/llm_client.py (OpenAI連携)
modules/cognition/memory.py (記憶管理)
modules/expression/voicevox.py (音声合成)
modules/expression/vtube_studio.py (アバター制御)
main.py (エントリーポイント)
requirements.txt (依存ライブラリ)
.env (APIキー用テンプレート)
.gitignore (Python推奨設定)
requirements.txtには以下を含めてください:
openai, pytchat, aiohttp, python-dotenv, loguru, websockets, pydantic-settings
3. Cursorが作成計画(Plan)を提示するので、「Accept All」(または Save All)をクリックして実行します。
とのことなのでお願いしてみましょう。
自動でファイル作ってくれた!マジだった!
ほんとにできました。50秒でした。
進行状況みてたらちゃんと自分でエラーチェックもやって修正してくれてるんですよね。ほんとにすごい。
いっぱいファイルが出来てる!





見事!
そしてなにやら次やることも提案してくれてる模様


注意事項には生成されなかったファイルがあって。
それらを次のステップで作成せよ。とのこと。



うん。やることは分かった。
やり方がわからん!教えてLM!
AITuber 開発用LMの回答
プロジェクト構造の構築完了、お疲れ様でした。モジュラーモノリス構成で、知覚(Perception)、認知(Cognition)、表現(Expression)がきれいに分離されており、保守性の高い素晴らしい構造です。
それでは、**「フェーズ2:環境構築と依存関係の解決」**を完了させ、次の実装フェーズへ進むための準備を行いましょう。
以下の3つのステップをCursor上で実行してください。
ステップ1:仮想環境の作成とライブラリのインストール
Python開発では、システム環境を汚さないために仮想環境(venv)の使用が推奨されます。Cursorのターミナル(Ctrl + J または Cmd + J)を開き、以下のコマンドを順に実行してください。
# 1. 仮想環境(.venv)の作成
python -m venv .venv
# 2. 仮想環境の有効化
# Windowsの場合:
.venv\Scripts\activate
# Mac/Linuxの場合:
source .venv/bin/activate
# 3. 依存ライブラリのインストール
pip install -r requirements.txt
※ 仮想環境が有効になると、ターミナルの先頭に (.venv) と表示されます。
ステップ2:.envファイルの作成と設定
APIキーや設定値を管理するファイルを作成します。ルートディレクトリに .env という名前のファイルを新規作成し、以下の内容を記述・保存してください。
# --- OpenAI設定 (必須) ---
# AIの頭脳となるAPIキーです
OPENAI_API_KEY=sk-proj-xxxxxxxx...
# コストパフォーマンスの良いモデルを指定(開発中はgpt-4o-mini推奨)
OPENAI_MODEL=gpt-4o-mini
# --- YouTube設定 ---
# テストしたい配信枠のID(URLの v=xxxx の部分)
# まだ枠がない場合は、適当な動画IDでも動作テスト可能です
YOUTUBE_VIDEO_ID=
# --- VOICEVOX設定 (必須) ---
# アプリ起動時のデフォルトポート
VOICEVOX_URL=http://127.0.0.1:50021
# 話者ID(例: 1=ずんだもん, 2=四国めたん, 3=ずんだもん(あまあま)など)
VOICEVOX_SPEAKER_ID=1
# --- VTube Studio設定 ---
# APIサーバーのURL
VTUBE_STUDIO_WS_URL=ws://127.0.0.1:8001
# 認証トークン(初回実行時は空欄でOK。後ほど取得ロジックを実装します)
VTUBE_STUDIO_API_TOKEN=
ステップ3:外部連携ツールの起動確認
実装コードがこれらのツールに接続しに行くため、今のうちに起動設定を確認しておきます。
1. VOICEVOX (またはAivisSpeech)
◦ アプリを起動してください。これだけでローカルサーバー(ポート50021等)が立ち上がります。
2. VTube Studio
◦ アプリを起動し、モデルを表示します。
◦ 設定確認: 歯車アイコン → 左メニューの「プラグイン設定(🔌アイコン)」 → 「API起動 (Start API)」をONにします。ポートが 8001 であることを確認してください。
ここまで完了したら教えてください。
環境が整いましたので、次は**「各モジュールの実装(TODOコメントの消化)」に入ります。
手始めに、最も結果が分かりやすい「VOICEVOX連携(expression/voicevox.py)」**から実装し、Pythonからキャラクターに声を喋らせるテストを行いましょう。



これが終わったら、もう喋るのか!
わし、まだコード一切触っとらんぞ?
作業しながらリアルタイムでブログ書いてるので時間かかってますが、きっとここまでの作業、普通に集中してたら1時間かからないと思います。この後が楽しみ。早速やってみましょう!