イベントでのみ表示されるオブジェクトや、イベントスタッフのみ使えるスイッチをつくろう

Cluster Creator Kit v2.24.0では以下のAPIが追加され、スクリプトが実行された場所がイベントかどうかを判定したり、イベント内で特定のプレイヤーのロール(スタッフ・ゲスト・一般参加者)を取得できるようになりました。

この機能を使って、今回はイベント上でのみ表示されるオブジェクトや、イベントのスタッフからのみ使うことができるスイッチの作成方法をご紹介します。

今回の作例では、パフォーマーコライダーを切り替えることで、イベントで使用された時はスタッフのみ入れるものの、ワールドとして利用した時は誰でも入れるスペースを実現します。

パフォーマーコライダーとは

イベントでのみ使用できる、スタッフやゲストのみ入ることができるエリアを設定できる機能です。

普通にパフォーマーコライダーを設置するとワールドとして利用する場合も通れなくなってしまいますが、下記の方法で作成すると、ワールドとして利用する場合のみ誰でも通れるようにできます。

つくり方

まず任意の場所にパフォーマーコライダーを設置します。
パフォーマーコライダーの設定方法はこちらの記事を参考にしてみてください。

次にパフォーマーコライダーがワールドでは非表示になるようなスクリプトを作成します。

  • まず現在のシーンに以下のような構造でパフォーマーコライダーを作成します。
    • PerformerColliders <- 空のGameObject
    • └StageCollider <- LayerをPerformerOnlyにしたCubeなど
  • PerformerCollidersを選択してインスペクター上でAdd ComponentからScriptable Itemを追加します。
    • 次にScriptable ItemのSource Codeに対して以下のスクリプトを貼り付けてください。
$.onStart(() => {
  $.subNode("StageCollider").setEnabled($.isEvent());
});

以上が設定できたら完成です。
これでイベントの会場として使用した時はスタッフ・ゲストのみ入れて、ワールドとして利用した時は誰でも入れるスペースが作成できます。

次に、イベントのスタッフだけが使うことのできるスイッチを作成してみます

つくり方

今回はスクリーンの表示をオンオフするスイッチをつくってみます。

  • まず現在のシーンにスイッチとなるCubeを設置し、その子としてスクリーンを設置します。
    • ヒエラルキー上ではこのようになっています。
      • On/offSwitch
      • └StandardMainScreen
  • 設置したCubeを選択して、インスペクター上でAdd ComponentからScriptable Itemを追加します。
    • 次にScriptable ItemのSource Codeに対して以下のスクリプトを貼り付けてください。
$.onInteract((player) => {
  if (player.getEventRole() === EventRole.Staff) {
    const mainScreen = $.subNode("StandardMainScreen");
    mainScreen.setEnabled(!mainScreen.getEnabled());
  }
});

以上が設定できたら完成です。
これでスタッフのみオンオフできるスクリーンのスイッチが作成できます。

このように「ClusterScript.isEvent()」「PlayerHandle.getEventRole()」を使うとイベント専用の機能がつくりやすくなります。ぜひ色々試してみてください!

記事をシェアしてワールド制作を盛り上げよう!

Cluster Creators Guide|バーチャル空間での創作を学ぶならをもっと見る

今すぐ購読し、続きを読んで、すべてのアーカイブにアクセスしましょう。

続きを読む