開発者ブログ」カテゴリーアーカイブ

SameGame3D

Unity AssetStoreまとめ、3周年おめでとうございます!!
たまに行われる太っ腹な自腹企画にハラハラしつつ^^; 拝見しております。
いつも役に立つ情報に感謝しております。

本記事で紹介するSameGame3Dは
Unity AssetStoreまとめ
第1回 ブログ3周年記念!お題にチャレンジ

の参加作品です。

SameGame3D | 無料ゲーム投稿サイト unityroom

SameGame(さめがめ)の3D版です。
同じ種類のブロックが2種類以上くっついているところを探して消していきましょう。

当初はお題が「3」ということでマッチ3パズルの3D版を作り始めたのですが形にならず、予定変更してSameGameとなりました…
マッチ「3」ではないですが、「3」Dということでご容赦いただければと^^;

・=====作品に使ったアセット=====
Adorable 3D Food Set:ブロック用の可愛いフルーツなどの小物3Dモデル

Hitori Yubin Sound Pack:BGM

Universal Sound FX:効果音

Short Music 01 (Lite):効果音

DOTween (HOTween v2):Tweening
ブロックの動き、フェードイン/アウト、スコアのカウント処理、処理の遅延実行など、これ一つで色々できちゃいますね。

[Unity]:Unity1週間ゲームジャムに参加しました

unityroom主催のUnity1週間ゲームジャムに参加しました。
お題は「space」。

投稿作品:スペースクリッカー

お題を文字通りに宇宙と捉えて、以前から作ってみたかった惑星を巡って交易や採取を行うようなゲームを当初は考えたのですが、短期間で作り上げないといけないということで、得意のクリッカー系ゲームを作ることにしました。

隕石をクリックで壊してポイント稼ぐ→稼いだポイントでより隕石を壊しやすいようパワーアップ。

方針は割とすぐに決まり月曜日のうちには制作に入って、水曜日にはほぼ形になりました。

普段、一般公開向けのアプリを作る時などは拡張性などを考慮するのですが、今回は一週間で完成することを目標に「後々の拡張などは考えない」とバッサリと切り捨てて考えました。

一番悩んだポイントはゲームの進行に伴って難易度をどう変化させていくか。
本来なら外出しの設定ファイルにして隕石の出現データを作るところですが、思い切って単純化して…

・隕石10個ごとに難易度アップ
・序盤は難易度アップする度により大きな隕石が出現
・全種類の隕石が出揃ったら隕石の耐久度を2倍、3倍…としていく

またパワーアップの内容・コストも同様の理由で線形で増えていくようになっています。
本来なら外部ファイルにしないまでも配列データかもう少し複雑な計算式にしたと思います。

○ 使用アセット紹介
最初はもちろんキューブやスフィアでプロトタイプを作ったのですが、そこからどのように肉付け・修正していったのか、導入した順で使用したアセットを紹介します。

・Asteroid Pack – by Pixel Make

まず最初に、本ゲームのメインとなる隕石をスフィアから置き換えました。
隕石アセットは無料でも色々ありますが、リアルよりの表現と隕石の種類の多さから選定しました。
S〜XXLの5種類の隕石+配布者のロゴ入り隕石がオマケに付いてきますw

このアセットの導入により隕石の種類は大きさにより5種類と決定しました。
モデルの導入に伴い、隕石の大きさによりコライダの大きさを調整したり、HUD(耐久度表示のバーとテキスト)の位置を調整しました。

またスフィアからモデルに置き換えたことで隕石を回転させた方が見た目が良い事に気付きました。
実際に回転させてみるとuGUIのWorld Spaceで隕石に追随させていたHUDが一緒に回転する問題が発生し、常にカメラの方を向くようスクリプトを追加して調整が必要でした。

・SCI-FI Modular Pack Free

次にゲーム画面の手前側に置いてある基地をキューブから置き換えました。
隕石・基地と見栄えの部分が変わるとゲームが出来てきた!って感じになりますからね^^;

このアセットは細かいパーツを組み合わせて使うのですが、今回の基地はデモシーンにあるものをそのまま流用させてもらいました。
電光掲示板風のパーティクルが含まれてまして、非常に気になったのですが今回は活用できませんでした^^;

・Universal Sound FX

音が付くとゲームらしさがぐっと上がるので、早い段階で音を鳴らす仕組みを実装して、音源は仮でも良いので入れておくと良いと思います。

