REQUIREMENTS DOCUMENT

「ぎふっと」要件定義書

📑 目次を開く

改訂履歴

版日付内容
v0.1初版ゆづき氏によるたたき台(システム概要・画面構成・ホーム機能ドラフト)
v1.0本書初版をもとに、対応環境・アカウント・データ設計・非機能要件・Open Issuesを補完し要件定義書として整理

1. 概要

「ぎふっと」は、ユーザーが作成した相棒アバターと一緒に岐阜市内を巡りながら、観光・ゲーム性・健康管理・アバターカスタマイズを楽しめる岐阜市限定の地域観光アプリである。

ユーザーは相棒アバターを自由にカスタマイズし、アバターによる観光案内を受けながら市内を巡る。QRコードの読み取り・歩数・謎解きなどの体験に応じてポイントを獲得し、 ガチャやショップでアバター用アイテムを入手できる。さらに、作成したアバターをARで現実の岐阜市内に重ねて表示し、ユーザーとアバターを一緒に撮影できる。

目的

  • 岐阜市内の周遊率・滞在時間を増やし、観光消費(飲食・土産・体験)につなげる
  • 「歩く動機」をゲーム性と自分だけのアバター育成で作り、健康増進にも寄与する
  • SNS映えするAR撮影機能で自然な拡散(UGC)を生み、認知拡大につなげる

2. スコープ(第1版)

第1版でやること

  • 相棒アバターの作成・カスタマイズ(見た目パーツの選択、着せ替え)
  • ポイント獲得(QR読み取り/歩数/謎解き)とガチャ・ショップでのアイテム交換
  • 簡易的な健康管理(歩数・kcal・スタミナ・目標設定の記録と表示)
  • 道案内(目的地検索・徒歩経路案内・バス案内)
  • アバターのAR表示・記念撮影

第1版でやらないこと(将来検討)

  • 他都市アプリへのアバター「エクスポート」機能(他地域展開時に再検討)
  • ユーザー間のリアルタイムすれ違い通信・合体技演出などのマルチプレイ要素
  • 決済を伴う店舗連携クーポン/実店舗ポイント連携(第2版以降)
  • 多言語対応(第1版は日本語のみ、インバウンド対応は第2版で検討)

3. 前提・ターゲット・対応環境

想定ユーザー

  • メインターゲット:岐阜市を訪れる観光客(ファミリー層・カップル・学生グループ)
  • サブターゲット:岐阜市民(健康管理・市内再発見の日常利用)
  • 年齢層:小学生〜大人まで幅広く利用可能な難易度・UIとする(保護者同伴の小中学生の利用を想定し、課金・外部連携は保護者確認を挟む設計とする)

対応OS・環境

項目内容
提供形態スマートフォン向け Web アプリ(PWA想定)。ブラウザから直接起動しQRからアクセス可能とする
対応OSiOS Safari / Android Chrome の最新2メジャーバージョンを正式サポート
画面サイズスマートフォン縦持ちを基本。タブレットは崩れない程度の対応(最適化は対象外)
位置情報・カメラ道案内・AR機能利用時に位置情報/カメラ権限を要求。拒否時は該当機能のみ利用不可とし他機能は継続利用可

オフライン時の挙動

  • 地図・道案内:直近で取得済みの地図タイル・経路のみ表示。再検索は不可(要オンライン)
  • AR機能・謎解きの一部:カメラ映像へのオブジェクト重畳や判定はオンライン前提。オフライン時は「電波の良い場所で再度お試しください」の案内を表示
  • アバター表示・カスタマイズ・獲得済みポイントの閲覧:ローカルにキャッシュし、オフラインでも閲覧のみ可能とする

