# マルチプレイヤーについて

マルチプレイヤー機能を利用するとオブジェクトの位置や状態、環境をコントロール及び変更することができるビヘイビア やコンポーネントとのより高度な同期が可能になります。<br>

{% hint style="info" %}
マルチプレイヤーの機能を使うとオブジェクトが移動したり環境の変化が起こった際にすべてのプレイヤーがその変化を同時に見ることができます。
{% endhint %}

\
まずはDoor（ドア）のビヘイビア を例に挙げて解説します。

このビヘイビアを持ったActor（アクター）はすべてのプレイヤーが使用することができ、Collision（コリジョン）もすべてのプレイヤーに対して変更することできます。つまりドアが開くとすべてのプレイヤーのドアが開き、ドアが閉まるとすべてのプレイヤーのドアが閉まるという状況を作り出すことができます。\ <br>

次に**Basic Platform（ベーシックプラットフォーム）のビヘイビア** を例に挙げて解説します。

このビヘイビアを持ったアクターが1つの場所から他の場所へと移動するとその動きはすべてのプレイヤー間で同期されます。<br>

{% hint style="success" %}
すべてのプレイヤー間で同期可能で移動するプラットフォームやドアを使用することで体験内にクリアしにくい部分を設定したり、異なるエリアへのアクセスを可能にします。
{% endhint %}

### シングルプレイヤーとマルチプレイヤー

マルチプレイヤー機能は体験を作っていく際に楽しい部分でもありますが、同時に**複雑な機能を重ねて作成**していく細かい作業が必要な部分でもあります。&#x20;

参加者が増えるにしたがってプレイヤーたちがどのように交流するのか、そのやり取りから何を生み出すかなどを考えながらより「深み」のある構造を作りだしていけるように作成していきましょう。

Synchronized（同期可能）ビヘイビア やコンポーネントは同期ができないビヘイビアやコンポーネントとはメッセージの送受信ができないため注意が必要です。<br>

{% hint style="warning" %}
すべてのビヘイビアやコンポーネント、ツールが同期機能を持っているわけではありませんのでご注意ください。
{% endhint %}

\
例えばRules（ルール）のタブで作成されたクエストは同期されていないのでClient Only（クライアントオンリー）のメッセージによってのみトリガーされ、それぞれのプレイヤーは「ローカル」でクリアすることになります。<br>

0.8 のアップデートでは**Client only［SP：シングルプレイヤー］**&#x3068;**Synchronized［MP：マルチプレイヤー］**&#x3067;それぞれ異なるビヘイビアとコンポーネントが新たに導入されました。<br>

<figure><img src="/files/ett97bxerDvo1jzJsqHK" alt=""><figcaption><p>左：Client-Only （シングルプレイヤー）のビヘイビア<br>右：Syncronized （マルチプレイヤー）のビヘイビア</p></figcaption></figure>

**Client Only［SP：シングルプレイヤー］**：ビヘイビアとコンポーネント は「ローカル」で機能するため、Client Only のビヘイビア やコンポーネントの間でのみメッセージの送受信を行うことができます。クエストの進捗状況などのメッセージや変更はマルチプレイヤーの体験内でプレイしていたとしてもそれぞれ個人のプレイヤーしか見ることができません。<br>

**Synchronized［MP：マルチプレイヤー］**：ビヘイビア とコンポーネント は「グローバル」に適用されるためプレイヤーとの間で交換された1つ1つのメッセージはすべてのプレイヤーに適用され、メッセージの結果として生じる変化はすべてのプレイヤーに適用されます。\ <br>

Collectible（収集品）のコンポーネントを例に挙げて解説します。&#x20;

このコンポーネントは Client Only でも Synchronized でも選択することが可能です。

**\[SP] Collectible** のコンポーネントを持つオブジェクトを拾った場合、オブジェクトは個人のプレイヤーの体験からは消えてしまいますが、他のプレイヤーがまだ拾えるように体験内には残ります。これはアクターの状態の変化が個人のプレイヤーにしか適用されないからです。

**\[MP] Collectible** のコンポーネント を持つオブジェクトを拾った場合、オブジェクトはすべてのプレイヤーの体験から消え、一人のプレイヤーしか拾うことができないという状況が生まれます。これはアクターの状態の変化がすべてのプレイヤーに適用されるからです。

### **ビヘイビアとコンポーネントのリスト**

SP とMP で使用可能な機能を分けたことによってビヘイビア やコンポーネントに関連する選択肢がおよそ倍に増えたことになります。&#x20;

以下のチャートでは変更になったビヘイビアとコンポーネントと使用可能な環境をチャートにわかりやすくまとめてご紹介しています。

<figure><img src="/files/Oank1TtbNfFcQYsJ7TCR" alt=""><figcaption><p>新旧ビヘイビアとコンポーネント のリスト</p></figcaption></figure>

{% hint style="danger" %}
上記のリストにあるグレーで色付けされている従来のビヘイビアやコンポーネントはMPの体験とは互換性がありません。（MP COMPATIBLE のタブにNO と表示されています。）\ <mark style="color:red;">**これらの機能はマルチプレイヤーでは使用できませんのでご注意ください。**</mark>
{% endhint %}

{% hint style="warning" %}
ポートされていないClient only のビヘイビア やコンポーネントをマルチプレイヤーの体験で使用するとプレイヤー間での同期が適切に処理されないことがあります。
{% endhint %}

上記のアイテムの中にはSynchronized のカテゴリーでは使用可能でもClient only では使用不可となっているものも含まれています。

