NPCスケジュール生成ツール:生きた世界のためのAI日課


2026-09-10


Game Designer Assistantは、職業、場所、天候、暦のルールを、実際にリリースへ活かせるNPCの日課へ変換します。多くの生きた世界が、壊れやすいスプレッドシートや場当たり的な時間枠に依存するなか、このAIは、デザインとエンジニアリングで共有できる占有マップ、営業時間、割り込みルール、祭りのオーバーライドを生成します。2026年9月時点で、プレイヤーは、時計が示す時間に鍛冶屋が金床にいるかどうかで町を評価します。また、平日・週末のバリエーション、雨天時の屋内代替案、クエストでの発見しやすさに関する注記も作成するため、キャラクターはずっと一箇所に立ち続けることなく、見つけられる状態を保てます。

✅ 1つのキャラクターブリーフから平日・週末・季節ごとのカレンダーを構築 ✅ 2人のNPCが同じタイルを主張する前に、ベッド、露店、職場の競合を検出 ✅ 営業時間、贈り物の受付時間、天候バリエーション、祭りのオーバーライドを生成 ✅ クエストで適切な場所・時間に人物を見つけられるよう、占有情報を文書化

NPCスケジュール生成ツールがなぜ重要なのかを理解するには、生きた世界の時間が現在どのように作られているか、そしてプレイヤーが誰かを家まで尾行した最初の瞬間にカレンダーがどこで破綻するかを見る必要があります。

納屋、畑の列、晴れた朝のNPC、日課用の時間・天候UIを備えたピクセルアートの農場

クイック回答:NPCスケジュール生成ツールとは?

NPCスケジュール生成ツールとは、職業、場所、暦のルールを、エンジニアリングへ渡せる日課、占有マップ、割り込み条件へ変換するAIデザインツールです。「この村人は生き生きしている」という構想と、ゲームエンジンで実際に進行できる時計の中間に位置します。

主な機能:

  • 名前付きロケーションに紐づいた日次、週次、季節ごとの時間枠
  • 平日のテンプレートを壊さない天候、祭り、関係性のオーバーライド
  • 午前8時の通勤で村がデッドロックしないための占有・経路注記
  • デザイナーがテストできる営業時間、睡眠時間、クエストでの発見可能性ルール
  • Unreal、Unity、Godot、独自の時間システムへ対応付けられる、エンジン非依存の文書

NPCの日課を設計するのが今も難しい理由

プレイヤーは今や、生きた世界を検証可能な時計として扱います。Stardew風スケジュールメカニクスのガイドが明確に説明しているように、NPCは日次、週次、季節ごとのルーティンに従いながらも、プレイヤーやカレンダーの介入によって変化すべきです。丸一日活動するキャストを持つゲームのリストでは、プレイヤーが無意識に比較する基準として、今なおSkyrimのRadiant AIスケジューリングとKingdom Comeの労働・休息ループが挙げられます。

この基準は、雰囲気の問題ではなく制作上の問題です。オープンワールドシミュレーションの研究では、日常生活を、誰がどの「スマートエリア」をいつ、どの割り込み条件下で占有できるかという制約システムとして扱っています。かわいいウェイポイントの一覧ではありません(大規模オープン仮想世界に関するAAAIの研究)。時計が間違っていれば、没入感が「少しだけ魔法を失う」わけではありません。世界そのものが偽物に見えます。

観察可能なルーティン — NPCの日課はプレイヤーに観察されます。これは、プレイヤーが見ていないときにも環境が一貫したルールに従うという感覚を強めます

硬直したスクリプト — 有限状態機械やビヘイビアツリーを基にした従来のNPCは、毎時間を手作業で設定すると、依然として予測可能で硬直した行動になりがちです

スケールの圧力 — 多様で拡張可能なゲームコンテンツにおいて、プロシージャル生成は今や基盤技術です。スケジュールは、チームがいまだに手作業で塗りつぶしている最後のレイヤーの1つです

