入室時にアイテムを生成させるギミックをつくる

投稿者:

「Creators Guide」は、メタバースプラットフォーム「cluster」で「つくる」ことにチャレンジしてみたい方に向けた導入ガイドです。

Creators Guideで読むことができるすべての情報はこちらにまとめています。


事前準備

まず、clusterにワールドをアップロードできる環境を事前に用意してください。

準備はこちらを参考にしてください。

上記で紹介する方法以外ではテンプレートプロジェクトを利用するのがおすすめです。下記のページからテンプレートプロジェクトをダウンロードして、Unityで開くことで、clusterへアップロードする環境まで一気に準備することができます。

今回の記事では、ワールドに入室時にアイテムを生成するギミックのつくり方を紹介します。
このギミックを使えば入室した人だけではなく、元々ワールドにいる人にも影響を生み出せます。

使用するコンポーネントについて

まず、今回使用するコンポーネントについて説明します。

  • On Join Player Trigger |Creator Kit ドキュメント
    • プレイヤーが入室した時に通知するトリガーです。入室を検知したOn Join Player Triggerがメッセージを送信します。
  • Create Item Gimmick|Creator Kit ドキュメント
    • アイテムを生成するギミックです。On Join Player Triggerから送られたメッセージを検知してアイテムを生成します。

今回はこの2つのコンポーネントを使って、下図のような仕組みにすることで入室時にアイテムを生成するギミックをつくります。

今回はCreate Item Gimmickを使用していますが、他のギミックに置き換えることも可能です。例えば、音を再生するPlay Audio Source Gimmickに変更し、入室音をつくることもできます。

入室音といった効果音については紹介している記事があります。気になる方はこちらをご覧になってみてください!

ワールド入室時に球体を生成するギミックをつくる

それでは、順を追って解説していきます!

今回は入室時に球体が生成されるギミックをつくります。
そのために必要な

  • 入室を検知するトリガー
  • 生成される球体オブジェクト
  • 球体を生成するギミック

を順につくっていきます。

今回は、テンプレートワールドの1つであるShooterを利用します。このプロジェクトはテンプレートプロジェクトの「Asset/ClusterCreatorKitTemplate/Shooter/Scenes/Shooter」に入っています。

テンプレートの導入の仕方が分からない……という方は下記の記事をご覧ください!

入室を検知するトリガーをつくる

まず、入室を検知するトリガーをつくります。下図で点線で囲った部分の仕組みをつくります!

  • 「Hierarchy」ウィンドウで右クリックするか、GameObjectメニューの「Create Empty」から空のオブジェクトを作成します。
  • つくった空のオブジェクトの名前を「OnJoinPlayer」に変更します。

オブジェクト「OnJoinPlayer」にコンポーネントをつけて、入室を検知できるようにしていきます。

次は球体を生成するために、メッセージを送信するようにします。

  • 表示された入力UIのTargetを「Global」、名前を「OnJoinPlayer」、Valueを「Signal」と設定してください。

これでオブジェクト「OnJoinPlayer」が、入室を検知し、「OnJoinPlayer」というメッセージを送信するようになりました!
このメッセージをCreate Item Gimmmickで受け取るようにすることでギミックを発火させることができます。

生成される球体オブジェクトをつくる

次に、生成される球体オブジェクトをつくります。下図の「Sphere」の部分をつくっていきます!

  • 「Hierarchy」ウィンドウで右クリックするか、GameObjectメニューの「3D Object / Sphere」からSphereを作成します。

今回は高いところに生成して積もるようにしたいので、重力で落ちるようにします。

  • SphereにAdd Componet で Rigidbody を追加します。
    • ※Rigidbodyはオブジェクトに重力をつけることができるUnityのコンポーネントです。

Create Item Gimmickを利用して生成するには、オブジェクトは Item である必要があります。

  • SphereにAdd Componet で Item を追加します。

また、Create Item Gimmickでは1つだけではなく大量に生成することもあるので、複製しやすいPrefabであることが推奨されています。

  • Sphereを「Hierarchy」ウィンドウから「Project」ウィンドウにドラッグ&ドロップします。

これでSphereがPrefabになりました。

  • 「Hierarchy」ウィンドウ内のSphereは使わないので消去しときます。

Prefabについては下記の記事で紹介しています。初めて使う方はこちらを参考にしてみてください!

球体を生成するギミックをつくる

最後に、球体を生成するギミックをつくります。下図で点線で囲った部分の仕組みになります!

  • 「Hierarchy」ウィンドウで右クリックするか、GameObjectメニューの「Create Empty」から空のオブジェクトを作成します。
  • 空のオブジェクトの名前を「OnJoinPlayerCreateSphere」に変更します。
  • 高い位置から生成するために、オブジェクト「OnJoinPlayerCreateSphere」の座標をX 0、Y 10、Z 0に変更します。

オブジェクト「OnJoinPlayerCreateSphere」のメッセージを検知して、アイテムを生成できるようにします。

  • 「OnJoinPlayerCreateSphere」にAdd ComponetでCreate Item Gimmickを追加します。
  • Create Item GimmickのTriggersの下の「+」をおして、入力UIを表示させてください。
  • Targetを「Global」、Keyを「OnJoinPlayer」に設定します。
  • PrefabであるSphereをCreate Item GimmickのItem Templateにドラッグ&ドロップします。

これで、入室時に送信されるメッセージ「OnJoinPlayer」を検知して、Sphereを生成できるようになりました!

最後にワールドをアップロードして確認してみましょう。

入室時に上空から球体が生成されるようになりました!

今回は球体が生成されるシンプルなものですが、この仕組みを応用して色んな入室体験をつくってみましょう!

(試しに今回のを少し工夫して、入室時の運試しシステムをつくってみました!)


最後に公式による記事や多くのクリエイターの皆さんによるドキュメントやコミュニティを紹介します。
ぜひ活用して自分だけのワールドを制作してみましょう!

▼ 「Cluster Creator Kit」の全てが分かる公式ドキュメント
Cluster Creator Kit ドキュメントhttps://docs.cluster.mu/creatorkit/

▼ クリエイターによる投稿記事まとめ
ワールド制作部https://note.com/cluster_official/m/m1fd772ab8f45
アバター制作部https://note.com/cluster_official/m/m6b18e343f35c
イベント制作部https://note.com/cluster_official/m/m7155e6f6887f

▼ 分からないことがあればコミュニティを活用してみましょう!
Cluster Creator Community Discord
https://discord.gg/DHQmAfDhkt