Open7

Clusterでワールドを作成するメモ

だーら(Flamers / Memotia)だーら(Flamers / Memotia)

Sampleからワールドを作る

だーら(Flamers / Memotia)だーら(Flamers / Memotia)

イベント会場を作成してみる

要件

  • スライドを表示するスクリーンがある
  • コメントを表示するスクリーンがある
  • イベントの運営側しか入れない空間がある(パフォーマーエリア)
  • イベントの運営側と参加者側で、スポーンポイントが異なる

参考

スライドを表示するスクリーン

  • 以下のprefabを設置
  • ClusterVR/StaticResources/Prefabs/StandardMainScreen.prefab

コメントを表示するスクリーン

  • 以下のprefabを設置
  • ClusterVR/StaticResources/Prefabs/StandardCommentScreen.prefab

イベントの運営側しか入れない空間

  • てきとーにColliderを設置し、レイヤーを PerformerOnly に変更する
  • (上記画像ではCubeのmeshが写っているが、このあたりはRemoveComponentする)

イベント運営側と参加者側で、スポーンポイントを変える

  • SpawnPointを新規に設置。通常プレイヤーのスポーンポイントと位置をずらしたうえで、Spawn PointコンポーネントのSpawn TypeOn Stage 1に変更する

ワールドに入ってみる

  • 参加者として入室
    • スポーンポイントは通常通り
    • パフォーマーエリアにはちゃんと入れない
    • コメントが表示される
    • スライドが投影される
  • イベント主催者として入室(限定公開用テストイベントをwebから作成)
    • スポーンポイントは通常と異なる
    • パフォーマーエリアに入れる
    • コメント、スライドが表示される
だーら(Flamers / Memotia)だーら(Flamers / Memotia)

ギミックを実装する

  • CreatorKitSampleのSceneの中に、色々なサンプルがあるのでそれを見ながらまねれば基本的なことはできる
  • ゲーム制作機能の概要

公式ドキュメントを読んだメモ

アイテム

  • Item: 必須っぽい
  • Moveble Item: 位置同期をしてくれる
  • Grabbable Item: 持てる。Movable Itemが自動で追加される(強制で削除できない)ので、全部オブジェクトはグローバル同期なのかな?

トリガー

  • ワールド内で起こったことを検知し、メッセージとして通知する機能
  • Interact Item Trigger: 掴めないアイテムに「使う」機能を追加し、使われたことを通知するトリガー
  • On Collider Item Trigger: アイテムが他のものに衝突したことを通知するトリガー
  • などなど、多様なトリガーが用意されている

ギミック

  • トリガーが通知したメッセージを読み取り、ワールドやプレイヤーに様々な変化を起こさせるもの
  • Destroy Item Gimmick: このアイテムを削除するギミック
  • などなど、多様なギミックが用意されている

具体的な実装

トリガーを押すとDestroyするオブジェクト

  • ItemInteract Item TriggerDestroy Item Gimmickコンポーネントを付ける

衝突判定によってDestroyするオブジェクト

  • On Collide Item Triggerを利用
  • なお、以下のような注意がOn Collide Item Triggerのドキュメントに書かれていたため、自身のColliderのIs TriggerをOnにしている

だーら(Flamers / Memotia)だーら(Flamers / Memotia)

Boothのアセットを導入する

  • VRChatのワールド制作と同じように、Boothからギミック付きのアセットを購入し、ワールドに組み込んでみる

スイカガン

  • https://booth.pm/ja/items/2319019
  • ダウンロードしたzipを解凍し、.unitypackageをインポートする通常通りのフロー
  • prefabをワールドに置いたら完成!ガンをUseすると、スイカがでる。
  • prefab内に独自のスクリプトはなく、全てclusterのコンポーネントで出来ている。すごい
    • ItemMovable ItemGrabbable Item
    • Use Item Trigger ↓トリガーされるギミックたち
      • Set Animator Value Gimmick & Animator
      • Create Item Gimmick
      • Play Audio Source Gimmick & Audio Source

ジャンプ力・移動速度の変更ギミック

  • https://booth.pm/ja/items/3187585
  • 同じくzipを解凍し、.unitypackageをインポート
  • ボタンを押すと、移動速度やジャンプの高さが変化する
  • 独自のスクリプトではなく、clusterのコンポーネントでできている。playerに対して変更を促すようなギミックも可能