春日部つむぎ no ゲーム作ってみよう!【UE5/UE4】 - 監視ライト【UE5/UE4】


https://youtu.be/TEcn6lo9a1A

00:00 オープニング
00:31 1.アクターの作成
00:48 1-1.コンポーネントの追加
01:56 2.イベントグラフの編集
08:32 ざっくりまとめ!
08:48 エンディング



ざっくりまとめ!





その1


その2


その3

監視ライト作るよ!

効果範囲に入ると明かりがつき、出ると消えるよ!

監視ライト
surveillance
Surveillance Light
サーベイランスライト

1.アクターの作成


アクターブループリントを作成します。

右クリック→ブループリントクラス→アクターを選択し、
ブループリントを作成します。
ファイル名を「GM_SvlLight」に変更します。

ブループリントファイルを開き、ビューポートタブを開きます。
1-1.コンポーネントの追加

左のコンポーネントより
Boxコリジョンを追加します。

Boxコリジョンをトランスフォーム大きくする
Boxコリジョンのコリジョンプリセットは[OberlapAllDynamic]です。
全てにオーバーラップします。

オーバーラップとは、
あるものとあるものが重なること。
つまりここではコリジョンが重なること。ということです。


ライトコンポーネント(SpotLight)を追加します。
下に向けます。
intensityを「5000」にします。  
intensity : ライトが放出する総エネルギー
Use Inverse Squared FalloffをOffにします。
Use Inverse Squared Falloff : ライトの強度です。
有効時は100Wの電球程度。
無効時は輝度スケールです。
VisibleをOffにします。
Visibleオフでライトが消えます。
最初は明かりが消えていて、効果範囲に入ると明かりが点くようにします。

2.イベントグラフの編集

イベントグラフタブに移動します。
その1
侵入

左のコンポーネントより
Boxコリジョン右クリック → イベントを追加
On Component BeginOverlapを配置します。

On Component BeginOverlap : オーバーラップし始めた時に呼び出されるイベントです。

ブランチノードを配置して、On Component BeginOverlapにつなぎます。

効果範囲に入るのがプレイヤーキャラクターなので、
[Other Actor]とGet Player Pawnをイコールでつなぎます。

イコールをブランチノードのConditionにつなぎます。

プレイヤーがBoxコリジョンに入るとTrue処理を行います。

左のコンポーネントより
SpotLightをドラッグアンドドロップで配置します。
SpotLightからSet Visibilityノードを配置します。

ブランチノードのTrueにつなぎます。
New Visibilityにチェックを入れます。

プレイヤーがBoxコリジョンに入るとSpotLightが点きます。

退去

左のコンポーネントより
Boxコリジョン右クリック → イベントを追加
On Component EndOverlapを配置します。


On Component EndOverlap : オーバーラップが停止した時に呼び出されるイベントです。

On Component BeginOverlapと同じ処理なのでコピーして貼り付けます。

プレイヤーがBoxコリジョンから出るとFalse処理が行われます。

Set Visibilityノードを配置します。
ターゲットをSpotLightノードにつなぎます。
ブランチノードのFalseにつなぎます。
New Visibilityのチェックを外します。

プレイヤーがBoxコリジョンから出るとSpotLightが消えます。

コンパイルして、起動します。


アクターを配置します。
その2
変数を使う方法
侵入

左のコンポーネントより
Boxコリジョン右クリック → イベントを追加
On Component BeginOverlapを配置します。

On Component BeginOverlap : オーバーラップし始めた時に呼び出されるイベントです。

変数の追加

Boolean型変数「vSvlLight」を作成します。
Boolean型はTrueまたFalseを返します。(チェックが入っているか入っていないか)

変数「vSvlLight」setノードをBeginOverlapにつなぎます。
チェックを有効にします。

効果範囲に入るのがプレイヤーキャラクターなので、
[Other Actor]とGet Player Pawnをイコールでつなぎます。

退去
左のコンポーネントより
Boxコリジョン右クリック → イベントを追加
On Component EndOverlapを配置します。

On Component EndOverlap : オーバーラップが停止した時に呼び出されるイベントです。

セットノードをEndOverlapに配置します。
チェックを無効にします。

効果範囲から出るのがプレイヤーキャラクターなので、
[Other Actor]とGet Player Pawnをイコールでつなぎます。

イベントTick
ブランチノードを配置して、イベントTickとつなげます。
変数「SvlLight」のGetノードを配置し、
ブランチノードのConditionに繋げます。

プレイヤーがBoxコリジョンに入るとTrue処理を行います。
プレイヤーがBoxコリジョンから出るとFalse処理が行われます。

True処理
左のコンポーネントより
SpotLightをドラッグアンドドロップで配置します。
SpotLightからSet Visibilityノードを配置します。

ブランチノードのTrueにつなぎます。
New Visibilityにチェックを入れます。

プレイヤーがBoxコリジョンに入るとSpotLightが点きます。

False処理を作成します。
Set Visibilityノードを配置します。
ターゲットをSpotLightノードにつなぎます。
ブランチノードのFalseにつなぎます。
New Visibilityのチェックを外します。

プレイヤーがBoxコリジョンから出るとSpotLightが消えます。

コンパイルして、起動します。

アクターを配置します。

その3
コリジョンに重なっているかで判断する方法

ブランチノードを配置して、イベントTickにつなぎます。

左のコンポーネントより
Boxコリジョンをドラッグアンドドロップで配置します。
Boxコリジョンからis Overlapping Actorノードを配置します。

is Overlapping Actor
  指定アクタのコンポーネントとオーバーラップしているかどうかチェックします。
  自分と相手が重なっているかのチェックで使えます。

[Other]にプレイヤーであるGet Player Pawnノードをつなぎます。

ブランチノードを配置し、is Overlapping ActorノードをConditionに繋げます。

プレイヤーがBoxコリジョンに重なるとTrue処理を行います。

左のコンポーネントより
SpotLightをドラッグアンドドロップで配置します。
SpotLightからSet Visibilityノードを配置します。

ブランチノードのTrueにつなぎます。
New Visibilityにチェックを入れます。

プレイヤーがBoxコリジョンに重なるとSpotLightが点きます。

False処理を作成します。
Set Visibilityノードを配置します。
ターゲットをSpotLightノードにつなぎます。
ブランチノードのFalseにつなぎます。

プレイヤーがBoxコリジョンに重ならなくなくとSpotLightが消えます。

コンパイルして、起動します。

アクターを配置します。

===================================================