虎参備忘録~輪講編‐002~

 

今回の輪講は前回の続きと前回の内容をセンサー(トリガーボックス)で実装したいと思います。

 

 

今回は、床を開閉式の落とし穴にしたいと思います。

前回とは別の床を選んでクラスブループリント化し、編集画面を開きます。 床のムーバブルは忘れずに。

落とし穴などはトリガーで感知するタイプのほうがいいとは思いますが今回は[Tick]で実装します。 前回の分はトリガーで作り直すのでそれを参考に考えてみてください。

 

[TimeLine]を設置し、トラックを作成します。 今回はfloot trackを追加します。

時間の長さは各自お任せ、高さは-90で下図のような形に作ってください。 最後にループのチェックを忘れずに。 画像はクリックでの表示推奨です。

資料011

次に、[TimeLine]のUpdateからピンを伸ばして放し、今回は角度をいじるので[SetActorRotation]を探して追加してください。

同じようにnew trackからピンを伸ばして放し、[Make Rotator]を探して追加します。 最初はピンがX(Roll)につながれているのでY(Pitch)につなぎ直して下さい。

[Make Rotator]の出力ピンを[SetActorRotation]のNew Rotationにつなげば開閉式落とし穴の処理は完成です。

完成形は下の画像の通りです。

資料012

これで落とし穴が機能するはずです。コンパイルして実行してみてください。

 

 

では、前回と今回の二つのクラスブループリントでつくった処理をトリガーを使って作りたいと思います。

方法は二通りあります

一つはトリガーを作った後、レベルブループリントで処理を作る方法

一つはクラスブループリントにコリジョンをくっつけて処理を作る方法

です。

 

レベルブループリントの場合の説明を行います

まずは床とボックスのトリガーを作成します。 床をムーバブルにするのを忘れないように。

下図のように床の幅に合わせ、移動の上下幅で高さを設定します。

資料013

今回、トリガーのシェイプは全て200で設定し、床が下がる工程も考慮に入れてプレイヤーが範囲に入るようにトリガーのx軸を10程度上にあげます。

資料014

今作ったトリガーを右クリックし、[Add Event]を選択、出てくる選択肢の中から[OnActorBeginOverlap]を選択してください(下図参照)。

資料015

一から処理を作るのは手間なのでクラスブループリントから選択した範囲だけコピーして貼り付けます。

資料016

資料017

気付きにくいかもしれませんが一枚目の時と違い、二枚目では赤丸で囲われたノードに色がありません。 これは古いほうで作った変数なので新しいほうにはないからです。

これを手っ取り早く直すには赤丸を付けた変数のどちらかを右クリックし、出てくる選択肢の一番目の項目を選択することで同じ名前、機能の変数が作成されます。

資料018

あとは[BeginPlay]の出力ピンとSETの入力ピンをつなぎ、[OnActorBeginOverlap]の出力ピンと[TimeLine]のPlayの入力ピンをつなぎます。

今回はクラスブループリントではないため、ターゲットをセルフで取れないので床をビューポートで選択した後エディタに戻り、右クリックからCallFunction~のやつを追加してターゲットにピンを追加してください。

下図が完成形の状態です。

資料019

ただこの状態では一度接触したら動作し続けるので、離れた場合の処理、[OnActorEndOverlap]を追加し、[TimeLine]のStopにつなげることで止まります。

もし、離れたら元に戻したい場合はReverseにつなぎ、Trackをいじることで実現できます。

止める処理の入った完成形はこっち。

 

資料023

 

もう片方の方法を説明します。

新たに床を作りクラスブループリント化します。 ムーバブル忘れずに。

先程のように処理の部分をコピーして貼り付けます。

次にコンポーネントからBoxCollisionを追加します。

資料020

作成したコリジョンを右クリックし、下図の通りに選択して[OnComponentBeginOverlap]を追加します。

資料021

あとは[OnComponentBeginOverlap]を[TimeLine]のPlayにつなぐだけです。

止めるときの処理もほぼ同じで再現できます。

完成図はこちら。

資料022

 

現在まとめ編集中です。

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です