[PR]
[PR]上記の広告は3ヶ月以上新規記事投稿のないブログに表示されています。新しい記事を書く事で広告が消えます。
無題
ようやく敵の攻撃を実装完了。
ステージ作成なんかもそろそろ進めたいですが、とりあえずその前に、オプションやメニュー関連を実装しとこうと思います。
綺麗な弾幕も好きですが、とりあえず避けてて楽しいものを目指したいです。
尤も、ステージ全体のプレイ時間をこちらで制御できないので、普通のSTGとは感じがずいぶん変わってしまうだろうとは思いますが。
弾幕制御
弾幕というほど弾は出ませんが。
ちょっとこんがらからないうちに仕様を整理してみます。(つまりチラシの裏)
敵とその攻撃オプションの構造体定義は以下の4種
・敵の種類ごとの定数パラメータセット
リアルタイムでは変動しない、ライフやアニメーションの参照データ。
外部ファイルに定義されたパラメータをメモリ内にストックする。
・攻撃オプションの定数パラメータセット
弾の画像、スピード、Way数などの基本値、及び1ループ内におけるその変動値のパラメータ。
・個別の敵オブジェクトデータ
ライフ、位置など、リアルタイムで変動する敵データを保持。
初期化時にパラメータセットのポインタをセットし、以降はそれを参照する。
攻撃オプションは複数を保持し、スレッドステートのON/OFFを切り替えることで攻撃を制御する。
・個別の攻撃オプションデータ
敵オブジェクトに配列として内包され、弾の発生を直接的に制御する。
基本パラメータは上記のパラメータセットにあるので、タイムカウンターやスレッドステートのみを持つ。
敵パラメータ
|
敵オブジェクト
L 攻撃オプション
|
オプションパラメータ
敵、攻撃オプションの基本パラメータはステージの変更時にステージスクリプトにしたがってロード。
……書いてみるとすごい単純だ…
コーディングしてるとポインタが蜘蛛の巣のごとく張り巡らされてるような感覚になってしまうんですけどねー。
実装し終わったら、一度コードを整理しないと後々面倒なことになりそうです。
とりあえず、これらの実装は一通り終わっているので、後は攻撃オプション内部の弾生成を実装すれば敵の弾が出てくる…と思う(不安)
デコードおわた
やっとogg再生のカプセル化が終わった・・・
基礎知識が少ないためめちゃくちゃ苦労しました。
サイズの小さい効果音とかならともかく、BGMなんかはサイズがでかすぎてVRAMの確保が失敗するので
やむなくストリーミング再生を実装する羽目に。
実装にあたっては、vox.dllというoggvolbis再生用dllのソースコードを参考にさせて頂きました。
それにしても、oggのデコードはやっぱ重いです。
マルチスレッドにして負荷を分散させてるんですが、それでも目に見えてスリープ時間が減ってます。
ネットで配布する場合は仕方ないですが、CDなんかで配布する場合はwav形式を使った方が動作そのものは快適かもしれません。
フレームレートが下がってる訳じゃないので許容範囲内ではあるんですけどね。
ちなみにマルチスレッドは、これまではなんかデットロックが怖くて敬遠してきたのですが、今回色々勉強できたので幾つか他の処理系にも組み込んでみました。
効果が大きいのはやはり読み込み関連の処理で、今までは大きな画像ファイルを読み込むときに一瞬固まるような感じになっていたんですが、今回の変更で大幅に改善されました。
具体的には、メインスレッドから画像のロードを要求された時に、一旦画像メモリのポインタを内包したクラスを生成して返還し、内部の読み込み処理は別スレッドで独立して行われるような流れになってます。
それにしても、やっぱ音があると臨場感が段違いに変わりますね。特にアクション要素のあるゲームは。
さて、続き頑張ってこよう。
気合いれよう
まとまった時間がないと中々製作が進みません。
作業がぶつ切りになるのが苦手っぽいです。頑張らねば。
現在、敵の移動、攻撃のルーチンをどの程度までハードコーディングすべきか検討中です。
敵の数や拡張性を考えて、幾つかのタイプを組み合わせていく感じになると思いますが。
アクセス数が異常に跳ね上がってたのでびっくりしたのですが、確認してみたら窓の社さんが再び時計塔のひみつを紹介して下さったようです。
かなり細かく、しっかり中身をやりこんでいることが分かる記事になっていて有難いです。
春ですねー
ドット絵作業は時間が掛かる割りに日記のネタにもならなくてアレですね。
ちなみに今回のゲームでは、プリレンダされた3DCGに手直しを加える感じでキャラクタを量産する予定です。
俯瞰視点のドットを8方向、さらにアニメーションつきでやるのは流石に死ぬだろう、という判断からこういうことになりました。
上の画像は縮小して手直しする前のポリゴンです。△1000くらいなので、PS2くらいの処理能力があればリアルタイムでも問題なく動作します。数年前のノートPCでもいけます。
半年くらい前に作ったローポリの習作を手直ししてそのまま持ってきました。
スキンメッシュのプログラムを勉強してた頃だったはず。
今はまだちまちましたモデルばかりですが、ボスとかの大型ユニットのモデリングはしんどそうだなあと、今から戦々恐々としてます。
小休止
コンシューマー機で遊ぶのは一年ぶりくらいかもしれません。
FPSというジャンルもこれが始めてでした。
最初はまともに歩くのも難しかった訳ですが、慣れたら驚くほど自在に動かせますね。
幸い3D酔いはあまりしない人間だったので、かなりぶっつづけでやってました。
でもオマケミッションの最高難易度だけは無理です。
あれをクリアできる奴等は人間じゃねえ!
その代わり、銃、手榴弾禁止でハードクリアするくらいにはやりこんできましたですよ。
かなり楽しめたし、色々いい意味で刺激を受けてきました。
さて作業頑張ろう。