はじめに
言わずと知れたRPGの金字塔、ドラゴンクエスト(ドラクエ)ですが、このRPGで使われる地図について、少なからず不思議に思っている人達がいるそうです。
ドラクエの世界地図っておかしくないですか? そもそも北極から南極にループしてるなんてありえないですから 実際この地球上では北極から北に行ったら南極ってありえないですよね
https://detail.chiebukuro.yahoo.co.jp/qa/question_detail/q10217160155
そもそもドラクエの地図がどんなものかは、こちらの検索結果を参考にしてください。
この疑問は、2年前にとある地理の先生から「ドラクエが何図法なのか解明してください」と言われたことがはじまりなのですが、そんなことを言われるまで、ドラクエの地図に疑問を持ったことはありませんでした。私はファミコン世代ですが、実家にドラクエありませんでしたし(当時はYs派だった)、同級生がドラクエに勤しんでいた頃にN88-BASICをやったりしていた身としては「限りある座標上では端にきたら条件分岐で値をそれ以上更新させないか、値を0もしくは最大値にする」というのがお決まりなので、そんな発想にいたらなかったのだと思います。
現実世界との矛盾を考えるとキリがありません。この記事は、関心のある、都合のよい部分を空想科学読本的に考察しています。
ネット上の見解
この疑問については、ネットで検索するとすでに結論が出ていて、「地球はドーナツ状」なのだそうです。ドーナツ状だから北の端の先に南があるというもの。
たしかに数学的に考えたらその通りなのでしょう。不覚にも一度納得してしまったのですが、地図を扱っている者としては、地球は球体として考えたいものです。
別の機会でドラクエの地図について考える機会がありました。そこではなぜ皆メルカトル図法から脱却できないのかと思うことがありました。ほとんどの人は「地図の上は北」「地図といえばメルカトル図法」という発想しか持たないから、地球の形を変えるという結論に至ったのかと。私はここに勝機があると考えました。
地図の端が同一地点だと考えればよい
メルカトル図法のような円筒図法は、地図の左右に限りシームレスに接合できるので違和感がありませんが、左右だけではなく、上下の端もシームレスに繋がると考えるなら、地図の端(=図郭)が同一地点となればよいわけです。
地図の端が同一地点となる地図投影法は、中学・高校の地理で習ったことがあります。そう、正距方位図法です。次の地図は、中心の場所が(東経150度・南緯30度)で、その真裏(西経30度・北緯30度)にあたる、対蹠点と呼ばれる場所が赤線です。地図上では外周線になっていますが、地球上では1点を示しています。この地図を正方形に引き伸ばせばよいと考えました。
中心の経緯度は、なんとなくドラクエ3の地図っぽい表現に近づける場所に設定しました。ドラクエⅠ・Ⅱ・Ⅲは「ロト3部作(ロトシリーズ)」と言って同じ世界観で作られているそうです。世界地図は若干変わっていますが、ドラクエⅡになって船が登場し、世界を巡ることができるようになりました。
最初は中世ヨーロッパの世界観なので、エルサレムを中心にした正距方位図法にしようかと思いましたが、ドラクエⅢの地図は太平洋を中心にしたっぽい表現になっているので(地図の中心にジパングという地名がある)、こちらに似せられるような表現を考えました。
ラバー シーティングによる変形
数式で解く前に、見た目としてそれっぽい地図を作ってみます。
ベクター データの幾何補正として、ラバー シーティングという機能があります。これはその名の通りゴムで引っ張るようにして図形を変形させる機能です。まずはこの機能で、外周線の円を正方形に引き伸ばします。位置を固定したいアンカーと、引き伸ばしたいリンクを設定し、実行します。
完成した地図がこちらです。それっぽい表現になりました。
海と陸だけで表現するとファンタジー感がありますが、緯線と経線を加えると一気に現実っぽくなりました。
私はこれを羽田図法(第2図法)と名付けました(第1図法は別にある)。名付けたものの、通称ドラクエ図法の方がなじみやすいでしょう。
問題点
地球がドーナツ形状であれば、「地図上の右に進み続けること=地球上をまっすぐ進むこと=真東に進み続けること」と一致しますが、地球が球体だと、「地図上の右にまっすぐ進むこと≠地球上をまっすぐすすむこと」となり、等しくありません。
正距方位図法は、地図の中心から放射状に進む限り、地球上をまっすぐ進むことことと一致します。そのため、上記の図で真上・真下・真右・真左に進むことは、地球上を直進することとは一致しませんし、地図の端の反対側にワープした場所も、対角線上になってしまいます。しかし、ドラクエでは上下左右の4方向にしか進めないので、そもそもまっすぐに進んでなかったモノとして考えてください。あるいは、対蹠点を超えた瞬間に別の方向を向いていると考えてください。
ドラクエ図法の計算式を考える
次に、正距方位図法を参考に、計算式でこのドラクエ図法を求めてみます。
正距方位図法の計算式
まずは正距方位図法の計算方法です。これは計算式やコードを載せてくれているサイトがあったのですぐに導き出せました。
- Azimuthal Equidistant Projection
- Formulas in Azimuthal Equidistant Projection
- Azimuthal equidistant projection: An implementation in F#, Python and Julia
radius = 6378137.0 #地球半径
center = [139.7413574722, 35.6580992222] # 地図の中心XY(日本経緯度原点)
t = math.radians(lat)
l = math.radians(lon)
t1 = math.radians(center[1]) #中心の緯度
l0 = math.radians(center[0]) #中心の経度
c = math.acos(math.sin(t1) * math.sin(t) + math.cos(t1) * math.cos(t) * math.cos((l-l0)))
k = c / math.sin(c) * radius
x = k * math.cos(t) * math.sin(l-l0)
y = k * (math.cos(t1) * math.sin(t) - math.sin(t1) * math.cos(t) * math.cos(l-l0))
# 参考
# http://www.samuelbosch.com/2014/02/azimuthal-equidistant-projection.html
計算式(未解決)
正距方位図法の計算式を基に、ラバー シーティングで行った処理は機械的に処理できるはずと考えましたが、数学ができない私にとっては難解で2023年の正月休み内に実現させることはできず、時間切れとなりました。
次の図は失敗作。正距方位図法で求めた座標を正方形に拡大すればよいと考えましたが、円からシームレスに正方形に変形するための計算ができず、角が極端に曲がってしまっています。
まとめ
ドラクエの地図の疑問に一席を投じてみました。もっと特殊な図法が出てくるのかと思ったら、意外と中学・高校で習った内容の応用で解決できました。あとは数式を導くことが課題ですが、数学に詳しい人に聞いてみます。
ドラクエⅢの表紙絵の背景には緯線・経線らしき線が直交して描かれています。絵の作者や監修者がそこまで地図のことを深く考えていたのかはわからないですが、世界図が円筒図法なのだとすると、やはり地球はドーナツ状7日もしれません。あくまで科学的っぽく考えた空想の話と思って理解してください。
もしくは、中世ヨーロッパの世界観を考えると、世界は平らであり、端にたどり着くと強制的にルーラで地図の反対側に飛ばされているのかもしれません。