あなたの世界を作りなさい

マルチプレイ

12min

ZEPETOマルチプレイは、複数のユーザーが同時にワールドに接続してプレイできるモジュールです。

サーバー/クライアントの開発とローカルテスト環境を提供します。

📘公式マルチプレイワールドサンプル

ステップ 1 : インストール

[プロジェクト]パネルの左上の[+]メニューからZEPETO → マルチプレイサーバーを選択するか、Assets → Create → ZEPETO → マルチプレイサーバーに移動します。

Document image


World.multiplayパッケージは以下のアイテムで構成されており、ワールドが公開されると自動的に更新されます。

  • index.ts: サーバーのメインロジックコード
  • schemas: サーバー/クライアント通信のデータ構造
Document image


❗️ 注意

ゲームごとに1つのWorld.multiplayパッケージしか作成できません。

ステップ 2 : 設定

下の画像に示されているように、[ワールド設定を開く]をクリックしてワールド設定を行います。

Document image

Document image


プロパティ

説明

バージョン

登録するファイルのバージョンを入力してください。

最大クライアント数

部屋にアクセスできる最大人数を設定します。

オリエンテーション

画面の向きを選択します。

招待を無効にする

部屋の招待機能を無効にします。

部屋リストを無効にする

部屋リストを確認する機能を無効にします。

プライベートルームを無効にする

プライベートルームを作成する機能を無効にします。

👍 招待を無効にする

部屋の招待機能がオフでも、テストリンクを通じて招待を送信できます。

ステップ 3 : テストサーバーの実行

ZEPETO Multiplayは、クリエイターが開発中にサーバー/クライアントをテストできるローカルサーバー環境を提供します。

ローカルサーバーのアクションを確認するには、Unityのトップメニューから → ウィンドウ → ZEPETO → マルチプレイサーバーを選択して、サーバーステータスウィンドウを開きます。

Document image


エディターの画面中央にある[▶︎(再生)]ボタンの隣にあるサーバーボタンをクリックします。

サーバーステータスペインで次のサーバーログが表示されます。

Document image


ステップ 4 : クライアントへの接続(ローカルサーバーへの接続)

ZepetoWorldMultiplayコンポーネントは、クライアント側で使用されるマルチプレイマネージャークラスです。

HierarchyウィンドウにGameObjectを作成し、ZepetoWorldMultiplayコンポーネントを追加します。 ZepetoWorldMultiplayコンポーネントは、自動的にマルチプレイパッケージに接続します。

Document image


エディタ画面の中央にある[▶︎(再生)]ボタンをクリックして、サーバーログウィンドウでクライアント接続ログを表示します。

Document image


開発サーバーはlocalhost(127.0.0.1)で実行され、ポートはプロジェクトが最初に読み込まれるときに設定されます。

マルチプロジェクトを通じて接続する場合、接続環境を以下のように設定してください。

📘 以下のガイドを参照してください マルチプレイIPアドレスへのアクセス

👍 ワールドが配信された後、ZEPETOサーバーで実行されます。

Document image


ステップ 5 : サーバー / クライアント通信のデフォルト例

サーバーロジックの実装

World.multiplayパッケージ内のindex.tsファイルは、サーバーの主要なロジックを担当するコードです。

index.tsファイルを開き、onCreate()イベントでメッセージタイプechoを受信した後にクライアントに配信されるロジックを追加します。

📘 以下のガイドを参照してください [Zepeto.Multiplay(Server) API]

JS


クライアントロジックの実装

ZepetoWorldMultiplay GameObjectにZEPETOスクリプトを追加して、サーバーイベントを送受信するために次のようにします:

Document image

MultiplaySample.ts


📘 次のガイドを参照してください [err] 

ステップ 6 : 出力結果のテスト

エディタ画面の中央にある[▶︎(再生)]をクリックして、サーバー/クライアントを実行します。以下に示すように、'echo'タイプのメッセージの例が表示されるはずです:

Document image


① サーバーでクライアントメッセージを受信したときの出力ログ。

② クライアントからサーバーに受信したメッセージのログ。

サーバーコード使用時の注意事項

❗️ 注意

[サーバーコード内の変数の使用]

  • 変数はサーバーコード内でも宣言できます。
  • ただし、サーバーで利用可能なキャッシュメモリは現在512KBに制限されています。(これは後で変更される可能性があります。)
  • 512KBを超えると、部屋が隠れる可能性があるため、これを考慮して開発してください。

[サーバーコード内のループの使用]

  • ループの時間制限はサーバーコードで2秒(2000ms)に設定されています。
  • ブロッキングコードや長時間実行されるループを使用すると、ループの時間制限によりプログラムが正しく実行されない可能性があるため、開発時に考慮してください。



更新日 11 Oct 2024
Doc contributor
Doc contributor
このページは役に立ちましたか?