妹でもわかるUnrealEngine4

毎日更新? 妹に説明するために書いてるけど、たまにわかってない場合もあるUnrealEngine4を中心としたゲーム制作の話。略すとイモリアル

毎日更新? 妹に説明するために書いてるけど、たまにわかってない場合もあるUnrealEngine4を中心としたゲーム制作の話。略すとイモリアル

UE4のパーティクル研究(5) Beamエミッタ研究

「Beamエミッタの調査に入る。といってもまだわかってないことの方が多いんだけど」

f:id:una_unagi:20171219235048p:plain

「まずBeam Dataモジュールは必要。ここにある設定で色々変わる。面白かったのはSpeedで、これを0以外の値にすると、右から左にゆっくりと円をえがくようにビームがでる。ただしこれをやるならLifeTimeを伸ばすか無効化すること。そうしないと左端に到達する前に寿命が尽きて消えるから」

妹「寿命が……」

f:id:una_unagi:20171219235554p:plain
f:id:una_unagi:20171219235404p:plain

「ビームの質感はRequired内のマテリアル(テクスチャは無し)、色はInitial Colorの中で設定できた」

f:id:una_unagi:20171220000210p:plain
RGBが1以上の場合発光する感じに

f:id:una_unagi:20171220000820p:plain
1以下だと貧相なビームに

「マテリアルはこんな風になっている。詳しい話はともかく、上と下にいくほど透明になる感じの設定。そしてParticleColorというノードから色を持ってきてる。StandardSpriteエミッタで試した時はInitial Color変えても反応なかったけど、ParticleColorの設定がないマテリアルだったせいかなあと」

f:id:una_unagi:20171220000452p:plain

「他にもマテリアル内でParticleなんとかってノードがたくさんあって、まあ何かに使うんだろうと」

f:id:una_unagi:20171220000903p:plain
Initial SizeはXだけ反映される。どの方向から見てもXの太さになって、YとZは無視

f:id:una_unagi:20171220000945p:plain

「他にも色々設定できるところあるんだけど、反応があるやつとないやつがあって、Beamだからなのか、他の設定との兼ね合いなのか。マニュアル見てもまだよくわからないところが多い」

docs.unrealengine.com

妹「結局ビームってどうやって出してるのかな? 原理というか」

「たぶん、四角い小さいビームの破片がつながってて、ビームが曲がる時は四角も傾けて、全体としてビームに見えるようにしてる気がする」

妹「でも四角だったから、傾けたところとか、つなぎ目がちょっと変になるんじゃない?」

「そのへんはどうなってるのか、色々パタメータを変更していけば、そのうち継ぎ目が見えてくるかもしれない」

UE4のパーティクル研究(4) 6種類のエミッタ

f:id:una_unagi:20171218215936p:plain

「カスケードエディタとそのパーティクルシステムの構造が、だいたいわかってきたので、サンプルを見てみる。いつもの"機能別サンプル"にParticles_Introというマップがある」

f:id:una_unagi:20171218223154p:plain

f:id:una_unagi:20171218223233p:plain

「おおまかには6種類のエミッタが存在してて、質問にあったBeamとRibbonも含まれてる。それ以外にAnimTrail、GPU Sprites、Meshエミッタというのがある」

妹「5種類しかないのでは?」

「何もない状態っていうのがあるんだよ。昨日までの状態がそれ」

f:id:una_unagi:20171218233821p:plain

「Standard Spriteエミッタと書いてある。タイプデータのモジュールを何もつけてない場合はこれなんだと思う。どれかタイプデータのモジュールを追加すると、その時点で形状が変化する

f:id:una_unagi:20171218234141p:plain

f:id:una_unagi:20171218234327p:plain

「これがGPU Spriteエミッタ」

妹「グルグル巻きになるの?」

