Game Development

ちょっとしたゲーム開発(?)ぽいことを始めてみようと思います。いままではモデルをシェーダーで描画することが目的でしたが、動かしたりしてゲームらしくしてみたいと思い始めました。プログラミングと数学の復習という目的もあります。

 

toy_sherman

toy_panzer

とりあえず戦車を動かすプログラムを作ってみようと思いました。昔作ったデフォルメのシャーマン戦車とドイツ3号戦車を使うことにします。

描画部分はほとんど出来ているので、データ管理と座標計算が課題です。まずはコリジョン。調べてみてわかったんですが、XNAはレイとモデルの交点を求める命令がなかったりします。いきなりしんどい展開ですが、Microsoftから提供されているサンプルを参考に書いてみました。(ゲームを簡単に作れるというのがXNAの売りではなかったっけ・・・)

 

collision_floor

モデルを読み込む際に、頂点座標を保存しておき、レイと三角形を総当たりで交差判定するという仕組みです。面倒くさい!これで戦車から真下のベクトルで地面との交点を求めて、地面に接地させることが出来ました。

つぎにでこぼこの地面の表面に沿って動くようにします。これもこちらのMicrosoftから提供されているサンプルを参考にしました。モデルとの交点を取得する際に、法線も一緒に取得します。そしてモデルが向いている方向と法線から軸を作り、モデルをその軸へ行列変換させます。

 

normal_axis

これで地面に沿って走るようになりました。そんなわけでこういった基礎的なところから勉強していこうと思います。

広告

コメントを残す

以下に詳細を記入するか、アイコンをクリックしてログインしてください。

WordPress.com ロゴ

WordPress.com アカウントを使ってコメントしています。 ログアウト / 変更 )

Twitter 画像

Twitter アカウントを使ってコメントしています。 ログアウト / 変更 )

Facebook の写真

Facebook アカウントを使ってコメントしています。 ログアウト / 変更 )

Google+ フォト

Google+ アカウントを使ってコメントしています。 ログアウト / 変更 )

%s と連携中