ミッションパッケージ

*このコンテンツは、ベータ版のAI(人工知能)を使用して翻訳されており、エラーが含まれている可能性があります。このページを英語で表示するには、 こちら をクリックしてください。

ミッション機能パッケージは、プレイヤーが完了することで報酬を得たり、体験を進めたりできるミッションを作成するための即時利用可能な機能を提供します。すべてのミッションにはID、カテゴリ、およびプレイヤーがミッションを完了するために完了しなければならないタスクのリストが必要です。ただし、タスクリストは空にすることもでき、ミッションの報酬を即座に受け取ることが可能です。

このパッケージのカスタマイズオプションを使用すると、次のように独自のゲームプレイ要件を満たすためにすべてのミッションをパーソナライズできます。

  • 新しいプレイヤーがあなたの体験に参加し、D1保持率を向上させるミッションを作成する。
  • 中長期的な目標と進行感を追加して、D7およびD30保持率をターゲットにする。
  • ゲーム内のさまざまなシステムを表に出し、プレイヤーがそれらと対話することで報酬を得られるようにしてエンゲージメントを高める。

パッケージの取得

クリエイターストアツールボックスのタブであり、あなたのプロジェクトで使用するためのRobloxとRobloxコミュニティによって作成されたすべてのアセット(モデル、画像、メッシュ、音声、プラグイン、ビデオ、フォントアセット)を見つけるために使用できます。クリエイターストアを使用して、機能パッケージを含む1つ以上のアセットを直接オープンな体験に追加できます。

すべての機能パッケージは正常に機能するためにコア機能パッケージを必要とします。コアミッション機能パッケージのアセットがインベントリにあると、プラットフォーム上の任意のプロジェクトで再利用できます。

インベントリから体験にパッケージを取得するには:

  1. Studioのウィンドウメニューまたはホームタブツールバーから、ツールボックスを開きます。

  2. ツールボックスウィンドウで、インベントリタブをクリックします。マイモデルの並べ替えが表示されます。

    スタジオのツールボックスウィンドウでインベントリタブがハイライトされています。
  3. フィーチャーパッケージコアタイルをクリックし、次にミッション機能パッケージタイルをクリックします。両方のパッケージフォルダがエクスプローラウィンドウに表示されます。

  4. パッケージフォルダをReplicatedStorageにドラッグします。

ミッションの定義

各完了可能なミッションには、ミッションを完了するために終了しなければならないタスクのセット、設定オプション、およびオプションの表示メタデータが含まれ、すべてReplicatedStorage.Missions.Configs.Missions内で定義でき、同じフォルダ内のTypesスクリプトからエクスポートされるタイプで指定されます。

必須フィールド

各ミッションに必要なフィールドは次のとおりです。

名前タイプ説明
missionIdstringメインのミッションテーブルキー。すべてのミッションは、独自のユニークな文字列によって識別されます。
categoryIdstringミッションはカテゴリーに属し、UIでカテゴリーによってグループ化されます。
taskstableプレイヤーがミッションを完了するために終了しなければならないタスクのリスト。

アンロック条件

デフォルトでは、ミッションは自動的にプレイヤーにアンロックされ、正確に1回だけ完了できます。ただし、次のオプションの設定オプションを使用してこの動作を変更できます。

名前タイプ説明
prerequisitestableミッションがアンロックされる前に完了しなければならない他のmissionIdのリスト。
manualOnlyboolミッションの自動アンロックを無効にします。その代わりに、ミッションをアンロックするために関数を呼び出す必要があります。他のアンロック条件もすべて満たされている必要があります。
availableAfterUtcbool指定されたUTC時間より前にミッションはアンロックできません。
availableBeforeUtcbool指定されたUTC時間の後にミッションはアンロックできません。この時間の前にアンロックされているが完了していない場合、ミッションは失敗したことになります。
repeatableboolミッションは完了後に再度アンロックされます。
repeatLimitnumberミッションがリピート可能な場合、この回数を超えてリピートすることはできません。
repeatCooldownSecondsnumberミッションがリピート可能な場合、アンロックされるまでに遅延があります。
expireSecondsnumberミッションがアンロックされ、指定された秒数内に完了しない場合、ミッションは失敗します。
expireCountOfflineboolミッションにexpireSecondsがあり、expireCountOfflineがtrueに設定されている場合、プレイヤーが実際に体験にいない間の時間もミッションの期限にカウントされます。

