複数のシーンをつくる時に便利!プレイヤーをワールド内でワープさせるギミックをつくる

今回の記事ではプレイヤーを同じワールド内の離れた場所にワープさせる仕組みについて説明します。

広大なワールドを一瞬で移動したり、思いがけないところに突然飛ばされたりと面白い使い方ができる機能なので試してみてください。

プレイヤーをワープさせるギミック

Cluster Creator Kitにはプレイヤーをワープさせるギミックが「Player Enter Warp Portal」と「Warp Player Gimmick」の2種類あります。

今回の記事ではテンプレートワールド「アスレチック」を改変して、それぞれのコンポーネントの使い方を説明していきます。

ある場所に行くとワープする──「Player Enter Warp Portal」を使う

まずは、「Player Enter Warp Portal」を使ったワープのつくり方です。
このコンポーネントは「コライダーに触れたときにワープする」言い換えれば「あるエリアに入ったときにワープする」というギミックがつくれるものです。

このコンポーネントを使って、あるエリアに入るとスタートから一気にゴールできるワープ機能をつくってみます。

ワープする地点を設定するためのオブジェクトを配置する

早速作ってみましょう。

  • まずはアスレチックのシーンを開きます(開き方が分からない方はこちらの記事を!)
  • Assets/ClusterCreatorKitTemplate/Playground/ScenesフォルダにあるPlaygroundというシーンファイルを開きましょう。以下のようにアスレチックが表示されます

このワールドにワープギミックを追加していきます。

  • Create Emptyで空のオブジェクトを設置してください
  • 矢印を引っ張るかTransformに数値を入力してワープポータルを置きたい位置に移動させましょう。ここでは最初のゲートの手前に置いてみます
  • オブジェクトの名前は「WarpPortal」としてください
  • 次に、ワープ先の位置にも同様に空のオブジェクトを設置しましょう
  • こちらは名前を「WarpTarget」としてゴールに置きます

ワープエリアに入ったことを検出するための設定をする

  • 続いて、ワープの仕掛けに必要な「Box Collider」というコンポーネントを追加します。

Colliderとは当たり判定のことで、他のColliderとの衝突による物理挙動の処理や、接触の検出に使います。ここではプレイヤーとの接触を検出したときにワープ機能を発動するために使います。

Box Colliderを追加したら大きさと位置を調整します(緑色の枠で示されている部分がColliderの範囲です)。

  • SizeとCenterに数値を入力するか、Edit Colliderのボタンで編集モードにして操作します。
  • さらに、Is Triggerという項目にチェックを付けましょう。ここにチェックが付いていると、他のColliderとの接触の検出だけを行い、物理的な衝突は起こらず中に入ることができるようになります。

「Player Enter Warp Portal」を追加してワープ完成!

Colliderが設定できたら、最後にPlayer Enter Warp Portalを追加します。

  • Player Enter Warp Portalにワープ先を指定する必要があるので、コンポーネントの中のTargetという項目で右端の◎ボタンから選択するか、HierarchyからのドラッグアンドドロップでWarpTargetを選択します。

これでワープ機能の設定は完了です。アップロードして試してみましょう。
ワープポータルの場所に入るとワープするはずです。

また今回は使いませんでしたが、Keep Positionにチェックを入れるとワープ機能の発動時に位置を移動せずプレイヤーの向きだけを強制的に変更することができます。

同様にKeep Rotationにチェックを入れると、こちらはプレイヤーの位置だけを移動して向きを変えないということができます。試してみてください。

アイテムを使うとワープする──「Warp Player Gimmick」を使う

次は「Warp Player Gimmick」を使ったギミックのつくり方を説明します。
このコンポーネントを使うと特定のエリアに入ること以外にも様々な条件でワープさせることができます
今回はボタンを押すとワープする機能をつくってみましょう。

ワープを発動させるためのボタンをつくる

まずはボタンをつくります。

  • 上でつくったWarpPortalは削除し、新しくCreate Emptyで空のオブジェクトを設置して名前を「WarpButton」とします。
  • HierarchyのWarpButtonを右クリックして、子オブジェクトとしてCubeを置き、TransformのScaleを変えてCubeの大きさを調整しましょう。これがボタンの見た目になります。

クリックしたらボタンが作動するようにする

続いてWarpButtonにInteract Item Triggerコンポーネントを追加します。
Interact Item Triggerの付いたアイテムはクリック/タップすることでトリガーを発動させ、ギミックを動作させることができます。

Interact Item Triggerの設定をしていきましょう。

  • +ボタンを押してトリガーを追加
  • TargetはOwner、その隣の入力欄(Key)にはwarpsignalと入力します。ValueはSignalを選択しておきます。

「Warp Player Gimmick」を設定してワープ完成!

続いてWarp Player Gimmickを設定していきます。

  • また新しく空のオブジェクトを作り、名前を「PlayerWarp」として置きます。
  • PlayerWarpにWarp Player Gimmickコンポーネントを追加しましょう。

Warp Player Gimmickはどのオブジェクトに付いていても動作しますが、分かりやすくするため新しい空のオブジェクトにつけておくことをおすすめします。

Warp Player Gimmickの設定をしていきます。

  • TargetはPlayer、Keyには先ほどと同じwarpsignalを入力します。
  • Target Transformにはポータルと同様にWarpTargetを設定しましょう。

このように設定すると、ボタンをクリックしたときにOwner、つまりボタンをクリックしたプレイヤーに向けてwarpsignalというメッセージが発行され、それを検出してWarp Player Gimmickがはたらきプレイヤーをワープさせます。

アップロードして確かめてみましょう。ボタンをクリックするとワープします。

ワープを使えば複数のエリアを移動するワールドや、意外なところが繋がったトリッキーな迷路など面白いワールドがつくれます。ぜひ使ってみましょう!

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

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

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

続きを読む