ログイン | アカウントの作成
CONTACT | HOME | BBS | Wiki | Blog | Tools |


ブログトップページ

自分のブログページ

最近更新されたブログ
押し出しテキスト (d5)
Cube回転 (d5)
パッケージ配布サーバ (d5)
RTMP Client ビデオをアップロード (d5)
WOWEngine インストール (d5)
ビデオStreamの画像キャプチャ (d5)
2DオブジェクトをMatrix3Dで操作する (d5)
メモリを割り当てる (d5)
Eclipse 環境構築 (d5)
アプリケーション入門編 ① (d5)
インストール (d5)
DisplayObject3D の削除を考える (d5)
入門編⑨ Cube マテリアル MaterialList (d5)
メニュー画面の作成② (d5)
Painter初挑戦~ (d5)
川端康成の誕生日 2008/06/14 (d5)
欧州選手権2008 2008/06/07 (d5)
スペインの画家「Diego Velazquez」 2008/06/06 (d5)
世界初 熱気球 2008/06/04 (d5)
歴史上初のエベレスト登頂の日 2008/05/29 (d5)
レーザー光線の発明 2008/05/16 (d5)
メニュー画面の作成 (d5)
新しい家族 (d5)
かぎ編みハマりました。 (yucca)
産婦人科グッズと愛するポトスに・・・ (yucca)
カーレースゲームを作ってみる⑪ 微修正 (d5)
カーレースゲームを作ってみる⑩ いろいろ修正 (d5)
カーレースゲームを作ってみる⑨ ゴールを作成 (d5)
カーレースゲームを作ってみる⑧ カメラの切り替え (d5)
カーレースゲームを作ってみる④ マップの作成 (d5)
カーレースゲームを作ってみる⑦ テクスチャーリピート (d5)
カーレースゲームを作ってみる⑥ collision (壁) の作成 (d5)
カーレースゲームを作ってみる⑤ グリップの調整 (d5)
カーレースゲームを作ってみる④ マップの作成 ② (d5)
カーレースゲームを作ってみる③ (d5)
Supreme Commander リアルタイムストラテジー (d5)
カーレースゲームを作ってみる② (d5)
カーレースゲームを作ってみる① (d5)
入門編⑧ Collada + Phong Shader + テクスチャー (d5)
入門編⑦ テクスチャ付き Phong Shader (d5)
テキストエディタ ショートカット 語句ジャンプ (d5)
入門編⑤ ライトを作成してPhong Shader を使用する (d5)
入門編⑥ Phong Shader の種類 (d5)
入門編④ テクスチャー (d5)
入門編③ マテリアルの設定 (d5)
入門編② 板ポリを動かす (d5)
入門編① 3Dシーンの作成 (d5)
ダウンロードとインストール(クラスパスの設定) (d5)
インストールと準備 (d5)
インストーラーの入手とインストール (d5)
インストール後の確認 (d5)
トップページ / d5 / Papervision3D / カーレースゲームを作ってみる④ マップの作成

2008年 04月 29日

カーレースゲームを作ってみる④ マップの作成

Papervision3D からちょっとずれますが

マップの作成でマップは板ポリにテクスチャーを
張るだけの予定ですが面倒なので 3Dソフトで
道路を作成します。

今回は 3D Studio Max 9 を使用します。

コースの元となるシェイプを作成します。
「作成」→「シェイプ」→「ライン」
トップで ドラッグしながらコースを描いていきます。

blog/d5/3ds/マップの作成/max_top_view_spline.jpg

「修正」→「頂点」

blog/d5/3ds/マップの作成/max_edit_select_point.jpg

形を整えていきます。

blog/d5/3ds/マップの作成/max_top_view_spline_select_point.jpg

この時 blog/d5/3ds/マップの作成/max_move_icon.jpg 移動モードにして
頂点を修正します。


次に道路ポリゴンの元となる平面を作成します。
「作成」→「標準プリミティブ」→「平面」

平面が出来上がります。

blog/d5/3ds/マップの作成/max_plane_edit.jpg

長さセグメントを32くらいにしておきます。

次に道路のマテリアルを作成します。

「マテルアル エディタ」blog/d5/3ds/マップの作成/max_material_icon.jpg

拡散反射光カラーにビットマップを追加します。
blog/d5/3ds/マップの作成/max_bitmap_material_1.jpg

ビットマップを選択
blog/d5/3ds/マップの作成/max_bitmap_material_2.jpg
画像ファイルを選択。

「ビューポートにマップを表示」をONにしておかないとビューで反映されません。
blog/d5/3ds/マップの作成/max_bitmap_material_3.jpg


マテリアルをドラッグして先ほどの板ポリにドロップしてマテリアルを適応します。

次に板ポリをコースの形に変形させます。

平面を選択して「修正」→「モデファイヤリスト」→「パス変形」
「パスの選択」ボタンを押して先ほどのコース用のラインを選択します。

ストレッチの値を動かしていくと板ポリがコースの形になっていくことが分かります。

blog/d5/3ds/マップの作成/max_ストレッチ道路.jpg

よく見るとテクスチャーが伸びているので修正します。

blog/d5/3ds/マップの作成/max_テクスチャ伸び.jpg

先ほど設定したマテリアルのビットマップを修正します。

blog/d5/3ds/マップの作成/max_bitmap_material_4.jpg

タイリングのVをビューポートを見ながらいい感じになるまで設定します。

blog/d5/3ds/マップの作成/max_bitmap_material_5.jpg

伸びは修正されたようです。

blog/d5/3ds/マップの作成/max_テクスチャ伸び修正.jpg

あとはフォトショップで地面を作成

blog/d5/3ds/マップの作成/map_top.jpg

うーんなかなかひどいできじゃないですかー!?

plane にこのテクスチャーを貼り付けてみる。

blog/d5/pv3d/車が地面に潜り込んでします.jpg

地面より上に車があるはずなのにチラチラ地面に入り込んでしまいます~
DisplayObject3d.screenZ
あやしーとこのプロパティーをいじっても全然反映されませんー
いろいろ調べていると

org.papervision3d.core.geom.TriangleMesh3D
でscreenZの値をscreenDepthというパラメータに代入している部分を発見
この部分を強制的に遠くにあるFaceという感じに修正して対応する。

org.papervision3d.core.geom.TriangleMesh3D
124行目 辺りを
//負のIDは一番下にレンダリングされる
if(this.id < 0){
	rc.screenDepth = 1000000 - this.id;
}else{
	rc.screenDepth = iFace.screenZ;
}

に修正してidが負の場合はFaceは遠くにあるものと計算させて対応した。

new Plane()
をした後に id を負の数値にする
※idは何かわからずに勝手に使用しました。普通に addChild していくと
idは順に整数になるようなので 自動で負になることはないようでした。

ちらちら解決ー



左の方に行くと道があります。うーん・・

投稿者: d5      18 : 04
更新日:2008-05-10 22:37:33
  



「Papervision3D」のアーカイブ




CgInstitute のホーム   -    コンタクト   -    CgInstitute について   -    アカウントの作成