メタデータ

ミッションには、ミッションのユーザーインターフェースでの表示方法を指定するメタデータがあります。次のオプションフィールドを使用して、メタデータをカスタマイズできます。

名前タイプ説明
displayNamestringユーザーインターフェースでmissionIdの代わりに表示するミッションの名前。
descriptionstringミッションについての追加情報や文脈を提供する長いテキストブロック。
visibleAfterCompletebooltrueに設定されている場合、ミッションは完了後もリストに表示されますが、完了済みとしてマークされます。
visibleAfterFailedbooltrueに設定されている場合、ミッションは失敗後もリストに表示されますが、失敗としてマークされます。
visibleBeforeUnlockedbooltrueに設定されている場合、ミッションは完了可能になる前に表示されますが、ロックされた状態です。
invisibleWhileActivebooltrueに設定されている場合、ミッションは進行中でも見えません。
rewardstable報酬表示情報のリスト。
  • assetID (number) - クエストの報酬としてミッションUIに表示される画像ID。報酬がある場合は必須です。
  • displayName (string) - アイコンの下でミッションUIに表示される名前。

タスクの定義

各ミッションには、ゼロまたはそれ以上のタスクを設定できます。ミッションにタスクがゼロの場合は、アンロック後すぐに受け取ることができます。タスクが1つ以上の場合、タスクが完了すると、プレイヤーはそのミッションに関連付けられた報酬を受け取ることができます。それぞれのタスクには、ミッションに関連付けられたタスクのtaskIdがあります。

タスクには2つのタイプがあります:

  • タイムタスク - タスクの開始と停止を異なる時点で行うことができます。タスクのタイマーが動いている間に一定の時間が経過する必要があり、その後タスクが完了します。
  • カウントタスク - タスクの進行を追加または設定できます。進行が設定された値に達すると、タスクが完了します。

両方のタスクタイプには、次のフィールドが共有されています:

名前タイプ説明
taskTypestringタスクタイプがカウントまたはタイムであるかを指定します。
counterobject(オプション) このタスクが追跡するカウンター。カウンターは、数値またはタイマーのためのプレイヤー固有の永続ストレージです。複数のタスクが単一のカウンターを追跡できます。例えば、プレイヤーが集めたコインの数を追跡するタスクが複数ある場合、それらはすべて同じ「コイン」カウンターを共有することができます。これらのタスクは、新しいコインが集められるのを独立して追跡することも、カウンター値から続けてカウントすることもできます(すでに集めたすべてのコイン)。
  • counterId (string) - 追跡されるカウンターのID。カウンターの値を取得または設定するにはこのIDを使用します。
  • continueFromCounter (オプションbool) - trueに設定すると、タスクの進行はカウンターの値と直接一致します。
metadataobject(オプション) タスクがUIに表示される方法に関する情報。
  • displayName (string) - UIに表示されるタスクの名前。
  • numericType (オプションstring) - タスクの進行数値を表示する方法。
    • フラクション、例:5/10または5k/50k
    • パーセンテージ、例:50%または10%
    • ロングフラクション、例:5/10または5000/50000
    • ブール、例:未完了
callToActionobject(オプション) コールバック関数をトリガーするボタン。
  • callback (function) - callToActionボタンによってトリガーされる関数。
  • buttonText (string) - ボタンUIに表示されるテキスト。

カウントタスクのフィールド

カウントタスクには必須の値があります。タスクの進行がこの量に達すると、タスクは完了と見なされます。

名前タイプ説明
goalCountnumber(オプション) タスクを完了するために必要な進行。

タイムタスクのフィールド

タイムタスクには、目標の時間が設定されており、開始と停止が可能です。目標の時間に達すると、タスクは完了します。

名前タイプ説明
goalSecondsnumberタスクを完了させるために経過させなければならない秒数。
startImmediatelyboolタスクがアンロックされるとすぐに時間のカウントを開始する必要があるかどうか、タスクが開始された後だけにするかです。
includesOfflineTimeboolプレイヤーが体験に実際にいない間にかかる時間を含むべきかどうかです。

