2018年6月27日水曜日

「あめばれっと」の開発の進め方について

突然ですが、「あめばれっと」のUnity版としては2D環境で行うものとします。

前Ver.ではHSP言語を使用して3Dシューティングとして仕上げました。
ここでふと思うと、3Dというほどのことはやっていないと思っています。

例えば、ボスの攻撃形態が変わる時などには、拡大・縮小・回転といった3Dっぽさの見せ場を設けることはできたけど、悪く言えばその程度であって、カメラワークの演出を行った「いかにも」的な(?)3Dを活かしたことはしていないわけで、ぶっちゃけ2Dシューティングなのです。

ざっくりな考え方なんですが、3D環境ってそれなりの内部処理を行っています。
縦・横・奥行きの座標処理、それに加えて光源(ライト)の反射処理、そして物理演算処理など。
2D環境にしたら、ある程度は軽くなるのかなと思いました。

前述にもあるように、3Dキャラを使った2Dゲームなので、ならば2D環境で3Dキャラを使用すれば同じなんでは?と。
言い換えると、3Dキャラでモデリングした後に2Dスプライトにした画像素材を使用する、いわばキャラ3D→2D化って感じで。
※この表現、伝わるかなぁ…。

なにぶん、シューティングは大量のオブジェクトを使います。
敵弾だけで、ざっと500発ぐらいが画面の中で動いても60fpsは当たり前にしたいわけです。
その500発が、自機1つに対しての衝突判定を行うのに内部処理が常に実行されるので、オブジェクトが多ければ多いほどシステムの負荷はかかって当然。
そして、今まで検証した中でオブジェクトプールの技術を取り入れたり、はたまたシェーダーに手を出してみたり。
性能面で効果はあったものの、1000発近くだと性能劣化が見え、50fps台に落ちたり、そもそもPCで検証していたけどスマホではどーなの?とか思ったり。
※まぁ、シェーダーはシューティング開発には必須スキルでしょうねぇ。

そんなわけで、内部処理が少しは軽減される2D環境で行ってみるのもアリなんじゃないかなぁというわけです。
※軽減される根拠は、奥行きの処理が無い(と思っている)からです。厳密には2Dなりの表示順序制御で3Dまでとは言わなくても、奥行きの概念がゼロではないんでしょうが。

また、2D環境では無料アセットでアニメーションも実現できるようなので、3D環境では敷居が高そうだなぁと思ってたことが、少しは低くなりそうです。
↑簡単になったわけではない(爆

さて。

実はUnityの2D環境開発は初の試みなので、他のサイトで見つけたチュートリアルを参考にして、まずは2D環境のお作法を学ぶべく、今日から始めました。
ちなみに進捗は、15%です。
そこから2D環境開発に必要な想定タスクの洗い出しや、懸念事項もまとめていってるので、本来目的の「あめばれっと」開発がちょっとでも悩まないようにしたいと思います。

今年中にリリースできるといいですねぇ。
とりあえずの目標、ってやつです。

ではまた。
ノシ



0 件のコメント:

コメントを投稿

たまには自分のことを自分に愚痴ってみる

ふと思えば、ブログよりもTwitterの方が、生の開発状況が覗けます。 気軽な登録が軍配をあげるんだね。 ある意味、Twitterを始めていなかったら何の情報発信も無く、自分の進み具合の把握も満足にできないね…。 そもそもブログを始めたのは、開発日記もそうだけど、開...