あなたの世界を作りなさい
プレイヤーとキャラクター: 上級

ボットプレイヤー作成ガイド

15min

ボットプレイヤーは、マルチプレイヤーの世界を開始するのに十分な人数がいないときや、プレイヤーが世界から離脱したときに補填するために使用されます。

ボットプレイヤーの動作は、各コンテンツに対して実装する必要があります。

このガイドは、ボットプレイヤーを作成する一般的な方法を説明しています。

📘 ボットプレイヤー作成ガイドは、マルチプレイヤーガイドに基づいています。[マルチプレイを作る]

ステップ 1: ボットプレイヤーを作成する

1-1. マルチプレイヤースキーマに「IsBot」というブール値を追加します。

Document image




1-2. サーバースクリプト index.ts にボットプレイヤーを作成するための以下の関数を定義し、必要なポイントで呼び出します。

index.ts




👍 ヒント

  • 特定のユーザーの userId は、ボットプレイヤーキャラクターを作成するために事前に保存されています。
  • サーバーの OnJoin に接続しているクライアントの userId を確認することで、特定のユーザーの UserId を確認できます。以下のスクリプトをサーバースクリプトに書いた後、関連するワールドから接続してください。
index.ts




ステップ 2: クライアントでボットプレイヤーを作成する

2-1. サーバーがボットプレイヤーを作成する場合、クライアントはそれを OnJoinPlayer() で新しいプレイヤーとして認識します。

  • プロジェクトを作成 > 作成 > ZEPETO > TypeScript として作成し、BotPlayerManager に名前を変更します。
  • OnAddedPlayer() にロジックを追加して各プレイヤーを作成し、ボットプレイヤーを区別してその ZEPETO キャラクターを作成するロジックを追加します。
BotPlayerManager.ts




2-2. SetBotPlayer関数を作成して、ボットプレイヤーにタグと同期コンポーネントを追加し、それらを制御するスクリプトを作成します。

  • ボットプレイヤーのデータを管理するために、Map形式で_botMapDataに保存します。
BotPlayerManager.ts




👍 ヒント ボットプレイヤーの動作を制御するために、SetBotPlayer()に追加のスクリプトや設定を追加できます。



ステップ 3: クライアントにボットプレイヤーボタンを作成する

開始するために特定の数のプレイヤーが必要なワールドでは、時々プレイヤーが不足していて、ワールドが開始するまで長い間待たなければなりません。

この場合、Botプレイヤーを追加することで世界を開始できます。

3-1. index.tsでサーバーがクライアントからメッセージを受信したときにCreateBot()を実行する関数を登録します。

TypeScript




3-2. クライアントスクリプトBotPlayerManager.tsで、サーバーに"CreateBot"メッセージを送信する関数を書きます。

  • 関数を実行する方法は、ボタンを押してメッセージを送信することです。
  • 作成されるBotプレイヤーのユーザーIDを文字列としてメッセージを通じて送信します。
BotPlayerManager.ts




3-3. さて、サーバーとランタイムを実行すると、ボットプレイヤーがボタンを押すと作成されるのがわかります。

Document image




ステップ 4: ボットプレイヤーを追加して世界を開始する

プレイヤーが不足している場合、ボットプレイヤーを追加して世界を開始できます。

4-1. サーバースクリプトで、OnJoin中に以下のコードを追加して、プレイヤーの数を確認し、4人以上のプレイヤーがいるときにワールドを開始します。

  • CreateBot()内でプレイヤーの数を確認する関数を追加します。
  • StartWorld()関数内でプレイの数をカウントする機能を追加します。
index.ts




  • サーバーでは、実際のプレイヤーが部屋に参加するときに OnJoin が実行されます。したがって、CreateBot を介して Bot プレイヤーが作成され、OnJoin を介してプレイヤーが入るとき、checkPlayerNumber() は人数を追加します。



4-2. クライアントスクリプト BotPlayerManager.ts で、サーバーから StartWorld メッセージを受信したときに実行される StartWorld() を記述します。

BotPlayerManager.ts




4-3. 実行時に、Bot プレイヤーを含む 4 人以上のプレイヤーがいる場合、サーバーコンソールとクライアントのコンソールに「World Start」というログが表示されます。

Document image




ステップ 5: Bot プレイヤーの位置を同期する

以下は、追加されたボットプレイヤーをローカルプレイヤーの位置に移動させ、移動位置を同期させるサンプルコードです。

5-1. まず、サーバーのindex.tsでクライアントから受信したメッセージのときにボットプレイヤーを移動させるコードを書きます。MoveBotが受信されると、

TypeScript




5-2. クライアントスクリプトのBotPlayerManager.tsで、buttonCallBotが押されたときにローカルプレイヤーの位置をサーバーに送信するSendBotPosition()を書きます。

  • メッセージ MoveBotToPosition がサーバーから受信されたときに、すべてのボットプレイヤーをメッセージに含まれる位置情報に移動させるコードを書いてください。
BotPlayerManager.ts




5-3. さて、ランタイムでボットプレイヤーを作成し、buttonCallBot ボタンを押すと、作成されたボットプレイヤーがローカルプレイヤーのキャラクターの位置に移動するのが見えるはずです。

Document image




BotPlayerManager.tsの全コード

BotPlayerManager.ts




index.ts サーバーの完全なコード

Text