tanaka's Programming Memo

プログラミングについてのメモ。

Ultimate VFXでゲームのイメージを膨らまそう!

Unity アセット真夏のアドベントカレンダー 2018 Summer! 5日目(8/5)の記事です!


アドカレ・ディフェンス

(2018/8/6 作例を公開しました!)

はじめに

学生のみなさんは夏休みに入られたことと思います。夏休み中にゲームを作りませんか!もちろん、社会人のみなさんも。

学生は一ヶ月、社会人だと1週間もないかもです。小作品ではありますが、夏の思い出になるような、花火のような作品を。花火といえばパーティクル。パーティクルの定番アセットの一つであるUltimate VFXをご紹介します!

目次

Ultimate VFXとは

人気パーティクルアセットです。定価は$40ですが、よくセールされている印象です。こちらの動画で雰囲気が掴めると思います。

www.youtube.com

ハデハデです。

概要についてはUnity AssetStoreまとめさんにまとめられています。以下はv3.1のもの。

www.asset-sale.net

以下はv2.6の時のもの。

www.asset-sale.net

2017年の6月の記事の時点でv2.6でしたが、この1年ちょっとの間にv2.7 -> v3.0 -> v3.1 -> v3.2とバージョンアップを続けている意欲的なアセットです。

記事の前提

以下の環境で確認しました。バージョンが異なると画面や注意事項か異なる可能性があります。

  • Unity2018.2.1f4
  • Ultimate VFX v3.2
  • Windows10

v3.2は、Unity 2018.1以降が必要です。Unity2017以前のものを利用する場合は、v3.1以前のものをご利用ください。

おおよその使い方

Ultimate VFXは概要にある通り巨大なアセットです。プロジェクトに組み込むと大変なので、テスト用のプロジェクトを作成してそちらで色々といじったものをエクスポートして、自分のプロジェクトに組み込むのがよいと思います。

確認用のプロジェクトを作る手順です。マニュアルで事前に推奨されている設定などあるのでインポート前にやっておきましょう。

インポート前の準備

読み込み時に圧縮すると遅くなるので、ストレージに余裕があるなら以下の設定をしておくとよいでしょう(マニュアルによる推奨)。

  • EditメニューからPreferencesを選択します

f:id:am1tanaka:20180731234338p:plain

  • Compress Assets on Importのチェックを外します

f:id:am1tanaka:20180731234416p:plain

ビルドターゲットを設定しておく

ビルドターゲットの切り替えには時間がかかります。また、環境によっては正常に動作しないパーティクルも混ざっている場合があるので、予めビルドターゲットを設定しておいた方がよいです。

この例ではWeb GLをビルドターゲットにします。

  • FileメニューからBuild Settings...を選択します

f:id:am1tanaka:20180731234628p:plain

  • ターゲットを選択してSwitch Platformをクリックします。ターゲットが切り替わったら、xをクリックしてダイアログを閉じます

f:id:am1tanaka:20180731234746p:plain

以上を設定したらAsset Storeからインポートします。ネットワークの速度もありますが、10分近くかかるかも知れません。巨大です。

警告について

大量に警告が表示されますが、とりあえず無視して大丈夫です。

デモを眺める

ゲームジャムなどを想定して、ちょっとしたミニ作品を作ろうと思います。ランダムサーチ代わりに、Ultimate VFXのデモを見て、思うままにアイディアを出してみましょう!

Ultimate VFXは複数のアセットを統合したプロジェクトなので、デモシーンがあっちこっちに散らばっています。シーンをフィルタリングして探しましょう。こういう場合は、ProjectビューのSearch by Typeボタンが便利です。

  • Projectビューの右上にあるSearch by Typeボタンをクリックして、Sceneを選択します

f:id:am1tanaka:20180801002109p:plain

プロジェクトに含まれるプロジェクトが抽出されます。v3.2には12シーンあります。これだけでも凄いボリュームです!

f:id:am1tanaka:20180801002209p:plain

ざっと見ていきます。

1 - Ultimate VFX (Demo)

