⚔️

タスク完了で物語が進む!Gemini APIで作る異世界ファンタジーToDoアプリ 〜タスクをこなして、世界を救え〜

に公開

はじめに

「タスク管理アプリを使っても続かない...」
「記録をつけても達成感がない...」

そんな悩みを解決するため、生成AIでタスクを異世界ファンタジーに変換する「ToDo Chronicle」を開発しました。このアプリは、ユーザーの完了タスクから自律的に物語と振り返りを生成するAIエージェントです。完了したタスクに応じて異世界ファンタジー物語を自動生成し、行動傾向の分析を行います。

主な機能と特徴

タスク完了による物語生成

ユーザーが完了したタスクをもとに、生成AIが"異世界ファンタジー物語"を自動生成します。タスクをこなすたびに物語が進み、ユーザー自身が冒険者となって世界を救うストーリーが展開されます。

  • タスク完了で物語が進行(ストーリー生成AIによる自動化)
  • ゲーム的な演出(経験値・レベルアップ・成長要素)
  • 洞察の自動生成(自己肯定感・継続性の向上)
  • 行動傾向の分析(行動の振り返り・内省を支援)

ストーリーの生成例

たとえば、「商談資料」や「定例ミーティング」などのタスクをこなすと、こんな物語が紡がれます。

  • タスク「商談資料」→ 「契約の巻物」

俺、レックスは、冒険者だ。
ギルドからの依頼は「契約の巻物」の回収。
これがなかなか骨のあるシロモノでね。苦労の末、なんとかゲット!

…いよいよ、冒険も大詰めってことか。ワクワクしてきたぜ!

ストーリーの演出

物語の没入感を高めるため、シーズンの最終章では生成AIによるイラストが表示されます。

イラスト付きストーリーカード

機能の一覧

1. タスク管理

  • タスクを一覧表示
  • "頁をめくる"ボタンで新しい章を生成

タスク管理

2. ストーリー一覧

  • 生成された物語を一覧表示
  • 物語に反映したタスクをツールチップで表示

ストーリー一覧

3. 履歴機能

  • これまでに生成した物語をシーズンで一覧表示

履歴機能

4. 行動分析機能

  • シーズン最終章でユーザーの行動を分析
  • 完了したタスクの内容をもとに、行動傾向を分析し、振り返り・内省を支援
  • 未完了タスクの内容をもとに、次の行動を提案

行動分析機能

使用フロー

タスクを完了すると「頁をめくる」ボタンで物語が進行します。最終章では、AIによる行動分析が行われ、これまでの行動傾向をもとに洞察文が生成されます。

使用フロー

解決したい課題と、ソリューション

対象ユーザー

本アプリは、以下のような方々に特に役立つと考えています。

  • スケジュール管理を"ゲーム感覚"で楽しみたい
  • 目標ややりたいことはあるけれど、タスク管理がうまく続かない
  • 成長を"実感"したい、けれど記録は続かない

課題と解決策

目標達成のためには、小さなタスクの積み重ねが欠かせません。しかし現実には、その積み重ねが「見えにくく」、達成感も薄れがち。やるべきことを淡々とこなす毎日に、モチベーションを保つのは簡単ではありません。

具体的な課題と解決策

1. 日常の小さな雑務に達成感を感じられない

課題

  • タスクを完了しても、一瞬の達成感で終わってしまう
  • 継続する理由や意義を見失いがち

解決策

  • 1日に達成したタスクをもとに、異世界ファンタジーの物語を生成することで非日常感を演出
  • タスク完了を物語の進行として可視化することで達成感を強化

2. 過去の行動の振り返りが面倒

課題

  • 記録をつける習慣が続かない
  • 記録の意味が見出せない

解決策

  • 各ストーリーに登場する"元になったタスク"をツールチップで表示。過去の行動を思い出せる
  • ストーリーが章として積み上がっていくため、振り返りの体験が物語を通して楽しくなる

期待される効果

このアプリを通じて、ユーザーは日々の行動を記録しながら物語を楽しむことで「行動の継続性」を保つことができるようになります。

タスクが物語に反映された場面で、ユーザーがタスク完了の"ご褒美"としての面白さを感じてくれると期待しています。

デモ動画

技術スタックとシステム構成

アーキテクチャ概要

システム構成図

使用技術

項目 技術
認証 Firebase Authentication (Google認証)
フロントエンド Angular + Firebase Hosting
バックエンド FastAPI + Cloud Run
データベース Firestore
ストレージ Cloud Storage
生成AI Vertex AI (Gemini 2.0 Flash)
イラスト生成 Replicate (google-imagen3)

Gemini APIの活用

本アプリケーションでは、6つのプロンプトを連携させることで、物語の生成と行動分析を行います。各プロンプトは特定の役割を持ち、相互に連携することでコンテンツを生成します。

プロンプトの役割分担

  • タスク変換プロンプト: 日常のタスクをファンタジー世界の用語に変換
  • 物語作成プロンプト: 変換されたタスクと前章要約からストーリーを生成
  • 要約プロンプト: ストーリーの要約を生成。前章の要約を渡すことで、ストーリーの連続性を保持
  • 行動分析プロンプト: シーズン最終章でユーザーの行動傾向を分析
  • イラスト生成プロンプト: 物語から印象的なシーンを抽出し画像生成用プロンプトを作成
  • カテゴリ分類プロンプト: 新規タスクを自動的にカテゴリに分類

物語の生成について

物語生成フロー

物語生成フロー図

開発で直面した課題

