妹でもわかるUnrealEngine4

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

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

UE4のパーティクル研究(2) 発射地点エミッタと、パーティクルの寿命

f:id:una_unagi:20171215230023p:plain

「パーティクルシステムのアセットをダブルクリックするとこういうエディタが出てくる。このエミッタというのが、1つ1つツブツブ、つまりパーティクルの発射地点で、発射の設定をする部分でもある。これはどのシステムでもだいたいこういう名前のような気がする」

妹「用語がいっぱいでややこしいんだよね……」

manabibeya.com

「この記事で大雑把には紹介されてるけど、結局のところ自分でオンオフしたり、くっつけたりして、どうなるかを見て方が理解しやすい気がする」

f:id:una_unagi:20171215231002p:plain

「例えば、エミッタのLifetimeの欄をクリックして、×マークにしたところ、無限の彼方まで飛んで行くようになった。Lifetimeというモジュールは発射後のパーティクルの寿命を決めるやつだから、寿命がない=いつまでも残るということで、最初の勢いのまま飛んでいく」

妹「ってことはずっと消えないの?」

「どうなんだろう……ずっと遠くにあるのか、ある程度以上遠くに行くと消されるのか。ただこういう設定にすると、しばらくしたところでパーティクルの発射が止まっちゃうことがわかった。1つのエミッタからは同時に1002個以上のパーティクルは出ないんじゃないかと思ってるんだけど」

f:id:una_unagi:20171215231833p:plain

「この数字がどうも発射中のパーティクルの数らしい。寿命が尽きたら減るから、普通は数十個ぐらいまでなんだけど、不死身にすれば減らないから、どんどん増えてしまう。たぶん適当に設定した時にフリーズしないような歯止めじゃないかと」

妹「じゃあ寿命は必要なんだ」

「ずっとでてるエフェクトならそうだけど、瞬間的なエフェクトとかだったら、寿命がくるまえに用事が済むから問題ないと思う。あと寿命以外にも、どの距離まで離れたらパーティクルを消すかっていう設定もあった」

f:id:una_unagi:20171215232410p:plain

「エミッタのところを右クリックして、Kill Heightというモジュールを追加した。これだと寿命を時間じゃなく飛距離とかに設定できる。Heightって書いてあるけど、Box型とかで範囲指定すれば横にも対応できる」

妹「モジュールというのは?」

「エミッタの設定に使う専用のコンポーネントみたいなの。これはUE4のカスケードエディタの用語。エミッタの設定画面に全項目入れるとすっごい長くなるし、たいていはそんなに要らないから、要る時に要る分だけ設定画面を追加していく仕組みになってる」

docs.unrealengine.com