しかし、その時計を作成するのは驚くほど難しい作業です。

  • 40人のNPC、7曜日、4季節では、雨、祭り、結婚を加える前から数千の時間枠が必要になる
  • 競合ルールなしに、2人のキャラクターが1つのベッド、露店、金床を共有することはできない
  • 営業時間、贈り物の受付時間、クエストNPCは見つけやすい状態を保たなければ、サポートチケットが急増する
  • スプレッドシートはナビゲーションメッシュ、営業時間、アニメーション長と乖離していく
  • カレンダーを持たない、おしゃべりな生成エージェントは、真夜中でも広場で待機する

スプレッドシートでは占有を表現できない

「8:00 — 市場へ歩く」と書かれた列は、経路が塞がれていた場合、露店がすでに使われていた場合、あるいは祭りによって広場が閉鎖された場合にどうなるかを示しません。するとデザイナーは、雨、日曜日、冬、好感度イベント、犯罪の後といった例外を追加していきます。修正のたびに行が増えます。キャラクターは、代替案を備えた分かりやすい職業ではなく、時間の寄せ集めになってしまいます。

ビヘイビアツリーに必要なのは木だけでなく時計

ビヘイビアツリーは、セレクター、シーケンス、条件を組み合わせられるため、NPCの意思決定をモデル化する標準的な手法になりました。エンジンのチュートリアルでも、ツリーは引き続きAI変数を保存するブラックボードと組み合わせられています。これはランタイムです。週ごとのカレンダーを発明してくれるわけではありません。Unrealには、昼夜のタスクを扱う専用のルーティン駆動NPCフレームワークさえありますが、それが役立つのは誰かがそのタスクを定義した後です。

プレイヤーは何もない時間に気づく

世界がキャラクターを動かしていても、睡眠、労働、営業、食事、交流をスケジュールとして割り当てなければ、コミュニティはそれを指摘します。Starfieldのプレイヤーは、まさに存在しないNPCスケジュールに関する公開スレッドでそうしました。時計のないLLM駆動キャラクターも、違う見た目で同じ間違いをします。会話した後、ただ立ち尽くすのです。

これこそ、Game Designer Assistantが作られた理由です。

NPCスケジュールにGame Designer Assistantを使う理由

Game Designer Assistantは、カレンダーをチャット上の目新しさではなく、デザインシステムとして扱います。集落、職業、時計、厳格な制約を説明すると、GDDやエンジンチケットにそのまま入れられる時間枠テーブル、占有ルール、割り込み条件、実装メモを返します。

従来のアプローチGame Designer Assistant
キャラクターごとにスプレッドシートを作り、劣化するまでコピー共有の職業テンプレートと個人別の修飾子
デザイナーとエンジニア間の翻訳に数週間時間枠、ロケーション、ブラックボードキー、QAケースを一度に作成
平日ロジックを壊す祭りの日翌週には標準週を復元するオーバーライドレイヤー
2人のNPCに同じベッドを割り当てる実装前に占有・容量ルールを明示
営業時間を無視する会話時計に一致する場所・時間制限付きの台詞

この違いが重要なのは、スケジュールがコンテンツであると同時にシミュレーションでもあるからです。生成エージェントは記憶や性格から行動を選べますが、リリース可能な町には依然として時計が必要です。露店がいつ開くのか、鍛冶場にいつ人がいるのか、襲撃時に宿屋の主人がいつ隠れるのか。アシスタントはその時計を作成するため、言語モデルやビヘイビアツリーには実行可能なルールが与えられます。

NPCの労働スケジュール用にゲーム内の日付・時間オーバーレイを表示した、木造工房で金床を使う鍛冶屋のUnityシーン

上の工房の画像は、プレイヤーが実際に検証する成果物です。名前のある労働者、職場、そして見える時計。時間が午前遅くを示すなら、ハンマーは動いているべきです。そうでないなら、スケジュールがその例外を説明しなければなりません。

まず職業、雰囲気はその後

職業、住居、職場、厳格な停止条件(睡眠、食事、閉店時間)を指定してください。生成ツールは、標準週を返した後、週末、季節、天候のバリエーションを作成します。同じブリーフ内で、Unrealの時間帯名、Unityのタイムラインマーカー、単純な24時間整数時計を要求できます。

占有を最優先の制約として扱う

全員が7:00に井戸へ経路探索を始めたり、2人の配偶者が1つの睡眠マーカーを共有したりすると、生きた村は破綻します。出力では、ベッド、椅子、金床、市場の露店、長椅子の容量にフラグを付けます。QAでデッドロックを発見するよりもはるかに安価です。

