Project LLMeta のフロントエンドアプリケーションです。3D 空間のレンダリング、ユーザーインタラクション、およびバックエンドサービスへの接続を担当します。
- フレームワーク: Next.js
- 言語: TypeScript
- 3D レンダリング:
- XR: @react-three/xr
- マルチプレイヤー: Colyseus.js
- UI:
-
依存関係をインストールします。
yarn install
-
開発サーバーを起動します。
yarn dev
アプリケーションは http://localhost:3000 で利用可能になります。
-
.env.local.exampleを参考にプロジェクト直下で.env.localを作成し、必要な値を設定してください。cp .env.local.example .env.local
-
設定する変数
NEXT_PUBLIC_SUPABASE_URL: Supabase API の URL (CLI のローカル環境ではhttp://127.0.0.1:54321)
NEXT_PUBLIC_SUPABASE_ANON_KEY: Supabase の匿名キー (supabase start実行時に表示される anon key をsupabase/.envと併せて管理)NEXT_PUBLIC_COLYSEUS_ENDPOINT: Colyseus サーバーのエンドポイント (デフォルト:ws://localhost:2567)
src/app: アプリケーションの主要なページコンポーネント。experience/: 体験ページlobby/: ロビーページvrm/: VRMアバタープレビューページ
src/components: 再利用可能な React コンポーネント。experience/: 体験関連のコンポーネントmain/: メインページ関連のコンポーネントplayer/: プレイヤー関連のコンポーネントscene/: 3Dシーン関連のコンポーネントui/: UI コンポーネント(Shadcn/ui)vrm/: VRMアバター関連のコンポーネント
src/hooks: カスタム React フック(camelCase命名規則)。- Colyseusとの接続ライフサイクル、リアルタイムプレゼンス、XRサポートなど
src/types: 共有型定義。player.ts: プレイヤー関連の型user.ts: ユーザー関連の型
src/stores: Zustandストア。src/utils: ユーティリティ関数。src/lib: ライブラリ設定(Supabaseなど)。public: 3D モデルやフォントなどの静的アセット。