4. アカウント・ログイン

  • ゲスト開始を可とする。ダウンロード(アクセス)直後にアバター作成から始められ、ログインは必須にしない(観光客の利用障壁を下げるため)
  • ゲストのデータは端末(ローカルストレージ/Cookie)に保持。任意のタイミングでアカウント連携すると、サーバー側にデータを引き継いで保存できる
  • アカウント連携方法:Google / Apple のソーシャルログインを候補とする(LINEは岐阜市の利用者属性を踏まえ第2版で検討)
  • 機種変更・アプリ再インストール時は、連携済みアカウントでログインすればアバターとポイント履歴を復元可能。ゲストのまま機種変更した場合はデータ引き継ぎ不可である旨を明示する
  • 退会・データ削除の導線をマイページに用意する(個人情報保護法対応)

5. 画面構成

アプリ画面下部に以下4つのメニューを配置する(タブナビゲーション)。

メニュー主な機能
🏠 ホーム相棒アバター表示、アバター設定・着せ替え、ショップ、会話
⭐ ポイント保有ポイント表示、マップ、QRコード読み取り、ガチャ、謎解き
💪 健康管理歩数、消費kcal、スタミナ、目標設定
🧭 道案内目的地検索、経路案内、バス案内、AR機能

6. 機能要件:ホーム

6.1 相棒アバター表示・作成

  • 初回起動時にアバター作成フローへ誘導(顔形・髪型・目・くち・かざり等のパーツ選択)
  • 作成後もいつでもホームから編集可能
  • アバターは名前を設定でき、簡易な性格・口調(例:フレンドリー/クール等)を選択できる

6.2 着せ替え・ショップ

  • ガチャ・ポイント交換で入手したアイテム(衣装・小物)を着せ替えできる
  • ショップではポイント消費でアイテムを購入できる。ラインナップは季節・イベントに応じて入れ替え可能な構成とする

6.3 会話

  • アバールがユーザーに話しかける簡易会話UI(訪問地点・実績に応じたセリフの出し分け)
  • 会話内容は固定パターン+変数差し込み(地名・実績名等)で第1版は実現し、生成AIによる自由対話は将来検討とする

7. 機能要件:ポイント

  • QRコード読み取り:観光スポット・店舗に設置したQRを読み取ることでポイント付与(1スポット1日1回等の重複防止ルールを設ける)
  • 歩数連動:一定歩数ごとにボーナスポイントを付与し、歩く動機付けをする
  • 謎解き:市内の史跡・観光資源に紐づいたクイズ・謎解きに正解するとポイント獲得
  • マップ:QR設置スポット・謎解きスポット・獲得済み/未獲得の状態を地図上にアイコン表示
  • ガチャ:ポイントを消費してアバターアイテムを排出。レアリティ(コモン/レア/スーパーレア)を設ける

8. 機能要件:健康管理

  • 端末のヘルスケア連携またはアプリ内蔵の歩数計測により歩数を記録
  • 歩数から推定消費カロリー(kcal)を算出し表示
  • 「スタミナ」を歩数・休憩に応じて増減するゲーム的パラメータとして表示し、謎解き挑戦等に軽く紐づける演出とする
  • 1日/1回の来訪ごとの目標歩数・目標エリア数を設定でき、達成時にボーナスポイントを付与

10. AR撮影機能

  • 作成した相棒アバターをカメラ映像上にAR表示し、実際の岐阜市内の風景と一緒に撮影できる
  • 撮影した写真はアプリ内に保存し、SNS共有用の画像として書き出しできる(透かし・アプリロゴを軽く配置しUGC拡散を狙う)
  • AR表示の精度は簡易的なもの(平面検出+配置)とし、高精度な空間認識は将来検討とする

11. データ設計(主要エンティティ)

