ポートフォリオ → Heart Apartment

AIゲーム · Godot 4Heart Apartment

Heart Apartment 心動公寓

Windows向けの、ほのぼのとした生活シミュレーションです。ルームメイト2人の暮らしをただ見守ることも、2人が迷った瞬間に手を差し伸べることもできます。選択のあとも続いていく、小さな「人生の映画」です。

ゲーム本編のタイトル曲を使った15秒のショーケース。2026-09-22に現在のビルドから録画。

課題

キャラクターが自ら行動し、経験を覚え、プレイヤーの選択にも意味があること。そのために、AIの提案もゲームの現在の状態とルールに従う必要があります。

私の貢献

コンセプトと美術の方向性を決め、楽曲を選び、各ビルドのプレイテストから受け入れルールを定めました。AIの協力者が、その方針に沿ってコード、美術、ストーリーの統合を実装しました。

概要

見守り、介入し、その結果があとで効いてくる

01

見守る

2人に任せておけば、それぞれの一日を過ごします。家、仕事、買い物、公園、映画館。

知微の思考の吹き出し:雨晴がどこか別の場所へ行こうと提案し、選択肢は「公園に行く」「映画を見る」「家にいる」。
02

介入する

どちらかをクリックすると、行き先や行動を提案したり命令したりできます。提案は断られることもあります。命令には従いますが、彼女はそのことを覚えています。彼女が迷ったときは、思考の吹き出しから選べます。

ストーリー場面 · 今夜の料理当番

本人の記憶「今夜は私が作るから、待っててね、お皿洗いは忘れないでって言った。」

ルームメイトの記憶「今夜はルームメイトが作るって。お皿洗いを忘れないでって言われた。」

03

2人は覚えている

ストーリー場面ごとに、本人の記憶に1行、ルームメイトの記憶には別の1行が書き込まれます。のちの場面は、その記憶を確かめてから始まります。

10か所の舞台
2 + 9主人公 + サブキャラクター
299件のストーリー場面(手作業で執筆)
76曲の音楽

現在のビルド、2026-09-15時点。

私が担当したこと

  • プロダクトオーナー兼ディレクター:コンセプト、主人公2人、アートディレクションのすべての判断
  • 台湾の街並みのバージョンではなく、すっきりした日本風の町を選択
  • サウンドトラックを制作し、すべての曲を耳で選んだ。すべてのビルドをテストプレイし、チームが守るルールを決めた
  • サブキャラクターのイラストとサウンドトラックは、私のAIメディア制作フローから生まれたもの
  • チームはAI:Codexが主人公を描き、コードを共同で執筆。Claudeがコード、ストーリー、シーンを統合。GPTが受け入れレビューを担当。ローカルモデルがサブキャラクターのイラストを生成し、チャットを動かす

主な判断

モデルが提案し、ルールが決める

言語モデルはキャラクターを生き生きと話させられますが、世界を変えることまでは任せられません。すべての行動は、実行される前にゲームがチェックします。例を見る →

「自分で見た」と「聞かされた」

ルームメイトから聞いた話は、その場にいた記憶とは区別して保存されます。仕組み →

速さのために、小さいモデルを

想定するPCでは、4Bの応答は9Bより約6倍速くなりました(9BはGPUメモリに収まりきりませんでした)。また、8つのテストシナリオでは、9Bに明確な品質の優位は見られませんでした。数値 →

ゲームプレイ

2人と、2人が暮らす町

陸知微:黒髪のポニーテール、丸眼鏡、緑のセーター、ベージュのプリーツスカート。
主人公

陸知微 Lu Zhiwei

控えめで、思慮深い性格です。読書と片づいた部屋が好きで、何かに賛成する前に、まず話を最後まで聞きたいと考えます。

内なる葛藤:本当に必要なことを口にしたい。でも、短い「いいえ」が冷たく聞こえないか気にしてしまう。

林雨晴:クリーム色のリボンをつけた茶色のショートヘア、青いカーディガン、ピンクのプリーツスカート。
主人公

林雨晴 Lin Yuqing

明るく、率直な性格です。音楽と、自分の好きな小さなものを人に分けるのが好きで、儀礼的な相づちではなく、本当の反応を返してほしいと思っています。

