SSブログ

六角形 [HEX]

何年か前に、ウォー・シミュレーションゲームに興味をもったことがある。当時は、作ったものを動かす環境に適当なものが見つからず挫折してしまったのだけど、最近になっていろいろと面白そうなものが見つかったおかげで興味が再燃してしまった。

ゲームといっても、シナリオやデザイン、アニメーションについては門外漢なので、純粋に実装に関わるアルゴリズム限定で考察していきたいと思う。

まず手始めに、フィールドの形状から。ここでは、タイトルの通りヘックス(六角形)のセルを並べたヘックスマップで進めて行くことにする。スクエアのセルよりもヘックスのセルの方がウォー・シミュレーションっぽいかなぁという、とんでもなくいい加減な理由からだったりする。

ヘックスマップを採用すると決めるところまでは簡単なのだけど、いきなりハードルが表れてしまう。市販のゲームで遊ぶだけならいいのだけれど、自作するとなるとマップも自作しなければならない。ただ、汎用のヘックスマップエディタのようなものの存在をあてにはできないので、なんとか手持ちのもので代用してしまいたい。エディタ作っても、あまり面白そうじゃないので、そこは考えないことにする。

私の場合、「GUIを使って編集」とか「汎用の...」といったキーワードが出てくると、思考が殆ど Excel 一択になってしまう。一応、要件としては...

  • ヘックスマップを表示できること
    六角形のセルをイメージだけで検討するのはつらい。中身は大したことがなくても、見た目がなんとかなれば、かなりの成果が出るものと考える。
  • 作成したデータを取り出せること
    作ったデータを見てるだけじゃ意味がない。オンラインでもオフラインでも構わないので、出来上がったデータの幾何情報以外の情報を取り出したい。
  • 印刷できること
    紙にすることにはこだわらないのだけど、手書きでメモをつけられるようにしたい。OneNote あたりと連携してもいいかもしれない。

ただ、すべてを盛り込もうとすると、どうしても無理が出てくるような気がする。大勢に影響のないところは譲歩してしまってもいいだろう。

  • 正確な描画は期待しない
    Excel はあくまでもスプレッドシートなので、ここにきれいなイメージを貼るようなことは考えないでおく。また、六角形にもこだわらないことにする。

本当は地形の違いを色分けできたらいいとも思うのだけれど、シェイプを使うようなアプローチをとるとセルに情報を埋めにくくなってしまいそうなので、とりあえず我慢。

どんな感じになるか、試しに作ってみたのがコレ。Hexmap01.png

Excel 方眼紙(正式名称ではないよね)を作った上で、罫線だけで作図してみた。セルのサイズを変えてしまうと形状が崩れてしまうという難点はあるものの、意外なほど簡単にできる。既にマクロにしてしまってるし。

また、上述の通り正六角形にはなっていない(計算では斜めの線が横線より 1 割程度長くなる)けど、気にしないことにした。実は、そのおかげで六角形のレンダリングに必要になる頂点座標を求める工程がすべて簡単な整数演算で済むようになるというメリットが生まれるから。

 このヘックスマップを構築するマクロ、ブログを更新しながら作ってたわけじゃない...って、そりゃそうだよね。数日前に完成していたものなんだけど、ちょっとした落とし穴がある。そして、その落とし穴にはまったのが自分自身だという情けないオチまでついている。

オチについては追々紹介することになると思う。ウォー・シミュレーションには欠かせない機能に関わるものなのでね。

ということで、今日の更新はココまで。次回は、このヘックスマップをプログラムからどう扱うかを考察してみたい。


nice!(0)  コメント(0)  トラックバック(0) 
共通テーマ:パソコン・インターネット

nice! 0

コメント 0

コメントを書く

お名前:
URL:
コメント:
画像認証:
下の画像に表示されている文字を入力してください。

トラックバック 0

ただいま開発中座標系 ブログトップ

この広告は前回の更新から一定期間経過したブログに表示されています。更新すると自動で解除されます。