プロフィール

Na-7

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


アクセスカウンター


最新記事


最新コメント


最新トラックバック


月別アーカイブ


カテゴリ


DATE: CATEGORY:スポンサー広告
上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。
DATE: CATEGORY:三国志軍記開発
マップイメージ再取得01
開発中のメイン画面
マップの端の方に行くと、拠点や部隊の位置がズレて街道から外れていたが、ようやく修正されたようだ。



◎左右の調整

前回の続きです。

上下がピタリ一致するよう調整したのに、なぜマップ座標とテクスチャがズレるのか?

原因を調査すると、実は最初から左右もズレていたことがわかったので、左右も調整しました。

private void setProjection(int getPictureNumber)
{
  // 正射影(4×4バージョン)
  this.projection = Matrix.CreateOrthographicOffCenter(
    // -4064~1960, // 左
    ((int)(getPictureNumber % 4) - 2) * 2008 - 48, // 左
    // -2023~4001, // 右
    ((int)(getPictureNumber % 4) - 1) * 2008 - 15, // 右
    // -200~4225, // 下
    ((int)((15 - getPictureNumber) / 4) - 2) * 1475 + 2745, // 下
    // 1275~5700, // 上
    ((int)((15 - getPictureNumber) / 4) - 1) * 1475 + 2750, // 上
    1f, // 近クリップ平面
    10000.0f // 遠クリップ平面
  );
}


調整後は、上記のようになりました。何故こんな中途半端な数値がピタリ一致するのか理解できません(汗)


しかし、これで取得したテクスチャを適用しても、ズレは直りませんでした。グハッ!



◎謎はすべて解けた!

新しいテクスチャと地形種別マップを比較すると、右端と下端が少し欠けてました。

…ああ、そういうことか!

地形種別マップのテクスチャ解像度は256×256ですが、地形種別モデル(XNA生成モデル)作成時に有効な頂点は254×254(セルは253×253)だったのです。
(端の面法線算出を省くため)

そんなわけで、地形種別モデルの大きさは右端と下端が3ピクセル分欠けていたのですが、これを1024×1024×16枚のテクスチャにピタリ一致させて取得すると、メインマップモデル(メタセコモデル:256×256)に張り付けた際に、歪んでしまうわけです。

…数年前から先送りしてきた問題が、ようやく解けました!



◎修正方針検討

テクスチャと座標のズレを修正する方法を検討します。

A案:メインマップの座標系を253×253として修正する

B案:右端と下端が欠けたテクスチャを取得する

最初は、メインマップモデルの隅々まで利用できるA案の方が理想的ではないかと考えました。

でもヘイト(高さ)マップは256×256。A案は高度とテクスチャがズレてしまうので、B案とします。



◎テクスチャ再取得

最終的に、以下のように調整しました。
(相変わらず中途半端な数値が謎w)

private void setProjection(int getPictureNumber)
{
  // 正射影(4×4バージョン)
  this.projection = Matrix.CreateOrthographicOffCenter(
    // -4064~2056, // 左
    ((int)(getPictureNumber % 4) - 2) * 2040 + 16, // 左
    // -2024~4096, // 右
    ((int)(getPictureNumber % 4) - 1) * 2040 + 16, // 右
    // -276~4206, // 下
    ((int)((15 - getPictureNumber) / 4) - 2) * 1494 + 2712, // 下
    // 1218~5700, // 上
    ((int)((15 - getPictureNumber) / 4) - 1) * 1494 + 2712, // 上
    1f, // 近クリップ平面
    10000.0f // 遠クリップ平面
  );
}


MainMap015

上図は、メインマップの一番右下のテクスチャです。

右端と下端の黒い領域は(プレイヤーが意識しないよう)透明に設定してあります。



◎適用

メインマップに適用します。

マップイメージ再取得01   マップイメージ再取得02

拠点や部隊の位置ズレが直りました!

部隊が常に道の真ん中を歩くようになったので、とても気持ちいいです^^



◎次回予告

(高さ/地形種別/配置/移動など)何をやってもズレて見えるので、「本当にコレでいいのか?」と常に不安を抱えていたのですが、ようやく解決しました(笑)

数年がかりの問題がフィックスした所で、次回から戦闘処理を作成します。

スポンサーサイト

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

コメント

コメントの投稿


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

トラックバック


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



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