エンティティ主な項目備考
ユーザーuser_id, 表示名, ログイン種別(ゲスト/連携), 作成日時ゲストはローカルID発行、連携時にサーバーIDへ統合
アバターavatar_id, user_id, 見た目パーツ一式(JSON), 名前, 性格タイプパーツ種別ごとにマスタテーブルを分離管理
所持アイテムitem_id, user_id, 入手経路(ガチャ/ショップ/実績), 入手日時着せ替え画面で装着状態を管理
ポイント履歴point_log_id, user_id, 増減数, 種別(QR/歩数/謎解き/消費), 日時不正防止のため1スポット/日の重複取得を判定
スポットマスタspot_id, 名称, 種別(QR/謎解き/観光/飲食), 緯度経度, QRコード値運営が管理画面から追加・季節入替できる想定
謎解き進捗quiz_id, user_id, spot_id, 正解フラグ, 挑戦回数
健康記録user_id, 日付, 歩数, 消費kcal, スタミナ値端末ヘルスケアAPIまたは内蔵計測の結果を日次で保存
AR撮影ログphoto_id, user_id, 撮影地点, 保存日時画像実体はストレージに保存しDBはメタ情報のみ保持

12. 非機能要件

区分要件
性能主要画面(ホーム・マップ)は3秒以内に表示。QR読み取りからポイント反映までは1秒程度を目標
可用性観光繁忙期(週末・イベント時)のアクセス増に耐えられる構成とする
セキュリティ位置情報・カメラ等のセンシティブ権限は利用目的を明示のうえ取得。個人情報は必要最小限に留める
互換性電波の弱い屋外利用を前提に、通信失敗時のリトライ・分かりやすいエラー表示を必須とする
アクセシビリティ文字サイズ・コントラストに配慮し、小中学生〜高齢の観光客まで直感的に使えるUIとする

13. 通知・エンゲージメント

  • 近くにQR・謎解きスポットがある場合の位置連動プッシュ通知(許可制)
  • 目標歩数達成・実績解除時の通知
  • 季節イベント・期間限定ガチャ開始の告知通知

14. 運用・保守

  • スポットマスタ・ショップ・ガチャのラインナップは管理画面(第1版は簡易な社内ツールでも可)から更新できるようにする
  • 季節・イベント(鵜飼シーズン、信長まつり等)に合わせたコンテンツ入替を運用フローとして定義する
  • 問い合わせ窓口(アプリ内フォーム等)を用意し、不具合・位置情報のズレ等の報告を受け付ける

15. KPI(成功指標)

  • アプリ経由の周遊スポット数(1人あたり平均訪問QR/謎解きスポット数)
  • 平均滞在時間・平均歩数の向上
  • AR撮影機能の利用率・SNS共有率(UGC発生数)
  • リピート起動率(同一観光中の再起動、および再訪問時の起動)

16. リスク・制約事項

  • 屋外の電波状況によりQR読み取り・AR・地図検索が不安定になる可能性がある(オフライン挙動の設計でカバー)
  • AR撮影・位置情報の利用は電池消費が大きいため、利用シーン(観光中の短時間利用)を前提に許容する
  • 小中学生の利用を想定するため、課金要素(ガチャ)は現金課金なしのポイント消費のみとし、保護者の懸念に配慮する
  • バス案内は外部の公共交通データに依存するため、データ提供元の仕様変更・停止リスクがある

17. 決定が必要な項目(Open Issues)

creator氏からの指摘を踏まえ、次のブラッシュアップ(第2版)までに決定すべき論点を一覧化する。

論点現時点の仮置き状態
対応OSの最低バージョンiOS/Androidとも最新2メジャーバージョン要確認
ゲスト開始の可否可(ゲスト開始をデフォルトにする)仮決定
SNS連携の種類(Google/Apple/LINE)Google/Appleを先行対応、LINEは第2版で検討要確認
多言語対応の要否第1版は日本語のみ要確認
バス案内データの取得元未定(公共交通オープンデータの想定)未決定
他都市アプリへのアバター輸出機能第1版スコープ外仮決定

18. 用語集

用語説明
相棒アバターユーザーが作成・カスタマイズする、アプリ内での分身キャラクター
スポットQRコード・謎解き・観光情報が紐づく、地図上の地点
ガチャポイントを消費してランダムにアバターアイテムを入手する仕組み
スタミナ健康管理機能で歩数・休憩に応じて増減するゲーム的パラメータ