Media & Entertainment Collection and Arnold キャンペーンMedia & Entertainment Collection and Arnold キャンペーン

チュートリアル / Road to Stingray
第15回:パーティクルエフェクトを追加する方法

2016.10.05

  • Stingray
  • エフェクト
  • ゲーム
  • チュートリアル
  • 中級者

こんにちは、野澤です。今回は、Stingrayの中で、パーティクルエフェクトを追加する方法をご紹介します。
今回我々が作ったゲームの中でも、5つのパーティクルエフェクトを作りました。今回はシンプルなパーティクルエフェクトだけでしたが、効果は非常に高く、ゲームを演出するのに非常に重要であることを改めて認識しました。

エフェクトサンプル動画

本作のために作ったエフェクトが下の動画になります。

スプライトテクスチャを用意する

今回は、キャラクターの周りに星が飛ぶエフェクトを作ります。本作では、キャラクターが障害物に当たった時のダメージエフェクトとして使用しました。このエフェクトでは、エミッターよりスプライトと呼ばれるパーティクルの板を発生させ、それにテクスチャを貼ることでエフェクトを表現します。
下図の左は、カラーテクスチャマップで、右はその画像のアルファチャンネルです。

次に、StingrayのAsset Browserの中で、Particleを作ります。作り方は、Particleを格納したいフォルダの中で、右クリックからCreate > Particleを選びます。
名前を聞いてくるので、starEffectとしました。

すると、*.materialと*.partcile_editorというファイルが作られます。試しに、先ほど用意したテクスチャをDiffuse Mapに貼ってみます。画面中央に一つだけParticleが出ていることが確認できます。
Asset PreviewのカメラとParticleとの距離を変更したい場合には、Particle Effectを選択し、Preview SettingsからCamera Distanceを変更します。

Particleに動きをつける

このままでは、Particleが動かないので、動きをつけてみたいと思います。
Property Editorの上で右クリックし、Velocity > Boxを選択します。
Particleが四方に向かってランダムに飛び散るようになりました。

Velocity はこの他に、Cone, Cylinder, Scaleがあるようです。

Coneを適用した図

Cylinderを適用した図

重力を与える

次に、Particleに重力を与えてみたいと思います。右クリックから Acceleration > Gravityを実行します。

予想した通り、Particleが発生後に下に落ちるようになりました。

Particleが出続けないようにする

ここまで色々試してきましたが、Particleは同じ発生頻度で出続けてしまいます。何かのきっかけ後に一度だけ出したい時があります。そういう時は、右クリックからEmitter > Burstを追加します。既にRateのEmitterが追加されているので、右クリックからRemove componentを実行しましょう。

Particleを回転させる

個々のParticle毎に回転を加えてみます。

回転を加えるには、右クリックから、Rotationのメニューを開けます。上図のようにRotationの下には、7つの方式があるようです。単純に回転をかけるだけならSpinで良さそうです。その他のタイプも試してみると良いでしょう。

LevelがロードされたらParticleを発生させる

ここまで出来たら、実際にLevelに配置して、LevelがロードされるとPartcileEffectが発生するようにしてみます。これもすごく簡単です。まず、ParticleEffectを発生させたいLevelを開き、Level Flowを編集します。

Tabキーを押して、“Level”と打つと、Level Loadedが候補に挙がってきますので、選択します。次に、Tabキーを押して、Particleと打つと、ParticleEffectが候補に挙がってきますので、同じく選択します。
Level LoadedのOut -> PartcileEffectのCreateに繋ぎます。ParticleEffectのEffectを先ほど作ったものに変更します。準備はこれだけです。

ここまで出来たら、Test Levelしてみます。原点付近にParticleが発生しているのが確認できると思います。
実際のゲームでは、主人公キャラクターのUnit Flowの中でダメージが発生したり何かのイベントのたびにエフェクトが発生するように実装しました。Githubからゲームデータをダウンロードして中身を見てみてもらえると嬉しいです。

まとめ

いかがだったでしょうか?StingrayのParticleEffectは、非常に簡単に必要なエフェクトを作り出せるようです。
見た目にリッチなゲームを作る上でParticleEffectはとても重要なポイントですので、参考になれば幸いです。

開発環境

PC G-Tune「NEXTGEAR-NOTE i5700 シリーズ」
プロセッサ Intel(R) Core(TM) i7-4720HQ CPU @ 2.60GHz 2.60GHz
RAM 8.0GB
OS Windows8.1 x64
グラフィックスカード NVIDIA GeForce GTX 970M
DCCソフト Maya 2016, 3ds Max 2016
Stingray 1.2.526.0

ソースコードをGITHUBで公開中!

先日のイベントで公開しましたが、実はこのプロジェクトのソースコードやプロジェクトのデータは既にGitHubにて公開されています。ダウンロードして頂ければ、どなたでも試してみることが出来ます。

まず、下記のAutodesk社のURLから、Stingrayの30日体験版をダウンロードし、インストールします。

http://www.autodesk.com/products/stingray/free-trial

ダウンロードからテストプレイまでの流れ

GitHub URL
https://github.com/guncys/rtsDev

まず、上記のURLからDownload ZIPを選択しダウンロードした後で、好きなフォルダに解凍します。

次に、Add Existingから既存のプロジェクトを追加出来ますので、先程ダウンロードしたフォルダの中にある、rtsを選択します

プロジェクトがロードされたら、 “rts” を選び、Openします。
初回ロード時のみ、数分のコンパイル処理が走ります。次に、下図の様にlevelsフォルダからstage1.levelを選択しダブルクリックします。

すると、上部ペインのLevel Viewportにマップが読み込まれます。
左上のゲームコントローラのボタンを押すとゲームがスタートします。