Skip to content

TargetUsers

github-actions[bot] edited this page Jul 13, 2026 · 4 revisions

Home

Target Users

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


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

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

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

作れるものの例(FloatSoda は現在 v0.1.0 を開発中で、以下はロードマップ上の予定です。各バージョンの詳細は GitHub のマイルストーン を参照):

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

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

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

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

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

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

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 を読むと設計思想が掴めます。


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

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

Home

Clone this wiki locally