プロフィール

Na-7

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


アクセスカウンター


最新記事


最新コメント


最新トラックバック


月別アーカイブ


カテゴリ


DATE: CATEGORY:スポンサー広告
上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。
DATE: CATEGORY:三国志軍記開発
自作地形23
開発中の自作地形
複合パターンの対処が完了し、川や道の輪郭が滑らかになって、かなり綺麗になった。



◎追加登録方式に向けた環境整備

「全パターンのテクスチャ登録はしない」と決めました。パターンテクスチャは、必要に応じて追加登録します。

というわけで、今回最初に行ったのは、追加登録しやすいように環境を整備することです。

具体的には、パターン作成プログラムを改修してテクスチャのファイル名を4次元配列に合わせたり、メインプログラムを改修してテクスチャの存否を確認し、在れば登録、無ければ赤いテクスチャを貼る、といった具合です。



◎川と道のパターン登録

前回、地表と川、地表と道のパターンテクスチャを登録しましたが、まだ赤い地形が沢山あります。いろいろ考えましたが、川と道のパターンは頻度が多いので素直に登録することにしました。

自作地形20

赤い箇所が半分ぐらい減りました。残りの赤い箇所は、地表、川、道が3種類複合している所です。



◎複合パターンの対処

3種類以上複合したパターンを作成して登録することは可能ですが、無条件に登録していくと凄い数になってしまいます。
そこで私が考えたのは「似ているテクスチャで代用する」という方法です。

問題は、似ているテクスチャを選択するロジックですが…登録済のパターンテクスチャの中から最も似たものを選択するのが理想ですよね?

作成前は難しそうに感じましたが、いざ作るとコードは意外とシンプルにまとまりました。その理由を解説すると長くなりそうなので省略しますが、リクエストがあれば解説します。

自作地形21

おお…とりあえず、赤い箇所が無くなりましたね。果たして複合パターンがうまく選択されているか、ですが…確認の前に、2つやることがあります。



◎地形作成速度向上

地形作成部分のコードは、以前のロジックをベースに改修したものなので、かなり冗長なものになっています。具体的には、インデックスデータ作成時に4次元配列ループの中で毎回パターン判定を行っているのですが、これを改善します。

頂点データ作成時にパターン判定を行い、パターン番号を頂点データにセットしておきます。インデックス作成時はその番号を参照してパターン判定を行い、パターン判定速度を向上させました。

これにより、実行開始してから画面標示されるまで、15秒かかっていたのが3秒になりました!「任意ポリゴンのテクスチャ差し替え」も、13秒かかっていたのが2秒になりました!

これで課題ひとつクリアですね!



◎パターン判定の見直し

次に、複合パターン以前の問題として、2種類のパターンの選択がおかしいようなので、そちらの修正を図りました。

しかしパターン判定ロジックをいろいろ変えても、うまくいきません。原因が解らず首を捻っていましたが、以下の画面を見てようやくヒントを掴みました。

textureCoordinateScale

画面中央下の赤い四角形で囲んだテクスチャを見ると、1枚のテクスチャサイズがわかります。ところが、赤い四角形の左側を見ると、かなり細かい模様が表示されています。パターンテクスチャはまだ描き込んでいないので、こんな細かい模様はありません。
自分のプログラムなんですけど、「どうやったらこんな表示が可能なんだ?」としばらく悩んでしまいましたよ(笑)

何故このような表示になったのか、画面を見ただけで推測できた人はいますか?一目で見破ることが出来たら、かなりのXNA経験者だと思います。
  ・
  ・
  ・
答えは「頂点の位置とテクスチャ座標がずれているから」です。
頂点は、赤い四角形1つの中に数十個存在します。
パターンテクスチャは頂点単位に変更しているので、左側のような細かい模様が表示されているわけです。



◎綺麗になった!

というわけで、頂点座標とテクスチャ座標を一致させました。

自作地形22

おお、やった!ついに綺麗になりましたね~!!!
いつかこうなると信じて頑張った甲斐がありましたよ!!

ざっと見た限りでは、2種類のパターンも複合パターンもうまく選択されているようです。でも、地表はテクスチャサイズが細かすぎてマス目がバレバレですね。これはこれでアリかもしれませんが、とりあえず地表は以前の状態に戻しておきましょう。(冒頭図参照)



◎次回予告

前回掲げた課題のうち、

・赤い地形(複合パターン)の対処
・地形作成速度向上
・パターン判定の見直し

上記3つが完了しました。今回はかなり進みましたね~!

次回は新たな課題に取り組みます。

スポンサーサイト

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

コメント

コメントの投稿


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

トラックバック


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



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