僕の私のUnrealな日々

UE4のBluePrintを使って小さなギミックを作ったりしてます。ブログを通じて情報共有ができたらなと思います。

UE4:Gateを使った手動扉の実装について

どうも、ぶっさんです。

 

BluePrintにGateというノードがあります。

f:id:Bussan_dayo:20150317175343p:plain

Gateが使いたい。とにかく使いたい。

まず名前が鬼カッコイイ。他のフロー制御を一線を画してる感が凄い。

 

ノードを簡単に説明するとEnterとOpenに出力されている際はExitに流れますが、EnterとCloseに出力されているとExitには出力されず止まるというものです。Enterに何も接続されていないと何も起こりません。

 

詳しくはこちらにかいてあります。

docs.unrealengine.com

 

BluePrintを使っていろいろと作成していると使えそうな場面が出てきますが、Gateノード使わないほうが良いねってことが多かったのでなかなか使う機会がない。

 

なのでGateをメインに何か作成しようと思いましたが、本当に何も思い浮かばないのでもう扉でいいんじゃね?って事で作りました。

 

 

ゴブリン可愛い(*^_^*)

 

 

手動扉を実装しよう!

 

使用するもの

FirstPersonテンプレート

StarterContent

 

仕様

扉に設置したTriggerBoxに入った状態で右クリックすると開閉が行える。

 

 

 

まずGateを使用せずに扉を作っていきます。

 

FirstPersonCharacterのBluePrintを作成します。

今回はBluePrintInterfaceを使っています。


Unreal Engine 4 Blueprint QuickShot - 8 - Adding ...

これを見てね!

 

一応完成部分も貼っておきます。

f:id:Bussan_dayo:20150317180651p:plain

プロジェクト設定の入力のAction Mappingでrightとし入力キーを右クリック

 

扉のBluePrintを作成します。

扉の周りにBoxを設置します。これをTriggerBoxとします。

f:id:Bussan_dayo:20150317180856p:plain

 

次にグラフに移りBoxに入ったかどうかを判定します。Blean型の変数を作り以下のようにセットし入った場合のみチェックを付けます。

f:id:Bussan_dayo:20150317181057p:plain

 

次にブランチを出し、Boxに入った状態のみTrueへ出力されるようにします。

f:id:Bussan_dayo:20150317181333p:plain

 

次にFlipFlopとタイムラインを作成します。FlipFlopのAにはPlay、BならReverseを接続します。

f:id:Bussan_dayo:20150317181453p:plain

 

TimeLineをダブルクリックし、[f]をクリックします。一秒間で開くようにしたいので長さを1とし、以下のようにセットします。

f:id:Bussan_dayo:20150317181632p:plain

 

次にLerpのRotationを使用します。以下のようにしてもいいのですが、

f:id:Bussan_dayo:20150317182028p:plain

 

設置の際向きを変えると

f:id:Bussan_dayo:20150317182052p:plain

 

 

 

こうなるのでConstructionScriptで設置した扉のRotationの情報を取得しておきます。

Rotator変数を作成[名前をRotationとする]し、Get Actor Rotationノードを出し変数にセットします。

f:id:Bussan_dayo:20150317182159p:plain

 

LerpノードのA,Bの部分を右クリックし構造体ピンを分割を選択します。

 

先ほど作ったRotationをゲットし、Break Rotに繋げます。そしてA部分にYawを繋げます。もう一つBreakRotに繋げYawに+90しBのYawに繋げます。

f:id:Bussan_dayo:20150317182234p:plain

 

これで完成です。

 

ここからが本番です。これをGateを使ったノード構成に変更します。

Gateを使わない手動扉

f:id:Bussan_dayo:20150317182724p:plain

 

Gateを使った手動扉

f:id:Bussan_dayo:20150317182803p:plain

 

 変数一つ節約できただけ・・・

 

なんかもっと、しゃぁ!Gate使ったぞ!!って思わせる奴ないですかね・・・

自分は何にも思い浮かびません・・・

 

Gateを有効活用できる日まで僕は諦めない・・・

 

 

以上、Gateを使ったけど上手く使いこなせなかったよという報告でした。あざした!