開発中のメイン画面試験的に侵入不可チェックを実装し、川には侵入不可となった。最終的には地形種別毎に移動コストを加算し、部隊の移動速度に反映させる予定。
◎地形種別の取得今回は地形種別を取得し、データ検証を兼ねて侵入不可チェックを実装します。
カラーマップ画像の色情報(地形種別情報)を取得するコンテントパイプラインは作成済なので、これをメインプログラムに組み込み、HeightMapInfoと同様に改修します。
次に、カラーマップの解像度やスケールを252で調整し、座標を指定すると地形種別情報を返すようにします。試しに幾つかの座標を指定すると、それらしい地形種別番号が返ってきました。
これで地形種別の取得は完了です。
◎侵入不可チェック最終的にはA地点からB地点までの最短ルートを判定できるようにしたいのですが、今回はその前段階として侵入不可チェックを行います。
一番シンプルな方法は、移動先の座標のみチェックするという方法です。但しこの方法には2つの欠点があります。
1つは、移動量が2マスを超える場合、間に侵入不可地形が存在していたとしても無視される、という問題です。しかし今回のゲームスケールでは、1ゲーム時間で2マス以上移動するユニットは存在しないので、この問題は無視します。
もう1つは、斜めに配置された侵入不可地形(川など)に対角線状に侵入すると、越えることができる、という問題です。

この問題を解決するため、斜めに移動する場合は縦横の隣接マスも同時にチェックします。
◎フィールド散策移動先が侵入不可の場合、向きを変えるようにして実行すると、予定外の所で向きが変更されました。うーむ。
…原因調査でしばらくハマってしまいましたが、どうやら移動プログラムがおかしかったようです。いきなり川沿いに移動させるのは無謀だったかな?
とりあえず1ユニットをパッド操作で8方向に動かすようにして、フィールドを散策し、ユニットの周囲の地形を確認しました。

ユニットの周囲の地形と地形種別番号が合いません。データがおかしいのかと思ってテキストに出力しマップと比較すると、データとマップは一致しました。
では何故見た目と合わないのか調べたら、現在表示しているマップテクスチャがズレてました。メタセコイアで地形を再作成した際に、テクスチャを絶対パスで指定してしまい、昔の正射影画像が表示されていたのです。…もっと早く気付くべきですね(爆)
◎はみ出しモデルテクスチャ画像を最新版に戻したら、テクスチャの境界線が出現してしまいました。とりあえずその問題は後回しにして、フィールド散策を続行すると、少しだけずれてる感じ。カラーマップの解像度を253で調整すると、ピタリ一致しました。
しかしまた新たな問題発生。部隊ユニットの中央の騎馬は川に侵入しなくなったのですが、その周囲の騎馬は川にはみ出してしまいます。

最終的には、橋を渡る際は縦陣で一騎ずつしか渡れないようにするつもりですが、それ以外の陣系で袋小路に侵入した場合の処理も考える必要があります。移動処理を本格的に作る際に実装する予定です。
◎川沿いに南下侵入不可チェックが可能となったので、再度川沿い南下プログラムにチャレンジします。
…今度はうまくいったようです。しかしこのマップは川が多すぎて必ず袋小路でつっかえてしまうので、デモとしては面白くないですね。1つ気になるのは、道沿いに斜めに突っ切ってくれないケースがあることです。何故かなぁ?
…仕様上の問題でした。川と道がクロスになる場合、川が斜めに存在するので侵入不可と判定されてしまうのです。
移動元と移動先が道の場合、優先的に移動可能としました。これで道がある場合はちゃんと通るようになりました(冒頭図参照)。
◎次回予告地形種別の取得は無事完了し、試験的な侵入不可チェックが成功しました。地形関連は一段落ですね。
次回は城モデルの画像取得/表示です。
テーマ : ゲーム製作 関連 - ジャンル : ゲーム
コメントの投稿