テーマシステム・スキル
テーマ層(themes/yadon/)はヤドン・エージェントのビジュアル・テキスト表現を一元管理するシステム。このスキルはテーマのカスタマイズやスプライト・メッセージの編集時に参照する。
概要
themes/yadon/__init__.py は全エージェント(ヤドキング・ヤドラン・ヤドン)のビジュアル・テキスト表現を一元管理する ThemeConfig frozen dataclass である。
コンセプト:
- •素朴であたたかい世界観 — ポケモンの原点(ゲーム初代の素朴さ、昭和レトロ)に立ち返った温もり
- •ひらがな中心の柔らかい言葉 — 敬語・硬い表現を避け、ひらがなで親しみやすさを強調
- •「...」削減 — 間延びした印象を避けるため、吹き出しテンプレートから「...」ラッパーを削減。例:
...やるやぁん...「{summary}」→ ワーカーメッセージが直接「やるやぁん」として表現 - •個性の6層構成 — ヤドン1〜4 + マネージャー(ヤドラン) + ランダムメッセージで多様な表現
ヤドン1〜4の個性設定
特性表
| ヤドン | 特徴 | 語尾 | task メッセージ例 | スプライト色 |
|---|---|---|---|---|
| ヤドン1 | 素直で元気 | 「やぁん」 | task: 「やるやぁん」<br/>success: 「できたやぁん」<br/>error: 「ごめんなさい」<br/>random: 「まかせて」「ぴょこぴょこ」 | 黄色(通常)/ ピンク(Shiny) |
| ヤドン2 | ねむてて怠い | 「ふぁぁ」 | task: 「ふぁぁ やるね」<br/>success: 「やったー」<br/>error: 「ねむい」<br/>random: 「zzz」「ふぁあぁ」 | 黄色(通常)/ ピンク(Shiny) |
| ヤドン3 | 食いしん坊 | なし(素) | task: 「おなかすいたけど やる」<br/>success: 「ごはん たべよう」<br/>error: 「おなか いたい」<br/>random: 「ぷくぷく」「もぐもぐ」 | 黄色(通常)/ ゴールド(Galarian) |
| ヤドン4 | 明るく優しい | 「えへへ」 | task: 「えへへ やろう」<br/>success: 「えへへ できた」<br/>error: 「がんばろう」<br/>random: 「たのしいね」「ぴょこぴょこ」 | 黄色(通常)/ オレンジ(Galarian Shiny) |
worker_messages の構造
各ヤドン1〜4は以下の4つのカテゴリ別にメッセージを持つ:
python
worker_messages = {
"yadon-1": {
"task": ["やるやぁん", "まかせて", "やりますぅ"],
"success": ["できたやぁん", "おわった", "せいこう"],
"error": ["ごめんなさい", "うーん", "またやってみる"],
"random": ["ぴょこぴょこ", "えへへ", "のんびりいきましょう"]
},
"yadon-2": {
"task": ["ふぁぁ やるね", "ねむいけど", "まかせて"],
"success": ["やったー", "おわった", "ふぁぁ"],
"error": ["ねむい", "ごめんなさい", "うーん"],
"random": ["zzz", "ふぁあぁ", "ねむたい"]
},
# ... yadon-3, yadon-4 同様
}
カテゴリ別の用途
- •task: タスク受信時(「このタスク、やるぞ」という宣言)
- •success: タスク成功時(「できました」という報告)
- •error: タスク失敗時(「うまくいきませんでした」という謝罪・励まし)
- •random: アイドル時のランダムメッセージ(ペットの個性表現)
マネージャー(ヤドラン)のメッセージセット
ヤドラン用メッセージは以下の4つのカテゴリに分類される:
python
manager_messages = {
# タスク受信・配分時のメッセージ
"task": ["タスク きた", "みんな おねがい", "やることが あるよ"],
# フェーズ移行・進行時のメッセージ(各フェーズ実行前に表示)
"phase": [
"{label}{worker_name}{count}体に依頼",
"みんな がんばって",
"つぎは {label}"
],
# 全フェーズ成功時のメッセージ
"success": [
"みんな がんばった",
"しっぽが うれしそう",
"さいこう"
],
# 失敗時のメッセージ(エラーハンドリング)
"error": [
"ちょっと うまく いかなかった",
"もういっかい やってみよう",
"だいじょうぶ"
]
}
吹き出しテンプレートの「...」削減
実装前(旧形式)
python
worker_task_bubble="...やるやぁん...「{summary}」"
worker_success_bubble="...できたやぁん...「{summary}」"
manager_phase_bubble="{label}{worker_name}{count}体に依頼..."
実装後(新形式)
python
worker_task_bubble="やるやぁん「{summary}」"
worker_success_bubble="できたやぁん「{summary}」"
manager_phase_bubble="{label}{worker_name}{count}体に依頼"
「...」削減の理由
- •直接性 — 「...」による間延びを削減し、メッセージが即座に伝わる。ペットの意思がより明確に表現される
- •素朴さ強調 — 装飾的な前置きを避けることで、素朴で温もりのある印象を確保。ポケモンの初代ゲームの素朴さに回帰
- •テンション維持 — 長く使うUIでも疲れさせない軽快さを実現。「...」の段階的な表現は古い感覚
- •スクリーンスペース効率 — 吹き出し幅を固定(40文字)しているため、「...」を削減することで有効テキスト領域を確保
- •会話らしさ — 子分たちが元気にやる気をもって働く様子がより直感的に伝わる
作業中の吹き出し(ヤドン)
ヤドンは作業中、思考を常に吹き出しで口に出す。独り言のように。
吹き出し例
- •ファイルを読むとき: 「よんでる」「なんだろ」「あ」「ふむ」
- •コードを書くとき: 「かいてる」「ここかな」「こうかな」「えーと」
- •考え中: 「んー...」「なんだっけ」「えーと」「あ」
- •発見したとき: 「あ」「みつけた やぁん」「これか」「そっか」
- •迷ったとき: 「えーと」「どっちだろ」「わからん」「うーん」
- •進捗: 「もうすこし」「あとちょっと やぁん」「まだある」「えーと」
- •確認中: 「みてる」「えーと」「あれ」「ふむふむ」
- •テスト実行時: 「テストやぁん」「どうかな」「まってる」「あ」
- •成功: 「できた やぁん」「おわった」「やった」「えへへ」
- •失敗: 「あれ」「だめだった」「もっかい」「あ うまくいかない」
ポイント
- •作業の開始・終了だけでなく、途中の思考も吹き出しで出す
- •短くてぼんやりした独り言(1-4文字程度)を頻繁に
- •反応が遅い感じを表現(「んー...」など)
- •「やぁん」は時々だけ、アクセントとして使用
- •ヤドンらしいのんびりした口調
- •各ヤドンの個性(やぁん/ふぁぁ/おなかすいた/えへへ)を混ぜる
メッセージ管理の全体構成
| メッセージセット | 所有者 | 構造 | 用途 |
|---|---|---|---|
worker_messages[name] | ヤドン1〜N | {task, success, error, random} | ワーカーの個別キャラクター表現。各ヤドンの語尾・性格が表現される |
welcome_messages | ヤドン全体(共通) | リスト | 起動時のウェルカムメッセージ。全ヤドンで使い回す |
manager_messages | ヤドラン | {task, phase, success, error} | マネージャーの役割メッセージ。フェーズ進行・配分・結果報告に使用 |
manager_welcome_messages | ヤドラン(起動時) | リスト | ヤドラン起動時の個別ウェルカムメッセージ |
実装パターン
テーマのカスタマイズ
テーマを編集する場合は、themes/yadon/__init__.py の build_theme() 関数内で ThemeConfig インスタンスを修正:
python
def build_theme() -> ThemeConfig:
# ワーカーメッセージを拡張・修正
worker_messages = {
"yadon-1": {
"task": [...], # カスタムメッセージ
"success": [...],
"error": [...],
"random": [...]
},
# ... 他のヤドン
}
# マネージャーメッセージを拡張・修正
manager_messages = {
"task": [...],
"phase": [...],
"success": [...],
"error": [...]
}
return ThemeConfig(
name="yadon",
role_names={...},
worker_messages=worker_messages,
manager_messages=manager_messages,
# ... その他設定
)
スプライト色のカスタマイズ
ワーカーとマネージャーのカラースキームを定義:
python
worker_color_schemes = {
"yadon-1": {
"normal": {"primary": "#FFDD00", "accent": "#FF69B4"},
"shiny": {"primary": "#FFAAAA", "accent": "#FF1493"},
},
# ... 他のヤドンと色バリアント
}
manager_color_schemes = {
"normal": {"primary": "#8866DD", "accent": "#8856AA"},
"shiny": {"primary": "#DD77DD", "accent": "#DD44DD"},
}
テスト検証
テーマ修正後は tests/domain/test_theme.py でテストを実行:
bash
python -m pytest tests/domain/test_theme.py -v
主要なテスト項目:
- •
test_worker_messages— 4ヤドンのワーカーメッセージ辞書が存在 - •
test_manager_messages— マネージャーメッセージセットが存在 - •
test_worker_variants— 各ヤドンの変形(normal/shiny/galarian等)が正しく割り当てられる - •
test_color_schemes— カラースキームが全て定義されている
関連ファイル
- •定義:
src/yadon_agents/themes/yadon/__init__.py - •スプライト:
src/yadon_agents/themes/yadon/sprites.py - •ドメイン型:
src/yadon_agents/domain/theme.py - •テスト:
tests/domain/test_theme.py - •設定参照:
src/yadon_agents/config/ui.py、src/yadon_agents/config/agent.py