Ultimate VFXのデモです。これまた巨大なので、ダブルクリックしても切り替わるのに結構時間がかかります。反応がなくてもしばらく待ってください。読み込まれたらPlayします。

最初は以下のような画面になります。

f:id:am1tanaka:20180801002717p:plain

マウスを動かすと軌跡が早速パーティクルです!画面をクリックすると選択中のパーティクルが発生します。

f:id:am1tanaka:20180801002812p:plain

左上のメニューのOne Shotだと、クリック時にワンショットで発生するパーティクルを試せます。Loopingに切り替えると、常に発生し続けるパーティクルのデモに切り替わります。それぞれ全然違うものなので、それぞれ見るとよいです。

左下のLEVELBasicに切り替えると、背景が表示されます。

f:id:am1tanaka:20180801003025p:plain

右下にあるPREVNEXTボタンをクリックするか、マウスのホイールを回すとパーティクルを切り替えることができます。このシーンにはOne Shotのパーティクルが82種類、Loopingのものが163種類(#01はパーティクルなし)用意されてます。

想像力を掻き立てながらパーティクルを見ていって、思い浮かんだことを、パーティクル番号と合わせてメモしていきましょう!

1 - XP ACTION (Demo)

Action VFXアセットのデモで、爆発や煙、爆裂のフラッシュを中心としたパーティクル集です。One Shotが20種類、Loopingが9種類用意されています。

画面をクリックするとOne Shotのデモが表示されます。

f:id:am1tanaka:20180801005057p:plain

マウスのホイールで種類を切り替えられますが、UIを表示した方が見るのが楽です。

  • HierarchyビューでCommonオブジェクトの左の三角をクリックして開いたら、UIをクリックして選択します

f:id:am1tanaka:20180801005341p:plain

  • InspectorビューでUIを有効にします

f:id:am1tanaka:20180801005446p:plain

これで、Ultimate VFXのデモと同じインターフェースでデモを確認できます。

f:id:am1tanaka:20180801005553p:plain

爆発、煙などの演出が欲しい場合に注目するとよさそうです。

1 - XP SHOCKWAVES (Demo)

2種類のパーティクルです。こういう感じのキラキラしたやつと、赤系の爆風のものです。

f:id:am1tanaka:20180802232308p:plain

数は少ないですが、印象的なパーティクルです。

1 - XP STORM (Demo)

Loopingの雨、降雪、雷雨などの天候系パーティクル42種類と、雪を一瞬降らせるOne Shotのものが1つあります。

f:id:am1tanaka:20180802232729p:plain

戦闘シーンの背景に使ったり、物語をはじめたり、ドラマチックな天候を表現したい場合に利用できそうです。

1 - XP TITLES (Demo)

ニューロンが繋がるようなもの、火の粉が舞うようなもの、宇宙やワープを彷彿させるようなものなど、Loopingのものが25種類あります。

f:id:am1tanaka:20180802233701p:plain

f:id:am1tanaka:20180802233708p:plain

具体的な天候を表すSTORMと違い、抽象的なものを表現するのに向いていそうです。何かを象徴するようなシーンや、不思議なゲーム世界を表す背景などに使えそうです。

Comet Ocean (UVFX)

これ以降は、単一のパーティクルのシーンです。

流れ星の海、ということで、流れ星が降りながら、稲光が走ります。

f:id:am1tanaka:20180802234113p:plain

Fireworks (Demo)

花火のパーティクル(らしい)。かなり古い感じで、他のものと比べるとびっくりするぐらい質素。

f:id:am1tanaka:20180802235506p:plain

Gravity Clock (UVFX)

光の線がうねうね動いて、マウスを動かしたり、ドラッグすると、それに反応して動きが変わります。体験展示などのネタにいいかも。

f:id:am1tanaka:20180802235411p:plain

Journey to the Singularity (UVFX)

異空間に向けて突き進んでいるようなハデハデなシーン。ちょっとパーティクルの色が古い感じ・・・。少し調整すると、奥に進んでいく感じのゲームの背景に使えるかも。

f:id:am1tanaka:20180802235639p:plain

Particle Force Fields (Demo)

粒子が重力で集められるようなシミュレーション的なシーン。色々なパラメーターをいじると粒子が形を変えて動いて面白いです。

f:id:am1tanaka:20180803000025p:plain

Particle Force Fields Galaxy (Demo)

Particle Force Fieldsのパラメーター設定例のような感じです。Demo ControllerNoneの欄に、該当オブジェクトを設定して、Canvasを有効にすると、UIを表示して調整することができます。

f:id:am1tanaka:20180803000740p:plain

一度バランスが崩れるとなかなか元の状態になりません。右上のRESETボタンをクリックするとデフォルトの値に戻ります。

Particle Plexus (Demo)

ゆらゆら動く点の間を光の線が結ぶ、網状のパーティクルのデモです。

f:id:am1tanaka:20180803001309p:plain

Hierarchyビューを見ると、Particle System AmbientParticle Plexus Line Renderer Templateが無効になっています。有効にすると演出が増えます。

そのまま利用するというより、これを参考にして、自分なりのパーティクルを作るのに利用する感じかと思います。

デモのまとめ

Ultimate VFXは大量すぎるので、まずはそれ以外のシーンを一通り眺めておくとよさそうです。おおよその方向性が分かったところで、Ultimate VFXのデモを眺めて、これは!というパーティクルを探しましょう。

インスピレーションタイム!

イマジネーションを膨らませながら、Ultimate VFXのデモを眺めていきます。すると、Ultimate VFXのOne Shotの#72に目がとまりました!

f:id:am1tanaka:20180804021016p:plain

クリックした場所に光が表れて、それが小さくなっていってから爆発に変わります。時限爆弾っぽくて面白そう。タイミングよくクリックすることで、落下してくる何かを爆破するようなゲームはどうだろう。

そんなことを考えながらさらにパーティクルを見ていくと、今度はLoopingの#93が目にとまりました。

f:id:am1tanaka:20180804021616p:plain

不思議な感じ。これをもう少し小さくして落下物にしよう。

うまく弾き返したら、印象的だったSHOCKWAVESを使おうと思います。

f:id:am1tanaka:20180802232308p:plain

One Shotの#74。大爆発!!うまく爆破できずにゲームオーバーになった時に使えそう。

f:id:am1tanaka:20180804021721p:plain

背景はLoopingの#26が不穏な感じでよさそう。上に敵が出てくる場所、下は守る場所、という感じも出ています。

f:id:am1tanaka:20180804021833p:plain

最後にクリアの背景として、昇天してそうなLoopingの#51。

f:id:am1tanaka:20180804022012p:plain

背景が稲光してるので、それは不穏な感じがするので、利用時に削除すればよさそうです。

作例案

以上から、考えたゲームのルールをまとめます。

  • 画面をクリックすると、爆発を発生させることができます。数か時間で、発生数の制限は必要そうです
  • 上から敵を登場させて、落下させます
  • 爆発がうまく敵に当たると、敵は吹き飛びます
  • 上に吹き飛ばして、渦巻きに当てていきます
  • 敵が落下するとゲームオーバー
  • 敵を沢山ぶつけて、渦巻きを解消したらクリア

ざっくり30分ぐらいで、利用するパーティクルとゲーム案がまとまりました。では開発に入ります!

パーティクルをエクスポートする

利用したいパーティクルが決まったら、それらをエクスポートしましょう。

プレハブを見つける

まずはエクスポートする対象のプレハブを見つけます。

  • エクスポートしたいパーティクルがあるシーンを実行します
  • 該当パーティクルを選びます
  • パーティクルの名前を確認します

f:id:am1tanaka:20180804120442p:plain

上記であれば、かっこの中のfantasticExplosion_tutorialがパーティクル名です。

  • Hierarchyビューの検索に確認したパーティクル名を入力します

f:id:am1tanaka:20180804120749p:plain

  • 名前の最後の部分がパーティクル名と同じオブジェクトを選択して、右クリック -> Select Prefabを選択します

f:id:am1tanaka:20180804121448p:plain

以上で、Projectビューの該当するパーティクルのプレハブが見つかります。

f:id:am1tanaka:20180804121547p:plain

ではこれをパッケージにエクスポートします。

プレハブをエクスポートする

Unityの実行を停止しておきます。

  • Projectビューで見つけたプレハブを右クリックして、Select Dependenciesを選択します

f:id:am1tanaka:20180804122042p:plain

これでこのプレハブに関連するリソースが選択されました。

  • 選択されたリソースのどれかを右クリックして、Export Package...を選択します

f:id:am1tanaka:20180804123047p:plain

  • 候補が表示されたら、Export...ボタンをクリックします

f:id:am1tanaka:20180804123150p:plain

  • 分かりやすいところに、分かりやすいファイル名でエクスポートします

f:id:am1tanaka:20180804123322p:plain

上記では、デスクトップのMyParticlesフォルダーに、fantasticExplosion-tutorialという名前でエクスポートした例です。

同様の手順で、必要なパーティクルを全てエクスポートします。

スクリプトのエクスポート

Ultimate VFXには、パーティクルの大きさを簡単に調整したりする便利なスクリプトが用意されています。スクリプトもエクスポートしておきましょう。

  • Projectビューで、Scriptでフィルタリングします

f:id:am1tanaka:20180804154613p:plain

  • 必要そうなスクリプトを選択して右クリック -> Export Packagesで、任意の場所に出力します

それほど大きいものでもないので、すべてエクスポートして構わないと思います。

パーティクルの大きさ調整

全てのパーティクルのエクスポートが完了したら、組み込みたいプロジェクトを開いて、エクスポートしたパーティクルとスクリプトを全てImportします。

既存のパーティクルを利用する場合、大きさが合わない場合がよくあります。

f:id:am1tanaka:20180804155620p:plain

↑背景にしたいパーティクルが全然小さい・・・

デフォルトの設定では、Scaleを調整してもパーティクル全体が大きくなりません。これを解決するには、パーティクルの設定のScaling ModeHierarchyにします。

f:id:am1tanaka:20180804155453p:plain

これを自動的にやってくれるスクリプトがUltimate VFXにあります。以下、利用方法です。

  • Hierarchyビューにパーティクルを配置します
  • 調整したいパーティクルを選択します
  • Windowメニューから、Mirza Beig -> Particle Scalerを選択します

f:id:am1tanaka:20180804155842p:plain

  • Hierarchyボタンをクリックして、Scaleで調整できるようにします(ここで直接サイズ調整をしても構いません)

f:id:am1tanaka:20180804160038p:plain

これで、TransformScaleを調整すれば、パーティクル全体のサイズも変更できます。イメージに合わせて大きさを調整します。

f:id:am1tanaka:20180804160350p:plain

f:id:am1tanaka:20180804160439p:plain

同様の方法で、すべてのパーティクルのサイズを調整します。

作例ゲーム「アドカレ・ディフェンス」

ここまでまとめた内容から作ったゲームの作例です。unityroomに公開しました!


アドカレ・ディフェンス

Ultimate VFXのパーティクルのみで画面を構成しましたが、なかなかいい感じになりました!

留意点

調子に乗ってパーティクルを利用しまくったら、かなり重くなってしまいました。高速化で効果的な方法があったら、後日、追記したいと思います。

(8/6追記)

まとめ

Ultimate VFXのサンプルの概要と確認方法、オススメの作業手順、作例をご紹介しました。

有料のアセットですが、YouTubeなどでパーティクルのノウハウを公開しつつ、バージョンアップするごとに新しいパーティクルが追加されています。パーティクルは多機能なため、すべての機能を把握するのが大変ですが、Ultimate VFXで気になったパーティクルの構造を見ることで、理解を深める教材にもなります。

派手はパーティクルが大量にあるので、RPGの演出や戦闘シーンにも使えそうですし、1週間ゲームジャムやGGJのように限られた時間で結果を出すことを求められるような場面でも重宝するアセットだと思います。

作例はまだ仕上げていませんが、近日中に仕上げて公開する予定です。(8/6に完成させて公開しました!)

ご参考になれば幸いです!

参考・関連URL

www.youtube.com