これはビヘイビアとコンポーネントがシングルプレイヤーの環境で使用できないという意味ではなく、それぞれのプレイヤーが体験内で各自の目的に合わせて使用できる仕様になっていないということを意味しています。

例えば**Basic Platform はClient only では使用できず**、ビヘイビアのウィンドウのSynchronized のフィルタからしかアクセスできない仕様になっています。この機能はシングルプレイヤーの体験で使用することはできますが、マルチプレイヤーではコリジョンと動きを全てのユーザー間で非同期にすることはできません。

{% hint style="success" %}
マルチプレイヤーの体験でも使用できるシングルプレイヤーの機能には以下も含みます。

**Asker** のビヘイビア との会話\
**Speaker** と**Indicator** のコンポーネント に関わる通知\
**Animated Decoration** のビヘイビア を使用したアクションに対する反応\
**Message Broadcaster** のようなビヘイビア によって起動するクエスト目標
{% endhint %}

### ビヘイビアとコンポーネントの選択（シングルプレイヤーとマルチプレイヤー）

ビヘイビアとコンポーネントを適用するには、まずはじめにアクターを選択し、次にプロパティパネルからビヘイビアとコンポーネントの欄をクリックします。

ポップアップウィンドウが表示され、デフォルトの画面では緑色の文字でアイテムの名前の前に\[SP] と表記されている*Client Only* の選択肢が表示されます。<br>

{% hint style="warning" %}
デフォルトの画面でグレーの文字で表示されるビヘイビアやコンポーネントはマルチプレイヤーの体験とは互換性がありません。シングルプレイヤーの体験のみで使用してください。
{% endhint %}

\
ビヘイビアとコンポーネントのSynchronized を選択するにはポップアップ画面右上に**Type（タイプ）**&#x3068;書かれたドロップダウンより切り替えを行ってください。Synchronized を選択すると画面が更新され、**黄色の文字でアイテムの名前の前に \[MP]** と表記されている選択肢が表示されます。

<figure><img src="/files/LCx4IVe8HlEGeHWOFREH" alt=""><figcaption></figcaption></figure>

使用環境に合わせて使いたいアイテムが見つかったら、そのアイテムをクリックするだけで簡単に追加することができます。

{% hint style="info" %}
\[MP] と \[SP]のビヘイビアとコンポーネント の色の識別は今後のアップデートでマルチプレイヤーとの互換性が確立された時点で削除される予定になっています。
{% endhint %}

{% hint style="warning" %}
シーンではオブジェクト がClient Only か Synchronized かどうかの表示はされませんのでご注意ください。
{% endhint %}

&#x20;**\[MP] と\[SP] のビヘイビア とコンポーネント を同じアクターに使用することはできません。**

例：\[MP] のAsker のビヘイビアを持っているものに\[SP]のIndicator のコンポーネント を設定することはできません。

<figure><img src="/files/P5jwsxwUcrIJWgZzDo3t" alt=""><figcaption></figcaption></figure>

タイプの異なる選択肢のビヘイビア やコンポーネントを設定しようとすると以下のメッセージが表示されます。

*<mark style="color:red;">**「BLOCKED BY**</mark> <mark style="color:red;"></mark><mark style="color:red;">Network policy incompatible with another Behaviour/component assigned to the actor/s」</mark>*（アクターに割り当てられたビヘイビア やコンポーネントと互換性がないためネットワークポリシーに則りブロックされました。）

<br>

<figure><img src="/files/hT9Cl6qDIVKiYyQnSWlT" alt=""><figcaption><p>[MP] のビヘイビアを持ったアクターに[SP] のコンポーネントを追加しようとすると表示されるメッセージ</p></figcaption></figure>

それぞれのバージョンが使用環境に合わせて設計されているため、上記のような使用環境が異なる機能を同時に使用すると重大な問題が発生してしまいますのでご注意ください。

### マルチプレイヤーの設定に関して

システムエラーや重大な問題等を引き起こす可能性を減らすためにアクターの**Type（タイプ）**&#x304C;常に同じであることを確認してください。

1つのアクターのすべてのビヘイビアとコンポーネントが必ずClient Only か Synchronized のどちらかになるように統一してください。

#### 1️⃣ Type（タイプ）

特定の**Type** のビヘイビアやコンポーネントがアクターに追加されている場合、反対の設定に自動的にアクセス制限がかかり、ビヘイビアやコンポーネントのウィンドウでは選択されていない方の項目は選択できなくなります。

#### 2️⃣ メッセージ

Client Only に設定されているアクターはSynchronized に設定されているアクターにメッセージを送ることができないため（反対の設定も同様）、アクターの**コミュニケーション**を設定する際にはタイプの一貫性を保つように注意してください。

#### 3️⃣ Hierarchy（ヒエラルキー）

アクターがClient Only に設定されている場合はSynchronized に設定されているアクターの親や子に設定することはできないため（反対の設定も同様）、アクターの親子関係を設定する際には統一性を保つように注意してください。

#### 4️⃣ スポーンに関連するビヘイビア やコンポーネント

Asset Spawner（アセットスポナー）のビヘイビア やReplace Asset（アセットの交換）のビヘイビア、Drop（ドロップ）のコンポーネント を使用して、体験内でスポーンされたアクターには必ずスポナーと同じType を選択してください。

Synchronized のビヘイビアはClient Only のアクターをスポーンすることはできません。（反対も同様）<br>


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://docs.sandbox.game/game-jam-japan/hajimeni/maruchipureiynitsuite.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
