過去の記事
Ver2.17 2003.9.27
ザコ敵を4種類追加しました。
ここまでかな、と思います。前に、「あとザコ敵のアニメーションと、タイトルとエンディングデモの修正くらいはやりたい」と書きました。しかし、あと3日でできるでしょうか。できません。
いや、HSPコンテストとは関係なく、今後も改良を重ねていくのか、それとも少なくともCavaに関してはHSPコンテストの終了とともに完了とするのか、分かりませんが。
と言いますか、前に「もうこんな事をやってる場合じゃない」という旨を書きました。どうやら、本格的にそういう状況になりそうだなと。
HSPコンテストの締め切りまで、あと3日。
Ver2.16 2003.9.24
HSPコンテストの締め切りまで、あと6日。
Ver2.15 2003.9.22
爆発のアニメーションを修正しました。
HSPコンテストの締め切りまで、あと8日。
Ver2.14 2003.9.20
アイテムget音、シールド被弾音だけそのままとし、他のすべての効果音を作り直しました。さらに、いくつか効果音を追加しました。いや疲れました。素直にフリー素材を使えばいいのでしょうが、抵抗があるもので。
で、ホームページにアップロードしようとして、ファイルサイズが一気に0.4MBから2.6MBに増えていることに気づきました。恐るべしWaveファイル(効果音)。
Ver2.13 2003.9.16
既存のゲームを見ると、どうもザコ敵は群れをなして出てくるものが多いようだと思い、改造したのですが、あんまり面白くないですな。と言いますか、改造すればするほど面白くなくなるような気が……。
ため撃ちの音はまだ作っていません。(^_^;)
HSPコンテストの締め切りまであとわずか。(9月30日。)余裕があれば、あと効果音の改良、ザコ敵のアニメーションくらいはやりたいなと思っています。できればタイトル画面とエンディングの修正も。あくまでも、余裕があればの話。
Ver2.12 2003.8.21
各ステージにトラップを1つずつ追加しました。
上の画像は「擬態」と「幻覚」です。(大げさ?)
Ver2.11 2003.8.7
あと、敵を出す処理方式を変えたりしています。(見た目ほとんど変わりありませんが。)
よくよく考えると、私がやりたい事って、このホームページに集約されているわけです。が、私生活がどうやら、こんな事をやっている場合じゃなくなりそうです。これは、1銭の得にもならない。現実を見つめなくちゃいけませんな。
Ver2.10 2003.7.23
ザコキャラを2つ追加しました。
自機に向けて3wayを撃ってくるものと、誘導弾を撃ってくるものです。ちょっと誘導弾っぽくないのですが(^_^;)。これは、自機に向けて単発で弾を撃ってくるアルゴリズムに比べて、少々複雑なのかなと。
ふー。無事HSPコンテストにエントリーされました。応募期間中は差し替え可能だそうで、私もある程度改造が大きくなった時点で差し替えようと思います。(自分のサイトでは随時更新。)で、「なにがどうと言えないが、いまいち面白くない」というコメントをいただきました。……うーん、先は長い。
時の豆知識(HSPユーザ向け)
hspext.dll(HSPで三角関数を使用するためのプラグイン)を使って、自機に向けて敵が弾を撃つ計算をしたい場合、こうすることはよく知られていると思います。
ematan r,tx-x,ty-y
emsin dx,r
emcos dy,r
(x,y)からターゲットの座標(tx,ty)に対する角度rをアークタンジェントで求め、サイン、コサイン計算で単位長さあたりのx成分dx、y成分dyを求めます。
三角関数を覚えている方は、これを見て、こう思ったのではないでしょうか。なんでx成分がsinで、y成分がcosなの?
私はこのやり方を、サイトを検索して見つけました。使い方がよく分からないまま、真似していました。どうやらematanとemsin,emcosでは、角度の定義が違うらしいという事は分かるのですが……。単発ならこれでもいいのです。しかし自機に向けて3wayを撃つ場合や、発射時は自機の方とは直角に、徐々に角度を変えて自機の方へ向けるといったことをしたい場合、これでは困りますね。
ematanで求めた角度に対して、この変換を行って下さい。
r=192-r
これで、通常の計算によりemsin、emcosで扱えるようになります。
ematan r,tx-x,ty-y
r=(192-r)&255 ; &255 : 角度を0〜255の範囲におさめる。
emcos dx,r
emsin dy,r
Ver2.09 2003.7.17
難易度とスクリーンモードの選択はOPTION画面で行います。あと、字に青い影をつけました。決して色がにじんでいるわけではございません。
それと、ジョイパッドの入力もDirectXで処理するように変えました。プログラム内部の処理方式が変わっただけで、ゲームをする人から見ると何も変わっていません。ただ、前の方式だと、私の環境では自機が変な方向に勝手に動いてしまうことがあったのですが、それが直っているのではないかなあと。(たまにしか起こらない現象なので未確認。)
音楽もDirectXで鳴らすようにしたかったのですが、音がおかしくなってしまうので断念。今ステージ数表示時に"Now loading"と出しているのですが、実は「BGMを鳴らせ」と命令してから実際に鳴るまでプログラムが止まっているのです。DirectXを使うとこの待ち時間を短縮できそうなのですが……。残念。
Ver2.08 2003.7.14
画面をフルスクリーンモードにしました。
ついにDirectXに手を出した! DirectXに対応すると、グラフィック関係の命令を全部書き換えなければいけない割には、画面を大きくできるくらいしかメリットがないので、敬遠してたんですよ。ところが、あるサイトで「HSPでシューティングゲームを作るとすれば、画面の大きさは320ドット*256ドットが限界」という文を見かけまして、急遽DirectX化することにしました。Ca vaの画面サイズはそれより大きいです。私の環境では問題なく動いていますが、ロースペックのマシンをお使いの方は遅くてゲームにならないかもしれません。ちなみに、画面サイズを大きくすればするほど遅くなります。DirectXは高速描画を実現するコンポーネントです。
そんなわけで、今回の改造内容としては画面がフルスクリーンになっただけなのですが、ロースペックのマシンの人は前より速くなっているかもしれません。
やっかいでしたよー、これ。HSPは簡単です。標準命令だけを使っている場合は。いろいろな作者さんがHSPを便利にしようとして作った追加命令を使おうとした途端に難しくなります。説明書には、命令の仕様の一覧くらいしか載っていません。あとはせいぜいサンプルプログラムがついている程度です。
そりゃそうです。作者さんは自分にとって便利になるよう、追加命令を作っているのです。あまりにも良いものができたので、みんなにタダで分けてあげるのです。マニュアルまで懇切丁寧に書いてあげようとは思わないでしょう。インターネットには、HSP講座を開いているサイトがいくつもあります。そこにも書いてなかったら、Readmeとサンプルから読み取るしかありません。
「せっかくHSP使おうかと思っていたのに、お前の文章読んだら使う気なくなったよ!」と思った方がもしいたらごめんなさい。大丈夫です。分からないことがあったら、Hot Soup Processorのページの掲示板で質問すれば、誰かが答えてくれます。
で、ちょっとHSPあるいはDirectXが分かる人向けの話になりますが、DirectXではスクリーンを作成するメモリをVRAMにするかシステムメモリにするか選ぶことができます。私は素直に「VRAMに作成するが、失敗した場合はシステムメモリに作成する」を選んでいました。そしたら全然動かない。なんで? ちゃんと書いてある通りにやってるよ? でも動かない。「システムメモリに強制的に作成する」を選んだら動きました。どうやら私の環境ではVRAMに取ることはできないようです。ちなみにOSはWindowsXPです。ということは、逆にシステムメモリだと動かない人がいるかもしれません。DirectXを使ったことで、環境によって動かない危険性が増しました。正常動作しない人がいたら、ぜひ教えて下さい。
Ver2.07 2003.7.8
たくさんのご意見を頂きました。今回は、すぐ対応できるものはしようという意図でのマイナーバージョンアップです。ご意見、ご感想を下さったみなさん、有難うございます。
HSPコンテストに応募しました。(今日送ったばかりなので、今行っても掲載されていません。)
Ver2.06 2003.6.30
Ca vaの作成開始から5ヵ月半。シューティングゲームの作成開始から数えると7ヶ月半。思えば遠くへ来たもんだ……。
Ver2.05 2003.6.28
やっと各ステージに一つずつトラップを追加する作業が完了しました。
難易度がちょっと上がってしまいました。
Ver2.04 2003.6.25
結構緊張感が出てきたのではないかと。
Ver2.03 2003.6.18
ステージ2にトラップを1つ追加しました。
大きさやグラフィックが違うパーツを組み合わせたトラップの実装です。土台はできました。あとはひたすらいろいろなトラップを作っていくだけです。
Ver2.02 2003.6.15
ステージ1にトラップを1つ追加しました。
まあ、1つ追加したというより、複数のパーツから成るトラップを実装したというのが、今回の改造です。次は大きさやグラフィックが違うパーツを組み合わせたトラップを作る予定です。
Ver2.01 2003.6.6
これでノーマルモードがプレイし易くなったかと思います。ハードモードは相変わらず難しいです。
1ヶ月ぶりの改造です。その間何をしていたかというと、ずーっとホームページをいじくり回しておりました。でもおかげ様で1000アクセス達成! 有難うございます。あ、途中でNoveltoHTMLを作ってますね。ホームページを修正していた時の副産物です。
いや、分かっているのですよ。敵やトラップの種類を増やさないと、インパクトは弱いぞと。しかしこういう小改造でも、やっていかないと。モチベーション維持するのって大変だなあ。
で、こんなちょっとした修正でも、アプリケーションエラー出まくり! 今度はHSP Ver2.55でやってみてもだめ。(Ver1.05の記事参照。)結局処理方式を変更して動きましたが。
なんかHSPって、配列変数に関する処理が不安定のような気がする。
Ver2.00 2003.5.4
Ver1.00と比べてだいぶ様変わりしてきましたので、ここら辺でメジャーバージョンアップにします。
Vectorに登録するのはもうちょっと先にしようと思います。いくつかご意見を頂きました。「メリハリがほしい」、「同じことを延々やってる気が」とのことで、どうもやはり敵の種類が少ないのと、マップ(敵の配置データ)を作っていないのがよくないようです。
Ver1.07 2003.4.23
ふうむ。敵を4つ作るのに9日というのは早いのか、遅いのか。まあ、敵ごとに弾の種類も追加しているのですが。
あとはボスをどうにかしたいですな。ザコを出ないようにし、弾を大量に吐かせたい。もちろん、ステージごとに違う弾を。それができたらVectorに登録してしまおうかなあ、と思います。背景が単調なので、それを直してから、とも。あとマップもまだ作っていませんし。
ずっとマイナーバージョンアップで来ましたが、もうそろそろバージョンアップしようかなと思っています。ボスを直したら。
Ver1.06 2003.4.14
中型敵(ザコより大きい敵)を1種類だけ追加しました。
この間3way弾を作ったので、今度は5wayを追加するかというと、さにあらず。(Ver1.04の記事参照。)この敵はS字を描くように弾をばらまきます。ついでに、ボスの弾も同じにしました。
Cavaの公開(Ver1.00)から2ヶ月が経過しました。こんなものか、と思います。途中1ヶ月ほど放置していた期間があるのですが、それでも、遅い。何がって、開発スピードが、です。だいぶ良くなってからVectorにフリーソフトとして登録、ものすごく良くなってからシェアウェアとして公開、というふうに考えています。Vectorというのは、ご存知の方も多いと思いますが、各種フリーソフトをダウンロードできるサイトです。
しかしこのままでは、Vectorに登録するまでに相当かかりそうです。とにかく、敵の種類が少ない。ザコ5種類、中型敵1種類、ボス1種類、トラップ5種類。これじゃあ、ねえ。別にこだわらなければ、今すぐ登録しても構わないのですが。
で、対応OSの動作確認をどうするかですが、Virtual PCを買おうと思っています。動作確認しなくては、Vectorに登録できません。これはWindows98や2000、NTなどをエミュレートするソフトで、1台のマシンで各種Windowsが使えるというものです。昨日お店に行って、置いてあることだけは確認しました。買うのは、もうちょっとCavaがちゃんとしてからでいいかと思っています。39800円(税別)なり。シェアウェア版公開までこぎつけることができたとしても、元も取れなかったりして。
Ver1.05 2003.4.6
敵が弾を出す時間間隔を変更した関係で、弾の量がちょっと増えています。そうしたら、「問題が発生したため、〜.exe を終了します。 ご不便をおかけして申し訳ありません」というエラーがやたらと出るようになってしまいました。プログラムを何度見直しても、どこが悪いのかさっぱり分かりません。ちなみに、使っているプログラミング言語はHSP(Hot Soup Processor)です。
1フレームあたりの描画量が限界に達しているのかなあ、などと思いつつ、タスクマネージャで調べてもCPU使用率が100%になっているわけでも、メモリを食っているわけでもなさそうです。決まった所でエラーになるのではなく、どうも弾の量が多い時に出るみたいなのですが、条件がはっきりしません。
こりゃ困ったなあ。これじゃ今はやりの弾幕系−−画面を覆いつくさんばかりに弾が出るタイプのシューティングは作れないじゃん。しかし、もっと大量に弾を出すHSP製のゲームをやったことがあるぞ。だいたい、これってアプリケーション・エラーっていうやつなんでしょ? ずいぶん不親切なシステムだな。「そんな命令はありません」とか、「〜の使い方が間違っています」とか、メッセージ出すのが普通だろ。HSPという選択肢は、間違いだったのだろうか。
上のOSが出しているエラーメッセージの他に、HSP debug windowとかいうウィンドウが出ているのですが、真っ白で何のヒントも表示しません。いろいろやっているうちに、「待てよ? これってHSP Ver2.55でやったらどうなるんだろう」と思い(今使っているのはVer2.6)、やってみたら「729行:配列の要素が不正です」という、まともなメッセージが出ました。それだけではなく、HSP debug windowには使った変数名と、それに入っている値が表示されます。なんだ、フリーソフトにしてはしっかりとしたシステムじゃないですか。で、無事にバグを退治することができました。結局単純なスペルミスでしたが。
で、何が言いたいかというと、WindowsXPを使っていて、最近HSPをVer2.6に上げたが、まだVer2.55を捨てずに持っているという人は、当分捨てない方がいいですよ。
といいますか、HSPやってない人には全然興味ない話ですね。
Ver1.04 2003.3.30
アイテム、「パワーアップ」を追加しました。
やっと、扇状に広がりながら飛んでいく弾を、実装することができました。きれいです。(自機の弾。)今は敵の弾が1種類しかないのですが、3wayや5wayを今後追加していこうと思っています。そうすればかなりそれっぽくなるはずです。
難易度がえらく下がってしまいました。(^_^;)
Ver1.03 2003.3.24
Ver1.02 2003.3.23
いたって簡素ではありますが、トラップを追加しました。それと、曲が終わるたびにゲームが一瞬止まってしまうのを修正しました。
去年の12月から順調に進めて来たプログラミングですが、開発スピードががくんと落ちました。
Ver1.01 2003.2.18
敵弾の処理を変更。ランダムにばらまく方式から、自機をねらって撃つ方式に変えました。
Ver1.00 2003.2.13
なーんだ。自機の移動を、矢印キーに割り当てるからいけないんじゃん! という事に気づきました。
……と言っても、ここから読み始めた人は何のことやら分かりませんね。下に行くほど古い記事となっています。シューティングゲームはキーボードではやりづらい。なんとかならないか、という話です。
前作まで自機は左右にしか動かなかったのですが、今回は上下にも動きます。で、移動はY、B、G、Uキーに割り当てました。(それぞれ、上、下、左、右に対応。)矢印キーでは下が押しにくい。もっと手の形にフィットした割り当てにすればいいのではないか、という考えからです。「それだと間隔が狭くないか? 手の形にフィットさせるなら、もっと広めのを選べばいいのに」と思う方がいるかもしれませんね。いろいろ試してみましたが、なぜかキーによってはビープ音が鳴ってしまったり、ゲームが一瞬止まってしまったりするので、最終的にこの配置になりました。
まあ、いずれにせよジョイパッドの操作性にはかないませんが。それでも矢印キーに比べたらよっぽどましです。
しかし、これも完璧ではありません。ノートパソコンを使っている方は、誤ってタッチパッドに触れてしまうと、ゲームのウィンドウが動き出したり、最悪の場合突然終了します。(たまたま右上の×印の所にカーソルがあった時。)
「自分は矢印キーの操作に慣れている。その割り当てではかえってやりづらい」という方が、ひょっとしたらいるかもしれませんね。あるいは、キーの配置が標準とは違うキーボードが存在するとか。そのため矢印キーでも動くようにしています。
それと、今回はジョイパッドにも対応しています。対応OSが減っているのはそのためです。ジョイパッド用のDLLを使わせていただいているのですが、その対応OSとして書いてあるのが95とNTだけなのです。XPは私が動作確認しています。Windows98で動いたという報告を頂きましたので98も加えました。
本作は前作Vandaの改良版です。といいますか、改良するたびにいちいちグラフィックや音楽を一から作り直していたら大変なので、しばらくは本作のバージョンアップをやろうと思っています。
前作は「動きがもっさりしている」というご意見を頂きました。CPUによっては動作が遅くなるということなのか、スピード感に欠けるということなのか。おそらく両方だと思います。今回はその点に気をつけて作りました。
全5ステージです。あと、コンティニューできるようにしたり、難易度を選択できるようにしています。
3万点ごとに、自機が一機増えます。
シェアウェアにするためには全然足りません。
等など。……シェアウェアへの道は長い。