---
title: 3. Build it Unity Plug-in でワールドを飾る
slug: world-sdk-guide-ja/3-build-it-unity-plug-in
docTags: 
createdAt: 2025-04-22T02:47:22.244Z
---

# 1. 基本機能を追加する

:::hint{type="success"}
**以下の動画を見ながら、コーディングなしでワールドに様々な機能を追加してみましょう！**

**言語別の字幕に対応していますので、字幕をオンにしてご覧ください！**
:::

::embed[]{url="https://youtu.be/lqEmRnzLdGo?si=R51sWhdwIeqL27n_"}

:::BlockQuote
📌 **以下から詳しく知りたいオブジェクトをクリックしてください！**
:::

::::VerticalSplit{layout="middle"}
:::VerticalSplitItem
[Interaction オブジェクト](docId\:YS6zO0WwDusLtu_LT0ldK)

[スポーン位置を指定する](docId\:YS6zO0WwDusLtu_LT0ldK)

[サウンドを再生する](docId\:YS6zO0WwDusLtu_LT0ldK)

[ミッションタイマー](docId\:YS6zO0WwDusLtu_LT0ldK)

[ランダムな数字を生成する](docId\:YS6zO0WwDusLtu_LT0ldK)
:::

:::VerticalSplitItem
[Teleport オブジェクト](docId\:YS6zO0WwDusLtu_LT0ldK)

[BGMを再生する](docId\:YS6zO0WwDusLtu_LT0ldK)

[ウェルカムポップアップを作成する](docId\:YS6zO0WwDusLtu_LT0ldK)

[Reward Chest オブジェクト](docId\:YS6zO0WwDusLtu_LT0ldK)

[DrawingCanvas オブジェクト](docId\:YS6zO0WwDusLtu_LT0ldK)
:::
::::

## Interaction オブジェクト

**Interaction** オブジェクトは、ユーザーがアイコンをクリックするとキャラクターが特定のジェスチャーをとるようにするオブジェクトです。

- **Interaction\_bed**: キャラクターがベッドに自然に横たわるジェスチャーを再生します。
- **Interaction\_chair**: キャラクターが椅子に自然に座るジェスチャーを再生しま=す。
- **Interaction\_dance**: キャラクターが踊るジェスチャーを再生します。

インタラクションオブジェクトを修正することで、様々な形で応用できます。

- **Animation Clip の変更**: 子オブジェクトである `InteractionPoint` の Animation Clip に適用されているアニメーションファイルを差し替えると、インタラクション時に異なるジェスチャーをとるようになります。
- **Is Snap Bone**: キャラクターの位置は特定の Bone を基準に固定されます。例えば、Bone が Foot に設定されている場合、アニメーションが再生されている間、キャラクターの足が `InteractionPoint` の位置に固定されます。このチェックを外すと、オブジェクトから離れて動作するようになります。
- **Body Bone**: `Is Snap Bone` がチェックされている時に、キャラクターが固定される Bone を設定します。
- **オブジェクトの外観変更**: 外観を担当する子オブジェクトを削除し、マップ上にある他のオブジェクトを全く同じ位置に配置すると、外観が変更されます。
- **インタラクションアイコンの位置変更**: オブジェクトの外観を変更した場合は、それに合わせて子オブジェクトである `IconPos` の位置を調整してみてください。

