【UE4】Part15 ワープ装置を作成する 前編

レベルの中で、どこか遠い場所へワープできる装置を作成したいと思います。

コレに入ると、別の場所にある、コレにワープする感じですね。

目次

初めての方に

アンリアルエンジンの記事では、初心者がアンリアルエンジンの勉強をのんびりしていき、最終的にはゲームを完成させる目的で、記事をあげていっています。紹介する手法が必ずしも最適な方法とは限りませんので、ご了承ください。

また、ゲーム完成まで温かく見守っていただけると幸いです。

ワープ装置を配置する

まずは、このワープ装置を配置しましょう。

今回使ったのは、マーケットプレイスにある無料素材です。

これをダウンロードして、プロジェクトに追加します。

コンテンツブラウザのFXVarietyPackのParticlesに以下のように入っています。

P_ky_magicCircle1をドラッグして、配置してみましょう。

エディタの設定で、リアルタイムオフの場合、以下のように表示されます。リアルタイムオンであれば、エフェクトが表示されます。

ワープ装置に入った時に処理を発生させる

まずは、新規のブループリントを作成します。

コンテンツブラウザで右クリックして、ブループリントクラスを選択します。

今回は、Actorで作成します。

作成したファイルをダブルクリックすると、白いボールが表示された画面に移ります。

左上のコンポーネントを追加を選択します。

Collisionの項目から、Sphere Collisionを選択します。

Sphereが追加されているはずです。

Sphereを右クリックして、Add Eventから「On Component Begin Overlap」「OnComponent End Overlap」を選択します。

On Component Begin Overlap

簡単に説明すると範囲に入った時に実行するイベントです。

OnComponent End Overlap

簡単に説明すると範囲に出た時に実行するイベントです。

SetActorLocationでアクターの場所が変更します。

ターゲットは、Other Actorで繋ぎます。これで重なったアクターがLocation X0 Y0 Z0にワープします。

試しに、このブループリントを保存して、レベル上で配置して、当たってみましょう。

おそらく変なところにワープしたのではないでしょうか?

私は地面下にワープして落下していきました。

行き来できるワープを作成する

ワープポイントを2か所作成し、行き来できるようにしたいと思います。

とりあえず、今回作成したブループリントをもう1か所レベルに設置してください。

それでは、設置した2か所間で行き来する処理を作って行きたいと思います。

まず、変数を追加します。以下の図の+ボタンですね。

変数名の左側のアイコンをクリックすると型を変更できます。

今回は、Actorと検索して、Actorを選択します。

あと、変数名の右側の目を閉じてるアイコンをクリックして、目を開けます。

ここまで設定できたら、コンパイルを押しておきます。保存もしておきましょう。

レベル上に設置した、ブループリントをクリックすると、プロパティに作成した変数の項目が追加されています。

変数の型をActorにしているので、なしの部分の選択肢がアクターになっているかと思います。

移動先のアクターを選択します。(今回でいうと設置したワープのもう一方の方です)

両方のワープポイントをお互い参照するように設定が完了したら、ブループリントの画面に戻ります。

以下のように作成していきます。

変数をドラッグして入れて、GetActorLocationを追加して繋ぎます。

それをNew Locationと繋ぎます。

これで、一度テストプレイしてみましょう。

ワープポイントに入るとエラーになります。

これは、ワープポイント間で無限ループが発生するためです。

後編では、この辺の対策を入れたいと思います。

まとめ

当たり判定の処理を作成し、キャラクターをワープさせる処理を作成しました。

ただし、相互ワープの場合、無限ループになってしまい、エラーとなりました。

後編では、相互ワープの対策をしてきたいと思います。

目次