クローンをつかってパーティクルを大量に発生させると「爆発・火花・霧など」のグラフィックを表現することができます。
パーティクルとは粒子という意味です。パーティクルをつかったグラフィック効果のことをパーティクル効果と呼んだりもします。
この記事では、クローンをつかって粒子を大量に発生させてパーティクル効果を表現するプログラミングの方法が分かります。
完成品
完成した動き
「花火」「爆発」「分子」の動きを模した3種類のパーティクル効果をつくってみました。
パターン①:花火
花火の筒から火花に模したパーティクルを発生させています。
パターン②:爆発
中心点から四方に一気にパーティクルが広がって爆発のような効果を表しています(コスチュームはハート型ですが動きは爆発)。
パターン③:分子
中心点から同心円状にパーティクルが広がって端っこで跳ね返りを繰り返し、分子運動のような動きを表しています。
使用したスプライト
スプライトは「花火」「爆発」「分子」の3つです。
いずれのスプライトもScratchにあらかじめ用意されているコスチュームを呼び出して、少し加工などして使用しています。
【花火のスプライト】
Scratchに標準で備わっている「Button5-b」コスチュームを選んで複製したり色を変えたりして使用。また、新しく花火の筒を描いたコスチュームを追加。
【爆発のスプライト】
Scratchに標準で備わっている「Heart Face」コスチュームを選んで、目と口を削除して使用。
【分子のスプライト】
Scratchに標準で備わっている「Ball-b」コスチュームを選んでそのまま使用。
完成したスクリプト
完成したスクリプトの全体です。
【花火のスクリプト】
使用している変数はいずれも「このスプライトのみ」でつくります。
- t:このスプライトのみ
- X:このスプライトのみ
- Y:このスプライトのみ
【爆発のスクリプト】
使用している変数はいずれも「このスプライトのみ」でつくります。
- X:このスプライトのみ
- Y:このスプライトのみ
【分子のスクリプト】
使用している変数はいずれも「このスプライトのみ」でつくります。
- X:このスプライトのみ
スクリプトの作り方
ここからは、それぞれのパーティクル効果のポイントについて説明します。
花火の解説
クローンをつくるとき、3体はコスチューム「赤」でつくり1体はコスチューム「オレンジ」でつくるようにしています。そして、クローンがつくられたらすぐに表示して動かしています。
クローンの動きは、XY方向にそれぞれ一定の範囲でランダムに数字を選んで座標を移動させます。Y方向の数字は0.5ずつ減らしているので上昇の勢いがなくなっていき下方向の動きに切り替わります。これを25回繰り返しています。
また、「幽霊の効果を2ずつ変える」ブロックでクローンを少しずつ透明にしています。
これらクローンの生成からクローン削除までの一連のスクリプトが120回繰り返されるので、合計で480個のクローンが連続的に生成されていきます。
また、「(t*t)秒待つ」ブロックでクローン生成の繰り返し間隔を調整していて、この待ち時間は徐々に小さくなるようにしています。
爆発の解説
クローンを4体×50回で合計200個をつくります。そして、クローンが作られたらすぐに表示しますが、この時はまだ動かしません。つまり、200個のクローンがステージ上に生成されている状態になります。
クローンの生成が終わったら「メッセージ1を送る」ブロックを送って、生成したクローンを一気に動かします。
クローンの動きは、XY方向にそれぞれ一定の範囲でランダムに数字を選んで座標を移動させます。移動させながら「15度回す」ブロックで回転を加えています。これらの動きを50回繰り返しています。
また、「幽霊の効果を2ずつ変える」ブロックでクローンを少しずつ透明にしています。
変数「X」と「Y」は「このスプライトのみ」でつくっているので、クローンごとに個別に値を持つことができます。
分子(運動)の解説
スクリプトは「爆発」の場合とほぼ同じです。
クローンを4体×50回で合計200個をつくります。そして、クローンが作られたらすぐに表示しますが、この時はまだ動かしません。つまり、200個のクローンがステージ上に生成されている状態になります。
クローンの生成が終わったら「メッセージ2を送る」ブロックを送って、生成したクローンを一気に動かします。
クローンの動きは、「~度に向ける」ブロックで向きをランダムにしてから「(x)歩動かす」ブロックで「x」変数に設定された数字の分だけ動かします。
動かしながら「xをー0.02ずつ変える」ブロックで少しずつスピードを遅くしていって、止まったクローンから削除するようにしています。
変数「X」「このスプライトのみ」でつくっているのと「向き」はもともと「このスプライトのみ」で作られている変数と同じ機能を持っているので、クローンごとに個別に値を持つことができます。そのため、1つ1つのクローンが異なる速さと向きを持っています。
解説は以上です。
失敗しやすいポイント
クローンがステージ上に一度に存在できる数(300個上限)には注意しましょう。「一度に存在できる数」なので、作ったそばからクローンを消してしまえば無限に生成することは可能です。
また、つくったクローンを消したくない場合もあると思います。クローンを動かし終わったけど消さずに画面上に表示だけ残しておきたい場合はこちらの方法が使えます。↓↓↓
応用編
今回応用編は特にありません。
まとめ
今回紹介したパーティクル効果は、要するに小さいサイズのクローンを大量に発生させて粒子の動きを再現することにつきます。
そういう意味では、プログラミング自体はシューティングゲームの「連射」に通じるところがありますが、表現の仕方がまったく違うので使う場面は必然的に異なるものになります。
パーティクル効果は、どんなコスチュームにするか?クローンの動かし方をどうするか?によって、まったく違う印象を与えることができるのが面白い部分だと思います。