« カラーラとFSで3Dゲームその5 | Main | カラーラとFSで3Dゲームその7 »

2006.04.24

カラーラとFSで3Dゲームその6

さて(^^)
ロボ子も平らな所なら自由に走れるようになった。4方向だけど。
しかし3Dゲームなら高低差のある所も走れるようにならないといけない。その為には2つの方法が考えられる。
1:地面との衝突判定で高さを変える方法。
2:高さのデータが記されたマップを用意しておいて、それを元に判断する方法。

これがねー(^^;
素人はついつい1番の方法でやろうとするんだけど<って、お前だって素人じゃんかよ!<すまん(^^;
実はオブジェクトのポリゴン1枚1枚で衝突判定をするのは大変らしいのよ。まず、そんな機能を持ったソフトは無い、らしい。
3Dゲームで衝突判定をする時は、対象をボックスなり球体なりで範囲を囲って、その範囲同士が接触した時に衝突を検出する、と言う方法が一般的らしいよ。その方が簡単みたいね。
こういうの、シューティングの弾が当たった時、とかに使う方法で、地面相手では色々不都合が有るのだ。

2番の方法は一見、別のマップを用意しとくなんてめんど臭そうだが、実はこの方が考え方的に簡単。
キャラクターのXY座標(HSPではXZ座標)を見てその位置のZ座標(HSPではY座標)を読み込む。シンプルだ。
なので2番の方法で行く事にするのである。

さて、そうすると。
その高さのマップをどうやって用意するか、である。
まさかいちいち調べて手で打ち込んでいく訳にもいくまい。
そこで、簡単なエディターを作らねばなるまい。
どういうエディターか?それも二通り考えられる。
3:マップの大きさに対応したBMPファイルを用意してそのドットの濃淡で高さを決める方法。
4:高さの定まっている地形ブロックを組み合わせて地面にする方法。

3番は割りとおなじみなんじゃなかろうか。カラーラの地形エディタなんかその方法だし、景観作成ソフトなんかでも地形を作るのにそういう方法を使う。
エディタの作業としてはペイントソフトのような機能を持たせて、それを高さマップとして吐き出させれば良い訳だ。
実際の地形モデルはカラーラなりなんなりで造れば良い。
問題点としてはエディタだけで作業が完結しない所だな。

4番の方法は、まあブロック遊びみたいな物だからイメージが掴みやすい。前もって用意しておくブロックのモデルは、箱と断面が直角三角形の三角柱の2種類を用意すればよいだろう。
エディタの作業としては良く有るRPGのマップエディターと変わりは無い。どのモデルをどの向きで置いてあるかを吐き出しとけば、このモデルだったら高さはこう、とソフトで対応させておけば良いだけだ。
問題点としては、この方法は狭い場所に向いたマップの造り方だ、という事だ。ダンジョンとか屋内とか。広い平原とか大きな山とかには向かない。

実は、3DRPGツクールではその両方のエディターを装備していて、ダンジョンと平原を使い分けている。
なので、素人のあっしとしては<ほらやっぱり!
それに倣っとくのが良いだろうな。

さて。
3番と4番。どっちが簡単だろう?簡単な方からやろう。
3番の方が簡単かな?BMPから高さに変換するコンバーターだけで良さそうだし。良く考えたらBMP作るのは今あるペイントソフトで良い訳だしね。
で3番で上手く行ったら、4番に対応させる。そうすればマップ上に他のモデルを置く配置マップとしても使えるかもしれないし。
なんか有ったら作ってる時に考えればいいや(^^;<だからプログラマーとしては素人なんですってば!

|

« カラーラとFSで3Dゲームその5 | Main | カラーラとFSで3Dゲームその7 »

Comments

Post a comment



(Not displayed with comment.)




TrackBack


Listed below are links to weblogs that reference カラーラとFSで3Dゲームその6:

« カラーラとFSで3Dゲームその5 | Main | カラーラとFSで3Dゲームその7 »