2017年11月20日月曜日

フリーのアセット/素材のおかげで爆誕した高速3Dアクションゲーム「Dangerous Space Transporter ~危険な宇宙の運び屋~」について

Unity1Week の今回のテーマは「Space」でした。
すきま、空間、宇宙、スペースキーといろいろ思案した結果、3Dの宇宙空間の運び屋というテーマを選びました。
その結果できたのが、タイトルの「Dangerous Space Transporter ~危険な宇宙の運び屋~」です。






今までも、フリーのアセットを多少は使ってきましたが、あまり積極的に利用するという気持ちはありませんでした。
特にデザインが色濃くでる3Dモデルなどは、なんとなく敬遠していました。

しかし、今回の unity1week のキャンペーンで積極的に使ってみると、今までは出来なかった表現が楽しめるようになりました。

今回は、ゲームDSTの制作について、アセットの紹介を踏まえながら書きたいと思います。

unity1week で作っていたときの感じ

unity1week開催の数日前にバウチャーが何とかという話はツイッターで知っていました。

とりあえず、テーマを聞いて、思い浮かんだら作ろうといつもどおり思ってました。
今回はバウチャー(報酬)がもらえるということで、いつもより積極的だったことは否めません。

そんなこんなで出されたテーマは「Space」。
とりあえずキーボードのスペースキーをじーっとみました。
(スペースキーって良く見ると「Space」とすら打たれていないんですね。少なくとも自分のはそうでした)

その後に浮かんだのが、レトロな2Dシューティングです。
レトロといってもすごい作品がたくさんあるので、もっと具体的にいえば、シンプルなレトロな2Dシューティングです。

だけど、せっかくアセットを使うなら、3Dもいいんじゃないかと思って考えたのが今回のゲーム制作の始まりです。

3Dアクションというと、私はダークソウル2しかクリア(DLCは含まない)した覚えがありません。
(しかも、敵を地味に枯らしながら進むスタイルでした)

他にゾンビを倒すメジャーなゲームもやりましたが、基本的に操作が難しくて楽しめません。
もう、ルールを覚えるのがストレスになってだめだし、実際やってみてもうまく動かなくてつまんないというパターンが多いんですよね。

そんな自分でも、3Dで楽しめるにはどうしたらいいか。

とりあえず、操作をなるべくシンプルにすることにしました。
シンプルでいて、プレイした満足感を味わえる塩梅を考えました。

そこで思いついたのが、勝手に3D空間を前進する状態で、敵をよけつつ、加速アイテムをとって、ゴールになるべく速くたどりつくことを目的にするゲームでした。

これって、勝手に3Dとして進むけど、実際の操作は上下左右の2Dなんですよね。
でも、3Dな雰囲気も味わえるし、自分的にも3Dを操作したぞ!って感じになると思いました。
だから3Dゲーと思っていいと思います。

最初は、HPを設定して、敵に何回かぶつかったら負けとか回復アイテムとか考えたのですが、せっかくがんばったのに途中でゲームオーバーはやだなと思い、あきらめなければクリアできる設定にしました。
ぬるゲーという人はタイムアタックをすればいいだけだし、僕は下手なゲームプレイヤーなので下手でもなるべくストレスを受けないようにしたかったです。

実装で一番がんばったのは、クイックイッとコースのコーナーで視点が回転することです。
3Dの表現でこれだけはやりたかったんですよね。

NavMesh とかいろいろ方法はあると思うのですが、とりあえず簡単に実装できそうだったので、トリガーを持つ GameObject の配列要素を順に追いかける作りにしました。

目標の GameObject に接触したら、その次の要素に角度を3秒くらいで変えて直進するっていうトラクターコンポーネントを作って、それにカメラの案内をさせる感じです。
カメラの先には固定でプレイヤー機が存在し、カメラのフレームの範囲内で自由に上下左右に移動できるようにします。
あとは、岩にぶつかったら減速、ブーストリングにぶつかったら加速というだけです。

でも、これだけのゲームの作成でも3日間かかりました。
ゲームのアイデアを考える時間も考えると5日ほどかかりました。

アイデアを思いついて、「~だけ」という表現になるまでシンプルにすることが最近はとても重要だと思っています。
「~も」という表現が残っているうちはまだまだ収拾がついていない状態だと思います。

「~だけ」といっても意外とえぐい要素があったりするので安心はできませんが、けずっていくことで本質が見えたり、他の思わぬ要素と結び付けやすくなると思います。
単純すぎてつまんなくてもだめですが、ごちゃごちゃしてると作れないし、ごちゃごちゃなものを作ってもどう受け止めていいか混乱してしまいます。