カテゴリの構成

カテゴリは明示的に定義する必要はありませんが、ミッションのカテゴリにはデフォルト値が使用されます。ただし、ReplicatedStorage.Missions.Configs.Categories内でこれらの値を構成することで、カテゴリに追加の効果を加えることができます。カテゴリはユニークなCategoryIdsで識別され、これはミッション設定でも参照されています。

名前タイプ説明
repeatDelaySecondsnumber(オプション) 設定されている場合、指定された時間が経過するたびにカテゴリ内のすべてのミッションがリセットされ、再度アンロック、完了、報酬の受取が可能になります。これは、指定されたカテゴリ内で繰り返し可能なミッションとは別です。

サーバーロジックの統合

ReplicatedStorage.Missions.Server.Examples.MissionsExampleを見てみてください。これには、サーバーがミッション機能パッケージとどのように相互作用するかが示されています。

ミッション機能パッケージを体験にドラッグした後、主に4つのことを接続する必要があります。

  1. ミッション設定内でミッションを定義します。

  2. タスクの進行や進行に結びつけられたカウンターの更新ロジックを体験に追加します。

    README

    -- ジャンプタスクを伴うミッションJumpingの進行を増加させる
    Missions.addProgressToTask(player, "Jumping", "Jumps", 1)
    -- 時間タスクTimeInBattleを伴うミッションBattlingTimeのタイマーを開始する
    Missions.startTimedTask(player, "BattlingTime", "TimeInBattle")
    -- 時間タスクTimeInBattleを伴うミッションBattlingTimeのタイマーを停止する
    Missions.stopTimedTask(player, "BattlingTime", "TimeInBattle")
    -- Jumpsカウンターに関連付けられたすべてのタスクの進行を増加させる
    CounterSystem.addCounter(player, "Jumps", 1)
    -- TimeInBattleタイマーカウンターに関連付けられたすべてのタイムタスクのタイマーを開始する
    CounterSystem.startTimer(player, "TimeInBattle")
    -- TimeInBattleタイマーカウンターに関連付けられたすべてのタイムタスクのタイマーを停止する
    CounterSystem.stopTimer(player, "TimeInBattle")
  3. ミッション完了ハンドラーを設定し、オプションでロック解除または失敗ハンドラーを設定します。完了ハンドラーを使用して、体験内でミッションからの報酬を授与します。

    README

    local function completeHandler(player: Player, missionId: Types.MissionId)
    print(`{player}がミッション{missionId}を完了しました`)
    -- プレイヤーに報酬を授与します。
    end
    Missions.setCompletionHandler(missionId, completeHandler)
  4. 自動的にアンロックされないミッションをアンロックします。ミッション機能パッケージのロジックは、ミッションが完了する前にすべてのミッション要件が満たされていることを確認します。その後、報酬を受け取ることができます。

    README

    Missions.unlockMission(player, "Manual")

定数の構成

コア機能パッケージの定数は2か所にあります:

  • 共有定数はReplicatedStorage.FeaturePackagesCore.Configs.SharedConstantsにあります。

  • パッケージ固有の定数、ここではミッション機能パッケージに関するものは、ReplicatedStorage.Missions.Configs.Constantsにあります。

さらに、翻訳用の文字列は1か所に分けて見つけることができます:ReplicatedStorage.FeaturePackagesCore.Configs.TranslationStrings

UIコンポーネントをカスタマイズ

パッケージオブジェクト(色、フォント、透明度など)を変更することで、ミッションUIの視覚的なプレゼンテーションを調整できます。たとえば、ReplicatedStorage.Missions.Configs.Constants内でSingleTaskModeを有効にすると、単一のタスクを持つミッション自身にタスクの進行状況を表示するプログレスバーを表示できます。

さらに、あなたの体験に既存のUIがあり、それをミッション機能パッケージと統合したい場合、クライアントのModuleScriptであるMissionsClientには、サーバーからプレイヤーのミッションに関する情報を取得するために必要なすべての機能が含まれています。

©2026 Roblox Corporation。Roblox(ロブロックス)、RobloxロゴおよびPowering Imaginationは、米国並びにその他の国における登録商標および非登録商標です。