UE4  被破壊メッシュ

 建物や地面などのオブジェクトの壊れる演出などしたいときにおススメなのが被破壊メッシュです。

被破壊メッシュとはこのようなものです。今回は岩が範囲内をランダムにスポーンさせています。その岩と当たった場所が崩れるようになっています。

 


bandicam 2017 01 06 12 34 01 870

 

被破壊メッシュの作成の方法は被破壊メッシュの元にしたいモデルから右クリック→被破壊性メッシュの作成を選択することで作成できます。

 

被破壊メッシュの設定をして行きます。

f:id:kenta-sasaki-76:20170106135928p:plain

赤丸にチェック入れることで部分的な破壊が出来ます。

ピンクの丸の数値は破壊したときの破片の数です。どれだけ細かく破壊するか数値で変更するが可能です。この数値が大きいほうが細かく出来ますが、数値が大きいと処理が重くなります。被破壊メッシュの設定はこれで終わりです。

 

次は岩の処理です。

岩のブループリントはこのようになっています。

f:id:kenta-sasaki-76:20170106142531p:plain

イベントヒットを使うことにより、当たった所の値を取れるので便利です。

これにより、当たった場所にダメージを与えることが出来ます。

 

あとはスポーンの処理を作るだけです。

f:id:kenta-sasaki-76:20170106142943p:plain

このようになっています。イベントtickでは時間を計っています。イベントspwanで岩をスポーンする処理をしています。

 

配置して行きます。床を他のアクターで固定します。これにより床の落下を防ぎます。このように配置して行きます。赤丸は支えの足場です。

f:id:kenta-sasaki-76:20170106143659p:plain

 

崩れる床の完成です。

 

UE4 レーザー

今回は簡単なレーザーの作成方法を紹介します。

このようなレーザーです。


bandicam 2016 12 02 17 53 06 286

 

用意するものは、マテリアルとパーティクルBPと弾丸のBPです。

(BP=ブループリントです)

 

初めにマテリアルを作っていきます。

下のようになります。Texture Sampleで使っている画像はエンジンコンテンツにあるものをそのまま使っているので安心してください。Particle Colorを5倍にしているだけです。f:id:kenta-sasaki-76:20161202171607p:plain

これでマテリアルの準備は完了です。

 

次にパーティクルBPを作っていきます。

エミッタの内容を下のようにします。

SpawnのRateを少し多めに100に変更します。

Lifetimeは2秒にしています。

Initial SizeはMinとMaxを1にします。

Color Over Lifeは赤から白っぽい赤に変化するようにします。

 

f:id:kenta-sasaki-76:20161202172505p:plain

これでパーティクルの設定は完了です。

実際のところ、Spawn以外の値は自分の思うレーザーに近づけるように変更しても大丈夫です。

 

 

弾丸BPを作って行きます。

コンポーネント

Sphere

Arrow

ParticleSystem

ProjectlieMovementを追加して行きます。

f:id:kenta-sasaki-76:20161202173624p:plain

Sphereは弾丸です。Arrowは発射の方向を指しています。ParticleSystemは先ほど作ったパーティクルを発生させるために追加します。ProjectlieMovementは弾道計算をしてくれます。

 

これで簡易レーザーの完成です。

あとは、プレイヤートリガーを作り、この弾丸をSpawnさせてあげるだけです。

 

わりと簡単に作れるのでおススメです!

 

UE4 リスポーンとイベントディスパッチャー

今回はリスポーンとイベントディスパッチャーについて説明したいなと思います。

まず、動画を見てください。


bandicam 2016 11 25 12 24 49 752

動画で行っている処理の流れは、デバッグ用のボタン(キーボードPボタン)を押すかプレイヤー(青髪の男の子)が足場から落ちてしますと死亡。その後、リスポーン回数(おじいちゃんの顔)を減少させてから、リスポーン(destroyActorされてから数秒後にリスポーン)する流れとなっています。

 

実際にリスポーンをしているBPを見てみましょう。

まず、実際に操作しているPlayerのBPに死亡の処理を描いています。

f:id:kenta-sasaki-76:20161125112413p:plain

 

先ほど軽く説明しますたが、Pボタンはデバック用です。イベントDestroyedはこのアクターがdestroyしたとき呼ばれるイベントです。このイベントを使うときに注意しなくてはいけない点は、Delayで次の処理を遅らせようとしても次の処理が呼ばれない点です。

 

今回はリスポーンまでに一定時間の間隔をあけたかったので、playerのBPにはリスポーン処理がかけませんでした。そこで使ったのが、イベントディスパッチャーです。

イベントディスパッチャーとは呼び出しを行うと、その呼び出しとバインドしている処理を実行することができるものです。

 

今回はPlayerが死んだ時に、イベントディスパッチャーのDestroy_Playerを呼び出しています。何処でその呼び出しとバインドしているかというと、別のアクターのBP内で呼び出しています。

PLayer_Respawnという別アクターでリスポーンを操作してあげることによって、アクターがdestroyした後の処理を遅らせることなど、拡張性の高いことができるつくりになっています。

