Unreal Engine入門(4) クリックした位置にアクターを生成

UnrealEngine

概要

前回のチュートリアルではクラスを手動でレベルに生成(インスタンス化)していましたが、ブループリントからも生成が可能です。この生成のことをBluePrintではスポーンという言葉で表現しています。今回のチュートリアルではマウスの左クリックするたびに、前回のチュートリアルで作成したクラス「BP_Plane」が生成されるようにしてみましょう。

1.レベルを作成し、マウスカーソルを表示させる
2.マウスクリックの検出とアクタの発生
3.クリック位置の検出
4.クリック位置からアクタを発生させる

レベルを作成し、マウスカーソルを表示させる

これまでのチュートリアル同様にレベルをセットアップします。マウスカーソルはデフォルトで非表示になっているので、レベルブループリントで表示設定を行います。

・レベルを新規追加
・コンテンツブラウザから「Default_Setting」をレベルに追加
・「Default_Setting」を所有する
・レベルブループリントにてマウスカーソルを表示させる

マウス操作の設定(公式ドキュメント)

Show Mouse CursorをONにセットするとプレイ中にマウスカーソルが表示されるようになる。

マウスクリックの検出とアクターの発生

マウスの左クリックを検出して、クラス「BP_Plane」をアクタとしてスポーンさせます。スポーンさせるためには発生位置や回転などのトランスフォームが必ず必要になります。

・レベルブループリントにてマウスのクリックを検出します
・クラスをアクタとしてレベルに発生(スポーン)させます

ブループリントでアクタをスポーン(公式ドキュメント)

アクタをスポーンするためには「Spawn Actor from Class」ノードを使用します。スポーンしたいクラスを指定するのがポイントです。

クリック位置の検出

・クリック座標をワールド座標に変換
・クリック位置と視界の向きから奥に伸びるベクトルを作成
・ベクトルと平面の交差を検出する(平面は仮想の無限の大きさを持ったもの)

Line Plane Intersection(Origin & Normal)は線と平面の交点を演算するノード。仮想の無限の大きさを持った平面を規定して、Lineの始点と終点がその平面を通過した場所を計算します。

クリック位置からアクタを発生させる

プレイを開始し、ビューポート状でクリックをしてみてください。クリックした場所に「BP_Plane」がスポーンしたら成功です。

今回のチュートリアルではマウスクリックをきっかけにしていますが、他にも様々なきっかけでスポーンすることが可能です。ぜひ活用してみてください。

発生時にパラメータを変化させる(追記)

前回のチュートリアルでは、ブループリントクラスに変数を追加し「インスタンス編集可能」とすることで、エディタで変更できるようにしました。一つのクラスから多様性を実現する例でしたが、パラメータは手入力する必要がありました。今回はアクタをスポーンする際に、ブループリントからパラメータに乱数を設定してみます。

・クラスの変数の「スポーン時に公開」をONにする
・レベルブループリントのスポーン時にパラメータを変更する
・パラメータに乱数を使用する

変数のパラメータ「スポーン時に公開」をONにすると、スポーンするノード「Spawn Actor from Class」に変数が表示されるようになる。

クリックするたびに回転速度の異なるBP_Planeが発生したら成功です。インタラクティブに多様性のある表現が可能であることが理解できたのではないでしょうか。これで今回のチュートリアルは終了です。

Related Posts

No results found

メニュー