エンジニアが実装できる文書

出力は雰囲気ではありません。時間枠リスト、ロケーションID、割り込み優先度(sleep < raid < quest force-move)、アニメーション長の前提、プレイテストケース(閉店後の21:10にプレイヤーが鍛冶屋へ話しかける)です。カレンダーを信頼できる唯一の情報源として維持し、バークは後で追加してください。

実行できるブリーフの例:

「辺境の鍛冶屋の7日間スケジュールを設計してください。鍛冶場は8:00~17:00に営業、昼食は宿屋、睡眠は2階、日曜日は休業、雨天時は屋内へ代替。ロケーション名と占有上限を指定してください。」

「町のNPC12人について、平日と祭りのカレンダーを生成してください。同じベッドで眠れるNPCは1人だけです。10:00~16:00の間にメインクエストで見つけられる人物を示してください。」

「ライバル商人3人の春・冬バリエーションを作成してください。営業時間と、閉店後にプレイヤーが訪れた際の各人の反応を含めてください。」

併せて役立つ関連エージェント

場所制限付きの台詞を書いたり、ランタイム会話役へのプロンプトを作ったり、時計UIをモックアップしたりする場合、以下のパートナーがスケジュールパイプラインの残りを補います。

Writing Assistant

台詞のないスケジュールも空虚に感じられ、時計を無視する台詞は壊れて見えます。Writing Assistantは、時間枠から発火するバークやシーンテキストを作成します。露店を開く、閉店作業をする、雨の中で見つかる、就寝後は贈り物を断る、といった場面です。

  • 時間・場所を条件とするバークテーブル
  • 平日の職業を漏らさない祭り・天候用台詞セット
  • NPCが勤務中にのみ存在するクエスト会話

Prompt Generator

ランタイム会話にも、遵守すべき時計が必要です。Prompt Generatorは、時間枠テーブルをモデル対応の指示へ変換します。現在の時刻、現在地、禁止話題、「閉店中です」を含めることで、会話レイヤーが真夜中に鉄を販売できないようにします。

  • 時間、場所、在庫、店舗状態を含むシステムプロンプト
  • 営業時間外や就寝中キャラクター向けのfew-shot拒否応答
  • モデルがカレンダーから逸脱した際の改善ループ

Graphic Designer

スケジュールはグリッドより地図上で確認するほうが簡単です。ビジュアルパスにより、町の掲示板、時計ウィジェット、色分けされた占有図を作成でき、誰かがマーカーを実装する前にGDDへ貼り付けられます。

  • 労働、住居、交流の時間枠をラベル付けしたロケーションマップ
  • デバッグ時計用のカレンダー・HUDモックアップ
  • オーバーライド日に対応する祭りレイアウトのバリエーション

Game Designer Assistantを無料で試しましょう。クレジットカードは不要です。

NPCスケジュールを段階的に生成する方法

ステップ1:時間システムデザイナーのように集落をブリーフする

ゲームデザインパートナーを開き、時計、キャスト人数、職業、住居、職場、厳格な停止条件を指定します。すでに決まっている場合は、エンジン内の時間表現も記載してください。具体性が、「居心地のよい町」を時間枠へ変える鍵です。

「農業の町、24時間制、1日20分の時間スライス。NPCは8人。職業:農家、大工、店主、子ども。22:00~6:00は睡眠必須。Unity。」


ステップ2:バリエーションより先に標準週を要求する

まず月曜日から日曜日までを、名前付きロケーションと占有情報とともに要求してください。営業時間中に、クエストで誰を見つけられるかも必須にします。冬祭りから始めてはいけません。それらはオーバーライドです。

「7日間のテーブルを出力してください:time、location ID、action、occupancy key、findable-for-quest true/false。同時に予約されたベッドまたは露店があればフラグを付けてください。」


ステップ3:天候、季節、祭りをレイヤー化する

週の構造が成立したら、雨天時の屋内代替案、季節による職場変更、テンプレートを削除せず職業を置き換える祭りを要求します。翌日に復元するルールを明示してください。

「雨天時:すべての屋外作業を屋内へ移動。冬:市場は15:00に閉店。春の祭り:全員が10:00~14:00は広場に集まり、その後は標準スケジュールを再開。」


