Admin * New entry * Up load * All archives 

C++&DirectXでプチプチゲーム制作をしています。文章力?気合で乗り越えるさ。

 

旧 ゲーム的な何か。

01«1.2.3.4.5.6.7.8.9.10.11.12.13.14.15.16.17.18.19.20.21.22.23.24.25.26.27.28.»03
このページの記事一覧

    

Posted on --:--:-- «edit»

Category:スポンサー広告

スポンサーサイト 

上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。

tb: --     com: --

go page top

Posted on 02:14:19 «edit»

Category:プログラミングとか

1F部分を作ってみました 

1F仮実装

一応ステージはB1F,1F,2Fの3階層あるのですが、まずは1F部分のステージの仮組みを作ってみました。
こうしてみると結構テンションあがりますね。ちゃんとステージを動き回って、ジャンプすることも可能です。壁にもしっかりぶつかってくれます。

一応コード部分も工夫して、1行追加すれば壁が1枚追加されるように作ったのですが、それでも200行ほど使いました。中々時間も食いましたね。。

特に、現時点では座標を逐一自分で決める必要があるので、前側の12角形の部分は苦労しました。ホントはキーボードやマウスで実際の画面を見ながら調節できるのがいいのですが、ツールを作らないといけないので今回使う価値があるかは疑問です。

後、前回の記事でも書いたように、高さの判定は出来るので、右上に上から見渡す用の板を置いてあります。これもひとえにナビゲーションメッシュのおかげです。

一応今後これらの高さ判定を組む方のために、参考(というかパクった)URLを置いておきますね。
ホントにお世話になりました。ありがとうございます。

ナビゲーションメッシュによる3D環境内の移動は何をしているの?
http://www.lameije.co.jp/navigationmesh.html
床ポリゴンの高さを得るには?
http://marupeke296.com/COL_3D_No8_HightOfFloor.html

手順を書きますと、まずは床となる3Dモデルを読み込んで、それの頂点情報を読み込みます。
(ちなみに上方向がY軸として書きます)
各面(三角形)の頂点とそれに隣接する面の頂点情報を読込み、相互に参照できるようにします。
続いてプレイヤーのXZ座標から高さ(Y座標)を取得できるようにします。

まず、全床ポリゴンを探索して、どのポリゴンに乗っているかを探します。その後そのポリゴンの頂点情報から高さを計算、取得します。
プレイヤーが動けば乗っている床ポリゴンも変化するので、随時乗っているフレームを確認します。その際に隣接ポリゴンから調べると効率が良いです。

それをプレイヤーのY座標に適用することで、床を沿って動くプログラムの完成です。
ただ、それでは実用にならないので、自分の真下にある床ポリゴンのみを判定、重力をつけ、ジャンプできるようにすることで現在の形になりました。これさえ使えば複雑な地形もばっちりですね。

ホントはさらにナビゲーションデータの保存などを入れてプレイ時の処理を簡略化するのがまっとうな方法ですが、ツール系はどうも時間がかかりそうなので後回しにしてます。

とまぁ現在はこんなところです。明日からはさらに2F部分、B1部分も作っていきます。
ではでは。

テーマ: プログラミング

ジャンル: コンピュータ

go page top

 この記事に対するコメント 

go page top

 コメント投稿 
Secret

go page top

 トラックバック 
トラックバックURL
→http://frontiersman.blog61.fc2.com/tb.php/186-0825da8e
この記事にトラックバックする(FC2ブログユーザー)

go page top

上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。