UE4 被破壊メッシュ
建物や地面などのオブジェクトの壊れる演出などしたいときにおススメなのが被破壊メッシュです。
被破壊メッシュとはこのようなものです。今回は岩が範囲内をランダムにスポーンさせています。その岩と当たった場所が崩れるようになっています。
bandicam 2017 01 06 12 34 01 870
被破壊メッシュの作成の方法は被破壊メッシュの元にしたいモデルから右クリック→被破壊性メッシュの作成を選択することで作成できます。
被破壊メッシュの設定をして行きます。
赤丸にチェック入れることで部分的な破壊が出来ます。
ピンクの丸の数値は破壊したときの破片の数です。どれだけ細かく破壊するか数値で変更するが可能です。この数値が大きいほうが細かく出来ますが、数値が大きいと処理が重くなります。被破壊メッシュの設定はこれで終わりです。
次は岩の処理です。
岩のブループリントはこのようになっています。
イベントヒットを使うことにより、当たった所の値を取れるので便利です。
これにより、当たった場所にダメージを与えることが出来ます。
あとはスポーンの処理を作るだけです。
このようになっています。イベントtickでは時間を計っています。イベントspwanで岩をスポーンする処理をしています。
配置して行きます。床を他のアクターで固定します。これにより床の落下を防ぎます。このように配置して行きます。赤丸は支えの足場です。
崩れる床の完成です。
UE4 レーザー
今回は簡単なレーザーの作成方法を紹介します。
このようなレーザーです。
bandicam 2016 12 02 17 53 06 286
用意するものは、マテリアルとパーティクルBPと弾丸のBPです。
(BP=ブループリントです)
初めにマテリアルを作っていきます。
下のようになります。Texture Sampleで使っている画像はエンジンコンテンツにあるものをそのまま使っているので安心してください。Particle Colorを5倍にしているだけです。
これでマテリアルの準備は完了です。
次にパーティクルBPを作っていきます。
エミッタの内容を下のようにします。
SpawnのRateを少し多めに100に変更します。
Lifetimeは2秒にしています。
Initial SizeはMinとMaxを1にします。
Color Over Lifeは赤から白っぽい赤に変化するようにします。
これでパーティクルの設定は完了です。
実際のところ、Spawn以外の値は自分の思うレーザーに近づけるように変更しても大丈夫です。
弾丸BPを作って行きます。
Sphere
Arrow
ParticleSystem
ProjectlieMovementを追加して行きます。
Sphereは弾丸です。Arrowは発射の方向を指しています。ParticleSystemは先ほど作ったパーティクルを発生させるために追加します。ProjectlieMovementは弾道計算をしてくれます。
これで簡易レーザーの完成です。
あとは、プレイヤートリガーを作り、この弾丸をSpawnさせてあげるだけです。
わりと簡単に作れるのでおススメです!
UE4 リスポーンとイベントディスパッチャー
今回はリスポーンとイベントディスパッチャーについて説明したいなと思います。
まず、動画を見てください。
bandicam 2016 11 25 12 24 49 752
動画で行っている処理の流れは、デバッグ用のボタン(キーボードPボタン)を押すかプレイヤー(青髪の男の子)が足場から落ちてしますと死亡。その後、リスポーン回数(おじいちゃんの顔)を減少させてから、リスポーン(destroyActorされてから数秒後にリスポーン)する流れとなっています。
実際にリスポーンをしているBPを見てみましょう。
まず、実際に操作しているPlayerのBPに死亡の処理を描いています。
先ほど軽く説明しますたが、Pボタンはデバック用です。イベントDestroyedはこのアクターがdestroyしたとき呼ばれるイベントです。このイベントを使うときに注意しなくてはいけない点は、Delayで次の処理を遅らせようとしても次の処理が呼ばれない点です。
今回はリスポーンまでに一定時間の間隔をあけたかったので、playerのBPにはリスポーン処理がかけませんでした。そこで使ったのが、イベントディスパッチャーです。
イベントディスパッチャーとは呼び出しを行うと、その呼び出しとバインドしている処理を実行することができるものです。
今回はPlayerが死んだ時に、イベントディスパッチャーのDestroy_Playerを呼び出しています。何処でその呼び出しとバインドしているかというと、別のアクターのBP内で呼び出しています。
PLayer_Respawnという別アクターでリスポーンを操作してあげることによって、アクターがdestroyした後の処理を遅らせることなど、拡張性の高いことができるつくりになっています。
バインドする事でバインドとつながっている、イベントが実行されます。それによりリスポーンできます。リスポーン地点も変更や指定がが楽なのでおススメです。
UE4 widgetをゲームパッドで操作する
UE4でタイトルやUIを作るときに使われることが多いwidgetではキーボードとゲームパッドのイベントが呼べません。例)Aボタンなど
ゲームパッドやキーボード上で操作をする時には、、、困りますね。
今回はゲームパッドやキーでの操作の方法を説明したいと思います。
例えばwidget内でやりたいことをグラフにカスタムイベントとして作り、それをレベルブループリントで呼ぶだけで操作が出来ます。
実際に作ったものがこちらです。画像がとりあえずで入れたものなのでところどころおかしいおかしな物があると思いますが、そこは気にしないで下さい。
実際に作った物を見てみましょう。これがwidgetのグラフの全体図です。
細かく見て行きましょう。
カーソルの移動系から見て行きましょう。
上の説明の用にカスタムイベントをまず作ります。
日本語の変数は基本的にやらないほうがいいです。今回は作者は途中で変数の種類が把握できなくなったので日本語にしたが、後で直します、、、
断層という変数は画面が今何を映しているか判断するための変数です。
1はメニュー画面
2は遊び方画面
3ステージ選択画面 となっています。
関数の中身は下のようになっています。やっていることは選択されている文字も大きさを変えている処理をしています。
このカスタムイベントを呼んでみましょう。とても長いです。
レベルブループリントではゲームパッドのスティック入力で変数数値の値が変わり、その値をカスタムイベントのボタンに値を渡しています。
このようなやり方で、キーボードやゲームパッドでも操作が出来ます。今回はここまでです。お疲れ様でした。
UE4 ぷちコン
今回はぷちコンに応募した作品について振り返ってみよーかなって思います。
自分が応募した作品はこちらになります。
作成時に大変だったのが、ボタンの操作です。簡単な処理なんだが同時にタイムラインを操作するところで時間をとられました。かなり見ずらいブループリントになってしまいました。
音自体はフリーの素材を使っています。音を鳴らしたり、BGMを切り替えたりするのはとても簡単に出来てよかったです。
SEのところはこのようになっています。関数で使いまわしています。
ボタンのタイムラインが各ボタンで作っているのがとても見ずらくなっている要因だと思います。
次回はもっと見やすいブループリントにしたいと思います。
UE4 シーケンサーその2
前回は軽くシーケンサーに触れてみたか、今回は実際にゲームの中でシーケンサーを活用する場合にどのようなやり方があるか試してみようと思います。
<ゲーム中にシーケンサーを呼び出そう>
今回はゲームプレイ中にシーケンサーを呼び出そうと思います。
今回のブループリントのはこのようになっています。
まず始めにカメラの設定をします。BeginPlayで最初のカメラを設定します。今回はカメラを2個使います。これによりカメラの視点に出来ます。
次にシーケンサーの作業に行きます。まず最初の視点となるカメラを追加します。今回は動かすカメラの他に視界を徐々に暗くするFadeというのも追加します。このFadeというのは0.0~1.0まで数値を設定することができ、1.0に近づくにつれて画面が暗くなります。
今回はこのように動かします。
とりあえずこれで1つのシーンが完成しました。
今回このシーンをキーボードのPボタンを押すことで呼び出せるようにします。下のようになります。
これにより呼び出すことが出来ます。
カメラを切り替えたりすることも出来ます。
Delayがないとカメラがすぐに切り替わってしまうので、とりあえずDelayで3秒とめています。他にいいやり方もあると思います。