UnrealYoshidaのUE4講座

UnrealEngine4(UE4)に関する記事を投稿しています

「初心者向けUE4」TimeLineを使ったドアの開閉

初めまして。初投稿になります。

今回はBPのTimeLineを使ったドアの開閉を紹介したいと思います。

まず、ドアを用意しましょう。(今回はStarterContentのSM_Doorを使用しています。)

 

f:id:ikagamedev:20160410030204p:plain

 

まずこのドアからBluePrintを作りましょう。

赤丸で囲った "ブループリント/スクリプトを追加" をクリックしてください。

 

f:id:ikagamedev:20160410031404j:plain

 

クリックしたら、このような画面がでると思います。

ブループリントを保存する場所を聞かれるので今回はコンテンツ直下に "BP_Door" という名前で保存しました。

 

f:id:ikagamedev:20160410031741p:plain

 

"ブループリントを作成" を押したらこのような画面が出てくると思います。

f:id:ikagamedev:20160410032451p:plain

扉がたたずんでいます。かわいそうなのでこの扉にCollisionと呼ばれる恐らくこの記事で一番大事なものを追加してあげます。

赤丸で囲った "コンポーネントを追加"

をクリックしてください。

 

f:id:ikagamedev:20160410033705j:plain

 

検索欄にCollision

と打ち込みBox Collisionを選択しましょう。

f:id:ikagamedev:20160410033925p:plain

 

Box Collisionを選択した状態で拡大・縮小ツールを使ってこれぐらいの大きさにしましょう。

 

f:id:ikagamedev:20160410034732p:plain

 

次にこのトリガーにオーバーラップした際に起きるイベントを作りたいので赤丸で囲った "イベント" のOn Component Begin Overlap

+をクリックしてください。

 

f:id:ikagamedev:20160410035205j:plain

 

クリックしたらこのような画面になると思います。焦らないでください。

Other Actor

から線を伸ばしてあげて

f:id:ikagamedev:20160410035630p:plain

 

cast to (自分が使ってるPawn名)を打ち込んでください。

f:id:ikagamedev:20160411003154p:plain

 

f:id:ikagamedev:20160411003603p:plain

線を伸ばしてあげてTimeline

とうってあげてください。

f:id:ikagamedev:20160411003627p:plain

 

このようなノードが出てくると思うのでDoorOpen

という名前で保存してくだい。

f:id:ikagamedev:20160411003903p:plain

 

 

赤丸で囲ったTimeLineノードをダブルクリックして

f:id:ikagamedev:20160411004644j:plain

 

 

このような画面をだしましょう。

f:id:ikagamedev:20160411004817p:plain

 

 

赤丸で囲ったf+

というとこをクリックしてください。

f:id:ikagamedev:20160411005126j:plain

 

名前付けてください。(私の場合はOpenandCloseにしました。)

それではグラフに点を打っていきましょう。

f:id:ikagamedev:20160411005437p:plain

 

 

赤丸で囲った0と1.5の場所に点を打ってください。(デフォルトでShift + 左クリック)

赤丸で囲った右の1.5の点をクリックしてください。

f:id:ikagamedev:20160411010118j:plain

 

1.5の点をクリックして、時間の部分に1.5、値の部分に90と打ちましょう!

 

f:id:ikagamedev:20160411011710j:plain

 

そうするとこんな感じになると思います。これで完了です。

f:id:ikagamedev:20160411012052p:plain

 

赤丸で囲ったイベントグラフ

の部分をクリックしてイベントグラフに戻りましょう。

f:id:ikagamedev:20160411012321j:plain

 

 

TimelineノードのOpenandClose

から線を伸ばしてあげて

 

f:id:ikagamedev:20160411012605p:plain

 

make rotator

と打ち込んでください。

 

f:id:ikagamedev:20160411012853p:plain

 

 

このようなノードが出てくると思います。デフォルトではX(Roll)につながれていると思いますが、恐らくZ軸での回転で扉を開閉すると思うので

f:id:ikagamedev:20160411013051p:plain

 

Z(Yaw)につないで上げてください。

f:id:ikagamedev:20160411013059p:plain

 

次にMake Rotator

ノードのReturn Valueから線を引っ張ってあげまして、SetActorRelativeRotation

を出してあげてください。

f:id:ikagamedev:20160411013538p:plain

 

このようなノードが出てくると思います。

f:id:ikagamedev:20160411013715p:plain

 

TimelineノードのUpdateピンからSetActorRelativeRotationにつないでください。

 

f:id:ikagamedev:20160411013932p:plain

 

 次に赤丸で囲った部分のBoxをクリックして

f:id:ikagamedev:20160411015320j:plain

 

 イベントのOnComponent EndOverlapの+ボタンをクリックしてイベントを追加してください。

f:id:ikagamedev:20160411015427p:plain

 

f:id:ikagamedev:20160411015614p:plain

 

上のOn ComponentBeginoverlapと同じようにcast to処理を挟んであげて、

f:id:ikagamedev:20160411015709p:plain

 

timelineノードのReverseピンにつないであげましょう。

これでドアの開閉処理は完了です。コンパイルとセーブをして、動作を確認してみましょう!

 

f:id:ikagamedev:20160411015921p:plain

 

あれ....動かない....

 

f:id:ikagamedev:20160411020244p:plain

 

そうなのです。可動性をスタティックからムーバブルに変更してあげないとこのドアの開閉は機能しないのです。

f:id:ikagamedev:20160411020404p:plain

f:id:ikagamedev:20160411020548p:plain

 

 

動いた!!!

f:id:ikagamedev:20160411020719p:plain

f:id:ikagamedev:20160411020737p:plain

 

 

以上でTutorialは終了です。お疲れ様でした。不明な点等ありましたらお気軽に('ω')