フリーゲーム・フリーソフトの開発過程を記録していく、TDtechnic公式ブログです。製品はカテゴリの「ダウンロード場」からダウンロードして頂けます。
上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。

こんばんは。試しにソースコードの行数を数えてみたら4809行ありました(SDKやライブラリは除く)。今回も色々あったのでまとめて報告します。なんか書きやすいのでまた目次形式で。

①3Dモデル製作技術の進歩
②本編の3D表示成功
③地味だけどプログラマー泣かせの改良二点

①3Dモデル製作技術の進歩
私はモデリング経験があまり無いので、今回のステージはどう作るか悩んでいました。試行錯誤の末、規格を作ってローカルで並べていけば比較的簡単に作れそうだと思い至りました。特にこの方式は、規格に従った改造モデルを作れば簡単に一部分を変更できるのが良い点です。例えば、壁も一定の長さのものを並べて作られていますが、壁に窓を取り付けたモデルを用意して任意の部分の壁と取り替えれば、他の部分には全く影響を及ぼさず窓を設置することができます。ここでもし、壁がその場で作られたものであれば、窓を設置するにはナイフや面張りで切った張ったすることになり、UVマッピングもめちゃくちゃになります(私のやり方では、ですが…うまいやり方他にありませんかね)。とまあこの調子で、なんとかステージに見えるように頑張ろうと思います。

②本編の3D表示成功
スキンメッシュに成功したのは随分前にお知らせしましたが、あれはあくまでサンプル上で動いただけで、まだ本編に組み込めてはいませんでした。というわけで、いい加減3D表示に対応するように小改造、小改造をしました。小改造を…あれっ?

やっぱりちょっとやそっとでは動いてくれませんねえ!

結構な手順を踏みましたけど、最終的なポイントを記します。まず、タスクシステムのDraw3Dメソッドを、だいぶ前の自分が無効にしていたのに気づきませんでした。次、描画メソッドは呼んだのに一向に描画できません。それどころか、深度をクリアしようとすると画面の消去すらできません。これもやはり前の自分が、DirectXの初期化時に深度の設定をサボっていたからでした。深度バッファを設定して、あとスプライトがステート変えまくってるのに気づいたので、ようやく映ったと思ったら今度はデバイスロスト後にモデルが消えます。スプライトは映るのに、です。初めはリソース消失を疑ったのですが、Resetが成功してる時点でそれはありえず、結局射影変換やレンダーステートがリセットされているのに気づいていなかっただけでした。
とまあ3D描画に関しては完全放置状態だった不死女でしたが、さすがは時間を掛けて作ったシステム、設定さえちゃんとしたらあとは自由自在に作り込めました。マウスで視点を操作したり、タイトル画面の背景に3Dモデルを表示したり、思うままです。やっぱり基盤がしっかりしてるとほんといいですよね。どっかの記憶とかSIREN:TDと違って。

③地味だけどプログラマー泣かせの改良二点
皆様からしたら大した機能ではないとは思いますが、個人的なこだわりで大改造をしました。一つはアンチエイリアス。文字の話でも出ましたが、要は同じ解像度でもより高画質になるようにする技術です。つまるところDirectXの初期化時に適切な設定をするだけなのですが、全くやったことがない状態から手をつけるのはちょっと勇気が要りました。
次に、起動中に画面モードの切り替えができるようにしました。つまり、ゲーム中のオプション画面でフルスクリーンなどの設定を変更した際、再起動をしなくともその場で反映されるようにしたのです。これを実現するには、ごちゃごちゃの初期化コードをまず整理して、そこから再初期化に必要な部分を分離、そしてオプション画面で呼び出すという大工事が必要でした。幸いにも高校のWindows 2000での度重なる修行のお陰(笑)でDirectX初期化コードの理解は並大抵ではないですから、割りとすんなり実装できました。とはいえコード量がコード量なので、労力としては…そんなに楽じゃありませんでしたね。ついでに、先に述べたアンチエイリアスもオプションでその場ON/OFFできるようにしました。

解決した不死女の難関を並べてみると、IME、スキンメッシュアニメーション、フォントテクスチャ、タスクシステム…。そして必須ではないがあると嬉しい、画面モード切り替えにアンチエイリアス。様々な技術が、この不死女には集結しています。記憶のとき?スキンメッシュなんか関係ない、描画は2Dのみ、フォントは自動生成…前作との難易度の差が激しいです(笑)逆に今後の(私の)タスクリストを書くと
①ステージ作成(6階建てくらい?ひょっとしたらマップエディタ的なシステムを作るかも?)
②当たり判定(キャラと壁、キャラとキャラ、キャラとアイテム、キャラと弾丸)
③キャラ作成(主人公(作らないかも)、ヒロイン(素材あり)、敵(半完成)、ラスボス(ほぼ完成))
④アイテム作成(銃、弾丸その他なるべくフリー素材で)
⑤AI作成(9種類ほど。移動させるならナビゲーションポイントが要るかも)
⑥ストーリー作成(たたき台はある)
という感じですかね。多分この順じゃないだろうし、まだまだ色々欠けてると思います。それでもこのペースを維持して、なんとか夏休み中には完成させたいですね。後期はもっと授業に集中したいと思います(←おい
関連記事

[2014/08/25 00:57] | 不死女 -Immortal girl-
|


名無しさん@TD
はじめまして
首都高バトルの動画投稿しても良いですか?

はじめまして
Shiro
ええと…念のため伺いますが、本家の首都高バトルではなく私の「首都高バトルTD」のことでしょうか?配布してるのはかなり未熟な頃のしかも2D作品だと思いますが、それであれば動画は遠慮なく作って頂いて構いません。

コメント:を閉じる▲
コメント:
この記事へのコメント:
はじめまして
首都高バトルの動画投稿しても良いですか?
2014/08/27(Wed) 14:17 | URL  | 名無しさん@TD #-[ 編集]
はじめまして
ええと…念のため伺いますが、本家の首都高バトルではなく私の「首都高バトルTD」のことでしょうか?配布してるのはかなり未熟な頃のしかも2D作品だと思いますが、それであれば動画は遠慮なく作って頂いて構いません。
2014/08/27(Wed) 18:14 | URL  | Shiro #-[ 編集]
コメント:を投稿
URL:

パスワード:
非公開コメント: 管理者にだけ表示を許可
 
上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。