コンテンツにスキップ

Target Users

FloatSoda は、次の3タイプの作り手を想定して設計されています。自分がどれに近いかで、ドキュメントの読み方とスタート地点が変わります。

1. AI と一緒に「自分用のツール」を作りたい VRChatter

Section titled “1. AI と一緒に「自分用のツール」を作りたい VRChatter”

VR で遊んでいて「こういうのがあれば便利なのに」と思ったことがあれば、あなたは対象読者です。コードが書けなくても構いません。 FloatSoda は、Claude や ChatGPT などの AI にコードを書いてもらう「バイブコーディング」で完結できることを設計目標にしています。

  • UI がシーンファイルやプレハブを持たず すべて C# コード なので、AI がそのまま生成・修正できます
  • このドキュメント群(docs/)自体が、AI に読ませて正しいコードを書かせるための一次情報です

作れるものの例(FloatSoda は現在 Phase 1(入力基盤)と Phase 2(表示系ウィジェット)が並行して進行中です。各 Phase の詳細は GitHub のマイルストーン を参照):

作りたいもの 使う機能 作れるようになる Phase
時刻・FPS・配信コメントを流す表示専用 HUD テキスト表示 + テーマ + フェードアニメーション 現時点で可能
FaceEmo の表情セットを OSC で切り替えるパネル ボタングリッド + OSC 送信 現時点で可能(ダッシュボードオーバーレイに限る。ボタンは GestureDetector で自作する)
VRChat の写真フォルダを VR 内で眺めるアルバム 画像グリッド + スクロール Phase 3(スクロール。画像ウィジェットは Phase 2)
お気に入りフレンドがログインしたら出るトースト通知 通知オーバーレイ + バックグラウンド監視 Phase 4(通知・テキスト入力)

→ まずは GettingStarted のサンプルを動かし、あとは AI に「これを改造して◯◯を作って」と頼んでください。

2. Booth でオーバーレイ作品を売りたいクリエイター

Section titled “2. Booth でオーバーレイ作品を売りたいクリエイター”

Unity でワールドやギミックを作れるなら、FloatSoda のオーバーレイ開発に必要な力は十分あります。新しく覚えるのは「宣言的 UI」という考え方だけです。

  • シーンも プレハブも .meta もありません。 Hierarchy に相当するものは、コード上の Widget ツリーです
  • uGUI の「オブジェクトを置いて、スクリプトから text.text = ... で書き換える」方式と違い、FloatSoda では「状態を変えると、UI がそれに合わせて再構築される」方式(SetState)を取ります
  • UI が全部コードなので、ドキュメントのコード片をコピペすればそのまま動きます。商品のサポートや説明にもコードを貼れます
  • exe としてのビルド・配布は通常の .NET アプリと同じ手順です

GettingStartedWidgetSystem の順に読んでください。

3. uGUI を使いたくないエンジニア

Section titled “3. uGUI を使いたくないエンジニア”

シーンとプレハブの YAML、GUID 参照、読めない diff、レビューできない UI 変更にうんざりしているなら、FloatSoda の存在理由はまさにそれです。

  • UI が 100% C# コードです。diff が読め、PR レビューができ、grep が効き、生成 AI も扱えます
  • Flutter の三ツリーモデル(Widget / Element / RenderObject)を .NET 上に実装しています。StatelessWidget / StatefulWidget / InheritedWidget による状態管理がそのまま使えます
  • Unity ランタイムに依存しません。素の .NET + SkiaSharp + OpenVR で完結します

ArchitectureAPIDesign を読むと設計思想が掴めます。

この想定が設計に与えている影響

Section titled “この想定が設計に与えている影響”
  • 「コードに書けない状態」を作らない: UI・テーマ・レイアウトはすべて C# コードで表現でき、外部のアセットファイルや GUI エディタを要求しません。これは 1(AI が生成できる)と 3(diff・レビューが効く)の両方の前提です
  • API は誤用しにくさを優先: object-initializer 中心・required プロパティ・イミュータブルな設計(APIDesign)は、人間の初学者と AI の両方がコンパイルエラーの段階で間違いに気づけるようにするためです