擬似3Dシューティング
- 擬似っつーか、殆ど普通に3Dにすることにした。
- STAGE1まで作成して力尽きました。もはや技術的な問題ではなく精神力の問題…
- という訳で、一旦開発を終了したい。
開発終了にあたっての総括
良い点
- 3D表示を行うための最もプリミティブなフレームワークを設計・実装できた
- 今後の技術的な課題点を明確化できた
悪い点
- モデリングツールを含めた総合的な開発環境の構築まで取り掛かれなかった
- Zソートによる描画優先順位の解決について、精度がよくない
- 固定少数演算の桁数と、整数部分の桁数(最大値)の割合についての十分な考慮ができていない
ゲームシステム
- 自機の進行方向とカメラはユーザ操作できない
- 自機のユーザ操作は、進行方向に対してZ軸の回転で操作可能
(少し大きめの円を描く様な(キリモミ)飛行の操作となる)
- ダメージ制
現在の開発状況
以下は実装済み
- 3次元のワールド座標から2次元のスクリーン座標への変換実装
- 透視投影の座標変換実装
- カメラを実装
- キー入力とマウス操作でFPSっぽくカメラを移動できる様に実装
- 地面用オブジェクトの実装
- 座標計算はマジメにやってるけど、テクスチャの貼付けは画像の変形(サターン方式)で実装。
- ビルボードの実装
- 描画順序をZソートで実装
- 遠くの地面は暗くする
- 3次元オブジェクト基底クラス(サーフェイスの描画順序解決)の実装
- コリジョン判定
- 傾斜しているオブジェクトの上を登る
- 自機の進行方向のスクリプト実行部とパーサの実装
- カメラ移動のスクリプト実行部とパーサの実装
- コリジョン判定の最適化・高速化
- 敵機スクリプト読込み後の情報のキャッシュ機能
- サウンド制御
- ミュージック制御
- イメージ・サウンド情報のキャッシュ機能
進捗
- ステージ01:100%
- ステージ02:5%
- ステージ03:0%
- ステージ04:0%
開発メモ
- DirectXは使用する。
- DirectXの使用自体にコストをかけたくないので、フリーのDXライブラリを利用
- 勉強にならないので、3D表示に関する機能はDirectXは利用しない
- つかモデリングツールの値段が高いのでXFILE形式の出力できねぇ
- Zバッファはハードウェアでなきゃ無理?
- 3点の座標値から法線ベクトルを自動で算出できんだろうか?
- 物理シミュレーションに必要なことを調べる(主に当たり判定関係がむずい?)
- 影とか陰影の処理はどうしよう?てか、無理っぽい?
- 関節制御は擬似で代用できるので今回はドロップ
- 直線の傾きからatanで角度を得て、+90度を法線ベクトルとして扱うことで、斜め線の当たり判定に対応可能かも
- 擬似的な影として、矩形の端と光源を結ぶ直線と交差する地面の座標を得て、そのサイズに影様の画像を引き伸ばせばそれっぽくなるかも
- コリジョン判定時の反射について、重心を考慮しなくて良ければ対象の面の法線ベクトルに対する角度差を、そのまま-1をかけて法線ベクトルの角度に足せば反射角が得られると思う
- 偏差射撃について、弾丸の到達時間Tにおける対象の座標を計算する必要があるが、対象の座標が変われば到達時間Tも変化するため、単純に初期位置の距離と弾速からは算出できそうにない。対象が直線的に移動したと仮定して、その直線と発射位置を中心とした円の円周が交わる点をPとし、円の半径は弾速*Tで算出できるので、あとは対象の移動距離との最小公約数を求めれば、Pが決定できるので発射角度が算出できる?もっかいよく考えること。
- 3Dモデリングデータについて直値指定の現状の改善を考える。モデリングツールの作成について技術的な課題が少ないだけに工数をかける意義が見出せない