今回のゲームは、ブーストリングで加速する快感を中心に作りました。
3Dは経験が浅いですが、その部分だけはこだわったつもりです。
ブーストリングにふれると、ジェット噴射のようなものがかっこよくバリバリッと出て、音もいい感じでなって、メーターがビューンとあがるようにしました。

小惑星にぶつかったときは、逆にがっかりするようにしました。
本当は、カメラをぶるぶる振動させたかったのですが今の実装ではちょっと難しくてやめました。
そのかわり、一瞬スクリーンを赤くしてダメージをうけた感じを表現しました。

減速したりブーストリングを通過しそこねて、とろとろになって、次のブーストリングまで待つところをプレイヤーへの抑圧(ストレス)にしています。
それをブーストリングにふれることで解放する感じにしました。

実装の3日目のほとんどを使ったのがステージの設計です。
最初に、こんなトラップがあるといいなというのを6つくらいノートに書いて、それをレベル順に並び替えて実際に配置していきました。
100回以上は実際にプレイしながらの微調整をしたと思います。
3D制作になれている人ならばもっと短時間でできたのかもしれませんが、ちょっと試しては小惑星の配置をずらすということを何度もやりました。

長々と語りましたが、まとめると
  • バウチャー(報酬)もらえるし、3Dとかのアセットもいっぱい使ってみよう
  • 3D操作が下手でも楽しめるようにしよう
  • 加速する感覚をSFっぽく楽しみたい
です。
あんまり成果はでなかったかもしれませんが、テストプレイのときは結構わくわくしました。

ここからは、今回使ったアセットについて紹介したいと思います。

使ったアセットについて

アルファベット順。全部無料。

Action Music Pack


このゲームで使っている3つのBGMはすべてこのアセットのものです。
かっこいいですね。SFに限らずRPG系でも使えそうなバトル系が多いです。

Arcade SFX Free


このゲームのボタン音、ゲーム開始音、ブースト音などの効果音はすべてのこのアセットのものです。
SFな感じの効果音以外にもレトロなジャンプやコイン取得の音などもあります。

iTween


かなり前からお世話になっています。オブジェクトに動きをつけるときに便利なスクリプトです。移動・回転・拡大のアニメーションをさくっとやってくれます。

KY Magic Effects Free


今回のブーストのかっこよさを演出してくれた素敵なCGエフェクトを含むアセットです。魔法っぽいエフェクトが数種類あります。ループの可否や表示する時間の長さなどもアレンジできるみたいです。

LeaderboardForUnityWebGL

https://github.com/NCMBMania/LeaderboardForUnityWebGL

ネットのランキングをお手軽に実装できたのはこのアセットのおかげです。
github のリンクしか知らないのでアセットかどうかも厳密にはわかりませんが、何度もお世話になっています。

Modular Space Raider


今回のゲームのプレイヤー機のモデルが含まれているアセットです。宇宙船っぽいかっこいいモデルが数種類あります。

MSFMC - Radar Dish


今回のゴールの基地として使ったオブジェクトを含むアセットです。レーダーらしいですが、SFで幅広く使える感じがします。色も変更して使うことができます。

Skybox Volume 2 (Nebula)


今回の背景のスカイボックスです。数種類のきれいな宇宙の背景が選べます。これを入れただけで宇宙!って感じがして、視点を変えるだけでガラッと違う雰囲気を出せました。

Space Asteroids


今回の小惑星を含む多くの小惑星の3Dモデルのアセットです。たくさん配置して小惑星群を表現できました。接近して拡大しても荒く感じないリアルさがあります。

M+ FONTS
アセットではありませんが、今までもお世話になっているフォント素材として、 M+ FONTS も紹介します。今回も多くのテキストで使わせていただきました。

今回の感想

今までほとんど2Dだけを作ってきたので、3Dのゲームを作るのはいろいろと学ぶことも多かったです。
不慣れなため、簡単にできそうなのにできないことも多くありました。

しかし、フリーのアセットを用いるだけで、難しいと思っている3Dのゲームも想像よりも簡単に作ることができるということを知りました。
また、今回の unity1week の他の作品を見て、3Dでもとてもかわいらしく仕上げられることを発見できました。

なんとなくやっぱり次は2Dを作りたいという気分のほうが強いのですが、また機会があったら3Dも挑戦したいと思っています。

改めまして、unityroom 様には貴重な作成の機会と公開の場を与えていただき感謝致します。