島国大和のド畜生
■次世代くん ■プログラム ■アンテナ ■LINKS ■過去ログ倉庫---
amazon_logo.jpg スポンサーリンク
携帯シューティングを趣味で個人開発して思ったこと
bigIconFix.png ブリキガン(錻力銃)buriki gun
↑クリックでサイトへ。

 unityでシューティングをゴソゴソ趣味で個人開発していて思ったことなどをメモっておく。


 開発環境がどうこうというより、シューティングを個人で作ってどう思ったかレベル。
 仕事(ゲーム開発者だったそういえば)でシューティングを作ったことは無い。
 あと自分はプログラマでも絵描きでもないので純粋に知識としてのそれらを得るための習作。

 ちなみに、自分自身はシューターではないので、イメージファイトあたりでシューティングの歴史が止まっている。
 人がプレイするのを見るのは好き。
 といったレベルの人間が趣味でゴソゴソつくるとどうなるかというメモ。

・unityはなんとなくゲームっぽい体裁まで動かすのが大変ラク
 ほんとラク。
 自分はLightWave(3Dソフト)使いだが、FBX吐き出ししたモデルを即実ゲーム画面に出す事ができる。
 unity以前ならば、俺ならそれだけで年単位かかる。
 最近はunityには2D特化したモードがあり、ペイントでもなんでもちょっと絵が描ければゲームオブジェクトになるわけで、物凄い時代になったと感じる。
 みんなゲームつくろうぜ。楽しいぜ。子供が寝た隙に大人がやる娯楽といったらゲーム製作だよ。

・ただしカッチリゲームにしようとするとそれなりの工数がかかる
 残念ながら世の中それほど甘くは無かった。
 ゆるーく、このへんでいいや、みたいな作り方なら1ヶ月でソコソコのものが出来ると思う。
 自分が時間がかかったのは、主に仕事の忙しさと、プライベートの忙しさによる。

・シューティングを選んだのは練習になるから
 シューティングゲームを選んだのは以下の理由から。
1.多くのオブジェクトが発生しては消えるので管理方法を含めよい練習になる。
2.基本はモーション再生と当たり判定だけのゲームでもあるので、一度習熟すれば次からの糧になる。
3.俺シューティング作ったこと無いんだよな(toolでは作ったことある)
 縦シューにしたのは、スマホ用のつもりだったから。
 ブロック崩しは以前に作っていてもう飽きた。

 実際、次に何かつくるとしたら、自分で書いたサンプルコードがいっぱいある状況なので、1回目よりマシだと思われる。

・シューティングゲームは、スマホで遊ぶには視認性と反応の人間側の限界が早い。
 これを機会に、いくつかのスマホシューを遊んでみたが、アーケードの移植ゲーなどは携帯電話サイズでは無理がありすぎた。タブレットだと違う感想になると思う。
 なので、なるべくゆるくゆるく作る事にした。

・移動操作方法は複数パターン試した
 ×バーチャルパッド
   弾丸が避けれずゲームにならない。
 ×タッチした場所にバーチャルパッド発生
   何とかなりそうだが、操作ストレスが溜まる
 ×タッチした場所に、自機が移動する。
   自分の指が邪魔でゲームにならない。この方式はPCのMMOとかでもよく使われるが、アクション要素アリでスマホでは、指邪魔過ぎてまるでダメだったのは衝撃的だった。
 タッチしてから指を移動した移動量を自機が移動する。
   すいすい移動するが、自機の移動動作がウソ臭過ぎる。
 タッチしてから指を移動した移動量を自機が遅れて追従する。移動先にはマーカーを出す。
   よく他のシューティングゲームでも使われている移動方法にマーカーを出すを追加したもの。
   俺が試した中では、シューティングにはこれが一番マシであった。

   がんばるとノーミスで6面クリアいける。(カスリあり。デッドなし)

・敵弾以外では死なないようにした
 敵の体当たりダメージはナシにした。
 これはもう単純にストレスの問題。
 あと2Dシューなら敵は自機の1段下にいて、弾は当たるが体当たりは通過するという手が使えるが、3Dだと使えないので、敵と自機が接触したときは、自機が押しのけられるようにした。
 後ろから敵が突っ込んできても、弾撃たれないと死なない。

・死に方は複数試した
 ×即死
   即死ゲーにすると、不慮の操作や、タッチパネルの反応の悪さをモロに食らった時にストレスが溜まる。
 HPゲージ(バリア)方式
   結局、ミスが蓄積するので、ストレスが溜まる。
 回復するHP方式
   ミスを数秒耐えれば回復するため、ストレスが少ない。
   もちろんゲーム性としては微妙になるが、スマホでソコまで根性いれてゲーム性を追いたいプレイヤーは少ないと思われる。
   FPSの体力ゲージなどでよくある方式。最初はダメージに応じて画面に半透明でドクロマークを重ねてみていたが、邪魔過ぎたので、今のゲージの方式に。

 一応、スマホシューティングゲーとしてはこれぐらいが落しどころではないかと感じる。

