プロフィール

Na-7

Author:Na-7
SE(システムエンジニア)として約15年間システム系ソフト会社を勤めあげ、2008年3月退社。現在、ゲーム制作会社設立を目指して活動中。


アクセスカウンター


最新記事


最新コメント


最新トラックバック


月別アーカイブ


カテゴリ


DATE: CATEGORY:スポンサー広告
上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。
DATE: CATEGORY:三国志軍記開発
HeightmapCollisionテクスチャ差し替え
HeightmapCollision画像差し替え
グレースケールマップと地表テクスチャを差し替えた画面。従来の画面とは大分印象が違う。


◎間違いでした!

前々回の記事で「サンプルがエラーになる原因は2のn乗の問題」と書きましたが、これは間違いでした。ごめんなさい。
新たに発覚した事実も加えて整理すると、

[HeightmapCollisionでの画像サイズ]
・257*257はエラーになる
・256*256はエラーにならない
・512*512はエラーになる
・255*255はエラーにならない

つまり、今回のエラー(This device does not support 32-bit indices.…)と2のn乗の問題は別モノで、正しくは「グラボのインデックスリスト機能が16bitだから」です。
お騒がせしてすみませんでした。



◎補足

誤解が無いよう補足しておくと、このエラーとは別に2のn乗の問題は実在します。

[通常のプログラムでの画像サイズ]
・256*256はビルドエラーにならない
・255*255はビルドエラーになる
・512*512はビルドエラーにならない
・511*511はビルドエラーになる

通常のプログラムとは、HeightmapCollisionのようなコンテンツパイプラインを使用せずに、単純にContent.Loadで読み込む方法です。
この場合2のn乗を守らないとビルドエラーになりますが、ビルドエラーと今回のエラーを混同してしまいました。



◎サンプルを組み込む前に

いきなり訂正から始まりましたが、そろそろ本題に入ります。

HeightmapCollisionは、グレースケール画像の色を取得して地形モデルと高さ配列を生成するサンプルプログラムです。
画像を差し替えると、地形や配列も画像に合わせて生成されるよう汎用的に設計されています。

しかし、今回はメインプログラムで既に地形を作成済なので、地形生成部を削って配列生成部のみメインプログラムに組み込むつもりでした。
「高さだけ取得できればいいや」と考えていたのです。



◎地表のテクスチャ

しかしHeightmapCollisionのテクスチャ差し替え画面(冒頭参照)を見て、いろいろ考えさせられました。

まず、地表にテクスチャを貼っただけで、従来の三国志軍記のマップ画面とまるで印象が変わること。以前はのっぺりして古臭い印象でしたが、この画面は繊細でリアルな印象を受けます。

私はマップ上に森や荒地等の地形を追加していけば徐々に綺麗になるだろうと思ってあまり気にしていませんでしたが、先に地表全体にテクスチャを貼った方が良さそうです。



◎川や道のテクスチャ

しかしその場合、川や道などのテクスチャはどうしたら良いのでしょうか?地表テクスチャは同じパターンをマップ全体に均等配置していますが、川や道は、マップ全体を1枚で覆うように配置しています。

A案:マップ全体を1枚で覆うように地表テクスチャを配置
   →画像が粗すぎて見た目が悪くなる

B案:川や道のテクスチャも均等配置
   →おかしな画面になる

C案:地表テクスチャの上に川や道のテクスチャを重ねる
   →完成状態を想像すると、地表だけ繊細なのに
    川や道はのっぺりして違和感がある

D案:地形モデルの上に川や道のモデルを作って重ねる
   →川や道のモデルに繊細なテクスチャを均等配置
    すると、地表と似た感じになる?

D案で想像通りの画面になるか分かりませんが、とにかく試してみましょう。



◎サンプル組み込み

とりあえず地形モデルごと差し替えることにしたので、サンプルをそのまま取り込みます。下手に削るより楽チンです。

…で、実際に取り込んで動かすと「ContentTypeReaderが見付からない」とエラーになりました。

何かの設定ミスだろうと思って設定周りを調べたのですが、どこを調べても異常無し。結局原因は「コンテンツパイプラインの一部を書き換える必要がある」でしたが、それに気付くのに丸1日かかってしまいました(^^;

というわけで、地形をモデルごと差し替えた画面です。

地形差し替え直後

あれ?期待してたほどではないような…?地表のパターンが露骨するぎるし、山は以前の方が色も形も良いですね~。
まぁ、それでも地表は今回の方が良さげなので、テクスチャやfog設定などあちこち手直ししてみましょう。



◎次回予告

お陰様でマップの高さは無事取得できるようになりました。高さ取得シリーズは今回で終わりにします。
(GetHeight()で複数の座標を指定したら異なる値が返ってきました)

今後は細部を手直しして、座標系を合わせて、川や道を復活させて、城の位置を修正して…やることが一気に増えました(笑)

スポンサーサイト

テーマ : ゲーム製作 関連 - ジャンル : ゲーム

コメント

コメントの投稿


管理者にだけ表示を許可する

トラックバック


この記事にトラックバックする(FC2ブログユーザー)



copyright © ゲーム制作の舞台裏 all rights reserved.Powered by FC2ブログ
上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。