ステップ4:時計から発火できるコンテンツを生成する

時間枠ごとにバーク、アニメーションタグ、プレイヤー記憶フックを要求します。台詞量が多い場合は、ボイスシートをライティング支援へ渡し、カレンダーは信頼できる唯一の情報源として保ちます。会話モデルを使う予定なら、閉店時間が絶対的なルールになる制約付きプロンプトを生成してください。

「OpenShop、CloseShop、Sleep、HideFromRainごとに、バークを4つ、アニメーションタグを1つ、プレイヤーが勤務中に助けた、または強盗した場合のフラグを1つ作成してください。」


ステップ5:実装前にプレイテストケースを追加する

閉店後に話す、ベッドへの経路を塞ぐ、露店で戦闘を始める、祭りの間待ち続ける、といった悪用パターンをアシスタントに列挙させます。これらのケースは、エンジニアリングチケットのQAスクリプトと受け入れ基準になります。

「このスケジュールを中断すべきプレイヤー行動を10個、それぞれの正しい代替時間枠、対象ロケーションが満員の場合の挙動とともに列挙してください。」

NPCスケジュール生成ツールの成果とユースケース

📊 季節労働を持つ農業シムの村

  • シナリオ: インディーのライフシムで、職業、食事、睡眠、雨の日、1地区で行われる収穫祭を持つ町NPC30人が必要。

  • 従来のアプローチ: デザイナーが日ごとのシートを手作業で埋め、プログラマーが時間イベントをコピー。最初のコンテンツパッチ後に春と冬の内容がずれる。

  • Game Designer Assistant: 1つのアーキタイプ(労働者、商人、子ども、長老)にキャラクター別の住居と職業を加えることで、共有の睡眠・食事割り込みと固有の職場を実現。

  • 再利用可能な睡眠、食事、雨天屋内分岐

  • 標準週を復元する祭りのオーバーライド

  • マーカー不足と占有上限に対するQAケース

💼 職人と店主の勤務シフト

  • シナリオ: サバイバルクラフトプロジェクトで、鍛冶屋を時計どおりに動かす必要がある。鍛冶場の営業時間、昼食、夜間休業、嵐の際の屋内作業。

  • 従来のアプローチ: プレイヤーが近くにいる間は単一の「作業」状態が再生され、真夜中でも金床に魔法のように人がいる。

  • スケジュール生成ツール: 開店・閉店、食事、睡眠、天候の代替案を含むシフトテーブルに加え、2人目の鍛冶屋が重ならないよう金床の占有情報を生成。

  • アニメーションとUIに一致する見える時計

  • ライティングパートナーで作成する営業時間外の断り用バーク

  • プログラマーが時間帯サブシステムへ組み込める実装メモ

📱 モバイル向けライブ運用イベントの商人

  • シナリオ: ライブ運用デザイナーが電車でスマートフォンを使っており、プレイヤーが条件となるクエストを完了した場合のみ18:00~21:00に出現する期間限定商人が週末イベントに必要。

  • 従来のアプローチ: オフィスアワーを待ち、時間ゲート1つと数行の台詞のために完全なエンジニアリングチケットを作成。

  • NPCスケジュール生成ツール: Webまたはモバイルで、デザイナーが出現時間、在庫テーブル、拒否用バーク、撤去手順を生成し、商人をきれいに消去できる。

  • コード作成前に明記されるクエストフラグと時間枠ゲート

  • モバイルUIに収まる短いバークセット

  • 時間枠が月曜日に漏れ出さないためのイベント撤去ルール

🎯 贈り物の受付時間を持つ仲間・恋愛キャスト

  • シナリオ: ストーリー主導のシムで、NPCが労働中でも睡眠中でもなく、自由なときにだけ発生する贈り物や好感度イベントが必要。

  • 従来のアプローチ: ライターがさらにスクリプトシーンを追加し、制約のない会話モデルが午前2時の寺院で贈り物を受け取る。

  • Game Designer Assistant: 空き時間・予定ありのカレンダーとプロンプトパックを作成。Prompt Generatorが現在の時間枠に「今は無理」というルールを固定するため、恋愛要素が職業を上書きできない。

  • 空き、労働、睡眠、シーンロックを明確な時間枠タイプとして定義

  • 場所と関係性フラグに紐づく贈り物の受付時間

  • プレイヤーがシフトを中断した際の失敗台詞

