ヽ|∵|ゝ(Fantom) の 開発blog? ホーム » Unity »Unityチュートリアルの2Dシューティングにレーザーやらミサイルやらボス戦やらを付け加えてゲームとして楽しめるように超改造してみた

Unityチュートリアルの2Dシューティングにレーザーやらミサイルやらボス戦やらを付け加えてゲームとして楽しめるように超改造してみた  




 先日、久しぶりに「プロ生ちゃんライブ」を WebGL(HTML5) 出力してみたら意外とパフォーマンスが良かったので、試しにゲームも出力してみたくなった。ちなみに1年くらい前:Unity 5.1 のときには(当時は HTML5 Previewとなっていた)ウィンドウ表示でも 25fps くらい、ファイルサイズは 238MB ととても実用的とは言えなかった(現在:Unity 5.4 では 60fps、46MB になっている)。

 とは言え、イチからゲームの仕様を含めて考えるのは大変なので、公式チュートリアルの2Dシューティングに手を加えて、WebGL のパフォーマンスを見てみようと考えた(FAQを見てみると「チュートリアルやサンプルプロジェクトに使っているアセットは一般的に知られているもの(フリー素材)であり、学習目的、非商用利用なら問題ない」とある。ただし各素材の著作権は著作者に帰属)。

 そしてどうせならゲームとして楽しめるくらいにしようと思ったので(チュートリアルは仕組みだけなので)、敵の動きや攻撃方法、ボス戦などを加えてみた。また「Wave型シューティング」と書いてあったので、「各 Wave を攻略する」みたいな方式にしてみようと考えた。なので、普通のシューティングのように次々と進んでいくわけではなく、「クリアできたら進む」という感じで、逆に「やられた場合は同じステージをループする」ようになっている。また、残機という概念もなく無限にコンティニューでき、更にいつでもどの Wave(このゲームではステージと同義)でも移動できるようにしてみた。ある種パズルゲームのように自分の攻略しやすいステージからクリアしていく進め方も良いだろう。クリアした Wave(ステージ)は選択画面で色が付くので、どのステージをクリアできたかもひと目で分かるようにしてある。

 WebGL のパフォーマンスの結果としてはパーティクル(煙)を使っているステージでは 40fps まで落ちることもあるが、通常の弾幕攻撃などでは問題なく 60fps 出ている(多いときは200~300個の弾が出ているがわりとイケる)。フルスクリーンにすると少し重くはなるが、ボス戦を含め、ほとんどのステージで問題なくゲームできるので、WebGL コンパイルも十分実用レベルまで性能が上がったと言ってもいいだろう。現在 Google Chrome では 旧UnityWebPlayer はおろか、Flash や Applet などのプラグインも使えなくなってしまったので、WebGL が気軽に使えるレベルになってきたことは非常に嬉しい。まぁ、2Dゲームなら「enchant.js」などでも良いと思うけどね。Unity の WebGL 出力はとても簡単なのでオススメだ。

 ゲームの操作方法は移動のみで弾はフルオート、ステージ選択などの付加機能も実はジョイスティックにも対応させてある。詳しくはサンプルページに書いておいた。せっかくなので、いくつか付け加えたボス戦のキャプチャなどを載せておこう。ちなみにボス戦は 5, 10, 15, 20, … のように 5ステージごとに配置してある。ステージ選択(Wave Select)でボス戦だけを楽しんでも良いだろう。なるべく個性的な攻撃になるように作ってある。ここでも「攻略」的な方法でプレイしてみると良いだろう。

Wave 20 : レーザー攻撃


Wave 35 : ホーミングミサイル


Wave 50 : 火炎ギロチン

Wave 55 : 反射レーザー


>>動作サンプル(別ウィンドウ)


 また、おおまかには Wave30 まで(半分)は小型ザコしか出てこないので、初見でクリアできるステージも多いと思うが、Wave31 以降は中型ザコやギミック的な複合攻撃になるので、初見ではキツイかもしれない。各ステージを攻略していく形になるだろう。難しそうなステージでも 100 回以上のテストプレイをして調整したので、攻略は必ずできるようにしてある。コツとしては敵の出現位置や攻撃タイミングなどは毎回同じなので、倒す順番や優先度などを決めて色々なパターンを試してみるのが得策だろう。どちらかというと追い詰められてやられることが多いと思うので、敵は1体でも多く倒して前へ出た方が有利かもしれない。ひたすら逃げ回るのも一つの手だ(そういうステージもある)。

 自分でも作ってみたい場合は、オリジナルのコードはチュートリアルに載っているので覗いてみるのも良いだろう。ただ実際の所、私のコードは改造しすぎてもはや原型とは違ってしまっている。コードを掲載しても良いが、膨大になってしまったので、需要があるなら「ホーミングミサイルの作り方」とか「反射レーザーの作り方」など一部テーマごとに書いても良いかもしれない。そのまま使っているのは背景のスクロールくらいか。背景も余力があったら作っても良いんだけどね(マップチップもあるにはあるが、地形を構築するのは大変だよね…)。正直、敵のグラフィックを大量に加工した所で力尽きてしまった(笑)。音楽も実は半分自作(ボス曲とタイトル、選択画面など)。と言っても以前ニコゲーで公開していたループ音楽をそのまま使っただけどね(既にサービス終了)。しかし WebGL 出力ではフォーマットは AAC になるらしく、綺麗にループしないのが難点(Ogg Vorbis なら綺麗にループできる)。実は全24曲も使ってるんだよね。なので音楽鑑賞モード(Music Mode)も付けてみた。難易度高いゲームなので1曲通して聴けることはあまりないしね。効果音もゲームに合うように編集した。素材提供してくれている方々には本当に感謝してます。


<素材提供>
[グラフィック]
ハムコロ様 / ゲーム開発日記 DVDM様 / Merry Party様 / ぴぽや様
[BGM]
MusicMaterial様
[SE]
小森平「効果音で遊ぼう!」様 / ザ・マッチメイカァズ様 /
[Original Program]
Unity チュートリアル 2Dシューティングゲーム (サンプルについて)
[壁紙]
Christopher.Michel様 (Creative Commons)

※著作権は各著作者に帰属します。


■シューティング参考書籍


スポンサーサイト

category: Unity

thread: ゲーム開発

janre: コンピュータ

tag: サンプル 
tb: 0   cm: --


トラックバック

トラックバックURL
→http://fantom1x.blog130.fc2.com/tb.php/227-7b336682
この記事にトラックバックする(FC2ブログユーザー)

プロフィール

検索フォーム

全記事一覧

カテゴリ

ユーザータグ

最新記事

リンク

PR

▲ Pagetop