あなたの世界を作りなさい
オブジェクトとの相互作用

キャラクターを追従するオブジェクトの実装

3min

NavMeshAgentコンポーネントを使用すると、ZEPETOキャラクターについてくるAIオブジェクトを作成できます。

このガイドでは、自分のキャラクターについてくるPet型のオブジェクトを作成します。

Petオブジェクトの作成

1

Navigation (Obsolete) ウィンドウを開きます。

Document image


Unityの上部メニューで Window > AI > Navigation (Obsolete) をクリックして、Navigation (Obsolete) ウィンドウを開いてください。

2

Petオブジェクトが移動可能な領域を定義します。

Document image


Navigation (Obsolete) ウィンドウで Object タブをクリックします。Hierarchyから床、壁、障害物などNavMeshに含めたいオブジェクトを選択して追加してください。

  • これにより、Petオブジェクトがそれらを移動可能な表面や障害物として認識できるようになります。

Navigation Staticフィールドにチェックが入っていることを確認してください。

✏️ NavMeshの詳細は以下の動画をご覧ください。


3

NavMeshを作成します。

Document image


Bakeタブをクリックし、下部のBakeボタンを押してNavMeshを作成します。

4

NavMeshAgentを追加します。

HierarchyでPetオブジェクトを選択し、InspectorでNavMeshAgentコンポーネントを追加してください。

  • ここでのAgentは、NavMeshナビゲーションシステムを使って移動するPetオブジェクトを指します。

Agentのプロパティを調整すると、Petのサイズ、移動速度、回転速度、加速度、障害物と認識する高さなどを設定できます。

✏️ NavMeshAgentの詳細については、以下のリンクをご覧ください。

Document image


この例では、NavMeshAgentのStopping Distanceを3に設定し、Petがプレイヤーから3の距離で停止するようにしています。

5

PetControllerスクリプトを作成します。

Projectビューで + ボタン > ZEPETO > TypeScript をクリックして新しいスクリプトを作成し、PetControllerに名前を変更します。

スクリプトを開いて、下記のコードをコピー&ペーストしてください。

TypeScript


スクリプトの説明

  • スクリプトが開始されると、_targetに自分のZEPETOキャラクターが設定されます。
  • Update関数では毎フレーム、NavMeshAgentのSetDestination関数を使ってキャラクターの位置を目的地に設定します。
6

PetControllerスクリプトをPetオブジェクトに適用します。

HierarchyでPetオブジェクトを選択し、InspectorでAdd Component > Zepeto Scriptをクリックします。

Scriptフィールドに作成したPetControllerスクリプトをドラッグ&ドロップしてください。

7

再生ボタンを押します。

Document image


Petオブジェクトがキャラクターについてきて、壁などの障害物を避けながら移動する様子が確認できます。



キャラクターの頭上にPetを乗せる

Petをキャラクターに追従させるのではなく、キャラクターの体に固定したい場合は、オブジェクトのアタッチ機能を使ってみてください。

✏️ オブジェクトの添付の詳細については、ZEPETOキャラクターにオブジェクトを取り付ける ガイドを参照してください



1

AttachPetControllerスクリプトを作成します。

Projectビューで + ボタン > ZEPETO > TypeScript をクリックして新しいスクリプトを作成し、AttachPetControllerに名前を変更します。

スクリプトを開いて、下記のコードをコピー&ペーストしてください。

TypeScript


スクリプトの説明

  • スクリプトが開始されると、ローカルプレイヤーとそのAnimatorを取得します。
  • bodyBoneで選択した体の部位をAnimatorから取得し、その位置にPetオブジェクトを生成(Instantiate)します。
  • このとき、Petオブジェクトのparentには取得した体の部位が指定されます。
2

AttachPetControllerスクリプトを新しいオブジェクトに適用します。

Hierarchyで + ボタン > Create Empty をクリックして新しいオブジェクトを作成し、AttachPetControllerという名前をつけます。

Inspectorで Add Component > Zepeto Script をクリックし、ScriptフィールドにAttachPetControllerスクリプトをドラッグ&ドロップします。

Petフィールドに使用するPetオブジェクトをドラッグし、bodyBoneフィールドのドロップダウンから取り付けたい体の部位を選択します。

Document image


再生ボタンを押すと、Petオブジェクトが指定した体の部位に生成されていることが確認できます。