--- title: "これまでを振り返るとカオスだった— アマチュア独学 + AI 駆動で抱える黒猫ゲーム部の現在地" description: "ここまで何を作ってきたかを並べてみたら、配信 / Discord / 読み上げ / 日本語処理 / SNS / AI / Minecraft / 創作 / ツール実験 の 9 カテゴリありました。アマチュア独学 + AI 駆動で 1 人で抱えている範囲を、公開してよい範囲でいちど棚卸ししてみます。" url: https://ryuuneko.com/blog/kuroneko-inventory-9-categories published: 2026-05-16 23:03:00.794602 updated: 2026-06-16 09:16:44.021718 --- ここまで何を作ってきたかを並べてみたら、 「自分は配信者なのかプログラマなのかわからん」 という結論になりました。 いちど自分のために、 棚卸しします。 最初に立場を明らかにしておくと、 私は **アマチュア (独学で数年) のプログラマ** で、 職業エンジニアではありません。 普段はぜんぜん別の仕事をしていて、 コードを書くのは完全に趣味。 アマチュア無線家やアマチュアスポーツ選手と同じ温度感です。 それでも、 ここ 1 年くらいで Claude Opus 4.7 を相棒にした **AI 駆動開発** が機能するようになってから、 明らかに 1 人で持てる範囲が広がりました。 並べてみたら **9 カテゴリ**。 自分でもちょっと笑いました。 :::callout{type="info" title="この記事の要約"} - 黒猫ゲーム部の裏で動いているもの (制作物 + 運用 + 構想) を **9 カテゴリ** で棚卸し - 配信 / Discord / 読み上げ / 日本語処理 / SNS / AI / Minecraft / 創作 / ツール実験 まで - どれも 「アマチュア 1 人 + AI 駆動」 で抱えている - Floatia と ja-furigana 0.1.0 stable はそれぞれ別記事で詳しく書いた範囲なのでリンクだけ - 一番大きな学びは、 **作りたいものを 1 人で抱えるための前提条件として AI 駆動が成立した** ということ ::: いくつか先に断っておくと: - **書けないこと** (運用上 / セキュリティ上 詳細を伏せた方が良いもの) はかなり多いです。 ここに並んでいるのは公開してよい範囲のサマリだと思ってください - **「アイデアだけで、 まだ手をつけていない / 試作止まり」 のものもそこそこ混じっています**。 全部を 「すでに動いている」 として読まないでください。 文中で 「構想」 と書いてあるものは特にそうで、 それ以外でも温めているだけの段階のものは普通にあります - 構想を構想として並べているのは、 「考えていることをいちど整理する」 のがこの棚卸しの目的の半分だからです ## 1. 黒猫ゲーム部 / 配信・コミュニティ系 すべての出発点。 「黒猫ゲーム部」 という YouTube チャンネル + Discord サーバを運営しています。 - **YouTube チャンネル「黒猫ゲーム部」の運営** — 動画 / ライブ / コミュ投稿 / 演出 - **スプラ 3 参加型配信** — リスナー参加型をベースに、 配信スタイルの素地を作った時期 - **Discord コミュニティ運営** — チャンネルとの両輪 - **部員制度** — Discord 内に階層を持つ。 ロール / バッジ / 部員番号で世界観を組む - **「本入部 = チャンネル登録」 文化** — Discord に来てくれた人が YouTube 登録で 「正式部員」 になる流れ。 ここの線引きを世界観として持っているのが他コミュニティとの違い - **YouTube コミュ投稿 / 配信演出** — サムネ / ロゴ / OGP / OBS 周りまで自前 - **配信向け読み上げ環境構築 / 配信用 Bot 群の開発・運用** — これが後述の 2〜7 すべての発端 「コードを書くきっかけ」 が全部このコミュニティ側にあって、 「リスナーさんと話すためのツールが欲しい」 → 書く → 動いた → 公開してみる、 という流れで全カテゴリが増えていきました。 **コミュニティが要求仕様の源泉** になっています。 ## 2. Discord・読み上げ・TTS 関連 「黒猫ゲーム部」 配下の Discord で動いている読み上げ Bot は、 元 「ずんだー」 (Node.js + TypeScript) で、 現在は **Rust 製の世代交代版 (zunda-rs)** に移行済み (2026-05-19 に本番 cut-over 完了、 旧 JS 版は rollback 用に停止残置)。 姉妹キャラ 「あんこー」 もいます。 主要機能を並べると: :::feature-grid{} VOICEVOX 対応読み上げ | 文章 → 読み変換 → VOICEVOX 合成までの一連。 ローカル GPU で動かす構成 話者切替・速度・ピッチ | ユーザーごとに保持。 部屋ごと / コマンドごとの上書きも持つ 入退室通知 | 「○○ さんが入りました」 系を、 静かにも賑やかにも振れるよう調整可能 NG ワード / 正規表現フィルタ | 読み上げ前に弾く層 + ログに残す層を分けてある (詳細は伏せる) 荒らし対策 / Guard 機能 | 連投・大量メンション・ID 系の挙動から判定 (機構詳細は意図的に伏せます) 誕生日通知 | 部員ごとの誕生日を覚えていて、 当日に祝う 配信通知システム | YouTube 配信開始を検知 → Discord に告知 カスタムルーレット | 「今日のゲーム」 系、 配信中のリスナー参加にも使う 読み上げ辞書システム | 部員ごと / 全体に追加できる読み辞書 ::: 中身の系統で書き直すと、 やっていることは **コメント取得 → 正規化 → ルビ生成 → TTS** の 1 本のパイプラインで、 ここに各機能 (NG / Guard / 辞書 / 話者切替) が層として乗っかっている、 という構造です。 ルビ生成の部分が後述の **ja-furigana** に外出しされていて、 その手前の 「コメント取得 / 正規化」 が後述の **配信支援・コメント関連** に外出しされている。 結果として、 Discord Bot は 「集めて → 整えて → 読ませる」 のオーケストラを束ねる役、 という形になっています。 zunda-rs の Rust 移行は、 - Node 側の dependency が増えすぎて upgrade コストが嵩んでいた - Rust 化すると VOICEVOX / ふりがな API / 諸々への呼び出しが in-process で完結できる - 単一バイナリ + 低メモリは自宅サーバの予算と相性が良い の 3 つが動機。 「JS 側と並走させて結果が一致したら cut」 という保守的な路線で進め、 2026-05-19 に Rust 版へ本番 cut-over 済みです。 ## 3. 日本語処理 / ルビ振り / OSS 上の 「ルビ生成」 をエンジンとして切り出したのが、 OSS の **[`ja-furigana`](https://github.com/RyuuNeko1107/ja-furigana)** と **[`ja-furigana-dict`](https://github.com/RyuuNeko1107/ja-furigana-dict)** です。 **2026-05-12 に `0.1.0` stable cut 済み**。 詳しい設計の話は [ふりがなAPIの core を OSS にしました — ja-furigana 0.1.0 stable リリース](/?slug=api-core-oss-ja-furigana-010-stable) に書きました。 設計の柱だけ抜粋: - **Rust 製、 単一バイナリ + lib + CLI + HTTP server 同梱** - **辞書は別 repo で分離** — TOML 形式、 PR ベースでコミュニティ追加できる - **文脈考慮型読み推定** — 単純な形態素解析だけでは決まらない読みを、 候補生成 → Viterbi 風パス選択で扱う - **長単語優先 + band lexicographic 比較** — 辞書 hit を優先しつつ、 単漢字 fallback まで連続的に - **条件付きルール辞書** — `[[kanji]]` block で 「次に X が来るならこの読み」 が書ける 「読みの問題」 は OSS lib だけで全部解けないので、 周辺に **誤読解析基盤 / 読み候補生成・評価ロジック / TTS 向け読み最適化 / 配信コメントを利用した検証環境** を作って育ててきました。 ライブの実コメントを corpus にして 「これ誤読してるよね」 を見つける装置です (人間の発話には固有名詞や流行語が大量に出るので、 これがないと辞書はすぐ陳腐化する)。 外向きの **ふりがな API** ([別記事](/?slug=furigana-api)) は、 内製版 → Rust + Lindera 内製版 → OSS lib への置き換え、 と 3 世代経て今は 3 世代目への移行作業中。 HTTP インターフェースは OSS 側と互換に作ってあるので、 self-host したい人が同じ API として差し替えられます。 今は runtime 側に **OSS lib から辞書を安全に pull する経路** (改ざん検証つき) と運用ログ整備を入れているところです。 ## 4. Web サービス・SNS 系 ryuuneko.com の中で動いている公開 Web サービスたち。 ### Floatia (旧 Drift) — 匿名 SNS > 「280 字の手紙を瓶に詰めて海に流す、 一期一会の匿名 SNS」 [Floatia](https://floatia.ryuuneko.com/) は 2026-05-03 に **β 1.0 公開** 済み。 ボトルメッセージ型 SNS で、 リプライツリーもフォローもいいねも通知もない。 **「誰に届くかわからない」 を仕様レベルで強制する** のがコア体験です。 技術的詳細と開発スケジュールは別記事 2 本にまとまっています: - [アマチュアが AI 駆動 + フルスタック 1 人で Floatia ロードマップを完走させた話](/?slug=floatia-roadmap-completed) - [Floatia β 1.0 公開 — ロードマップ完走から 7 日、 運営インフラ全部入りで開けた話](/?slug=floatia-beta-1-0-launched) git 開始から β 公開まで **12 日 / 228 commits / 約 62,000 行**。 世界観 / OGP / セキュリティ設計までを 1 人 + AI で書き切った、 自分にとって一番大きい単体プロジェクトです。 ### 部員証システム (member_card) [member_card](/member_card/) は YouTube メンバーシップ向けに作ったメンバー証システム。 「活動履歴記録 / 部員番号 / バッジ / 成長システム / Web カード化」 を一通り入れてあります。 Phase 1 でメンバー証 / 申請 / 一覧 / ランク計算、 Phase 2 で YouTube OAuth と state 分岐 / card reveal / theme unlock、 までを実装済み。 「メンバーシップの方が自分のメンバー証を見て楽しめる装置」 として作ったので、 ランクがじわじわ上がっていくのと、 バッジが自動付与されていくのが本人にしか見えない楽しさになるよう設計しています。 ### ギャラリーページ ファンアートや配信ハイライト用のギャラリー。 投稿された画像を OBS overlay として配信に流せる動線もここから生やしています。 ### ステータスページ [BOT Status](https://ryuuneko.com/status/) — 各サービス / Bot の動作状態 / メンテ予定を見える化するダッシュボード。 裏側は自前で書いた Rust 製の health proxy が支えていて、 上流が落ちたらメンテ画面 (503) をきれいに返す / 予定時刻でメンテ自動投入 / サービスごとの個別メンテ、 まで持っています (具体的な仕組みやエンドポイント構成は防御の都合上ここでは伏せます)。 ## 5. AI 駆動開発・インフラ ここまで全部が成立する前提条件のレイヤ。 ### AI 駆動開発フロー ここ 1 年でいちばん投資したのがこれ。 単に AI を呼んでコードを書かせる、 ではなく、 **layer ごとに `CLAUDE.md` (規約ドキュメント)** を育てて、 そこに 「やってはいけないこと」 「採用技術と理由」 「過去の罠の一般原則」 を書き溜めてから AI に渡す、 という運用に倒しています。 これが durable に効く投資だ、 という話を [Floatia の記事](/?slug=floatia-roadmap-completed) で詳しく書きました。 - **Claude / GPT / Gemini を用途で使い分け** — それぞれ強み弱みが違うので、 設計の壁打ちはこっち、 大規模リファクタはこっち、 のような形で組み合わせる - **AI エージェント実験** — 自律的にタスクを分解 → 実行させる類のセットアップ。 まだ実験段階 - **5 段ワークフロー (プラン → red テスト → 実装 → green テスト → レビュー)** を durable に固定。 AI 駆動の最大の罠 「動くコードがすぐ出てくる」 を、 手数の遅さで意図的に絞る ### ローカル AI 環境 - **Ollama 活用 / RAG 付きローカル AI 構築** — ローカルで動く LLM + retrieval、 個人 KB と組み合わせる - **キャラクター AI 研究** — 配信演出 / Discord 上で 「キャラとしてふるまう AI」 の研究 ### インフラ - **Docker ベースの個人サービス運用** — ryuuneko.com 配下のサービスは全部 Docker compose で立てている - **Cloudflare 活用** — 表向きのドメイン全体を一旦 Cloudflare に通している - **リバースプロキシ + 自前 health proxy** — エッジ層は外向き受けと health 判定を兼ねている - **自宅サーバ運用** — 本体は自宅で動かしていて、 外向きの段とは VPN で繋ぐ構成 物理 / network の階層詳細は伏せますが、 「外から自宅本体を直接見えなくする」 + 「途中にメンテゲートを 1 段挟む」 の 2 つを満たす最小構成、 という設計です。 ## 6. Minecraft 関連 実は趣味のかなり大きな割合がここに。 自分のサーバや遊び場のために作ってきたツール群を並べると、 これだけあります。 ### 建築・進捗管理 - **配置チェックツール** — 大規模建築で 「ブロックがちゃんと指示通りに配置されたか」 を判定 - **CSV アップロード式進捗管理** — 設計を CSV で持って、 進捗を Web に流し込む - **リアルタイム共有システム** — 進捗を複数人でリアルタイムに共有 - **資材一覧生成** — 設計から必要資材を逆算 - **座標変換機能** — 設計座標系 → ゲーム内座標系の変換、 オフセット計算 ### 生活サーバー (構想) - **Minecraft 生活サーバー構想** — 「採取・納品」 をゲーム経済の中心に据えた遊び場の設計 - **採取・納品中心経済システム** — プレイヤーの行動で経済が回る仕組み - **採取スポット偽装表示** — 探索体験を保つための仕掛け (詳細は伏せる) - **カスタムツールシステム** — オリジナルアイテム / 専用ツール ### 釣り - **釣り図鑑プラグイン** — 釣り上げた魚を図鑑として記録 - **レア魚収集システム** — 集める動機を作る仕組み - **釣りミニゲーム** — タイミング系のサブゲーム ### 自動化 / その他 - **Mineflayer 自動 Bot** — 伐採 / 植林 / 納品 / インベントリ管理を回す Bot 群 - **Minecraft フェイクサーバー** — 表向きはサーバに見える、 何かを返すやつ (詳細は伏せる) - **ニュース表示サーバー** — ゲーム内に外部からの情報を流す装置 「どうしてこんなに増えたのか」 を後から考えると、 結局 Minecraft が **「気軽に世界観を作って実験できる箱庭」** として機能していて、 SNS / Bot / インフラ の各レイヤで考えていることを Minecraft の中でも独立に試している、 という構図になっていたみたいです。 ## 7. 配信支援・コメント関連 第 2 セクション (Discord 読み上げ) の手前にある **「コメントを集めて整える」** 層。 ここを薄く別レイヤに切ってあるのが、 後から振り返ると効きました。 - **YouTube ライブコメント取得ツール** — 配信コメントを拾う - **API なしコメントビューア** — API quota を消費しない経路でも見られるビューア - **WebSocket 配信システム** — 取ったコメントを WebSocket で各クライアントに配る - **コメント重複排除システム** — 経路が複数あるので重複が出る。 中で正規化 + 重複排除 - **Discord Webhook 連携** — Discord 側に流す - **ローカル TTS 連携** — Discord 読み上げと別系統で、 OBS / ローカル TTS にも流せる - **コメント解析環境** — corpus 化、 誤読発見 (= ja-furigana の検証材料)、 単語頻度集計 「コメントを 1 か所で受けて、 各下流に流す」 という形が固まったのが、 多分このコミュニティ全体の中で一番効いた構造改革で、 ここから Discord 読み上げ / ふりがな辞書改善 / コーパス解析 / 配信演出 がすべて派生しています。 わんコメ向けの OBS プラグイン ([rubi 別記事](/?slug=furigana-plugin)) と、 わんコメ TTS の 「顔文字 → 半角スペース」 置換辞書管理画面 (顔文字辞書) も、 この層の周辺ツール群。 入力検証 / セッション / CSRF / 出力エスケープなど基礎防御は一通り入れてあります。 ## 8. 創作・文章・世界観 最近自分が大事にしているレイヤ。 配信もコードも 「言葉と世界観」 が芯にあって、 だから創作も自然と並行で書いています。 ### 世界観構築 / コピー制作 - **世界観構築** — 部員制度 / Floatia の海 / Minecraft 生活サーバー / 創作世界 を全部別物に作ってあるが、 「淡い空気感」 「沈黙の上品さ」 を共通基調にしている - **Web 投稿運用** — 自前 CMS (本記事と同じ) を投稿基盤として使う - **OGP 制作 / キャッチコピー制作** — SNS シェア時の見え方 / サムネ / 文言を、 1 つずつ手で詰める 「言葉を組む」 ことと 「コードを組む」 ことが、 自分の中では同じ作業の表裏になっていて、 AI 駆動が両側で同時に効いているのがおもしろい時期です。 ## 9. ツール・実験系 ちゃんと役に立ったり、 役には立たなかったが面白かったりした、 単発のツール / 実験群。 :::feature-grid{} 利息管理システム | 上記の subset、 利率パターンを試算するのに使う ダイヤモンドアート台紙生成 | 画像 → ダイヤモンドアート台紙への変換。 ピクセル化 / 配色変換 / 番号付け Discord 録音 Bot | Discord 通話の録音 (用途は内部、 同意ベース運用) 読み上げ補助ツール | 配信中に挙動を補助する小物群 ::: どれも 「実運用で困ったから作った」 系で、 半分くらいは公開していません。 ここに並べているのは概念だけで、 中身は使う場面の都合で伏せています。 ## 全体を通した特徴 並べ終わって自分なりに気づいた共通性質を、 最後にまとめます。 ### 「実運用で困った」 から生まれている 配信中にコメントが読み上げで詰まる → 読み上げエンジン書く / 辞書を作る → OSS にする。 部員と何か話したい → Discord Bot 書く → 機能が増える。 Minecraft で建築進捗が見えない → 進捗管理ツール書く。 **「便利」 を抽象的に設計したものは、 一個もない**。 全部、 自分が困ってから書いている。 ### 「自分用」 から始まり、 公開サービス化する流れが多い 最初は自分用 / 部員用に作ったものが、 「これ他の人にも有用そう」 と気付いたタイミングで公開に向けて整える、 という流れが繰り返されています (例: 内製ふりがな API → OSS 化、 内製読み上げ → わんコメプラグイン、 私的ギャラリー → 公開ギャラリー)。 **最初から OSS / SaaS を意識しない** ので、 「自分にとって本当に必要な機能」 だけで作り始められるのが効いている気がします。 ### 「便利」 だけでなく 「面白さ」 を優先する設計思想 Floatia の通知なし / 続きを追えない設計、 Minecraft の採取スポット偽装、 「くだらない疑問を真剣に考察する学者」 シリーズの語り口、 部員証の本人にしか見えない楽しさ — どれも 「便利」 軸では消える設計です。 でも、 ここを残すことが体験の核になっている、 と思っています。 **「機能としては正しいが面白くない」 を 1 個ずつ意図的に裏返す** のが、 自分のものづくりの一番の癖。 ### 配信 / コミュニティ / 創作 / 開発が全部つながっている 並べてみたら、 すべての層が他の層に対して **「源泉」 か 「出口」 か 「素材」** のどれかになっていることに気づきました。 - 配信 → 開発の **源泉** (= コードを書く動機) - 開発 → 配信の **出口** (= ツールが配信を支える) - 創作 → 全部の **素材** (= 世界観コピー / 雰囲気を供給) - AI 駆動 → 全部の **前提** (= これがないと 1 人で抱えられない) つまり、 これは 9 個の独立した趣味じゃなくて、 1 個の生態系の 9 つの面なんだ、 と棚卸ししてから気づきました。 ### アマチュアだから抜けた抽象がある 最後にこれ。 仕事のプロダクトだったら絶対に通らない判断 (ORM を使わない / 出てすぐの最新 framework を採用 / セルフホスト / health proxy を自前で書く / Editor.js を捨てて markdown に統一 / 内製エンジンを OSS lib に置き換える / Node bot を Rust に書き換える / AI に exec 権限を渡す sandbox を検討する) が並んでいて、 どれも 「1 人 + AI で抱える前提なら抜ける」 抽象でした。 アマチュアの一番大きな自由は、 **保守性や引き継ぎやすさを捨てる権利を持っていること**。 棚卸ししてみて改めてそう思いました。 ## これから 棚卸ししたつもりが、 「これから書きたい未来」 の話を書きたくなったので、 一行ずつだけ。 - **配信・コミュニティ** — 部員制度のもう一段の楽しみ方を作る (詳細は温め中) - **Discord / 読み上げ** — zunda-rs を本体機能まで移行、 あんこー側も同じ路線に - **日本語処理 / OSS** — Plan X (0.1.0 文脈依存ルビ振り → 0.2.0 intonation の 2 段) に従って進める - **Web / SNS** — Floatia β を維持しつつ世界観の上物 (古い瓶の経年表現 / 深海復活) を追加 - **AI 駆動 / インフラ** — 権限制御付き Docker AI 構想を 「実験用 sandbox 1 つ動かす」 段階まで持っていく - **Minecraft** — 生活サーバー構想を試作スコープに落として、 釣りプラグインから先に動かす - **配信支援** — コメント解析環境を corpus として外向け公開できる形にする (匿名化処理込み) - **創作** — 「くだらない疑問」 シリーズの継続 + 連作短編をもう少し溜める - **ツール実験** — 顔トラッキング系は配信演出の試作まで進めたい 書き出してみて、 多分これがアマチュア + AI 駆動でやっていることの本質で、 **作りたいものは尽きないし、 AI と一緒なら 1 人でも届く範囲が毎月広がる**。 そのめちゃくちゃ恵まれた状況に居ながら、 自分が何を作りたいかを忘れない、 というのが残された一番大きな仕事だと思っています。 ここまで読んでくださってありがとうございました。 個別の層について 「もう少し詳しく」 「ここどうやってるの」 みたいなのがあれば、 単発記事として書くので、 X や Discord で気軽に投げてください。 --- **関連リンク**: - [ホームページをリニューアルしました (2026-02)](/?slug=site-renewal-2026) - [ふりがなAPI — 日本語テキストを自然な読み仮名に変換 (2026-02)](/?slug=furigana-api) - [【わんコメ】読み上げ補助プラグイン (2026-02)](/?slug=furigana-plugin) - [ふりがなAPIの精度を生成AIと一緒に追い込んだ話 (2026-03)](/?slug=furigana-ai-accuracy) - [Floatia ロードマップ完走 (2026-05-03)](/?slug=floatia-roadmap-completed) - [Floatia β 1.0 公開 (2026-05-03)](/?slug=floatia-beta-1-0-launched) - [ja-furigana 0.1.0 stable リリース (2026-05-15)](/?slug=api-core-oss-ja-furigana-010-stable) --- *※本記事は2026年6月時点の情報をもとにしています。サービス・コマンド・仕様は予告なく変わることがあります。*