開発初期は、生成されたストーリーが「展開が進まない」「文体が硬く読みづらい」という課題に直面しました。単に文章の生成を指示するだけでは、情報量が多く、テンポの悪い文章が生成されがちでした。試行錯誤の結果、以下の方針で改善しました。

  1. 文字数制限:160〜200字程度
    SNSのように読むのが苦痛でない文章量
  2. 文体:ライトノベル風
    ストーリーのテンポが格段に向上
  3. 演出:セリフとオノマトペを活用
    読みやすく満足感のあるシーンを演出
  4. 構成:シーズン制とフェーズ管理(起承転結)
    各章に起承転結といったテーマを与えることで、物語に起伏を付与

プロンプト設計の最適化

ひとつのプロンプトに機能をもたせすぎると精度が下がり、逆に分けすぎるとコストが上がる──このトレードオフの中で、実用性と品質のバランスを調整した結果、以下の3つのプロンプト構成を採用しました。

1. タスク変換プロンプト
タスクを、ファンタジー世界の言葉に変換

2. 物語作成プロンプト
前章の要約、ファンタジー用語に変換されたタスクから、ストーリーを生成
タスクの内容をもとに、内省的な"洞察"メッセージを生成

3. 要約プロンプト
ストーリーの要約を生成。前章の要約を渡すことで、ストーリーの連続性を保持
全文を渡すと"続きを生成しよう"とする挙動になり、場面転換が起きづらくなるため、要約を採用

分析・演出機能について

分析・演出機能フロー

分析・演出機能フロー

開発で直面した課題

ストーリーが読みやすさを重視したため、画像生成に必要な背景の描写はほとんどありません。安定した画像の生成には苦労しました。

他の画像生成モデルも試しましたが、シーンの指定が明確でないと画像の精度が低く、文脈からシーンを補完してくれるgoogle-imagen3を選定しました。

  1. 画像生成指示用プロンプト:物語から印象的なシーンを抽出し、Imagen3が画像生成するためのプロンプトを作成
  2. 描写情報の補完:プロンプト内にイラスト生成に必要な情報を例示し、画像生成に不足する描写情報を補完させることで、安定した生成を実現

プロンプト設計

1. 行動分析プロンプト
完了したタスクの内容をもとにユーザーの行動傾向を分析します。世界観を壊さないよう、ファンタジー世界のキャラクターを語り手として設定しました。

  • 分析対象:シーズン中に完了したタスクの内容
  • 分析の特徴
    • 過去に完了したタスク、カテゴリをもとに行動傾向を分析
    • 具体的な行動パターンから抽象的な能力や特性を抽出
    • 期限切れ、期限間近、長期間放置されたタスクをもとに次の行動を提案

2. カテゴリ分類プロンプト
行動分析の精度向上のため、タスクにカテゴリ項目を追加。ユーザーの入力負荷軽減のため、自動分類機能を実装しています。

  • 分類対象:「仕事」「学習」「健康」「趣味」「家事」「その他」
  • 自動分類:新規タスクは生成AIでカテゴライズ

3. 画像生成プロンプト
生成AIによるイラストを表示することで、物語の印象を深めるための演出を実装しました。

画像生成のタイミング
画像生成は結フェーズの最終章としました。この選択には3つの理由があります:

  • 結フェーズは物語のクライマックスであり、最も印象的なシーンが含まれている
  • 最終話の前章で画像を生成することで、ユーザーの待ち時間を短縮
  • シーズン最終章でのみ画像生成を行うことで、コストを抑える

コストについて

ユーザー100名規模の利用を想定した場合、月額約54ドルの運用コストが見込まれます。画像生成を除いた場合は約34ドルとなります。

プロンプト分割による精度向上と、シーズン最終章でのみ画像生成を行う設計により、コスト効率の良い運用を実現しています。

コスト試算の前提条件

本番環境を想定し、以下の条件で試算を行いました。

  • ユーザー数:100人(月間アクティブ率100%)
  • ストーリー生成:20回/ユーザー/月(変換・本文・要約)
  • タスクカテゴリ自動分類:60回/ユーザー/月
  • 行動分析:4回/ユーザー/月(シーズン最終章)
  • イラスト生成:4回/ユーザー/月(シーズン最終章)

※デモでは、進行制限を設けず、テンポよく物語を進められるようにしています。運用では、コスト最適化のため、1日あたりのストーリー進行に制限を設ける予定です。

月間コスト内訳

サービス 概要 月額
Vertex AI ストーリー生成(6,000回/月) $27.00
Vertex AI タスクカテゴリ分類(6,000回/月) $0.60
Vertex AI 行動分析(400回/月) $0.20
Replicate イラスト生成(400回/月) $20.00
Firestore データベース $0.036
Cloud Run API実行(30,000回/月) $6.40
Cloud Storage 画像保存 $0.12
合計 $54.36

今後の展望

1. 内省支援型AIエージェントとしての役割強化

  • ユーザーの行動傾向をもとに、次に取り組むべきタスクや内省の視点を語り手AIが提案するなど、より能動的なエージェント機能を導入

2. ストーリー生成の品質向上

  • キャラクターの関係性トラッキング
    過去に登場した仲間・敵キャラの再登場や関係性の進展を反映

まとめ

今回の開発では、アイデア出しから実装、記事・動画作成まで生成AIを活用しました。特に生成AI搭載エディタ「Cursor」のコード生成機能は開発スピードを大きく向上させました。

初めて扱う技術ばかりでしたが、短期間で実用的なアプリを構築できたのは、生成AIの支援があったからこそです。

ハッカソン参加を通じて、生成AIの進歩を実感し、貴重な経験となりました。

Discussion