![](https://api.archbee.com/api/optimize/BtCo2cIFh9h5Mo0EP64o_-3mec8_PR9hKEIRR718TGI-20241030-020537.png)

## スポーン位置を指定する

**SpawnPoint** オブジェクトを使用すると、ワールド開始時に ZEPETO キャラクターが生成される場所を設定できます。

- Scene に Spawn Object がない場合、ZEPETO キャラクターは x=0, y=0, z=0 の座標に生成されます。
- Spawn Object が複数ある場合、ZEPETO キャラクターはその中からランダムに1つを選択し、その位置に配置されます。

![](https://api.archbee.com/api/optimize/BtCo2cIFh9h5Mo0EP64o_-0uf2Ekf3584C0uEKtcuw_-20241030-020632.png)

## サウンドを再生する

**SFX** オブジェクトは、ユーザーがアイコンをクリックすると指定されたサウンドを再生します。オブジェクトを Scene に配置し、Inspector で設定を変更してみてください。

- **AudioClip**: Inspector ウィンドウでオーディオクリップを割り当てることができます。ここに .mp3 または .wav 形式のオーディオファイルを適用します。
- **IconPos**: ユーザーがタッチするボタンの位置を調整できます。

![](https://api.archbee.com/api/optimize/BtCo2cIFh9h5Mo0EP64o_-81sQOudoacJnA4I72juDX-20241030-020522.png)

## ミッションタイマー

**Timer** オブジェクトは、タイミング UI を表示し、ユーザーが「Start」オブジェクトをクリックすると時間の記録を開始します。ユーザーが「Arrival」オブジェクトをクリックすると、タイミング UI が消え、成功メッセージが表示されます。

Timer オブジェクトの外観やインタラクションボタンの位置を修正して、自分だけのコンセプトに合わせてデザインすることも可能です。

- **オブジェクトの外観変更**: 外観を担当する子オブジェクトを削除し、マップ上にある他のオブジェクトを同じ位置に配置すると、外観が変更されます。
- **インタラクションアイコンの位置変更**: オブジェクトの外観を変更した場合は、それに合わせて子オブジェクトである `IconPos` の位置を調整してみてください。

![](https://api.archbee.com/api/optimize/BtCo2cIFh9h5Mo0EP64o_-SNz_WMgocucenDZLD8a93-20241030-020622.png)

## ランダムな数字を生成する

**Roulette** オブジェクトを使用すると、ユーザーがアイコンをクリックした時にランダムな数字が生成され、その結果が ZEPETO のチャット画面に表示されます。

- **数字の範囲設定**: Roulette オブジェクトを選択し、Inspector ウィンドウで最小値と最大値を変更できます。

Roulette オブジェクトの外観やインタラクションボタンの位置を修正して、自分だけのコンセプトに合わせてデザインすることも可能です。

- **オブジェクトの外観変更**: 外観を担当する子オブジェクトを削除し、マップ上にある他のオブジェクトを同じ位置に配置すると、外観が変更されます。
- **インタラクションアイコンの位置変更**: オブジェクトの外観を変更した場合は、それに合わせて子オブジェクトである `IconPos` の位置を調整してみてください。

![](https://api.archbee.com/api/optimize/BtCo2cIFh9h5Mo0EP64o_-HGqhbeNLskUZw1pDRsFag-20241030-020553.png)

## Teleport オブジェクト

**Teleport** オブジェクトは、ユーザーがアイコンをクリックした時に、指定された位置へ瞬時に移動させます。

- **到着位置**: 子オブジェクトである `destination` の位置を任意の場所に移動させることで、到着地点を設定できます。

Teleport オブジェクトの外観やインタラクションボタンの位置を修正して、自分だけのコンセプトに合わせてデザインすることも可能です。

- **オブジェクトの外観変更**: 外観を担当する子オブジェクトを削除し、マップ上にある他のオブジェクトを同じ位置に配置すると、外観が変更されます。
- **インタラクションアイコンの位置変更**: オブジェクトの外観を変更した場合は、それに合わせて子オブジェクトである `IconPos` の位置を調整してみてください。

![](https://api.archbee.com/api/optimize/BtCo2cIFh9h5Mo0EP64o_-PnTjfh9CrHEty2VM0Dcd_-20241030-020545.png)



## BGMを再生する

**BGM** オブジェクトを Scene に配置すると、BGM が再生されます。Scene には1つだけ配置してください。

- **AudioClip**: Inspector ウィンドウでオーディオクリップを割り当てることができます。ここに .mp3 または .wav 形式のオーディオファイルを適用します。

![](https://api.archbee.com/api/optimize/BtCo2cIFh9h5Mo0EP64o_-lfyL1e2pJSJ2QDeh_b3RH-20241030-020513.png)

画面右側の BGM アイコンをタップすることで、ユーザーがバックグラウンドミュージックをオン／オフできます。

![](https://api.archbee.com/api/optimize/xv-TGeWVTX2GDZMFGOf1Y/I5T7Ac25AuC41H6_ONOS2_image.png)

## ウェルカムポップアップを作成する

**Popup** オブジェクトは、ワールド入場時に表示されるポップアップウィンドウです。ポップアップ内のボタンをクリックすると、自動的にウィンドウが閉じます。

ポップアップウィンドウを利用して、ワールドの紹介や独自のイベントを宣伝してみましょう！

:::hint{type="danger"}
**注意事項**

- Popup ウィンドウは、床に配置するタイプのオブジェクトではありません。
- UI 画面領域に配置され、Game ビューで確認できます。
:::

Hierarchy で Popup を選択し、Inspector でプロパティを変更できます。変更した内容は Play モードで確認可能です。

- **Background Image**: 2D スプライト画像をドラッグして変更できます。
- **Message**: メッセージのテキストを変更できます。
- **Message Color**: メッセージテキストの色を変更できます。
- **Message Shadow**: メッセージテキストの影効果をオン／オフできます。
- **Button Title**: ボタンのテキストを変更できます。

![](https://api.archbee.com/api/optimize/BtCo2cIFh9h5Mo0EP64o_-LK33ZoHZSmXIA7jUT9L_Y-20241101-030457.png)

## Reward Chest オブジェクト

**Reward Chest** をワールドに配置すると、プレイするユーザーがイベント内容に応じて ZEM や Coin を獲得できます。

ユーザーが Reward Chest のあるワールドに入場すると、そのワールドに存在する Reward Chest の数を案内するポップアップが表示されます。

![](https://api.archbee.com/api/optimize/xv-TGeWVTX2GDZMFGOf1Y/4Hhp2HzazysI1dh9SbGeD_popup.gif)

Reward Chest をワールド内の秘密の場所に隠したり、ジャンプマップのゴール地点に配置して、プレイヤーに報酬をプレゼントしてみましょう！

![](https://api.archbee.com/api/optimize/xv-TGeWVTX2GDZMFGOf1Y/ArYdSd6c2plUU6Qc7sN5e_reward.gif "Reward Chest から報酬を獲得する様子")

- 動作ロジック
  - ワールドクリエイターは、自分のワールドの適切な場所に Reward Chest を配置してください。
    - あまりにも見つけやすい場所には配置しないでください。
    - 報酬が簡単に獲得できすぎる場合、審査を通過できなかったり、予告なくワールドが取り下げられることがあります。
    - ワールドクリエイター自身も、自分のワールドで報酬を獲得できます。

![](https://api.archbee.com/api/optimize/xv-TGeWVTX2GDZMFGOf1Y/d1wECjm8cjBHAzKCjBPsE_image.png)

- **Timeout** - Reward Chest を利用してワールドの滞在時間を延ばしたい場合は、報酬を獲得する前に少しカウントダウンを追加してみてください。
  - Timeout フィールドにカウントダウン時間（単位：秒）を入力します。デフォルト値は60秒です。
    - 0を入力すると、カウントダウンなしですぐに報酬を獲得できます。
- **Activated Icon Color**
  - カウントダウンが始まる前は、インタラクションアイコンが白色で表示されます。カウントダウンが完了すると、アイコンの色が設定した色に変更されます。
- **Group id**
  - 同じ Group id を持つ箱のうち、1つだけが表示されます。
  - もし異なる Group id を指定した場合は、それぞれのグループから1つずつ箱が表示されます。

:::hint{type="danger"}
**注意事項**

- ZEM / Coin 獲得イベントは ZEPETO 側で進行されるため、ワールドクリエイターがイベント自体を設定することはできません。
- 1人がイベントで獲得できる報酬には上限があり、上限に達した場合はそれ以上報酬を獲得できません。
- イベント期間外の場合は Reward Chest が表示されず、報酬を獲得することはできません。
:::



## DrawingCanvas オブジェクト

**DrawingCanvas**は、ワールド内でプレイヤーが自由に絵を描くことができるキャンバスオブジェクトです。

自動的に**マルチプレイ同期**がサポートされるため、同じワールドに接続している他のユーザーとリアルタイムで絵を描きながらコミュニケーションをとることができます。

友達と一緒に自由に落書きをして遊ぶ空間を作ったり、絵を描いて正解を当てるクイズゲームを企画したりするなど、自分だけのクリエイティブなアイデアでワールドに幅広く活用してみてください！

![Drawing Canvas Object](https://api.archbee.com/api/optimize/xv-TGeWVTX2GDZMFGOf1Y/IRJg7YRVf1f1s1M-W_Y6s_group-22.png)

- **Build it Asset Browser > Utility**から **DrawingCanvas** オブ젝트を選択してください。
- **Scene** 上の希望する位置に配置してください。

::Image[]{src="https://api.archbee.com/api/optimize/xv-TGeWVTX2GDZMFGOf1Y/dc0QBXbqs2OxO-f6hktlj_drawing.png" size="60" isUploading="false" width="418" height="378" darkWidth="418" darkHeight="378" alt="DrawingCanvas placed in Hierarchy" showCaption="false"}

- **Hierarchy** ウィンドウで、`DrawingCanvas` オブジェクトが `Objects` の下（子オブジェクト）に正しく入っているか必ず確認してください。

### ドローイング機能を使用する

::Image[]{src="https://api.archbee.com/api/optimize/xv-TGeWVTX2GDZMFGOf1Y/8B9e46WazMe310jD9_G5m_image-18.png" size="80" isUploading="false" width="893" height="498" darkWidth="893" darkHeight="498" alt="DrawingCanvas" showCaption="false"}

ワールドを訪れたユーザーは、キャンバスに近づくことで、以下のような様々なドローイング機能を直接体験できます。

- **ドローイングモードへの進入**: キャンバスに近づくと、ドローイング UI アイコンが表示されます。このアイコンをタップすると、ドローイングモードが開始されます。
- **ブラシおよびカラーの設定**:
  - **ブラシのサイズ調整:** 左側の Bar を利用してブラシのサイズを調整し、好きな色を自由に選ぶことができます。
  - **カラーの濃さ調整:** 右側の Bar を動かして、色の彩度を調整できます。
- **消しゴム**: 消しゴムツールを活用して、描き間違えた部分を簡単に消して修正できます。
- **ペイント缶**: ブラシで線を描いて範囲（閉じられた領域）を作った後、その内側をタッチすると、選択したカラーで領域が一度に塗りつぶされます。
- **元に戻すおよびやり直し**: 前の段階に戻したり、戻した作業を再び復元したりできます。ただし、この機能は最大3段階までしかサポートされていませんのでご注意ください。
- **すべて消去**: キャンバスに描かれたすべてのものを消去できます。

:::hint{type="success"}
**マルチプレイ使用ルール**

- **1つのキャンバスに描けるのは1人のみです:** あるユーザーがキャンバスに絵を描き始めると、そのキャンバスは該当ユーザーが占有している状態になります。他のユーザーにはドローイングアイコンが完全に非表示になるため、誰かがすでに絵を描いているキャンバスに他の人が追加で描くことはできません。
- **自分が描いていたキャンバスはいつでも続きを描くことができます:** 自分が絵を描いたキャンバスにはアイコンが表示され続けるため、自由に続きを描くことができます。
- **ルームから退出するとキャンバスが初期化されます:** 絵を描いていたユーザーがルーム(Room)から退出すると、キャンバスに描かれた絵が消去されます。キャンバスは再び誰でも絵を描くことができる空の状態に戻ります。
- **配置個数の推奨（最適化）:** キャンバスの配置個数に理論的な制限はありません。ただし、スムーズなワールド最適化を考慮し、1つのワールドにつき10個以内に配置することをお勧めします。
:::



# 2. NPC オブジェクト

:::BlockQuote
📌 **以下から詳しく知りたいオブジェクトをクリックしてください！**
:::

::::VerticalSplit{layout="middle"}
:::VerticalSplitItem
[基本 NPC オブジェクト](docId\:YS6zO0WwDusLtu_LT0ldK)

[対話型 NPC オブジェクト](docId\:YS6zO0WwDusLtu_LT0ldK)
:::

:::VerticalSplitItem
[NPC Dialogue の設定](docId\:YS6zO0WwDusLtu_LT0ldK)
:::
::::

## 基本 NPC オブジェクト

ZEPETO ID を入力して NPC キャラクターを作成できます。NPC オブジェクトを Scene に配置し、Inspector で設定を変更してみてください。

編集モードでは NPC は表示されず、Play を押した時に NPC が登場します。

以下のプロパティを活用して、NPC を設定してみましょう。

![](https://api.archbee.com/api/optimize/xv-TGeWVTX2GDZMFGOf1Y/zanv6Go2AsBVQpKyEjLIs_image.png "Basic NPC Object")

- **Zepeto ID**: 使用する ZEPETO アカウントの ID を入力します。
- **Dialogue**
  - **Has Speech Bubble**: 有効にすると、プレイヤーが NPC に近づいた時に吹き出しが表示されます。
  - **Speech Bubble Text**: NPC キャラクターの吹き出しテキストを入力します。
    - 吹き出しテキストは複数登録できます。
      - ボタンを押して新しいテキストを追加したり、- ボタンを押して既存のテキストを削除できます。
  - **Randomize Dialogue**: NPC の吹き出しテキストが表示される順序をランダムに設定できます。
    - このチェックを外すと、最初のテキスト（Element 0）から順番に表示されます。
  - **Speech Bubble Text Duration:** 吹き出しテキストが画面に表示される時間を秒単位で設定します。
  - **Speech Bubble Prefab:** 吹き出しの Prefab デザインです。
  - **Speech Bubble Y Offset:** キャラクターの頭の位置を基準に、吹き出しの Y 軸（高さ）の位置を調整できます。
- **Animations**
  - **Dialogue Animations:** 会話が再生される時に一緒に再生されるキャラクターのアニメーションリストです。
    - `Speech Bubble Text` の順序と一致するアニメーションが再生されます。
    - もし現在の会話の順番に対応するアニメーションが指定されていない場合は、リストの最初（Element 0）のアニメーションがデフォルトで再生されます。
  - **Idle Animation:** `Enable Movement` が無効になっている場合、キャラクターが立ち止まっている時に再生されるアニメーションです。
- **Movement**
  - **Enable Movement:** 有効にすると、キャラクターが指定された領域内をランダムに動き回ります。
    - その場に留まる NPC にしたい場合は、このオプションをオフにしてください。
  - **Movement Area:** NPC が動き回れる活動領域を Box Collider コンポーネントで指定します。
    - Box Collider のサイズと位置を調整して、NPC の活動範囲をカスタマイズできます。
    - Box Collider の線は、Play モード時には非表示になります。
  - **Min Idle Time:** 移動後、次の移動を開始するまでの最小待機時間（秒）です。
  - **Max Idle Time:** 移動後、次の移動を開始するまでの最大待機時間（秒）です。
- 使用例

![](https://api.archbee.com/api/optimize/xv-TGeWVTX2GDZMFGOf1Y/j1R6COt4PX1k8bdYSPk4U_image.png)

## 対話型 NPC オブジェクト

![](https://api.archbee.com/api/optimize/xv-TGeWVTX2GDZMFGOf1Y/O8PhoJvXt4of5z2eSyeqt_group-20.png)

**NPC\_v2 オブジェクト**には、プレイヤーが近づいてインタラクション（相互作用）した時に本格的な対話モードに移行する **Dialogue（対話）**&#x6A5F;能が追加されました。

基本的な設定方法は「基本 NPC オブジェクト」と同じですが、Dialogue 専用に新しく追加されたプロパティがあります。以下の違いを確認してみてください！

- **Zepeto ID, Animations, Movement** : 基本 NPC と全く同じように動作します。

::Image[]{src="https://api.archbee.com/api/optimize/xv-TGeWVTX2GDZMFGOf1Y/TkOZLEQSlSkXegfwMzGab_group-21.png" size="64" width="502" height="557" darkWidth="502" darkHeight="557" position="center" caption="NPC_v2 " showCaption="true"}

- **Npc Name** : 対話画面に表示される NPC の名前を入力します。
- **Dialogue Id** : 適用する対話ファイルの名前を入力します。

## NPC Dialogue の設定

新しい **NPC Dialogue System** を活用すれば、ワールドにさらに楽しく生き生きとした NPC を追加できます！

![](https://api.archbee.com/api/optimize/xv-TGeWVTX2GDZMFGOf1Y/1huH_rY1OkPfQxEnEhtC2_image.png)

単純な一問一答ではなく、ユーザーの選択によって**物語が続いていく対話システム**を作成できます。

多言語対応（Localization）機能により、世界中のグローバルユーザーとコミュニケーションをとり、誰もが自然に会話に没入できるシステムを構築できます。

### 1. Dialogue Helper を活用する

::Image[]{src="https://api.archbee.com/api/optimize/xv-TGeWVTX2GDZMFGOf1Y/dZsdPGy7tfM7RbOgLUlZ3_image.png" size="46" width="536" height="634" position="center" caption="Dialogue Helper" darkWidth="536" darkHeight="634" showCaption="true"}

**Dialogue Helper** は、ダイアログの作成と NPC の割り当てを1か所で管理できる中央制御メニューです。

- 上部メニューの **ZEPETO > Dialogue Helper** を選択してウィンドウを開きます。
- **NPC フィールド** : Scene で現在選択されている NPC を表示します。`ZepetoNPC` Component を持つ GameObject を選択すると自動的に更新されます。（自動更新されない場合は、**Refresh** を押してください）。

::Image[]{src="https://api.archbee.com/api/optimize/xv-TGeWVTX2GDZMFGOf1Y/kEYc9XIBgjQJWtjfvpXRA_group-16.png" size="58" width="381" height="324" position="center" darkWidth="381" darkHeight="324" showCaption="false"}

- **Dialogue フィールド** : 現在の NPC にリンクされているダイアログを表示します。ここをクリックすると、目的のダイアログアセット（Node Graph Asset）を簡単に選択して割り当てることができます。
- **Export ボタン** : ダイアログの設定を完了した後、実際のワールドで正しく動作するようにデータを適用するボタンです。NPC のセリフをすべて入力した後は、**必ずこのボタンを押して**ダイアログアセットを最終的に生成する必要があります。
- **Dialogue フォルダ** : これまでに作成したすべてのダイアログアセット（Node Graph Asset）が保存されているフォルダを開きます。
- **Create New** : 新しいダイアログアセット（Node Graph Asset）を作成します。

:::hint{type="success"}
**ダイアログアセット（Node Graph Asset）とは？**
あなたが作成したセリフの内容が保存される**対話ファイル**です。
実際のワールドで NPC が設定した通りに話すためには、このファイルが必要です。
:::

### 2. Dialogue Graph Editor（ノードエディター）を活用する

**Dialogue Helper** で **Create New** を押すか、ダイアログアセットを開くと **Dialogue Graph Editor** が表示されます。

このエディターは、会話ボックス同士を視覚的に接続することで、複雑な対話フローを直感的にデザインできるツールです。ユーザーの選択によって会話がどのように分岐していくかを確認しながら作成できます。

![](https://api.archbee.com/api/optimize/xv-TGeWVTX2GDZMFGOf1Y/TMpPLc8fY8eMDeNEimZdQ_image.png "Dialogue Graph Editor")

**Dialogue Graph Editor の使い方**

![](https://api.archbee.com/api/optimize/xv-TGeWVTX2GDZMFGOf1Y/J3QwwBROtvRsFflZo3FRc_group-17.png "How to use Dialogue Graph Editor")

- **Minimap**: 対話の構造が複雑になりノードが増えた時に、全体の流れを一目で把握できるようにサポートするマップです。現在の画面がどこを映しているかを確認したり、目的の位置へ素早く画面を移動させる際に便利です。
- **Info**: Dialogue Graph Editor 内で使用する基本的な操作方法やショートカットキーを案内してくれます。

**主要な Node の種類**

::Image[]{src="https://api.archbee.com/api/optimize/xv-TGeWVTX2GDZMFGOf1Y/YGNKKmXDfMvx9fZ0LDV5z_image.png" size="46" width="498" height="706" position="center" caption="NPC Node" darkWidth="498" darkHeight="706" showCaption="true"}

- **NPC Node**: NPC のセリフやプレイヤーの返答（選択肢）を入力するコアとなる Node です。
  - **What the NPC says**: NPC が話すセリフを入力するフィールドです。
  - **Gesture**: 会話中に NPC が見せるアニメーションを選択できます。
    - よく使われるジェスチャーは、ドロップダウンリストから直接選択して適用できます。
      - 提供されるアクション: **Idle**, **Talk**, **Laugh**, **Think**, **Ok**, **No**, **Hi**, **Bye**.

::Image[]{src="https://api.archbee.com/api/optimize/xv-TGeWVTX2GDZMFGOf1Y/CrkEYK2q0yLLwv8nCVZTc_dialogue.png" size="78" width="674" height="428" darkWidth="674" darkHeight="428" position="center" caption="Custom Gesture" showCaption="true"}

:::Paragraph{listStyleType="disc" indent="3"}
リストにない独自のジェスチャーを使用したい場合は、**Custom** を選択し、**Custom Animation** フィールドに**連携するアニメーション名と全く同じ名前**を入力してください。
:::

:::Paragraph{listStyleType="disc" indent="3"}
リンクさせたいキャラクターのアニメーションファイルは、Unity プロジェクト内の `Resources/Animations/` **フォルダ**に配置してください。
:::

:::hint{type="danger" indent="4"}
**注意事項**
**Custom** ジェスチャーを使用する際、入力したアニメーションファイル名に誤字があるか、該当するファイルが存在しない場合は警告ポップアップが表示され、**Export することができません**。
:::

- **Answer options**: プレイヤーが選択できる返答を1〜3個まで追加できます。
  - 各返答に Node を繋げることで、ユーザーの選択に応じて新しい会話に分岐させることができます。
- **End Node**: 会話が終了するポイントを表します。プレイヤーがこの Node に繋がっている選択肢を選ぶと、対話が終了します。

***

**グラフの編集と接続**

ダイアログキャンバス上で、以下の方法で Node を作成・接続できます。

- 空白のスペースを**右クリック**して新しい Node を作成（**Create Node**）したり、既存の Node をコピー・削除できます。
- 選択肢（Answer options）の右側にある **Output ポート**をドラッグして、次の Node の **Input ポート**に繋げると、会話のフローが完成します。

:::hint{type="success"}
**TIPs**

以下の方法で画面をナビゲートできます。

- **画面移動（Navigation）:**
- **マウスの中央ボタン**（ホイールクリック）
- **マウスの左ボタン + Option/Alt (⌥) キー**

**選択＆メニュー（Selection & Menu）:**

- **単一選択:** マウスの左ボタン（クリック）
- **領域選択:** マウスの左ボタン（ドラッグして四角形で選択）
- **Node メニューを開く:** マウスの右ボタン（クリック）
:::

***

**多言語（Localization）対応の設定**

::Image[]{src="https://api.archbee.com/api/optimize/xv-TGeWVTX2GDZMFGOf1Y/X-pD1SQ59Yob7uCAi0Zmm_image.png" size="80" width="998" height="868" position="center" caption="Localization" darkWidth="998" darkHeight="868" showCaption="true"}

- **Inspector ウィンドウの設定**: 生成したダイアログアセット（Node Graph Asset）をクリックし、Inspector ウィンドウでサポートする言語（英語、韓国語、日本語など）をチェックします。

![](https://api.archbee.com/api/optimize/xv-TGeWVTX2GDZMFGOf1Y/DkNL6q-yMPRz81r6VOrM8_group-8.png " Language Selector")

- **エディターツールバーの活用**: エディターウィンドウの左上にある **Language Selector** で言語を切り替えながら、各言語に対応した翻訳テキストを直接入力できます。

### 3. 新しい NPC Dialogue を作成する

::::WorkflowBlock
:::WorkflowBlockItem
**ダイアログの作成**

- **Dialogue Helper** ウィンドウで **Create New** をクリックします。

::Image[]{src="https://api.archbee.com/api/optimize/xv-TGeWVTX2GDZMFGOf1Y/nq91ZFLWXZoqMPeeXDgx-_group-11.png" size="80" width="705" height="502" position="center" caption="Create New Dialogue" darkWidth="705" darkHeight="502" showCaption="true"}

- 自動的に開く **Dialogue Editor** で、NPC のセリフやプレイヤーの選択肢を自由に編集し、ダイアログノードを構築してください。
:::

:::WorkflowBlockItem
**NPC を指定する**

![](https://api.archbee.com/api/optimize/xv-TGeWVTX2GDZMFGOf1Y/dyS5ZDYKgep6QGzAV8DS8_group-13.png "Assign an NPC")

- Hierarchy ウィンドウで、ダイアログを追加したい NPC オブジェクトをクリックします。
- そのオブジェクトが Inspector ウィンドウで `ZepetoNPC` Component を持っているか確認してください。
- NPC を Dialogue Helper の「NPC」フィールドにドラッグ＆ドロップして割り当てます。
:::

:::WorkflowBlockItem
**ダイアログの割り当てと Export**

![](https://api.archbee.com/api/optimize/xv-TGeWVTX2GDZMFGOf1Y/YLATe_VGG3v3r2j3L9CWm_group-15.png "Assignment and Export")

- Dialogue Helper の **Dialogue フィールド** をクリックして、作成したばかりのダイアログアセットをリンクさせます。
- 適用が完了したら、ワールド内で正しく動作するように **Export** ボタンをクリックしてください。
:::

:::WorkflowBlockItem
**Inspector の最終確認**
NPC の Inspector ウィンドウ（`ZepetoNPC` Component）で設定が正しいか確認します。

- **NPC**: 正しい NPC アセットが割り当てられているか確認します。
- **Dialogue Id**: 文字列が選択したダイアログアセットと一致しているか確認します。

![](https://api.archbee.com/api/optimize/xv-TGeWVTX2GDZMFGOf1Y/DCql1JOw-kbQHgSVAnpfA_group-10.png "Final Check")
:::
::::

:::hint{type="success"}
**TIPs**

- 同じ NPC ダイアログアセットを、複数の NPC に簡単に再利用できます。
- 作業したセリフの内容が実際のゲームに正しく反映されるよう、ダイアログを修正した後は**こまめに Export** を行ってください。
:::

:::hint{type="danger"}
**FAQ**

- **ダイアログが設定した通りに動作しない場合:** Export を行ったか、Inspector に Dialogue Panel と Dialogue Id が正確に入力されているか確認してください。
- **ツール上で NPC 情報が更新されない場合:** Dialogue Helper ウィンドウで **Refresh** ボタンを押すか、Hierarchy で NPC を再度クリックしてみてください。
:::

# 3. Vehicle オブジェクト

## Vehicle

Vehicle テーマの公式車両をワールドに配置すると、プレイヤーが乗って運転できるようになります。

![](https://api.archbee.com/api/optimize/xv-TGeWVTX2GDZMFGOf1Y/AXa4Fg1gfAXhG7-xvhk_o-20250925-071339.png)

:::hint{type="danger"}
同じ名前の車両を Scene に複数配置すると、エラーが発生する場合があります。車両ごとに名前を変更してください。
:::

***

- 車両ごとに速度を変更できます。車両ごとに速度を変えて、レーシングゲームを作ってみましょう！
  - 速度設定の場所
    - **Assets/BuilditTemplate/Themes/ZepetoAsset\_Vehicle/Settings** フォルダに移動します。
    - 車両ごとのスクリプトファイルを選択すると、右側の Inspector で数値を編集できます。
  - 速度設定
    - `rotateAnglePerFrame`: ハンドルをどれくらい速く回せるか（ハンドリングの感度）
    - `accSpeedPerFrame`: 車がどれくらい速く加速するか
    - `decreaseSpeedPerFrame`: 車がどれくらい速く減速するか
    - `magnification`: 車の基本速度
    - `backMagnification`: バックする時の速度
    - `boostMagnification`: ブースターを使った時の速度
    - `boostDuration`: ブースターがどれくらい長く持続するか

![](https://api.archbee.com/api/optimize/xv-TGeWVTX2GDZMFGOf1Y/ugijVAXP2BoqfiCTBYRYT-20250926-055419.png)

**応用テクニック**

- 車両の下にある外観担当のオブジェクトを差し替えることで、全く違う見た目の乗り物に変えることができます。
  - プレイヤーにユニークなオブジェクトに乗らせてみましょう！

![](https://app.archbee.com/api/optimize/xv-TGeWVTX2GDZMFGOf1Y/dAaOKzaNHJGj1asY9Xopq-20250925-073225.png)

## vehicle\_vendor

Vehicle テーマ内の `vehicle_vendor` をワールドに配置すると、プレイヤーがベンダーオブジェクトとインタラクションして車両を呼び出すことができます。

![](https://api.archbee.com/api/optimize/xv-TGeWVTX2GDZMFGOf1Y/vR4Gk3N4-UedsM9E1tAt--20250925-073522.png)

- ベンダーの構成
  - `Booth`: ベンダーの形／見た目を決めることができます。
  - `Popup`: プレイヤーがベンダーのボタンを押した時に画面に表示される、車を選ぶためのウィンドウです。
  - `SpawnLocation`: 呼び出された車がどこに現れるかを決めることができます。

## AdVehicleSpawner

Utility テーマ内の `AdVehicleSpawner` を配置すると、プレイヤーが広告を見た後に車両に乗ることができるようになります。

![](https://api.archbee.com/api/optimize/xv-TGeWVTX2GDZMFGOf1Y/uqviCrOh2sXMSDFc7OacZ-20250925-073530.png)

- 注意事項
  - 広告報酬の車両は、プレイヤーが運転している間のみ維持されます。
  - 車から降りると、車はすぐに消えてしまいます。
- Spawner の構成
  - `Vehicle Prefab`: 広告報酬としてどの車両を提供するかを決めることができます。
  - `Spawn Point`: 広告を見た後に車がどこに現れるかを決めることができます。
  - `Life Time`: 車が消えるまでの時間を決めることができます。時間を「0秒」に設定すると、プレイヤーが降りるまでずっと乗り続けることができます。

# 4. ジャンプマップの必須アイテムを追加する

:::hint{type="success"}
**以下の動画を見ながら、ジャンプマップに様々なオブジェクトを追加してみましょう！**

**言語別の字幕に対応していますので、字幕をオンにしてご覧ください！**
:::

::embed[]{url="https://youtu.be/MhQ4OnuvHKY"}

:::BlockQuote
📌 **以下から詳しく知りたいオブジェクトをクリックしてください！**
:::

::::VerticalSplit{layout="middle"}
:::VerticalSplitItem
[動く足場を使用する](docId\:YS6zO0WwDusLtu_LT0ldK)

[時限爆弾](docId\:YS6zO0WwDusLtu_LT0ldK)

[バフ足場](docId\:YS6zO0WwDusLtu_LT0ldK)

[拡大縮小する足場](docId\:YS6zO0WwDusLtu_LT0ldK)

[跳ね上がる足場](docId\:YS6zO0WwDusLtu_LT0ldK)

[点滅する足場](docId\:YS6zO0WwDusLtu_LT0ldK)
:::

:::VerticalSplitItem
[ベルトコンベア](docId\:YS6zO0WwDusLtu_LT0ldK)

[回転する足場](docId\:YS6zO0WwDusLtu_LT0ldK)

[落ちる足場](docId\:YS6zO0WwDusLtu_LT0ldK)

[触れると死ぬ罠](docId\:YS6zO0WwDusLtu_LT0ldK)

[チェックポイント](docId\:YS6zO0WwDusLtu_LT0ldK)
:::
::::

## 動く足場を使用する

**MovingPlatform** オブジェクトは、ジャンプマップで非常に役立つ動く足場です。キャラクターが乗ることができ、動く軌道や速度を簡単に設定できます。

マルチプレイの同期が自動的に行われるため、ルームに接続している全員に同じ動きが表示されます。

子オブジェクトである `MovingPlatformManager` でプロパティを設定できます。

- **Sync Type**: 同期設定のプロパティです。
  - Sync: マルチプレイの同期を使用します。
  - NoneSync: 同期を使用しません。
- **Tween Type**: DOTween がどのように往復運動するかを指定するプロパティです。
  - Circulation: 円形に循環します。1 -> 2 -> 3 -> 4 -> 1 -> 2 -> 3 -> 4
  - Linear: 線形に、来た道を戻ります。1 -> 2 -> 3 -> 4 -> 3 -> 2 -> 1
  - TeleportFirstPoint: 終点に到達すると最初の地点にテレポートし、再び循環します。1 -> 2 -> 3 -> 4 -> 1(テレポート)
- **Loop Type**: 何回循環するかを指定するプロパティです。
  - Repeat: 繰り返し続けます。
  - JustOneWay: 片道のみ動作します。
  - JustOneRoundTrip: 往復1回のみ動作します。
- **Sync Extrapolation**: サーバーの遅延時間を考慮して、追加で位置を計算します。
  - デフォルト: true
- **Tween Position**
  - 足場が動く `localPosition` の座標を入力します。足場は Tween Type と入力した座標の順序に従って動きます。
  - 始点と終点のために、最低2つ以上の座標を設定する必要があります。
- **Move Speed**: オブジェクトの移動速度です。

MovingPlatform オブジェクトの外観を修正して、自分だけのコンセプトに合わせてデザインすることも可能です。

- **オブジェクトの外観変更**: 外観を担当する子オブジェクトを削除し、マップ上にある他のオブジェクトを同じ位置に配置すると、外観が変更されます。

::Image[]{src="https://api.archbee.com/api/optimize/BtCo2cIFh9h5Mo0EP64o_-UWN2-Nf9GSPizhqtxtm1o-20241030-020642.png" size="50" width="381" height="817" position="center" darkWidth="381" darkHeight="817" showCaption="false"}



## 時限爆弾

**BombTrap** は、キャラクターが触れると爆発するトラップオブジェクトです。

爆発が発生した時にキャラクターが爆発範囲内にいた場合、最後のチェックポイントまたは SpawnPoint の位置に移動させられます。

- **Fuse Duration**: 爆弾に火がついてから爆発するまでにかかる時間（単位：秒）
- **Explosion Range**: 爆発が適用される範囲
- **Show Timer**: このフィールドにチェックを入れると、爆発までの残り時間がオブジェクトの上に表示されます。

![](https://api.archbee.com/api/optimize/xv-TGeWVTX2GDZMFGOf1Y/O-18MDFU1LpXJgoU_niD__group-2471.png)

## バフ足場

**BuffPanel** は、キャラクターがその上に乗った時に移動速度とジャンプ力を変更してくれるオブジェクトです。

マップのあちこちに配置して、特定の区間でキャラクターの能力を強化したり制限したりするなど、様々な演出に活用してみてください。

- **Walk Speed**: オブジェクト上でキャラクターが歩く速度
- **Run Speed**: オブジェクト上でキャラクターが走る速度
- **Jump Power**: オブジェクト上でのキャラクターのジャンプ力

:::hint{type="success"}
**✏️ Tip**

- キャラクターの歩く速度や走る速度を速くしたい場合は10や20のような正の値を、遅くしたい場合は-3のような負の値を入力してみてください。
- 区間ごとに速度を変えて、ミッション区間やパズル要素など、自由に応用してみましょう！
:::

![](https://api.archbee.com/api/optimize/xv-TGeWVTX2GDZMFGOf1Y/fC7gPycpV4LUMqnIEn16S_group-2472.png)

## 拡大縮小する足場

**ScaleTrap** は、一定の周期で小さくなったり大きくなったりを繰り返すプラットフォームです。

ジャンプマップやタイミングが重要なコースに配置して、様々な難易度を演出してみましょう。

- **Timeout**: オブジェクトが最大サイズになった状態で維持される時間（単位：秒）
- **Speed**: オブジェクトが大きくなったり小さくなったりする速度

![](https://api.archbee.com/api/optimize/xv-TGeWVTX2GDZMFGOf1Y/Ljp2ymW5ssZd-T481JQPV_group-2473-1.png)

## 跳ね上がる足場

**SpringPlatform** は、一定の時間間隔でキャラクターを自動的にジャンプさせるプラットフォームで、キャラクターは何も操作しなくても上に跳ね上がります。

- **Jump Power**: キャラクターを上に跳ね上げる力
- **Delay Jump Timer**: 各ジャンプの間の間隔（単位：秒）

![](https://api.archbee.com/api/optimize/xv-TGeWVTX2GDZMFGOf1Y/V5VGGBavTodD5Mpit2tSU_group-2474-1.png)

## 点滅する足場

**BlinkingPlatform** は、一定時間ごとに現れたり消えたりを繰り返すオブジェクトです。

- **Visible Time**: BlinkingPlatform が表示されている時間（秒）を変更できます。
- **Invisible Time**: BlinkingPlatform が非表示になる時間（秒）を変更できます。
- **オブジェクトの外観変更:** 外観を担当する子オブジェクトである `Model` を削除し、マップ上にある他のオブジェクトを同じ位置に配置すると外観が変更されます。外観を変更した場合は、Collider が変更された外観と合うように、Inspector ウィンドウで Collider のサイズと位置を調整してください。

![](https://api.archbee.com/api/optimize/xv-TGeWVTX2GDZMFGOf1Y/u9FjZnnStwwAYh7219bhr_image.png)

## ベルトコンベア

**Conveyor** オブジェクトは、キャラクターがまるで本物のベルトコンベアの上に立っているかのように動かしてくれます。

キャラクターが Conveyor の上に立つと、設定された速度で前に進みます。

キャラクターが Conveyor の上で矢印の方向に動くと、歩く速度や走る速度が速くなります。

逆に矢印と反対方向に動くと、歩行速度や走行速度が遅くなります。

- **Conveyor Speed**: ベルトコンベアが動く速度を変更できます。
- **オブジェクトの外観変更:** 外観を担当する子オブジェクトである `Model` を削除し、マップ上にある他のオブジェクトを同じ位置に配置すると外観が変更されます。外観を変更した場合は、Collider が変更された外観と合うように、Inspector ウィンドウで Collider のサイズと位置を調整してください。

![](https://api.archbee.com/api/optimize/xv-TGeWVTX2GDZMFGOf1Y/Cj3CkUWs-17yEKYDu7V0l_image.png)

## 回転する足場

**(1) キャラクターが一緒に回転する**

**RotatingPlatform** は、キャラクターが乗ることができる回転するプラットフォームです。

- **x Speed**: RotatingPlatform が x 軸方向に回転する速度を変更できます。
- **y Speed**: RotatingPlatform が y 軸方向に回転する速度を変更できます。
- **z Speed**: RotatingPlatform が z 軸方向に回転する速度を変更できます。
- **オブジェクトの外観変更:** 外観を担当する子オブジェクトである `Model` を削除し、マップ上にある他のオブジェクトを同じ位置に配置すると外観が変更されます。外観を変更した場合は、Collider が変更された外観と合うように、Inspector ウィンドウで Collider のサイズと位置を調整してください。

![](https://api.archbee.com/api/optimize/xv-TGeWVTX2GDZMFGOf1Y/pnrBU4TQkPcLBCbmxE_JT_image.png)

**(2) キャラクターはそのまま、オブジェクトのみ回転**

**Rotator** は、単に視覚的に回転するだけのオブジェクトです。キャラクターが乗った時にキャラクターを一緒に動かすことはできないため、主に装飾用として使用します。

- **x Speed**: Rotator が x 軸方向に回転する速度を変更できます。
- **y Speed**: Rotator が y 軸方向に回転する速度を変更できます。
- **z Speed**: Rotator が z 軸方向に回転する速度を変更できます。
- **オブジェクトの外観変更:** 外観を担当する子オブジェクトである `Model` を削除し、マップ上にある他のオブジェクトを同じ位置に配置すると外観が変更されます。外観を変更した場合は、Collider が変更された外観と合うように、Inspector ウィンドウで Collider のサイズと位置を調整してください。

![](https://api.archbee.com/api/optimize/xv-TGeWVTX2GDZMFGOf1Y/ULA7kKiMecYUB_puPCWMx_image.png)

## 落ちる足場

**FallingPlatform** は、キャラクターが触れてから一定時間が経過すると下へ落ちるオブジェクトです。

- **Duration**: キャラクターが触れた後、落ちずに留まっている時間（秒）を変更できます。
- **Falling Speed**: FallingPlatform が落ちる速度を変更できます。
- **Falling Distance**: FallingPlatform が落ちる距離を変更できます。
- **オブジェクトの外観変更:** 外観を担当する子オブジェクトである `Model` を削除し、マップ上にある他のオブジェクトを同じ位置に配置すると外観が変更されます。外観を変更した場合は、Collider が変更された外観と合うように、Inspector ウィンドウで Collider のサイズと位置を調整してください。

![](https://api.archbee.com/api/optimize/xv-TGeWVTX2GDZMFGOf1Y/7znmU_0kgvIchVbae5KOY_image.png)

## 触れると死ぬ罠

### (1) 基本の罠

**TrapObj** は、キャラクターが触れた時にキャラクターをテレポートさせます。

アクティブな CheckpointPlatform がある場合は最も最近の Checkpoint の位置へ移動させ、ない場合は SpawnPoint へ移動させます。

- **オブジェクトの外観変更:** 外観を担当する子オブジェクトである `Model` を削除し、マップ上にある他のオブジェクトを同じ位置に配置すると外観が変更されます。外観を変更した場合は、Collider が変更された外観と合うように、Inspector ウィンドウで Collider のサイズと位置を調整してください。

![](https://api.archbee.com/api/optimize/xv-TGeWVTX2GDZMFGOf1Y/pyAZf8zPqLzKRPp34q-zt_image.png)

### (2) 動く罠

**TrapMovingCube** は、`startPoint` から `endPoint` へ、`endPoint` から `startPoint` への動きを繰り返し、キャラクターが触れた時にキャラクターをテレポートさせます。

アクティブな CheckpointPlatform がある場合は最も最近の Checkpoint の位置へ移動させ、ない場合は SpawnPoint へ移動させます。

- **startPoint**: Hierarchy ウィンドウで `startPoint` オブジェクトを選択して位置を移動させると、移動経路の開始地点を変更できます。
- **endPoint**: Hierarchy ウィンドウで `endPoint` オブジェクトを選択して位置を移動させると、移動経路の終了地点を変更できます。
- **Speed**: Inspector ウィンドウで移動する速度を変更できます。
- **オブジェクトの外観変更:** 外観を担当する子オブジェクトである `Model` を削除し、マップ上にある他のオブジェクトを同じ位置に配置すると外観が変更されます。外観を変更した場合は、Collider が変更された外観と合うように、Inspector ウィンドウで Collider のサイズと位置を調整してください。

![](https://api.archbee.com/api/optimize/xv-TGeWVTX2GDZMFGOf1Y/IwCJIOIRZHx4kZOBYZ0ut_image.png)

### (3) 揺れる振り子の罠

**TrapPendulum** は、時計の振り子のように左右に揺れ動くオブジェクトです。

- **Amplitude**: 振り子が動く高さ（振幅）。
- **Speed**: 振り子が動く速度。
- **Enable Kill**: このフィールドがチェックされている場合、キャラクターが下部の球体に触れた時にキャラクターをテレポートさせます。アクティブな CheckpointPlatform がある場合は最も最近の Checkpoint の位置へ移動させ、ない場合は SpawnPoint へ移動させます。
- **オブジェクトの外観変更:** 外観を担当する子オブジェクトである `Model` を削除し、マップ上にある他のオブジェクトを同じ位置に配置すると外観が変更されます。外観を変更した場合は、Collider が変更された外観と合うように、Inspector ウィンドウで Collider のサイズと位置を調整してください。

![](https://api.archbee.com/api/optimize/xv-TGeWVTX2GDZMFGOf1Y/K1KKPX_B2wcUJlmgN5XaF_image.png)

### (4) 回転する罠（水平）

**TrapRotatingHorizontal** は、水平に回転するオブジェクトです。キャラクターが白いバーに触れた時にキャラクターをテレポートさせます。

アクティブな CheckpointPlatform がある場合は最も最近の Checkpoint の位置へ移動させ、ない場合は SpawnPoint へ移動させます。

- **Rotation Speed**: 回転する速度。
- **オブジェクトの外観変更:** 外観を担当する子オブジェクトである `Model` を削除し、マップ上にある他のオブジェクトを同じ位置に配置すると外観が変更されます。外観を変更した場合は、Collider が変更された外観と合うように、Inspector ウィンドウで Collider のサイズと位置を調整してください。

![](https://api.archbee.com/api/optimize/xv-TGeWVTX2GDZMFGOf1Y/piVKL9o6Fy-lHAGfA0FXa_image.png)

### (5) 回転する罠（垂直）

**TrapRotatingVertical** は、垂直に回転するオブジェクトです。キャラクターが白いバーに触れた時にキャラクターをテレポートさせます。

アクティブな CheckpointPlatform がある場合は最も最近の Checkpoint の位置へ移動させ、ない場合は SpawnPoint へ移動させます。

- **Rotation Speed**: 回転する速度。
- **オブジェクトの外観変更:** 外観を担当する子オブジェクトである `Model` を削除し、マップ上にある他のオブジェクトを同じ位置に配置すると外観が変更されます。外観を変更した場合は、Collider が変更された外観と合うように、Inspector ウィンドウで Collider のサイズと位置を調整してください。

![](https://api.archbee.com/api/optimize/xv-TGeWVTX2GDZMFGOf1Y/B46WMGHxH34OtDskfo6oC_image.png)

### (6) 飛び出すトゲの罠

**SpikeTrap** は、設定した周期に合わせてトゲが飛び出す障害物です。

マップに配置して、緊張感を与える障害物として使ってみましょう。

- **Spike Active Duration** : トゲが出ている時間
- **Spike Cooldown Duration** : トゲが引っ込んでいる時間

![](https://api.archbee.com/api/optimize/xv-TGeWVTX2GDZMFGOf1Y/D-mZzojM12t1IQufTMDcH_image.png)

- **オブジェクトの外観変更:** 足場の見た目を変更するには、`Plate` の下にある外観オブジェクトを削除し、好きな外観オブジェクトを追加します。
  - その他の要素は変更せずに使用することをお勧めします。

![](https://api.archbee.com/api/optimize/xv-TGeWVTX2GDZMFGOf1Y/c4z09GPNbn7_uhFCYkjQY_image.png)

## チェックポイント

**CheckpointPlatform** は、触れるとリスポーン地点（チェックポイント）として設定される足場です。

ジャンプマップを作成する際、ステージの合間に戦略的に配置してください。

- **Index:** CheckpointPlatform のアクティブになる順序を決定するフィールドです。
  - デフォルトの Index 値は **0** です。必ず 0より大きい値を入力してください。負の数を入力すると正常に動作しません。
  - キャラクターは、訪問した CheckpointPlatform の中で**最も Index 値が大きい CheckpointPlatform の位置でリスポーン**します。
    - Index を活用することで、プレイヤーが高いレベルをクリアした後に再び低いレベルを訪れた際、チェックポイントが低いレベルのものに上書きされてしまうのを防ぐことができます。
  - CheckpointPlatform は、キャラクターが**最初に訪問した時にアクティブ**になります。Index 値が同じ場合、キャラクターは**最も最近アクティブになった CheckpointPlatform の位置**でリスポーンします。
    - 例）キャラクターが 1番 → 2番 → 3番 → 2番の順序でチェックポイントを訪問した場合、最近再訪問した2番ではなく、最も最近新しくアクティブになった3番のチェックポイントでリスポーンすることになります。
- **オブジェクトの外観変更:** 外観を担当する子オブジェクトである `Model` を削除し、マップ上にある他のオブジェクトを同じ位置に配置すると外観が変更されます。外観を変更した場合は、Collider が変更された外観と合うように、Inspector ウィンドウで Collider のサイズと位置を調整してください。

![](https://api.archbee.com/api/optimize/xv-TGeWVTX2GDZMFGOf1Y/kBcUImzMiT-GCxJT6262I_image.png)

# 5. イカゲームテーマを活用する

:::BlockQuote
📌 **以下から詳しく知りたいオブジェクトをクリックしてください！**
:::

::::VerticalSplit{layout="middle"}
:::VerticalSplitItem
[ヨンヒオブジェクト](docId\:YS6zO0WwDusLtu_LT0ldK)

[投票機能](docId\:YS6zO0WwDusLtu_LT0ldK)
:::

:::VerticalSplitItem
[カウントダウンタイマー](docId\:YS6zO0WwDusLtu_LT0ldK)

[割れるガラスの足場](docId\:YS6zO0WwDusLtu_LT0ldK)
:::
::::

## ヨンヒオブジェクト

**yonghee** オブジェクトは、ワールドに配置するだけで簡単なミニゲームをプレイできるオブジェクトです。

- 基本動作
  - オブジェクトが配置された状態で Play を押すと、自動的に動作します。
  - ヨンヒキャラクターがこちらを見ている時に動くと、レーザーが出て倒れます。（倒れるモーションが再生されるだけです）。
  - ヨンヒキャラクターが振り返っている時間は Inspector で設定可能です。
- **Min Counting Time**: ヨンヒが振り返っている最小時間。
- **Max Counting Time**: ヨンヒが振り返っている最大時間。
- **Paused**: 動作のオン／オフを切り替えます。機能を持たない単なる装飾オブジェクトとして使用したい場合は、配置する前に Paused を ON に設定してください。

![](https://api.archbee.com/api/optimize/DG7AL2Zd4MVK-IODE4H3u-v2ozUjcZPA8lj2IDzOrXu-20241226-051654.png)

## 投票機能

**voting** オブジェクトは、それぞれ O と X の領域に立っている人数をカウントしてくれるオブジェクトです。

床に配置するだけで、特別な設定なしですぐに使用可能です。

- O と X の床の Collider 領域がカウントを認識する範囲です。サイズを調整して認識エリアを変更できます。

![](https://api.archbee.com/api/optimize/DG7AL2Zd4MVK-IODE4H3u-KVXOtjdTzjSP4D7E4_iSE-20241226-052157.png)

## カウントダウンタイマー

**timedisplay** は、カウントダウンを表示するディスプレイオブジェクトです。

デフォルト設定は5分のカウントダウンになっています。

Inspector で自由にカウントダウン時間を設定できます。

- **MaxValue**: カウントダウンの開始時間（秒）。
- **MinValue**: カウントダウンの終了時間（秒）。
- **Interval**: カウントダウン時に時間が減る間隔（秒）。

![](https://api.archbee.com/api/optimize/DG7AL2Zd4MVK-IODE4H3u-qLIvLUD00KwfLvV_contG-20241226-052613.png)

## 割れるガラスの足場

**breakable\_glass** は、乗るか触れると消えてしまう足場です。

ジャンプマップの障害物として使ってみてください。

- **Is Breakable**: 触れた時に割れる属性をオン／オフします。このオプションが ON の時のみ、以下の属性が動作します。
- **Auto Reset Delay**: 触れると、**Auto Reset Delay** で設定された時間後に自動的に再生成（リスポーン）されます。
- **Has Auto Reset**: もし足場を二度と再生成させたくない場合は、**Has Auto Reset** を OFF にしてください。

![](https://api.archbee.com/api/optimize/DG7AL2Zd4MVK-IODE4H3u-jRGPJ5Yb-LDn6fPfPbX3N-20241226-053025.png)

**マルチプレイ使用ルール**

- **1つのキャンバスに描けるのは1人のみです:** あるユーザーがキャンバスに絵を描き始めると、そのキャンバスは該当ユーザーが占有している状態になります。他のユーザーにはドローイングアイコンが完全に非表示になるため、誰かがすでに絵を描いているキャンバスに他の人が追加で描くことはできません。
- **自分が描いていたキャンバスはいつでも続きを描くことができます:** 自分が絵を描いたキャンバスにはアイコンが表示され続けるため、自由に続きを描くことができます。
- **ルームから退出するとキャンバスが初期化されます:** 絵を描いていたユーザーがルーム(Room)から退出すると、キャンバスに描かれた絵が消去されます。キャンバスは再び誰でも絵を描くことができる空の状態に戻ります。
- **配置個数の推奨（最適化）:** キャンバスの配置個数に理論的な制限はありません。ただし、スムーズなワールド最適化を考慮し、1つのワールドにつき10個以内に配置することをお勧めします。
