terada_life

PickNic 製品要件定義書 (PRD)

1. プロダクトビジョン

「その場にいる全員が、カメラマンになる。」

プロのカメラマンには撮れない「親友だけに見せる笑顔」や「テーブルごとの盛り上がり」を、リアルタイムに会場のスクリーンへ集約。
デジタル使い捨てカメラの不完全な美しさと、自分の写真が空へ飛んでいくワクワク感を融合させた、次世代型ゲスト参加型演出を提供する。


2. ユーザーストーリーマップ

エピック1:ゲストの参加体験(摩擦ゼロの導線)

ゲストがアプリDLなどの障壁なく、即座に「Pick(撮影)」を開始できる体験。

IDユーザーストーリー技術的要件・備考
US.1ゲストとして、テーブルのQRを読み込んだら、アプリDLなしで数秒以内にカメラ画面を表示したい。Appless Access。Next.jsによるPWA/ブラウザベース実装
US.2ゲストとして、自分の名前(ニックネーム)を入力するだけで参加を完了したい。匿名認証(Anonymous Auth)。パスワード・SNS連携不要
US.3ゲストとして、ブラウザからカメラ使用許可を求められた際、迷わず許可できる説明を表示したい。getUserMedia API / HTTPS必須

エピック2:撮影体験「Pick」(エモい加工と送信)

IDユーザーストーリー技術的要件・備考
US.4シャッター後、「写ルンです」のようなザラついたプレビューを見たいCanvas APIによるリアルタイムフィルタ
US.5写真右下にオレンジ色で日付が刻印されるのを楽しみたいCanvas ctx.fillText() / カラー #FF6600
US.6写真を上にスワイプしてスクリーンへ送信したいFramer Motionによる物理演算アニメーション
US.7150人同時投稿でも無料枠に収めたいクライアントで500KB以下に圧縮

エピック3:投影体験「Nic」(会場の一体感)

IDユーザーストーリー技術的要件・備考
US.8投稿後、数秒以内にスクリーンに表示されて驚きたいSupabase Realtime(遅延2秒以内)
US.9写真に「From: ○○さん」が表示されて会話が生まれるメタデータ表示
US.10写真がタイル状に美しく並ぶ画面を見たいMasonry Grid + AnimatePresence
US.11会場比率に合わせて黒枠なしで表示したいCSSアスペクト比 / Fullscreen API
US.12投稿がない時も過去写真をランダム再生したいオートスライドショー

エピック4:安定運用とアーカイブ

IDユーザーストーリー技術的要件・備考
US.13150人同時接続でも安定稼働したいRealtime接続の最適化
US.14新郎新婦・ゲスト問わず、参加者全員として挙式後に全写真を一括DLしたいZIPエクスポート / ルーム参加者判定でアクセス制御

3. 技術スタック & ゼロコスト設計(150名規模対応)

コンポーネント技術無料枠活用ロジック
HostingVercelHobbyプラン無料 / Next.js App Router
DatabaseSupabase (PostgreSQL)同時接続200まで
StorageSupabase Storage1GB無料(約2000枚保存)
Real-timeSupabase Realtime月間200万メッセージ
Image処理Canvas APIクライアント処理でサーバーコスト0

4. 追加仕様:写ルンです風加工(US.4・US.5)

保存・処理方針

  • 加工済み画像のみを扱う: オリジナル画像はサーバー・端末ともに保存しない。投影・保存・ダウンロードの対象はすべて加工済み画像のみとし、世界観を完全に統一する。
  • 処理順序: 端末内で「加工 → 圧縮 → 送信」の順で完結させる。サーバー側での再加工は行わない(コスト0、遅延最小)。

Canvas処理手順

  • カラー補正(色温度シフト+トーン調整)

    • コントラストをやや下げ、彩度を少し落とす(退色感)
    • シャドウを緑・青寄り、ハイライトを暖色・イエロー寄りにシフト
    • ハイライトを少し飛ばして"フィルムの焼け"を再現
  • 周辺光量落ち(ビネット)

    • 放射状グラデーションで画面四隅をほんのり暗く落とし、中央に視線を集める
  • 粒子感(フィルムグレイン)

    • ランダムノイズを生成しオーバーレイ描画
  • ライトリーク(光漏れ)

    • 一定確率でオレンジ/マゼンタの光漏れをランダム位置に screen 合成
    • 毎回違う表情になる"一期一会感"を演出
  • 日付刻印

    • Font: Courier New or Orbitron
    • Color: #FF6600
    • Format: 26 4 15
    • 主催者側で ON/OFF 切替可

プリセット切替(主催者機能)

  • 主催者はイベントごとに1〜3種類のフィルムルックを選択(例: スタンダード/モノクロ/90年代風)
  • ゲスト側では切替不可。会場全体の世界観を統一する。

5. 運用チェックリスト(現場での守り)

ネットワーク

  • 会場WiFiが不安定な場合:
    • 5Gルーターを用意
    • プロジェクター用PCに有線接続

電源

  • 投影PCは常時電源接続
  • スリープ無効化

HDMI

  • 端子形状(Type-A/C)事前確認
  • 変換アダプタは予備含め持参