風薙鳥 ゲーム制作日誌

機体を3Dモデルで描画してみた

Visual C++ / DXライブラリでシューティング「BraveFlap」を制作中です。

少し前に作った道中敵機の3Dモデルで、少し実験をしてみました。
レンダリングした敵機画像を描画するのではなく、3Dモデルをそのまま描画しようという試みです。
GameMaker時代に、3Dモードへの移行が必要だったりと、制約が多くて投げ出した3Dですが、DXライブラリでは2Dと3Dの共存が容易にできました。

実際に自機と敵機を描画したのがこちら。



2Dの描画と共存できる上、2D上の座標を3D座標に変換でき、従来の座標計算に手を加えることなく描画できました。
DXライブラリだと、メタセコイアの独自保存形式をそのまま読み込めるのがいいですね。
DXライブラリ付属ツールで変換することで、見た目そのままにファイルサイズを削減することもできるようです。
敵機の座標によってカメラからの方向が変わるので、縦スクロールで前面や側面が見えたりと、「動いている感」は静止画より断然高いですね。

欠点として、モデルの実際の描画サイズが分からないので、当たり判定の大きさ設定に少し困りそうなこと。
当たり判定が見えるデバッグ機能を用意して調整するか、3D用の当たり判定関数を使うのがいいのかもしれません。

もうひとつ、描画したモデルの細部が少し荒く見えること。
そこまで気になるわけではありませんが、可能であれば改善したいところです。
モデルの縁取りなんかができるのなら、良くなりそうな気がします。