NPCスケジュール生成ツール FAQ

ゲーム開発におけるNPCスケジュール生成ツールとは何ですか?

NPCスケジュール生成ツールは、人格や戦闘AIだけを書くのではなく、ノンプレイヤーキャラクターのカレンダー、つまり時間枠、場所、占有、割り込みを作成するデザインツールです。適切に使えば、Unreal、Unity、独自の時計が時間を進める仕組みに合った、週次テーブル、季節バリエーション、プレイテストケースを出力します。Game Designer Assistantはこのシステムレイヤーに焦点を当て、プレイヤーが誰かを丸一日追いかけても町の整合性を維持します。

Game Designer Assistantは無料で使えますか?

はい。このAIゲームデザインパートナーは、主要機能と利用回数の制限を備えた無料プランで、クレジットカードなしに利用できます。地区全体、季節バリエーション、ライブ運用キャストを生成する場合は、有料プランで利用上限が増えます。まず1つの職業テンプレートから始め、睡眠と占有を確定してから、残りのキャストへ拡張してください。

AI NPCスケジュール生成ツールはビヘイビアツリーと何が違いますか?

ビヘイビアツリーは、条件に基づいて「次に何をするか」を決定します。スケジュールは、時計に基づいて「キャラクターがどこにいるべきか」を決定します。Unrealのチュートリアルは今でもツリーとブラックボードを中心にしています。このアシスタントは、それらのツリーが消費するカレンダーを作成するため、すべての一般市民の毎週日曜日を空のグラフから作成する必要がなくなります。実装とエンジン内での調整は、引き続き必要です。

季節、天候、祭りに対応できますか?

はい。有効なパターンは、標準週を作成してから、雨天時の屋内代替案、冬の閉店時間、祭りによる強制移動、翌日の復元ルールというオーバーライドレイヤーを追加することです。戦闘、睡眠、クエストの強制移動は、雰囲気のための時間枠よりも優先されます。バーク数が多い場合は、カレンダーを信頼できる唯一の情報源に保ち、ボイスにはライティング支援を使ってください。

外出先のデザイナー向けにモバイルでも使えますか?

はい。同じデザインフローがWeb、iOS、Androidで動作するため、ライブ運用デザイナーやナラティブデザイナーは、スマートフォンからイベント商人を反復できます。紙の地図を歩きながら、店主の営業時間を忘れる前に記録したい場合には、音声入力が役立ちます。実装は引き続きエンジン内で行います。モバイルセッションは仕様作成のためであり、バイナリを出荷するためのものではありません。

生成されたNPCスケジュールは本番対応ですか?

出力は、検証不要で組み込めるものではなく、高品質な初回実装仕様として扱ってください。デザインとエンジニアリングで、占有、ナビゲーションメッシュの距離、アニメーション長を確認しましょう。そのレビューは、QAで2人の配偶者が1つのベッドに割り当てられていると発見するより、はるかに安価です。時計を無視する監視なしの会話よりも、構造化されたカレンダーのほうが優れています。

NPCスケジュール生成ツールで生きた世界をリリースする

プレイヤーが時計を見ると、スクリプトされた彫像は破綻します。真夜中に鉄を売るなら、素の会話モデルも破綻します。NPCスケジュール生成ツールは、職業、場所、暦のルールを実装可能な時間枠テーブル、占有制約、テストケースへ変換することで、そのギャップを埋めます。

Game Designer Assistantは、その時間レイヤーを提供します。実際に閉店する店、HUDの時計に合った鍛冶場、次の月曜日を壊さない祭り、エンジニアがコードにできる文書です。完全な生きた町のパイプラインが必要なら、ライティング、プロンプト、ビジュアルと組み合わせてください。

次の村人、商人、シフト労働者に向けて、このAIゲームデザインパートナーを試してください。詳細はJenovaでご覧いただけます。


開発者向け: Game Designer AssistantはJenova APIを通じてプログラムから利用できます。1回のAPI呼び出しで、NPCスケジュール生成をツールやライブ運用パイプラインへ統合できます。完全なドキュメント →