> ## Documentation Index
> Fetch the complete documentation index at: https://devdocs.xbox.com/llms.txt
> Use this file to discover all available pages before exploring further.

# 検索可能なロビーの作成

> PlayFab Lobby で検索キーと検索可能な文字列または数値プロパティを定義することで、プレイヤーが公開ゲーム セッションを効率的に絞り込み、発見できるようにします。

この記事では、検索可能なロビーの作成方法について説明します。

ロビーを検索可能にするには、そのアクセス ポリシーが **Public** または **Friends** のいずれかである必要があります。**Private** アクセス ポリシーのロビーは検索クエリから参加できず、[招待](/services/playfab/multiplayer/lobby/lobby-invites) を通じてのみ参加できます。このアクセス ポリシーは、ロビーの作成時に設定するのが一般的です。

ロビーのアクセス ポリシーが正しく設定されると、他のプレイヤーは [ロビーの検索](/services/playfab/multiplayer/lobby/find-lobbies) を使用して検索できます。

さらに、ロビーのオーナーはカスタム検索プロパティを定義できます。他のプレイヤーはロビーを検索する際にこれらを使用して、より具体的な結果を得られます。

詳細については、[ロビーの検索](/services/playfab/multiplayer/lobby/find-lobbies) と [ロビーへの参加](/services/playfab/multiplayer/lobby/join-lobbies) を参照してください。

## Lobby and Matchmaking SDK を使用した検索プロパティの設定例

この例では、作成したロビーに次のカスタム検索プロパティを定義しています。

* Game mode = "DeathMatch"
* Competition style = "Ranked"
* Skill level = ロビーを作成した人のスキル レベル

```cpp theme={null}
static PFMultiplayerHandle g_pfmHandle; // initialized elsewhere

#define PFLOBBY_SEARCH_KEY_GAME_MODE "string_key1"
#define PFLOBBY_SEARCH_KEY_COMPETITION_STYLE "string_key2"
#define PFLOBBY_SEARCH_KEY_SKILL "number_key1"

#define GAME_MODE_DEATH_MATCH "DeathMatch"
#define COMPETITION_STYLE_RANKED "Ranked"

PFEntityKey m_localUser;
namespace MyGame {
    uint32_t GetPlayerSkill(); // defined elsewhere
}

void CreateLobbyWithSearchProperties()
{
    // Initialize the lobby configuration with search properties
    std::string playerSkill = std::to_string(MyGame::GetPlayerSkill());

    const char* searchPropertyKeys[] = {
        PFLOBBY_SEARCH_KEY_GAME_MODE,
        PFLOBBY_SEARCH_KEY_COMPETITION_STYLE,
        PFLOBBY_SEARCH_KEY_SKILL,
    };

    const char* searchPropertyValues[_countof(searchPropertyKeys)] = {
        GAME_MODE_DEATH_MATCH,
        COMPETITION_STYLE_RANKED,
        playerSkill.c_str(),
    };

    PFLobbyCreateConfiguration lobbyConfiguration{};
    lobbyConfiguration.maxMemberCount = 16;
    lobbyConfiguration.searchPropertyCount = _countof(searchPropertyKeys);
    lobbyConfiguration.searchPropertyKeys = searchPropertyKeys;
    lobbyConfiguration.searchPropertyValues = searchPropertyValues;

    // Initialize an empty join configuration. This can be optionally initialized with the creator's member properties 
    PFLobbyJoinConfiguration creatorMemberConfiguration{};
    creatorMemberConfiguration.memberPropertyCount = 0;

    // Create and join the lobby
    PFLobbyHandle lobby;
    HRESULT hr = PFMultiplayerCreateAndJoinLobby(
        g_pfmHandle,
        &m_localUser,
        &lobbyConfiguration,
        &creatorMemberConfiguration,
        nullptr,
        &lobby);
}
```

## 関連項目

* [ロビーの検索](/services/playfab/multiplayer/lobby/find-lobbies)
* [ロビーのプロパティ](/services/playfab/multiplayer/lobby/lobby-properties)
* [オーナー要件と権限](/services/playfab/multiplayer/lobby/owner-requirements-and-privileges)
* [ロビーの作成](/services/playfab/multiplayer/lobby/create-a-lobby)


## Related topics

- [ロビーの検索](/ja-jp/services/playfab/multiplayer/lobby/find-lobbies.md)
- [ロビーの作成](/ja-jp/services/playfab/multiplayer/lobby/create-a-lobby.md)
- [ロビーへの参加](/ja-jp/services/playfab/multiplayer/lobby/join-lobbies.md)
- [ロビーの所有権の変更](/ja-jp/services/playfab/multiplayer/lobby/ownership-changes.md)
- [PlayFab Lobby のカスタム プロパティ](/ja-jp/services/playfab/multiplayer/lobby/lobby-properties.md)