「それはエミッタの設定の違いで、GPU Spriteの特徴としては、ツブツブが大量に出せるみたい。Standardだと1000個ぐらいだったけど、これは1万を超える。GPU Spriteのモジュールを消すと、最初の1000個が出た時点で打ち止めになる。他にも違いはあるみたいだけどまだ不明」

f:id:una_unagi:20171218234459p:plain

「Meshエミッタ。これはポリゴンの物体を落とすやつ」

妹「あー、最初はこれで作ろうとしたんだよ。平面のポリゴン作って、そこにテクスチャを貼れば使えるのかなと思って。そういうポリゴンを上手く作れなくて諦めたけど」

「その方法でもできるかもしれないけど、これはポリゴンメッシュをそのまま出してて、ビルボード的には機能してないみたい。スプライト的なのはやっぱりStandard Spriteエミッタで出す方がいいと思う」

f:id:una_unagi:20171218234903p:plain

「Beamエミッタ。光線のような物がでてる。ランダムに角度が変わる稲妻のような線が、出たり消えたりを高速で繰り返して、電撃めいた演出になる。これについては次回以降詳しくしらべていく」

f:id:una_unagi:20171218235104p:plain

Ribbonエミッタも不思議な動きをする」

妹「ビームはビームっぽかったけど、これは特にリボンの形はしてないね」

「このサンプルは2つのエミッタで構成されてて、赤い火球がStandard Spriteエミッタ、青い光跡がRibbonエミッタになる。だから青い方がリボン。このへんも後々調べる」

f:id:una_unagi:20171218235943p:plain

「最後がAnimTrailエミッタ。これだけだいぶ毛色が違う。手を動かすアニメに合わせて出てるみたいなんだけど」

妹「残像的な?」

「たぶんそうなんだけど、でも足も動いてるのにそっちには出てない。どういう仕組なのか、これもちょっと調べてみないとわかんない」

UE4のパーティクル研究(3) 粒子のテクスチャとマテリアル

f:id:una_unagi:20171216235549p:plain

「なんか変な絵しか出てこないのが気になるので、絵を変える方法を探してみる。どうやらRequiredモジュールを変えればいいらしい。その名の通り必須のモジュールで、要らなくても消せない。まあ要るんだけど」

妹「たしか最初Paper2Dを使おうとして、なんか駄目そうだなって感じになったような」

「1つの画像からたくさんスプライトを切り出す方式には対応してない。テクスチャで形を、色とかはマテリアルで設定する

妹「なんだか面倒くさいね」

「その分マテリアルの機能を使えるというのはある。今出してるのは水面のマテリアルだけど、波を表現する法線マップもちゃんと機能してるから」

妹「そのでてきた水面の形が、八角形みたいになってるのはテクスチャのせい?」

「テクスチャのせい。水面には透過設定ないから、テクスチャの大きさいっぱいに出てくる」

f:id:una_unagi:20171217000147p:plain

「よくわからないけど、最初から入ってた☓型のマテリアルに変えてみる。これはマテリアルの方で透過してるから、テクスチャの効果で八角形にくり抜いたあと、さらに☓型にくり抜いてる感じになる」

妹「マテリアルで出来るなら、テクスチャで設定する必要ないのでは?」

「その場合テクスチャを"なし"に設定すれば、真四角になる。でもそれだと専用のマテリアル以外は使いにくいかも」

f:id:una_unagi:20171217000614p:plain

「マテリアルをAdditiveにすれば加算合成だから、光るパーティクルが作れる。背景部分がちゃんと黒じゃないからくり抜けてないけど」

f:id:una_unagi:20171217000747p:plain

「そうやって色んなマテリアルで遊ぶのはいいんだけど、一度パーティクルに使ったマテリアルは、この設定欄にチェックが入る。パーティクルで使わなくなった後も残る。このチェックがあるとその分コンパイルとかが遅くなるようなので、あんまり何でもかんでもは使わない方がいいかも。アセットをセーブせずに閉じればいいんだけど」