・地上物の扱いに困った
 ポリゴンシューなので、立体的な部分にウソがつけない。
 2Dシューは、地上の戦車も上空の飛行機も同じショットで倒せるゲームが多い。そのほうがストレスが少ないから。
 しかしポリゴンでそれをやると、かなりうそ臭い。当たり判定をY方向に延長した弾丸を試してみたが、見た目当たってない弾丸が当たる印象が強い。
 カメラのパースを計算して、Y方向に伸ばすのではなく、視線方向に伸ばすのならアリかもしれないが、自分は3D計算は小学生もビックリのダメ加減なので、あきらめた。
 次に試したのはブロブシャドーを用いて、地上攻撃を、空中攻撃用のショットとわけるものだった。
 いわゆるゼビウス方式。
 スマホ画面で、敵を狙い打つのはつら過ぎたので、諦めた。
 絵はかっこよかったのだけども。まぁそれをしていたら地形を丁寧に作る必要があるから、今よりもっと開発期間がかかった。切り捨てて良かったと思う。

・3D的なウソのつけなさに困った
 これも上の地上物の扱いと同じなのだけど。
 例えば、敵ボスが居て、砲塔がついていて発砲してくるとする。
 自機に弾を当てないといけないので、砲塔の高さは必然的に自機と同じ高さになる。
 では、敵ボスの高さはどうするんだ。
 みたいな。
 ゼビウスのように地上物と空中物の撃ち分けがある場合は、どうにでもなるが、空中ショットのみでゲームを作る場合、全ての破壊されるものは、同じ高さにないといけない。
 同じ高さにあると、そこに自機が突っ込んだ場合どうすんの?って話にもなる。

 また、空中物の移動速度は、地上のスクロール速度と無関係なのがこの手のゲームの定番なのだが、敵弾の速度が、画面上から下と下から上で違って見えたり、スクロールにつられてとまって見えたりと、わりとプレイ感覚に影響がある。

 世の中の2Dシューはこのへんウソまみれなので3Dにする時にそれなりに加工が必要なのだ。
 んで、半分は絵心の領域なので、今回はそこに時間を使ってる場合ではなかったので、ザックリオミット。


・縦スクロールにしてしまったと思った
 携帯電話で遊ぶ前提で作ったので縦スクロールなのだけど、縦スクロールだと背景を描かねばいけない。
 横スクロールだったら、遠景を1枚絵で書いてお茶を濁せるのだが、縦だと地面を延々作らねば成らず面倒くさい。
 unityPro(有料)だと、影を落としたりしてごまかしも聞くかも知れぬが、こちとら無料版(Basic)だからな。
 先に2つあげた、当たり判定の難儀さも含め、ちょっと習作で作るかーというには面倒が多すぎた。

・プロペラ機にしてしまった
 これ、宇宙船にしておけば、黒ベタに星を散らすだけで済んだのに。うう。

・趣味の問題で利益の出ないゲームを作った
 練習のため、広告も貼り付けてあるのだが。基本見ないし触らないし、シューティングは遊ぶ時間も短いから、ほぼ意味が無い。
 1年以上かけてゲームを作って、遊ぶの5分でエンディングなわけだ。非常にコストパフォーマンスが悪い。(オレにとって)
 RPG要素や蓄積要素をきっちり作っておけば、もっと時間の持つゲームになったとは思うが、そういうのは仕事のほうで腹いっぱいなので、今回は利益度外視の出血大サービスである。(自分に対して大サービス)
 なんというか、いつもいってる「蓄積要素の無いゲームが好きだが、商売にならんから絶滅危惧種だ」というのを自分で実行して「あーほんとうにコストパフォーマンス悪い!」みたいな。
 疲れたわ。

・得たものは大きい
 もともと、ソース書いたりモデリングしたりはしてたヒトなのだけど。
 最新の環境で、自分で1本まるっと作るのは、刺激的であるし、やはりとても勉強になる。
 機能を実装する難度とか肌感覚でわかるから。

 勉強の意味合いが強かったけど、やはりゲームを作るのは楽しいよ。
 仕様書も企画書も書かずにいきなりゲーム作り出すってのはエキサイティングだし、誰も説得しなくてもモノが出来てくるなんてのは天国みたいなもんだ。
 仕事ですっ飛ばしたいところ、全部すっ飛ばしだもんね。

 以上そんな感じで。
 キーボードのすべるままいい加減に書いたけれども。
 ゲーム作るのは楽しいので皆さんも時間を確保できるならぜひどうぞ。

2014/05/20(火) 00:42:54| 固定リンク|ゲーム| トラックバック:0 | このエントリーを含むはてなブックマーク|
ワークエリア
スポンサーリンク
この記事のトラックバックURL
この記事へのトラックバック
COPYRIGHT © 2004 POWERED BY FC2 ALL RIGHTS RESERVED.