このアセットは効果音を探す時に一番最初に見るアセットです。
まめに音源追加のアップデートがされており、現在は$40で5,000以上の音源を収録しています。
これだけあればという訳にはいかないのですが、かなり良心的で良いサウンド集だと思います。

見た目と音が出来たところで、演出・効果を追加していきます。

・War FX

隕石破壊時のパーティクルエフェクトに使用。
パーティクルには苦手意識があって、普段アプリ開発でもあまり使わないのですが、このパーティクル集はデモもしっかりしててプレファブをインスタンス化するだけで使えたので楽でした。

・iTween

隕石が基地に激突した時に画面が揺れる演出を追加。
やって見たら非常に簡単でiTweenのShakeRotation()でカメラを揺らしただけです。
最近はDOTweenが主流になりつつありますが、まだしっかり使いこなせていなくて…
iTweenは使い慣れているため、サクッと作りたい今回は助かりました^^;

・SmartPool

一通りゲームが完成したところで、初のwebGLビルド、unityroomへの投稿はすんなりいったのですが、ゲームがたまに止まる!

本来なら早い段階から実機・実際に稼働させる環境で試すべきでしたが、今回は製作期間も短いので油断していました。

止まるタイミング的に、隕石や爆発パーティクルを都度生成しているのがいけないと思い込んで、プーリングの仕組みを導入。
プーリングの仕組みをちゃんと使ったのは初めてだったのですが、このアセットはシンプルでREADMEとデモシーンを見て5分ほどですぐ使えました。

プーリングを導入した結果、ゲームの停止は大幅に改善したものの依然として少し止まります^^;
本来ならちゃんとプロファイリングなどして原因を特定してから対処すべきでした。

今回は見込みは外れてなかったものの、他にも原因がありそうということで。
おそらく隕石クリック時に光らせるのにマテリアルをいじっているので、そこが原因かと(ちゃんと調べてない…)

参考:
色を変えるがドローコールを増やさない場合 – テラシュールブログ
「ちなみに、こっちは余り知られていないかもしれないが、マテリアルに値を突っ込んだ際にインスタンス化したマテリアルは、親オブジェクトをDestroyしても破棄されない。」

【Unity】マテリアルやSetPassを増やさずテクスチャのUVを変える – テラシュールブログ

○ あとがき
短い期間で仕様考えたり、今まで使ったことないものを勉強して使ってみたり、とっても勉強と刺激になりました!
実は今年の春ごろにつくっていたアプリをエターナらせてしまいまして^^;
それから悶々と現実逃避してGame of warやらオーシャン&エンパイアとか色々なものに時間を費やしてしまいまして。
今回の一週間ゲームジャムが現実復帰の第一号になりました^^;

できればエターナったゲームもunityroomに上げて、さらにできることであれば、手を入れて完成まで持っていきたいと思っています。

PCブラウザで無料で遊べるゲームを公開しています!

ここ数ヶ月、絶賛スランプ中でスマホアプリのリリースが滞っているのですが、肩ならし的にPCブラウザで遊べる無料ゲームを作って公開しています。

こちらのサイトで公開させてもらってます。

  うに部屋

多くのゲームが投稿されているので是非とも遊んでみて下さい!
最初に遊ぶ時にはUnity WebPlayerというプラグインのインストールが必要になりますが、画面に指示が出るはずなので難しいことは無いと思います。

ゾンビ・ヘッドショット
ゾンビ・ヘッドショット
「迫り来るゾンビを倒せ!
ゾンビを倒せるのはヘッドショットだけだ!」

ひたすらヘッド・ショットのみを狙ってゾンビを倒すゲームです。
マウスボタン押下中はズームアップしていき、最大ズーム時にボタンを離すと射撃します。

Ocean Racer
Ocean Racer
「ボートを操作して海面を走り抜けろ!」

自動で加速します。
マウスで左右にドラッグで方向転換、上下で加速/減速します。

コーナーリング時には左右ドラッグで船体を目的の方向に向けてから、上ドラッグで加速するとスムーズに抜けられます!

焼き払えぇぃっ!
焼き払えぇぃっ!
「爆煙をかき分け迫り来る敵を焼き払え!薙ぎ払え!」

映画版『ナウシカ』において庵野秀明氏が作画した巨神兵が王蟲にプロトンビームを発射するシーンに感銘を受けて作ってみました。

クリックしたところに砲撃。
ドラッグすると連続砲撃できます。
連続砲撃でまとめて焼き払うと高得点!!