UnrealEngine4で感知式ライトの作成
どうもどうも、ぼこぼこニートです。
違います。
もこもこフードです。
今回はUnrealEngine4で感知式のライトを作成してみました。
こちら
(UE4:Eventノードを使った簡単なBluePrintの作り方 - 僕の私のUnrealな日々)
のサイトを見ながら作ったので大体同じですが、
個人的に分かりにくかった所とかを補完していきます。
・・・あくまで自分用のメモとして。
では早速やっていきます。
そもそも、感知式ライトとは何か。
一定の範囲に入ったら電源の入るアレです。
なんか急に明かりがつくとビクってなるよね。
はい。
まずは新規プロジェクトから「Third Person」のテンプレートを開きます。
そしてこんな感じの暗室を作ります。
私は適当に作りました。
・・・そんなに暗くなかったです。
後で暗くしましょう。
次にこの暗室の中に何かしらのオブジェクトを置きます。
何にもないところに明かりがついたら変でしょ?
今回はライトを置いていますが、
立方体でも、球体でも、何も置かなくても構いません。
オブジェクトを配置したら、その配置したオブジェクトの
ブループリントを作成します。
作成して開くとこんな感じのものが出ると思います。
私が配置したライトは既にサンプルとして
ブループリントが組まれていますが、今回に限っては消してしまっても
構いません。
次に左側にある「コンポーネントの追加」から
「PointLight」を選択し、任意の位置に配置します。
余談ですが、このオブジェクトには初期でPointLightがあります。
これも消して大丈夫です。
消さない場合は上記の配置する所はしなくていいです。
PointLightを配置したら、右側にあるPointLightの詳細から
Visibleのチェックを外しておいて下さい。
このチェックを外して置く事でプレイ開始時に
明かりが消えるようになります。
また、明かりの強さを最大にしておきましょう。
同じくPointLightの詳細から、LightのIntensityの数値を
100000.0とかにしておいてください。
・・・書くのがしんどくなってきました。
はい、次。
感知する範囲を決めていきます。
コンポーネントの追加から、Collisionの所にある
「Box Collision」を選択してください。
大きさを整えたら、こんな感じになるかと思います。
この透明な箱の中に入ると明かりがつくように設定していきます。
このBoxも右側のVisibleのチェックを外しておいてください。
また、円形の範囲にしたいなどがあれば
Box Collisionではなく「Sphere Collision」などに変えてみてください。
そして、いよいよブループリントを触っていきます。
そんな大した処理ではないですが・・・
Event Graphのタブをクリックしてブループリントを開きましょう。
まず、左側のBoxを選択している状態にします。
次にブループリント上で右クリックしましょう。
こんな画面が出ます。
「Collision」を開くと3つくらい出ると思います。
その中の
「OnComponentBegineOverlap」と
「OnComponentEndOverlap」を出します。
それでは次に左側にあるPointLightをブループリント上に
ドラッグ&ドロップします。
こんな感じにしてください。
PointLightから線を引っ張って新規ノードを配置します。
配置するノードは「Toggle Visible」です。
注意 : PointLightから線を引っ張ってノードを作成してください。
右クリックで検索を掛けると複数出て来てしまい、混乱します。(私が)
すべて配置し終えたらノードをつなげていきます。
こんな感じにして下さい。
そして、PointLightをターゲットにつなげたら作業終了です。
あとはビルドをして、プレイしてみましょう。
書いてる時に私がビルドしてない事に気がつきました。
範囲外
範囲内
うんうん。いい感じです。
/* 書いてて思った事 */
ほんとに大したことしてなかった。