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

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

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

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

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

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

3) Hierarchy → [+] メニュー → Create Empty メニューを実行してください。

4) Empty GameObejctを作成する際、CharacterLoaderと記入してください。 下の画面のようにGameObjectが作成されます。

5) HierarchyでCharacterLoaderゲームオブジェクトを選択し、InspectorでAdd Componentボタンをクリックしてください。

6) Add Component ウィンドウでZepetoScript コンポーネントを追加してください。

7) Zepeto ScriptコンポーネントのAttach Zepeto Scriptボタンをクリックしてください。

8) AttachZepetoScriptウィンドウで先に作成したCharacterLoaderZEPETOScriptファイルを選択してください。

9) CharacterLoaderゲームオブジェクトを次のように構成してください。

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

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

ステップ 5 : ZEPETOキャラクターの開始位置を変更する
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オブジェクト>キューブを事前に配置しました。
キャラクターのスポーン位置値を次のように変更すると、キューブの上にスポーンします。
import { ZepetoScriptBehaviour } from 'ZEPETO.Script';
import { SpawnInfo, ZepetoPlayers, LocalPlayer, ZepetoCharacter } from 'ZEPETO.Character.Controller';
import { WorldService } from 'ZEPETO.World';
import { Quaternion, Vector3 } from 'UnityEngine';
export default class CharacterLoader extends ZepetoScriptBehaviour {
Start() {
// キャラクターのスポーン位置を設定
const spawnInfo = new SpawnInfo();
spawnInfo.position = new Vector3(0,2,0);
// キャラクターのスポーン回転を設定
spawnInfo.rotation = Quaternion.Euler(0,0,0);
// エディタを通じてzepetoにログインした際に指定されたユーザーIDを取得
ZepetoPlayers.instance.CreatePlayerWithUserId(WorldService.userId, spawnInfo, true);
ZepetoPlayers.instance.OnAddedLocalPlayer.AddListener(() => {
const player: LocalPlayer = ZepetoPlayers.instance.LocalPlayer;
});
}
}
画面の中央にある再生ボタンを使用して、キャラクターの作成を確認します。

位置と向きの値を変更すると、このように横たわっているキャラクターを作成することもできます。
// キャラクターのスポーン位置を設定
const spawnInfo = new SpawnInfo();
spawnInfo.position = new Vector3(2,1,2);
// キャラクターのスポーン回転を設定
spawnInfo.rotation = Quaternion.Euler(90,0,0);