内なる葛藤:すぐに距離を縮めたい。でも、自分の熱意が相手の負担になるのは避けたい。

10か所の舞台、ひとつの町

土曜の朝の家。2人ともソファにいる。
家、土曜の朝
温かみのある照明の、夜の家。
夜の家
売り場ごとに表示のある通路と、レジに立つ店員がいるスーパー。
スーパー:かごに入れて、会計して。未会計の商品を持ったままでは店を出られない
公園と池。
公園
近所の通りを見渡した様子。
近所の通り
3つの建物が並ぶショッピングプラザ。
ショッピングプラザ
チケットカウンターと売店のある、映画館のロビーとホール。
映画館

ほかにデパート、生活雑貨店、オフィス2か所があります。スクリーンショットは2026-09-22に、現在のビルドから1920×1080で撮影。

ゲームとAIの設計

キャラクターはどう考えるか

01

モデルが提案し、ルールが決める

実際に却下された例:モデルは、アルバムをかけてお茶をいれることを提案しました。ゲームはこれを拒否しました――「キャラクターの状態が変わったため、この古い提案は無効です。」

02

見たか、聞いたか

ストーリー場面ごとに、その場にいた本人には1行、話を聞いただけのルームメイトには別の1行の記憶が書き込まれます。のちの場面は、どちらの記憶かを確かめます。

03

広さより深さ

キャラクターごとに5つのテスト:理由があるか、矛盾を抱えているか、時間をまたいで続くか、違いがあるか(ルームメイトとの違い、疲れたときの自分との違い)、そしてプレイヤーに見えるか。

モデルの選定

  • 同じ8つのシナリオで探索的に確認したところ、9Bも4Bと同じ種類のミスをし、明確な品質の優位は見られなかった。そのため、ゲームには4Bを採用
  • 応答には「AI応答」と表示。モデルの応答が6秒を超えるか、インストールされていない場合は、手作業で書いたセリフを「テキスト代替」と表示して使う
  • 遅れて届いた応答が、その場面が過ぎたあとに表示されることはない。ランチャーは、自分で起動したサーバーだけを停止する

テストプレイから生まれたルール:顔を隠すものは置かない

  • 見たこと:録画したビルドで、字幕やパネルがキャラクターの顔に重なっていた(2026-09-15)
  • 変えたこと:字幕、思考の吹き出し、パネル、HUDカードのすべてに適用する絶対のルールに。サブキャラクターも対象
  • 確認方法:録画の中で、何かが顔に重なったフレームをすべて検出する。2026-09-22の録画ではゼロ件
アートと音楽の出典
項目制作方法ライセンス
シーンと建物コードで構築:3Dブロック、独自シェーダー、コードで描いた映画館のスクリーンプロジェクト所有
主人公オリジナルデザインをもとに、Codexで画像生成商用利用可
サブキャラクター9人、表情8種ローカルのComfyUI(animagine-xl-4.0 + IPAdapter)CreativeML Open RAIL++-M、IPAdapterはApache-2.0
音楽、76曲Stable Audio 3 Mediumで私が制作――制作パイプラインStability AI Community License
効果音コードでリアルタイムに合成プロジェクト所有
タイトルのフォントjf open 粉圓 (Huninn) 2.0SIL OFL 1.1
現状

できていること、証明できたこと、次にやること

できていること

  • 10か所の舞台。出勤日と休日、給料。実際に会計できるスーパーのレジ。買い物と映画のチケット
  • 主人公2人、サブキャラクター9人、表情8種
  • 299件のストーリー場面と、キャラクターごとの記憶
  • オプションのローカルAIチャット(テキスト代替つき)
  • 76曲のサウンドトラック、天気

検証済み

  • レジ:実際の入力による47.5秒の通しテストに合格(2026-09-16)
  • 録画したすべてのシーンで、顔への重なりはゼロ(2026-09-22)
  • 実際の4BモデルでAIチャットをテスト(2026-09-14)

次のステップ

  • 現在の299件の場面の先へ続くストーリー展開
  • 新しい8方向のキャラクターリグ
  • 一般公開
新しいタブで開きます