f:id:kenta-sasaki-76:20161125121452p:plain

 バインドする事でバインドとつながっている、イベントが実行されます。それによりリスポーンできます。リスポーン地点も変更や指定がが楽なのでおススメです。

 

 

UE4 widgetをゲームパッドで操作する

UE4でタイトルやUIを作るときに使われることが多いwidgetではキーボードとゲームパッドのイベントが呼べません。例)Aボタンなど

ゲームパッドやキーボード上で操作をする時には、、、困りますね。

今回はゲームパッドやキーでの操作の方法を説明したいと思います。

 

例えばwidget内でやりたいことをグラフにカスタムイベントとして作り、それをレベルブループリントで呼ぶだけで操作が出来ます。

実際に作ったものがこちらです。画像がとりあえずで入れたものなのでところどころおかしいおかしな物があると思いますが、そこは気にしないで下さい。

 


タイトル

 

 

 

 

実際に作った物を見てみましょう。これがwidgetのグラフの全体図です。

f:id:kenta-sasaki-76:20161028113713p:plain

細かく見て行きましょう。

 

カーソルの移動系から見て行きましょう。

f:id:kenta-sasaki-76:20161028115001p:plain

上の説明の用にカスタムイベントをまず作ります。

日本語の変数は基本的にやらないほうがいいです。今回は作者は途中で変数の種類が把握できなくなったので日本語にしたが、後で直します、、、

 

断層という変数は画面が今何を映しているか判断するための変数です。

1はメニュー画面

2は遊び方画面

3ステージ選択画面 となっています。

関数の中身は下のようになっています。やっていることは選択されている文字も大きさを変えている処理をしています。

f:id:kenta-sasaki-76:20161028120345p:plain

このカスタムイベントを呼んでみましょう。とても長いです。

レベルブループリントではゲームパッドのスティック入力で変数数値の値が変わり、その値をカスタムイベントのボタンに値を渡しています。

f:id:kenta-sasaki-76:20161028121004p:plain

 

このようなやり方で、キーボードやゲームパッドでも操作が出来ます。今回はここまでです。お疲れ様でした。

 

UE4 メニュー画面の作り方について

今回はタイトルの作り方について説明します。

 全体の様子はこんな感じです。


タイトル

遊び方などのテクスチャーはとりあえずのものです。

 

これを作っている時に悩んだのがwidgetのほうのブループリントでキーイベントを呼ぶことが出来ないことです。

マウスで操作する前提のものなら割と簡単に出来そうだがゲームパッドやキーボードはすこし大変になるんだなと感じました。

 

ゲームパッドやキーボードで入力するには、widgetのほうに書いたカスタムイベントをレベルブループリントで呼ぶのがなかなかやりやすい方法なのかなと思います。

 

次回はなかみをみて解説したいと思います。

 

UE4 ぷちコン

今回はぷちコンに応募した作品について振り返ってみよーかなって思います。

自分が応募した作品はこちらになります。

DJごっこ

 

作成時に大変だったのが、ボタンの操作です。簡単な処理なんだが同時にタイムラインを操作するところで時間をとられました。かなり見ずらいブループリントになってしまいました。

 

音自体はフリーの素材を使っています。音を鳴らしたり、BGMを切り替えたりするのはとても簡単に出来てよかったです。

 

SEのところはこのようになっています。関数で使いまわしています。

f:id:kenta-sasaki-76:20160930124433p:plain

ボタンのタイムラインが各ボタンで作っているのがとても見ずらくなっている要因だと思います。

f:id:kenta-sasaki-76:20160930124437p:plain

 

次回はもっと見やすいブループリントにしたいと思います。

UE4 シーケンサーその2

前回は軽くシーケンサーに触れてみたか、今回は実際にゲームの中でシーケンサーを活用する場合にどのようなやり方があるか試してみようと思います。

 

<ゲーム中にシーケンサーを呼び出そう>

今回はゲームプレイ中にシーケンサーを呼び出そうと思います。

今回のブループリントのはこのようになっています。

f:id:kenta-sasaki-76:20160729122236p:plain

 

まず始めにカメラの設定をします。BeginPlayで最初のカメラを設定します。今回はカメラを2個使います。これによりカメラの視点に出来ます。

f:id:kenta-sasaki-76:20160729122411p:plain

 

次にシーケンサーの作業に行きます。まず最初の視点となるカメラを追加します。今回は動かすカメラの他に視界を徐々に暗くするFadeというのも追加します。このFadeというのは0.0~1.0まで数値を設定することができ、1.0に近づくにつれて画面が暗くなります。

 

今回はこのように動かします。

f:id:kenta-sasaki-76:20160729123327p:plain

 

とりあえずこれで1つのシーンが完成しました。

今回このシーンをキーボードのPボタンを押すことで呼び出せるようにします。下のようになります。

f:id:kenta-sasaki-76:20160729123604p:plain

 

これにより呼び出すことが出来ます。

録画 2016 07 29 12 38 45 913

 カメラを切り替えたりすることも出来ます。

f:id:kenta-sasaki-76:20160729125202p:plain

Delayがないとカメラがすぐに切り替わってしまうので、とりあえずDelayで3秒とめています。他にいいやり方もあると思います。