DOOMでの長さ
DOOMでは、長さの単位として、MapUnitという単位を使っていますが、
DOOMをプレイしているときに、「1mってどのくらいだろう」と思ったことはありませんか?
ずっと前から私は疑問に思っていました。
今回は2つの視点からDOOMの世界の長さについて考えてみましょう。
注意:すべてGZDOOMで調査しました。
このページで取り扱う内容
調査その1 | Playerの身体情報で長さを考える。 | |
調査その2 | 自由落下運動を利用して長さを求める。 | |
結論 | 結論です。 |
調査その1:Playerの身体情報で長さを考える。
DOOMでの長さを考えるときに、私はまずこのことを考えました。
まず、Playerの身体情報を見てみましょう。
- | MapUnit |
Playerの身長 | 56 |
Playerの横幅 | 32 |
- | MapUnit / 秒 |
Playerの歩く速さ | 約270 |
Playerの走る速さ | 約560 |
↑(※)速さは実際に計りました。正確な値ではありません。
こうやってみると、「32MapUnit = 1 m」が一番しっくりしそうな気がします。
32MapUnit = 1 mだと、
- | メートル |
Playerの身長 | 1.75 |
Playerの横幅 | 1 |
- | メートル / 秒 |
Playerの歩く速さ | 約8.4 |
Playerの走る速さ | 約17.5 |
身長はぴったりなのですが、横幅が不自然ですよね。しかも走る速さがあり得ない速さになりますね・・・
これはどれを自然に合わせようとしても不釣り合いなのがわかります。
どうやらこの方法では長さは統一できないようです。
無理矢理合わせるとしたら、速さは無視して、
「鉛直方向:32 MapUnit = 1 m かつ 水平方向:48 MapUnit = 1 m」
が現実的なのではないでしょうか。
調査その2:自由落下運動を利用して長さを求める。
次に、高さhから物体を自由落下運動地面まで落ちるのに必要な時間を計測しました。
どんな物体であっても、高さhが同じであれば、必要な時間が同じだったため、空気抵抗はないと考えます。
高さhの値を色々と変えてみると、次の様な結果になりました。(※注意:1秒=35tic)
h(MapUnit) | 時間(tic) | h(MapUnit) | 時間(tic) |
800 | 40 | 128 | 16 |
3200 | 80 | 512 | 32 |
12800 | 160 | 2048 | 64 |
これらの結果を基に、「1(MapUnit) = k (m)」かつ重力加速度がg (m/s^2)であるとすると、
h = 1/2 * g * t^2
より、
k = g / (25 * 49) (m / MapUnit)
になります。
g = 9.8 (m/s^2)
とすると、
k = 0.008 (m / MapUnit)
となり、「1(MapUnit) = 0.008 (m)」すなわち「1 (m) = 125 (MapUnit)」となりました。調査1の結果の約4倍の大きさです(^_^;)
(個人的には1秒が何故7の倍数を含む35ticなのかという理由がわかった気がします。)
ちなみに、「1 (m) = 32 (MapUnit)」すなわち、
k = 0.03125 (= 1/32) (m / MapUnit)
だと仮定すると、
g = 38.28125 (m/s^2)
になります。これはもう地球や火星ではありませんね(^_^;)
これらのことより、「1 (m) = 125 (MapUnit)」だと思われます。
この結果を用いてPlayerの身体情報を計算してみました。
- | MapUnit | メートル |
Playerの身長 | 56 | 0.448 |
Playerの横幅 | 32 | 0.256 |
- | MapUnit / 秒 | メートル / 秒 |
Playerの歩く速さ | 約270 | 約2.16 |
Playerの走る速さ | 約560 | 約4.48 |
Playerの身長・横幅は小さすぎる値になってしまいましたが、速さは現実的な値になりました。
Playerの身体情報を基準にすると
「鉛直方向:32 MapUnit = 1 m かつ 水平方向:48 MapUnit = 1 m」
重力加速度を9.8 (m/s^2)とすると、
「1 (m) = 125 (MapUnit)」
という結果になりました。つまり、DOOMの世界での長さは現実世界には適応できないことがわかりました。(それをする必要はありませんが・・・)