UEを学ぶ「トリガーを作る_イベントトリガーについて学ぶ」

チュートリアルを見ていたら、

急にスコアの取得をやり始めたので、

しぶしぶ過去の話数を見返す。

 

youtu.be

 

---

 

■トリガーを使った設定

始めに、コリジョン用のアクタを使った方法が説明された。

 

f:id:happyherpy:20211109021020p:plain


アクタから「ボックストリガー」をドラッグ&ドロップで

フィールド上に配置することで

ボックスに触れると起動されるスイッチを配置されたことになる。

(※詳細>レンダリング>Actor Hidden In Game をチェックすることで

 プレイ中も確認することができる)

 

また、表示設定を「可視性コリジョン」にすることで、

コリジョンだけが見える状態にすることもできる。

f:id:happyherpy:20211109230229p:plain

 

コリジョンを使った設定

アクタにコリジョンを設定し、

コリジョンの当たり判定を広げることで

接触判定を行おうというもの。

 

f:id:happyherpy:20211109025934p:plain

 

右クリック>プループリントクラス>Actor

でブループリントクラスを作成。

(名前は適当に BP_SpotLight に)

f:id:happyherpy:20211109025326p:plain

 

コンポーネントを追加」>Cube

でキューブを配置し、さらに

コンポーネントを追加」>Box Collision

で当たり判定を追加する。

 

追加したBoxコリジョンを引き延ばして、

ブロックの足元を通ると当たり判定が検出できるようにする。

(※ちなみに白い球体は中心となる目安なので、画面上に表示されるわけではない)

 

作ったアクタはレベル上に配置する。

 

ビューポート から イベントグラフ へとタブを切り替えて

BPを編集する。

 

f:id:happyherpy:20211110002207p:plain

変数>+

をクリックするとboolean型の変数(赤いやつ)が追加されるので

チュートリアルに従って「今グレイマン入ってるよー」と入力。

f:id:happyherpy:20211110010043p:plain

 

「今グレイマン入ってるよー」はTRUE/FALSEの二つの値をチェックボックスとして

持っている。

「今グレイマン入ってるよー」をドラッグ&ドロップすると

以下のように2択を迫られる。

f:id:happyherpy:20211110010835p:plain

Setは代入でGetが参照。

今回は

・「グレイマンコリジョンに入る(Begin Overlap)と『今グレイマン入ってるよー』にONを代入」

・「グレイマンコリジョンから出る(End Overlap)と『今グレイマン入ってるよー』にOFFを代入」

という形にしたいので、

Set(代入)を配置して、白矢印で接続する。

※「グレイマンコリジョンに入る(Begin Overlap)」では「True」(チェックボックスをON)にしておく

 

---

 

youtu.be

 

とはいえ、この辺はいろいろなやり方を紹介するパートで

何かに着地はしないのだが…。

 

f:id:happyherpy:20211110013549p:plain

紹介されていた別の方法では、

Graymanのアクタをセットで配置し、

OtherActor(Grayman)がBegin Overlapしたかどうかを、

Graymanに代入。

その結果をIs Overlapping Actor関数の引数として使用することで

「Graymanが作成したコリジョン接触していることを検知すると何かしらの処理を行う」

という構成を作ることができる。

イベントTickはゲームを起動中にマイフレーム呼ばれる処理なので、

ブランチを組み合わせて

「マイフレーム確認して、GraymanがBoxに触れたらTrueとなり、何らかの処理を行う」

※ブランチより先がないので「何をするか」は未定

という構成となる

 

ちなみに、何にぶつかって、何にぶつからないかは

コリジョンレスポンスを利用して設定する。

以下の3つからチェックボックスを設定し、相互にぶつかった際にどのようにするかを決める。

Ignore

もう 1 つの物理ボディのコリジョン反応に関係なく、この物理ボディはインタラクションを無視します。

Overlap

もう 1 つの物理ボディが [Overlap] または [Block this Physics Body's Object Type] に設定されていると、Overlap Event を発生させることができます。

Block

もう 1 つの物理ボディが [Block this Physics Body's Object Type] に設定されていると、Hit Event を発生させることができます。

collProp.png

 

▼詳細はこちら

docs.unrealengine.com

 

 

いったん長くなったので次へ