Skip to content

ランダムゲームフィルター

Vnite はランダムゲーム機能に対してカスタムフィルタールールを設定できます。設定-高度な設定-ランダムゲームフィルター設定 で JSON を直接編集できます。設定が有効になると、ランダムゲームはルールに一致したゲームだけを対象に抽選します。

TIP

まず右上の プリセット設定 でテンプレートを作成してから、必要に応じて調整するのがおすすめです。

プリセット

現在は 3 つのプリセットが用意されています。

  • デフォルトgameNameNot のブラックリストのみを保持
  • プレイ状況でフィルター:プレイ状況で絞り込み、ブラックリストも保持
  • コレクションでフィルター:コレクションで絞り込み、ブラックリストも保持

基本構造

フィルタールールは再帰的なオブジェクト構造で表現します。各階層のオブジェクトは次の制約に従います。

  • オブジェクトは 1 つのキーだけを持つ必要があります
  • キー名は演算子を表します
  • 値はその演算子の対象を表します

形式は次の通りです。

json
{
  "<operator>": <value>
}

この構造は再帰的にネストできるため、複雑な条件も表現できます。

NOTE

ルートノードは単一の演算子オブジェクトである必要があります。例えば:

json
{ "and": [...] }

次のような書き方は無効です。

json
{ "and": [...], "or": [...] }

使用可能な演算子

論理積 and

  • 値は配列である必要があります
  • 配列の各要素は有効なルールオブジェクトである必要があります
  • すべての子条件を満たす必要があります
json
{
  "and": [{ "inCollection": ["A"] }, { "gameNameNot": ["game1"] }]
}

論理和 or

  • 値は配列である必要があります
  • 配列の各要素は有効なルールオブジェクトである必要があります
  • いずれか 1 つの子条件を満たせば一致します
json
{
  "or": [{ "inCollection": ["A"] }, { "playStatusIs": ["playing"] }]
}

論理否定 not

  • 値は単一のルールオブジェクトである必要があります
  • そのルールの結果を反転します
json
{
  "not": {
    "playStatusIs": ["finished"]
  }
}

inCollection

コレクション名で絞り込みます。値は文字列配列で、各要素はコレクション名です。

json
{
  "inCollection": ["collection1", "collection2"]
}

gameNameNot

特定のゲームを除外します。値は文字列配列で、各要素はゲーム名です。このルールは現在のゲーム名と元の名前の両方に一致します。

json
{
  "gameNameNot": ["GameA", "GameB"]
}

playStatusIs

プレイ状況で絞り込みます。値は文字列配列で、各要素はプレイ状況名です。

json
{
  "playStatusIs": ["finished", "multiple"]
}

使用できる値:

  • "unplayed":未開始
  • "playing":プレイ中
  • "partial":一部クリア
  • "finished":クリア済み
  • "multiple":複数周回
  • "shelved":保留中

デフォルトルール

デフォルトでは、どのゲームも除外されません。

json
{
  "gameNameNot": []
}

プレイ状況で絞り込みつつ共通ブラックリストを維持する

json
{
  "and": [
    { "playStatusIs": ["playing"] },
    { "gameNameNot": ["game1", "game2"] }
  ]
}

コレクションごとに細かく条件を分ける

json
{
  "or": [
    {
      "and": [
        { "inCollection": ["TODO"] },
        { "playStatusIs": ["unplayed", "playing"] }
      ]
    },
    {
      "and": [
        { "inCollection": ["good1", "good2"] },
        { "playStatusIs": ["finished", "multiple", "partial"] }
      ]
    }
  ]
}