UEを学ぶ「トリガーを作る_イベントトリガーについて学ぶ」
チュートリアルを見ていたら、
急にスコアの取得をやり始めたので、
しぶしぶ過去の話数を見返す。
---
■トリガーを使った設定
始めに、コリジョン用のアクタを使った方法が説明された。
アクタから「ボックストリガー」をドラッグ&ドロップで
フィールド上に配置することで
ボックスに触れると起動されるスイッチを配置されたことになる。
(※詳細>レンダリング>Actor Hidden In Game をチェックすることで
プレイ中も確認することができる)
また、表示設定を「可視性コリジョン」にすることで、
コリジョンだけが見える状態にすることもできる。
■コリジョンを使った設定
アクタにコリジョンを設定し、
コリジョンの当たり判定を広げることで
接触判定を行おうというもの。
右クリック>プループリントクラス>Actor
でブループリントクラスを作成。
(名前は適当に BP_SpotLight に)
「コンポーネントを追加」>Cube
でキューブを配置し、さらに
「コンポーネントを追加」>Box Collision
で当たり判定を追加する。
追加したBoxコリジョンを引き延ばして、
ブロックの足元を通ると当たり判定が検出できるようにする。
(※ちなみに白い球体は中心となる目安なので、画面上に表示されるわけではない)
作ったアクタはレベル上に配置する。
ビューポート から イベントグラフ へとタブを切り替えて
BPを編集する。
変数>+
をクリックするとboolean型の変数(赤いやつ)が追加されるので
「今グレイマン入ってるよー」はTRUE/FALSEの二つの値をチェックボックスとして
持っている。
「今グレイマン入ってるよー」をドラッグ&ドロップすると
以下のように2択を迫られる。
Setは代入でGetが参照。
今回は
・「グレイマンがコリジョンに入る(Begin Overlap)と『今グレイマン入ってるよー』にONを代入」
・「グレイマンがコリジョンから出る(End Overlap)と『今グレイマン入ってるよー』にOFFを代入」
という形にしたいので、
Set(代入)を配置して、白矢印で接続する。
※「グレイマンがコリジョンに入る(Begin Overlap)」では「True」(チェックボックスをON)にしておく
---
とはいえ、この辺はいろいろなやり方を紹介するパートで
何かに着地はしないのだが…。
紹介されていた別の方法では、
Graymanのアクタをセットで配置し、
OtherActor(Grayman)がBegin Overlapしたかどうかを、
Graymanに代入。
その結果をIs Overlapping Actor関数の引数として使用することで
「Graymanが作成したコリジョンに接触していることを検知すると何かしらの処理を行う」
という構成を作ることができる。
イベントTickはゲームを起動中にマイフレーム呼ばれる処理なので、
ブランチを組み合わせて
「マイフレーム確認して、GraymanがBoxに触れたらTrueとなり、何らかの処理を行う」
※ブランチより先がないので「何をするか」は未定
という構成となる
ちなみに、何にぶつかって、何にぶつからないかは
コリジョンレスポンスを利用して設定する。
以下の3つからチェックボックスを設定し、相互にぶつかった際にどのようにするかを決める。
Ignore |
|
Overlap |
もう 1 つの物理ボディが [Overlap] または [Block this Physics Body's Object Type] に設定されていると、Overlap Event を発生させることができます。 |
Block |
もう 1 つの物理ボディが [Block this Physics Body's Object Type] に設定されていると、Hit Event を発生させることができます。 |
▼詳細はこちら
いったん長くなったので次へ