こちらは、まずは色々な表現を使ってみたい!という人向けのチュートリアルコースです。
このチュートリアルコースを受講する前に、
を完了することをおすすめします。
なお、このコースでは、最初のチュートリアルで利用したプロジェクトを引き続き使用しますので、削除してしまった方は改めてチュートリアル開始よりチュートリアルプロジェクトをご用意ください。
STEP1: パーティクルオブジェクトを作ろう
- シーンタブで+を押して新しいシーンタブを作り、ゲームオブジェクトを作成します。
- 作成画面が開きますので、以下のように設定してください。
名前: 任意(ここではtest_particleとします。)
テンプレート: particles
タイプ: Empty
- 作成したら、シーンタブを右クリックして保存を選択するか、Ctrl+Sのショートカットを使って保存しておきましょう。
4.ここで作成されたParticleObjectノードは、ヴィジュアルスクリプトでパーティクルを扱うための専用ノードになっています。シーンウィンドウでParticleObjectノードを選択してください。
- 右側のインスペクターウィンドウの、Particle Template IDを選択してください。様々なプリセットのパーティクルが設定されています。
- 色々切り替えて試してみましょう。なお、このテンプレート変更は今存在するノードを全て上書きしてしまうので自作パーティクルを追加した後は触らないようにしましょう。 試し終わったらNONEに戻して子ノードがなにもない状態に戻しましょう。
- シーンウィンドウ左上の+ボタンをクリックしてください。
- GPUParticles2Dノードを追加してください。
- これで準備は完了です。次のSTEPではパーティクルの基礎的な自作方法を解説します。
解説
CPUParticlesとGPUParticles
同じようなノードが2つありますが違いはなんでしょうか。
これはシンプルに、処理にCPUを使うか、GPU(グラフィックプロセッサ)を使うかという違いです。
正しくは、自分のゲームではどのような処理が重たいのか?を判断して使い分けるものですが、グラフィック処理が浮きがちな2Dゲームであれば通常はGPUParticlesを利用するのが良いでしょう。
STEP2: GPU Particlesの設定
- STEP1で作成したGPU Particles2Dノードを選択してインスペクターウィンドウを見てください。
- Process Materialの<空>をクリックしてNew ParticleProcessMaterialを選択します。
- 中央のウィンドウを見てください。拡大すると・・・小さいドットが下に向かって落ちていっているはずです。これは重力が効いているためです。分かりづらいので一旦重力加速度を0にしましょう。
- ParticleProcessMaterialをクリックして展開してください。Accelerations>GravityRateにあるyを98から0に変更しましょう。重力が無効になり、落下しなくなります。
- GodotのParticleシステムは非常に高度で沢山の設定項目があります、ここではもっとも基礎的な部分だけを確認します。"Spawn"以外のメニューは一旦忘れてください。
- まずはSpawn>Positionです。これは、発生範囲を変更するものです。以下のように設定してみましょう。
Emission Shape Scale: x30 y30
Emission Shape: Sphere
半径30センチの円形内にドットが出現するようになるはずです。
- 次の設定のAngleは特殊な設定なので飛ばします。
- Spawn>Velocityはパーティクルの放出先や速度を設定するものです。試しにInitial Velocityのminを10、maxを100にしてみましょう。右方向の45度の角度に向かって10~100の速度で移動するようになるはずです。
- 方向をy:1 Spreadを30にしてみましょう。今度は下方向に30度の角度で放出されます。
- このSpawn以外の設定はこのパーティクルの動きを複雑にしていくものです。用途に応じて追加していくことになります。一旦プロセスマテリアルは閉じて、それ以外の基本的なメニューを試しましょう。
- インスペクター上部のMax Amountを8から16に変更してみましょう。これはパーティクルの数を設定するもので、数が倍になるはずです。
12.Time>Lifetimeを1から0.3に変更してみましょう。これはパーティクルの持続時間を示します。消滅すると同時に新しいパーティクルが生成されるため、激しい動きになるはずです。
- OneShotをオンにしてみましょう。パーティクルの表示が止まってしまうのでEmittingのチェックボックスをオンにしてください。OneShotはその名の通りパーティクルを一度だけ放出し、再生成しません。Emittingはパーティクル生成状態のオン/オフを切り替えるものなので、OneShotがオンの場合は、パーティクルの持続時間の間だけオンになり自動でオフになります。
- Timeに戻り、Explosivenessを0から1にしてみましょう。これはその名の通り爆発のようなパーティクルを作成するためのオプションで、持続的にパーティクルを放出するのではなく、一瞬で全てのパーティクルを放出するようになります。
- 最後はテクスチャーです。サンプルのテクスチャをつけてみましょう。ファイルシステムウィンドウの、templates>objects>items>I_othersにある好きな画像をテクスチャーにドラッグ&ドロップしましょう。
- ドットがテクスチャーの画像に変わりました。
次のチュートリアルはこちら
チュートリアル: 表現強化コース #2 光と影を使おう。
もっと調整したい人向けのアイデア。
テクスチャーが全て同じ角度なのでバラバラにしたい。
先ほどスキップしたProcessMaterialのSpawn>Angleを変更すれば初期角度をバラバラにすることができます。
加速をつけたい
ProcessMaterialのAccelerationsメニューで加速を調整できます。線形方向(Linear)、中心から放出(Radical)、円運動(Tangential)等の加速度を設定できます。
動きに変化をつけたい
ProcessMaterialのAnimatedVelocityで角度や方向、円運動等の動きを変化させることができます。
見た目に変化をつけたい
ProcessMaterialのDisplayメニューで、サイズやカラー、アニメーション等を設定できます。
ここで解説した機能はGodotの2Dparticleシステムのほんの基礎的なものだけです、より詳しくは以下の公式ドキュメントをご確認ください。