当サイトを閲覧いただきありがとうございます。
本記事では、Game Creator 2のモジュールのひとつである「Quests」(クエスト・ミッション管理)について詳しく解説します。
Questsはメインクエスト/サイドクエスト/アチーブメントといったゲーム進行の管理を、Task階層・状態機械・ミニマップ/コンパス/インジケータで一気通貫に扱える拡張アセットです。
公式ドキュメント:Game Creator 2 Documentation
Questsとは
Game Creator 2のモジュールとして提供されるクエスト管理システムです。
主な特徴:
- 「Quest(クエスト)」は複数の「Task(タスク)」を持ち、すべて(あるいは一部)のTask完了でクエスト完了になる
- Taskは子Task(Subtask)を持てる再帰的な階層構造
- プレイヤー側は「Journal(日誌)」コンポーネントで自分の受注中/完了済みクエストを保持
- 世界に置いた「Points of Interest」(POI)は、関連するTaskがActiveな間だけ自動で表示される
- 標準UIにMinimap/Compass/Indicators/Quest List/Quest Detailが同梱
導入
- Asset StoreからQuestsモジュールを購入
Window > Package ManagerからインストールGame Creator > Install...のサンプル:- Examples:シナリオ別シーン集
- UI:Minimap/Compass/Indicators/Quest List/Journal画面などのUIバンドル
- ExamplesはUI/スキン類に依存(自動解決)
- インストール先:
Assets/Plugins/GameCreator/Installs/Quests.Examples/
Questアセット
作成方法
Project右クリック → Create > Game Creator > Quests > Quest で作成します。
3つのセクション
(a) 一般情報(トップ)
- Name / Description / Color / Sprite:UI表示用
- Type:
- Normal:通常クエスト
- Hidden:UI非表示クエスト。アチーブメントや内部トラッキングに利用
- Sorting Order:UIリストでの表示優先度(値が大きいほど上)
- ID:一意識別子。衝突時は
Regenerateボタンで再生成可能
(b) Tasks Hierarchy(中央)
Taskの階層ツリーです。詳細は次節で解説します。
(c) Instructions(末尾)
Questの状態変化時に実行される命令リスト:
- On Activate:QuestがActiveになったとき
- On Complete:Questが完了したとき(報酬付与・通知表示に定石)
- On Abandon:Questが放棄されたとき
- On Fail:Questが失敗したとき
- On Deactivate:QuestがInactiveになったとき
Questの状態遷移
- 初期状態:Inactive
Quest ActivateでActive化。最初のRoot Taskも自動でActiveになり、そのSubtasksも連鎖Active- Active → Completed / Abandoned / Failed / Inactive
- Root Taskがすべて順次完了 → Questが自動でCompleted
- Root TaskのどれかがAbandoned / Failed → Questも同じ状態に遷移
Quest DeactivateでいつでもInactiveに戻せる
分割のすすめ
1 Quest内にTaskを大量に詰め込むと管理が難しくなるため、メインストーリーは複数Questに分割し、前QuestのOn Completeで次Questを Activateするパターンが推奨されています。
Tasks(タスク階層)
Taskの作成
Tasks Hierarchyパネル左上の2ボタン:
- 左ボタン:現選択の**兄弟(Sibling)**として新規Task
- 右ボタン:現選択の**子(Child)**として新規Task
ドラッグ&ドロップで階層の並び替えが可能です。右上のボタンでTask Inspectorを開閉します。
Taskの状態(5種)
- Inactive:初期状態
- Active:実行中
- Completed / Abandoned / Failed(まとめて “Finished” 状態)
状態遷移ルール
- Inactive → Activeのみ
- Active → Inactiveまたは任意のFinished状態
- Finished → Inactiveのみ
- 不正な遷移(Inactive → Completed等)は無視される(エラーにはならない)
Task Inspectorの構成
Settings
- Completion Mode:Subtaskの完了判定方式(後述)
- Is Hidden:UIのTask行を隠す
- Name / Description / Color / Sprite:UI表示用
Instructions
Task状態変化時の命令リスト:
- On Activate / On Complete / On Abandon / On Fail / On Deactivate
TaskのCounters(カウンタ付き自動完了)
TaskのUse Counterで、手動完了(Task Complete)に加え、数値カウンタによる自動完了を設定できます。
None(カウンタなし)
Task Complete 命令を明示的に呼ぶまで完了しません。標準モードです。
Value Counter
- Count To:目標値
- Task作成時は0。
Task Value命令で加算/減算/セットを行う - Count Toに到達した瞬間に自動でCompleted
- 例:「猪を5匹倒す」でCount To = 5、撃破ごとに
Task Value+1
Property Counter
- Count To:目標値
- Value From:動的プロパティ(Global Variable、Inventoryの所持数、Statsの値など)
- Detect When:値の変化を検知するイベント(Global Variable変化、Bag変化など)
- 他モジュールとシームレスに連動できる強力なモード
- 例:「ポーションを10個集める」をInventoryの所持数に直結させる
TaskのSubtasks Completionモード
子Subtaskを持つTaskでは、「Completion Mode」が進行を決めます。
Sequence(順次)
- Activate時に最初のSubtaskのみActive、他はInactive
- あるSubtaskがCompletedになると次の兄弟がActiveに
- 全Subtask完了で親TaskもCompleted
- いずれかのSubtaskがAbandoned/Failedになると、親Taskも同状態に遷移
- 例:「魔剣を探す → 依頼人に届ける」のような順序あり手順
Combination(組合せ)
- Activate時にすべてのSubtaskをActive
- 順不同で完了させ、全部終わったら親Task Completed
- 失敗/放棄は親にも波及
- 例:事件現場で「目撃者聴取/足跡調査/検視」を任意順に全部やる
Any(いずれか)
- Activate時にすべてのSubtaskをActive
- どれか1つがCompletedになった瞬間、親Task Completed。残りのSubtaskはActiveのまま残る
- 例:「敵を殺す/見逃す」のような分岐選択
Manual(手動)
- ActivateしてもSubtaskをActiveにしない
- 完全に手動で状態を制御する上級者向けモード
Journal(日誌コンポーネント)
用途
プレイヤーが保持するクエスト状態を管理するコンポーネントです。通常Playerにアタッチしますが、どのGameObjectにも付けられます(複数キャラがそれぞれ日誌を持つことも可能)。
設定
- Tracking Mode:
Single Quest(1つだけ)/Multiple Quests(複数同時)- Singleならトラック追加時に既存のトラックを自動解除
デバッグ表示
Playモード中はInspectorが切り替わり、QuestとTaskの現在状態をリアルタイムで確認可能です。Quest/Task行はクリックで展開・収納できます。
セーブ/ロード
Journalコンポーネントと同じGameObjectに「Remember」を追加し、Journal memoryを登録すれば、QuestとTaskの状態が自動的にセーブ対象になります。
Tracking(追跡中クエスト)
用途
HUDは「トラック中のクエスト」を強調表示します。プレイヤーが「今は何を追いかけているか」を示す機能です。
操作
- Quest Track Instruction:トラック開始(Activeクエスト限定)
- Quest Untrack Instruction:単体解除
- Quest Untrack All Instruction:すべて解除
- UI側でトラックボタンを押したときも内部で同じ命令が発火される
Points of Interest(POI)
POIの種類
対象GameObjectに追加するコンポーネントです。
- Task Point of Interest:特定Taskにひも付け。TaskがActiveのときだけ有効化
- Custom Point of Interest:Taskに紐付かない固定POI(ショップ/セーブポイント/敵集団など)
表示用UIコンポーネント
Minimap UI/Compass UI/Indicators UI がシーン内のPOIを自動検出し、HUDに表示します。
User Interface
同梱UIテンプレがそのまま使えるように設計されています。
Quest List UI
Journalから Questを集めて並べるUIです。
フィルタ:
- Show:状態フィルタ(Active/Inactive/Completed/Abandoned/Failedの組合せ)
- Show Hidden:Hiddenクエストを含めるか
- Hide Untracked:トラックしていないQuestを隠す
- Filter:Global/Local List Variableに含まれるQuestのみ表示(アチーブ/特殊カテゴリ向け)
設定項目:
- Content:Quest UI Prefabをインスタンス化するRectTransform(Layout Group必須)
- Prefab:Quest UIコンポーネント付きPrefab
Quest UI
Listに並ぶ1件を表示するコンポーネントです。
- Title / Description / Color / Sprite:自動反映
- Style Graphics:Active/Inactive/Completed/Tracked等に応じた色変化
- Active Elements:条件に応じて表示/非表示にするGameObject(例:Active if Trackingにブックマークアイコン)
- Interactive Elements:
- Button Track:クリックでトラック切替
- Select Quest:このQuestを選択状態にするボタン
- Tasks Content + Task Prefab:このQuest配下のTaskを表示(要Task UI)
Task UI
Quest UIと類似の設計で、Task用に特化しています。
Selection UI
- Selected Quest UI:現在選択中のQuestを表示(Quest UIと同じ構造)
- Selected Task UI:現在選択中のTaskを表示
- Quest/Taskが選択されると自動的にこれらが更新される
POI UI(Minimap/Compass/Indicators)
Minimap UI
- 半径内のPOIを点で表示する矩形UI
- PrefabはMinimap Item UIコンポーネント必須
- Radiusはランタイム変更可能(高速移動中に拡大、スキル解放で恒久拡大、など)
Compass UI
- 画面上部に横一本の帯を描き、カメラ前方を基準にPOIの方向を表示
- Character:原点となるキャラ
- Camera:前方基準になるカメラ
- PrefabはCompass Item UIコンポーネント必須
- 2.2.4以降:距離表示(単位付き)、距離/方向に応じたフェード
Indicators UI
- 画面上にフローティングアイコンでPOI位置を示す
- Keep in Bounds:ONなら画面外POIを画面端で止めて矢印方向を示す。OFFなら画面外で消える
- PrefabはIndicator Item UIコンポーネント必須
Visual Scriptingリファレンス
Instructions(10)
カテゴリは Quests > ... です。
| 命令 | 機能 | 主なパラメータ |
|---|---|---|
| Quest Activate | QuestをActiveに | Journal/Quest/Wait to Complete |
| Quest Deactivate | Questと配下TaskをInactiveに | Journal/Quest/Wait to Complete |
| Quest Track | Active Questを追跡開始 | Journal/Quest |
| Quest Untrack | 追跡解除 | Journal/Quest |
| Quest Untrack All | 全追跡解除 | Journal |
| Set Quest | Quest値を変数にセット | Set/From |
| Task Complete | Active Taskを完了に | Journal/Quest/Task/Wait to Complete |
| Task Abandon | Active Taskを放棄に | Journal/Quest/Task/Wait to Complete |
| Task Fail | Active Taskを失敗に | Journal/Quest/Task/Wait to Complete |
| Task Value | Taskのカウンタ値を加算・減算・セット | Journal/Quest/Task/値・モード |
Conditions(13)
Quests(11)
| 条件 | 判定 |
|---|---|
| Are Quests Equal | 2つのQuestアセットが等しいか |
| Is Quest Active | 指定JournalのQuestがActiveか |
| Is Quest Inactive | Inactiveか |
| Is Quest Completed | Completedか |
| Is Quest Abandoned | Abandonedか |
| Is Quest Failed | Failedか |
| Is Task Active | TaskがActiveか |
| Is Task Inactive | Inactiveか |
| Is Task Completed | Completedか |
| Is Task Abandoned | Abandonedか |
| Is Task Failed | Failedか |
Quests > Groups(2)
| 条件 | 判定 |
|---|---|
| Are All Quests Completed | 指定リスト内の全QuestがCompletedか |
| Is Any Quest Completed | 指定リスト内のいずれか1 QuestがCompletedか |
Events(13)
| イベント | 発火タイミング |
|---|---|
| On Quest Activate | QuestがActive化された |
| On Quest Deactivate | QuestがInactive化された |
| On Quest Complete | QuestがCompleted |
| On Quest Abandon | QuestがAbandoned |
| On Quest Fail | QuestがFailed |
| On Any Quest Track | いずれかのQuestがトラック開始 |
| On Any Quest Untrack | いずれかのQuestがトラック解除 |
| On Task Activate | TaskがActive化 |
| On Task Deactivate | TaskがInactive化 |
| On Task Complete | TaskがCompleted |
| On Task Abandon | TaskがAbandoned |
| On Task Fail | TaskがFailed |
| On Task Value Change | Active Taskのカウンタ値が変化 |
Tipsと注意点
- Quest分割の勘所:50 Task超えるQuestは、まず2〜3 Questに分割する。
On Completeで次Questを Activateすれば体感的な挙動は同じ - Hidden + Counterがアチーブの基本形。HUDには出さず、バックグラウンドで条件達成を拾う
- Property Counterの「Detect When」設定漏れに注意。検知イベントを間違えるとTaskが更新されない
- JournalをPlayerに置くのが一般的。マルチパーティRPGなら各キャラに別Journalを持たせて分けて管理することも可能
- POIはTaskのActiveと連動:Taskが終わるとPOIが自動消去されるため、手動削除は不要
- トラック数はUI設計次第:HUDがゴチャつくならSingle、開放度重視のオープンワールドならMultiple
- Taskの状態遷移ルールを把握していれば無効な命令で事故らない:Inactive → Completedは無視される。必要なら先にActivate
- セーブの粒度:Journal memoryはQuest/Taskの現在状態+カウンタを保存。UI設定(選択中Quest等)は別途の仕組みで保存する必要あり
- IndicatorsのKeep in Bounds:オープンワールドで遠方POIを常に画面端に出すと混雑する。距離フェードや数制限をUI側で検討
- Questテキストは動的値化可能:Descriptionに
{var}風表記を組み合わせると、プレイヤー名入りのフレーバーが書ける(UI側でのレンダリング実装次第)
実践的な使い方 ― やりたいこと別の構成ガイド
「こういうクエスト構造を実現したい」場合にどの機能を使うか、パターン別にまとめます。
順番通りに進むメインクエスト
「魔法の剣を見つけて持ち帰る」のような連続構造です。
| 使うもの | 設定 |
|---|---|
| Questアセット | rootのCompletion = Sequence |
| Task 1 | 「魔法の剣を見つける」 |
| Task 2 | 「クエストギバーに届ける」 |
| 開始命令 | Quest Activate(Journalに登録し、最初のroot Taskを自動でActiveに) |
Task 1完了 → Task 2開始 → Task 2完了でクエスト達成、という流れになります。
複数目標を任意の順番で達成する調査クエスト
証人に話す・証拠を調べる・現場を確認する、の3つをどの順番でもOKにするパターンです。
| 使うもの | 設定 |
|---|---|
| 親Task | Completion = Combination |
| 子Subtask群 | 「証人に話す」「証拠を調べる」「現場を確認する」 |
すべてのSubtaskが同時にActiveになり、全部完了した時点で親TaskもCompletedになります。
二者択一の分岐クエスト
「敵を殺すか見逃すか」のように、どちらか一方を達成すればクエストが進むパターンです。
| 使うもの | 設定 |
|---|---|
| 親Task | Completion = Any |
| 子Subtask A | 「ターゲットを倒す」 |
| 子Subtask B | 「ターゲットを見逃す」 |
どちらか1つがCompletedになった瞬間、親Task Completedになり、分岐先が決まります。
アイテム収集クエスト
「薬草を5個集めよ」のように、Inventoryのアイテム所持数と連動して自動的にカウントが進むパターンです。
| 使うもの | 設定 |
|---|---|
| TaskのCounter | Propertyを選択 |
| Count To | 5(目標数) |
| Value From | Inventoryの所持数(動的プロパティ) |
| Detect When | アイテム追加イベント |
Property Counterにより、Inventoryの所持数と目標値がシームレスに連動します。
大規模メインクエストを分割して管理する
メインストーリーが長大なので管理しやすく分割するパターンです。
| 使うもの | 設定 |
|---|---|
| Questアセット | 章ごとに別Questとして作成 |
| 連結方法 | 前QuestのOn Completeで次Questの Quest Activate を実行 |
メインクエストが長大になっても、章ごとに分割すればインスペクタ上の管理が容易になります。
アチーブメントシステムをクエストで実装する
プレイヤーに表示せずバックグラウンドで条件達成を追跡するパターンです。
| 使うもの | 設定 |
|---|---|
| QuestのType | Hidden |
| Quest List UI | Show Hidden = false(通常UIには非表示) |
| 別途アチーブUI | FilterでHidden Questだけ表示する専用リスト |
Hidden + Counterの組合せがアチーブメントの基本形です。
目的地にナビゲーションマーカーを表示する
アクティブなTaskの目標位置にコンパスや画面上のインジケーターを表示するパターンです。
| 使うもの | 設定 |
|---|---|
| コンポーネント | Task Point of Interest(目標地点のGameObjectに付ける) |
| 連動 | TaskがActiveのとき自動で有効、Inactive/Completeで自動で無効 |
| 表示UI | Compass(画面上部のバー)またはIndicators(スクリーン上のアイコン) |
TaskのActive状態と連動するため、Task完了後は自動で非表示になります。
Dialogueで会話からクエストを受注・報告する
NPCとの会話中にクエストを開始し、完了後に再び話しかけて報酬を受け取るパターンです。
| 使うもの | 設定 |
|---|---|
| 受注 | DialogueノードのOn Startに Quest Activate |
| 報告条件 | DialogueのChoiceノードにCondition Is Quest Completed |
| 報酬 | 条件成立時の子ノードのOn Startで報酬配布(Add Item、Change Currency 等) |
クエスト進行をセーブ・ロードに対応させる
ゲームを保存してもクエストの進行状態が失われないようにするパターンです。
| 使うもの | 設定 |
|---|---|
| JournalがあるGameObject | Rememberコンポーネントを追加 |
| Rememberに追加 | Journal memory |
Rememberを追加してJournal memoryを登録するだけで、QuestとTaskの状態が自動的にセーブ対象になります。
Minimapのレーダー半径をゲーム進行に応じて拡大する
スキル解放やレベルアップに応じてミニマップの表示範囲を広げるパターンです。
| 使うもの | 設定 |
|---|---|
| Minimap UI | Radiusフィールドをランタイムで変更可能 |
| Stats連携 | Stat(例:explore-skill)の値をProperty参照でRadiusに紐付け |
関連する他モジュール
- Dialogue:Questの受注/報告はほぼDialogue連携。
Quest ActivateをノードのInstructionに置く - Inventory:Property Counterで所持数を目標値に直結
- Stats:条件分岐に
Compare Attribute/Check Formula - Behavior / Perception:敵エージェントをTaskの対象にし、
On Dieで Task Value - Cameras:Quest完了時の演出にCamera Shot切替
- Save & Load:Journal memoryを利用して進行保存
公式リンク
- Game Creator 2 公式ドキュメント
- Game Creator 2 — Unity Asset Store
- Quests 2 | Game Creator 2 — Unity Asset Store
まとめ
本記事では、Game Creator 2の「Quests」モジュールについて解説しました。
QuestsはQuest → Task階層 → Counter自動完了 → Journal管理 → POIナビゲーション → UI表示という一連のフローが整備されており、Sequence/Combination/Any/Manualの4種のCompletion Modeを使い分けることで、順次進行・並行目標・分岐選択など幅広いクエスト構造を実現できます。
Visual ScriptingではInstruction 10種・Condition 13種・Event 13種が用意されており、Dialogue・Inventory・Stats・Behaviorなど他モジュールとの連携も充実しています。
それでは次の記事も閲覧いただけると幸いです。
📚 シリーズ:Game Creator 2 完全ガイド(11/16)



