Zepetoキャラクターを作成する
- 階層ウィンドウで、3Dオブジェクト → プレーンをクリックします。

- プレーンの位置をX: 0, Y: 0, Z: 0に設定し、サイズをX: 10, Y: 1, Z: 10になるように大きく設定します。

👍 ヒント
- プレーンはテスト目的のための最も基本的な床です。
- コライダーを持つオブジェクトであれば、何を使っても構いません。
- ワールド作成に慣れてくると、床を置き換えるクールなマップを作成できます。
- プラットフォームがないと、キャラクターは作成されるとすぐに落下し、表示されなくなります。
階層ウィンドウで、ZEPETO → ZepetoPlayersタブを選択します。

ZepetoPlayersというオブジェクトが自動的に作成されます。 ZepetoPlayersは、World内のキャラクターコントローラーモジュールを管理するコンポーネントです。

キャラクター制御と関連機能の値は、インスペクタウィンドウで設定できます。
- 通常、ZEPETOカメラ設定、キャラクター移動速度、ジャンプ高さなどを設定できます。
- この例では、デフォルト値を使用します。
📘 詳細な設定については、ZEPETOキャラクターコントローラーガイドを参照してください。ZEPETOキャラクターコントローラー
キャラクターをロードするには、新しいZEPETOScriptファイルを作成する必要があります。
1) [プロジェクト]パネルで、左上隅の[+]メニューを選択するか、Assets → Create → ZEPETO → TypeScriptを選択します。

2) ZEPETOScriptファイルを作成するときは、名前をCharacterControllerと入力してください。以下のようにスクリプトファイルが作成されます。

3) ヒエラルキー → [+] メニュー → Create Emptyメニューを実行します。

4) 空のGameObjectを作成するときは、CharacterControllerと記入してください。以下のようにGameObjectが作成されます。

5) 以前に作成した CharacterController ZEPETOScript ファイルを GameObject にコンポーネントとしてドラッグします。

- ZEPETOScript は、シーン内の GameObject にコンポーネントとして追加されない限り実行されません。
6) まず、キャラクターをシーンに読み込むために ZEPETO ID を入力します。 CharacterController ZEPETOScript ファイルを開き、スクリプトエディタプログラムを実行します。 次に、以下の例のスクリプトを適用します。
- [ZEPETO_ID] と書かれているところに ZEPETO ID を入力してください。
- もしあなたの ZEPETO ID が 'abcd' であれば、次のように入力する必要があります。ZepetoPlayers.instance.CreatePlayerWithZepetoId("", "abcd", new SpawnInfo(), true)
7) スクリプトを保存した後、Unityエディタに戻ってください。
- STEP 3の実行に進んでください。
- このコードを使用すると、特定のZEPETO IDのアバターでのみプレイします。
- あなたのワールドを起動するときは、コードに入力したZEPETO IDではなく、あなたのワールドにアクセスしたユーザーのZEPETO IDに基づいてコードを修正する必要があります。以下のスクリプトを使用してください。
- このスクリプトは、ログインしたIDに基づいてZEPETOキャラクターを作成し、特定のZEPETO IDを受け付けないため、テストする前にUnityエディタにログインしてください。
- スクリプトを保存した後、Unityエディタに戻ってください。
- STEP 3の実行に進んでください。
- クライアントスクリプトにローカルプレイヤー作成コードが1つだけあることを確認してください。
- 同じプレイヤーが複数作成される場合、CreatePlayerWithUserId()スクリプトが他の場所で呼び出されている可能性があります。
- 一般的な間違いは、キャラクター作成コードをこのガイドに残したままマルチプレイヤーの例コードを適用することで、キャラクターが2回作成されることです。片方をコメントアウトして管理してください。
画面の中央にある[▶︎(再生)]ボタンを使用して、CharacterControllerが正常に動作していることを確認してください。
読み込まれたキャラクターはローカルプレイヤーのキャラクターと呼ばれ、これはユーザーが自分のデバイスで直接操作できるZEPETOキャラクターを意味します。
CharacterControllerは、デバイス(PC/Mobile)に対応する各入力イベントのための共通のキャラクター制御キー割り当てを持っています。したがって、読み込まれたキャラクターはプラットフォームに関係なくシーン内で操作できます。
PCでは、キャラクターとカメラはマウスで操作できます。モバイルデバイスでは、以下のスクリーンショットに示されているように、バーチャルパッドでキャラクターとカメラを操作できます。

👍 次の入力インターフェースがキャラクター操作に対応しています: PC
- 移動:キーボードの矢印、WASD
- ジャンプ:スペース
- ダブルジャンプ:(左)シフト
- ズーム:マウスホイール
- 回転:画面ドラッグ
モバイル
- 移動:(画面左下)バーチャルパッド
- ジャンプ:(画面右下)バーチャルパッドボタン
- ズーム:(二本の指)画面ドラッグ
- 回転:(一本の指)画面ドラッグ
ZEPETOキャラクター作成が正常に機能しない場合は、次に進んでください:Unityメニュー > プロジェクト設定 > エディタ > プレイモード設定を入力。
- Enter Play Mode Optionsをオフに設定します。

ZEPETOキャラクターの開始位置は、特に設定されていない限り、UnityEngine.Vector3(0,0,0)で作成されます。
回転値もUnityEngine.Quaternion.Euler(0,0,0)の角度で生成されます。
キャラクターのスポーン位置と回転値は、ZepetoPlayers.instance.CreatePlayerWithUserId(WorldService.userId, new SpawnInfo(), true); 関数の引数SpawnInfo()を使用して設定されます。
したがって、キャラクター作成関数を呼び出す前にSpawnInfo()の希望の値を設定することができます。特定の位置にスポーンすることを確認するためです。
マップ上の位置(0,0,0)に3Dオブジェクト>キューブを事前に配置しました。
キャラクターのスポーン位置値を次のように変更すると、キューブの上にスポーンします。
画面の中央にある再生ボタンを使用して、キャラクターの作成を確認します。

位置と向きの値を変更すると、このように横たわっているキャラクターを作成することもできます。
