2019年10月14日月曜日

【ゲーム】simutrans 自作マップ 高度についてバージョンと設定値での違い

先日simutransの自作マップでの、マップの色と高さの関係を書きました。
【ゲーム】simutrans 自作マップ
そこに、結論じみた形で高さとクレースケールの表を書いたのですが、どうもそれだけではなくて、simutransのバージョンや設定で違いがある事がわかりました。のでそれを書きます。

まずバージョンによって違います。すべてのバージョンで確認したわけではないのですが、
  simutrans 102.2.1
  simutrans 120.4.1 <現時点での最新
少なくとも上記2バージョンで違いがあるです。
先日書いたのは、simutrans 120.4.1での値になります。

そこでいろいろ試してみようと思ったのですが、よく考えたらsimutransはソースが公開されてます、そうです、シムトランスはsourceが公開されているんです。なのでソースコードを確認してみる事にしました、source codeはSVNで管理されているようで、GitHubでも公開されています。(SVNとGitHubどっちが本流本元なのかな、たぶんSVNのような感じです。)

確認したのは下記2バージョンです。
・simutrans 102.2.1
 https://github.com/sanna/simutrans
 /simworld.cc : karte_t::get_height_data_from_file()
 設定による違いは無いです。ので1つです。

・simutrans 120.4.1
 https://github.com/aburch/simutrans/tree/master/simutrans
 /dataobj/height_map_loader.h : rgb_to_height()
 設定により違います。
 [height_map_conversion_version_new ON/OFF]
 [pak_height_conversion_factor == 2 / != 2]
 4通りあります。

この5つの違いを確認すべく、確認プログラムを作ってそれぞれ0~255の結果をテキストで出力しました。結果はテキストファイルとして公開しますね。公開結果テキストはココです(ついでに確認プログラムのソースも公開しておきます。単にsimutransのソースと同じ計算してprintf()してるだけですが。)あ、値はなぜかsimutransのゲーム画面で表示されるものより1少なかったりしますがたぶん後の処理で表示は+1されるんでしょということで気にしない方向で(笑い)  まあ、区切りがわかればいいという程度で。

簡単に結論を書くと

・simutrans 102.2.1は、11区切りか10区切り。
 0~10が-14、11~21が-13、22~31が-12、、、235~245が8、246~255が9
 (区切りとはこんな感じですので、以下は値範囲の具体的な記述を省略します。
  詳しくは結果テキストをご覧ください。)

・simutrans 120.4.1は、
 [height_map_conversion_version_new ON/OFF](以下verと呼びます)と
 [pak_height_conversion_factor == 2 / != 2](以下convと呼びます)の設定で変わります。
 ver OFF  conv == 2 :5区切りか6区切り。
 ver OFF  conv != 2  :11区切りか10区切りで、simutrans 102.2.1と同じ。
 ver ON   conv == 2 :4区切りで、252~255が29(ゲームでは高さ30になります)
 ver ON   conv != 2  :8区切りで、【ゲーム】simutrans 自作マップ で書いたのはこれ。

となりました。

ver ON   conv == 2で高さ30まで表現できるのはいいなぁと思いますた。
height_conversion_factorの設定を2にして海-20 高さ30まで表現可能
height_conversion_factorの設定を2にして海-20 高さ30まで表現可能


0 件のコメント:

コメントを投稿