Meteor Alert eXcalation(略称MAX)とは、2001年6月25日にZTrain3Dを基本コンセプトにコードネームZTrain3DRとして開発が開始した3D Car Action Gameです。開発はtbn Project-x teamが行い2001年11月22日に東京理科大学の学園祭にてサークル展示という形で初公開されました。その時点ではネットワークランキング機能は無く、翌年の学園祭でネットワーク対応のMAXが公開され、2002年12月7日にVectorにて一般公開されました。
MAX世界はプログラム的にXWorldと呼ばれ、この世界での時間の最小単位はフレーム[f]。現実世界との関係は60f=1秒で現実世界との最も大きな違いは時間が連続的ではなく離散的であるということ。長さの基本単位はFloatメートル[fm]として1.0fm=1メートルとして表現される。質量の単位は存在しない。
XWorldには車,道,隕石というお互いの情報に干渉しあう3種類の物質と他の物質に干渉しない海、空、火花、ライト、水しぶき、ブースト炎が存在する。
XWorldには現実世界の重力加速度(G)に相当するものが存在し、その値はG = 0.01fm/f2です。空気抵抗は存在しません。反発と摩擦は現実世界とまったく異なる法則が適用され、物質によってその法則が異なります。
重力加速度にしたがい落下します。道と接触した場合、跳ね返り係数は0で道に吸い付きます。その際、車に摩擦に相当する減速が行われます。減速率は道と接触した瞬間の高さ方向のスピードにより決定され、スピードが0.01fm/f未満の場合は減速処理は行われません。スピードが0.01fm/f以上の場合
減速率(%)= スピード×30 という法則に従い摩擦が1フレームのみ発生します
車同士の接触の場合、車は接触した車から0.01fm離れる方向に移動し真上方向に0.16fm/f加速し右回りにラジアン表記で(現在のスピード)rad/f加速し、さらにお互いの持っているベクトルが交換されます。この世界における車同士の接触判定は半径1.0fmの球同士として行われます
隕石との接触の場合、車は隕石から0.03fm離れる方向に移動し真上方向に0.16fm/f加速し右回りにラジアン表記で(現在のスピード)rad/f加速し、車と隕石の持っているベクトルが交換されます。この世界における車と隕石の接触判定は車は半径1.0fmの球として行われます
隕石は完全な球の形をしており、半径は全て2.0fm、重力加速度にしたがい落下します。道と接触した場合、跳ね返り係数は0.2。その際、隕石に摩擦に相当する減速が行われます。減速率は道と接触した瞬間のスピードにはまったく影響されず常に1%減速します
隕石同士の接触の場合、お互い影響を受けず、めり込み、すり抜けます。
道は耐久値を持っており、耐久限界を超えると60フレーム間振動しその後、重力加速度にしたがい落下します。それまでは、海上19.0fmに浮いています。道の厚さは2.0fm、幅は32.0fm、奥行きは16.0fmです。耐久値は通常1000で道3つごとに耐久値が3000の道が存在します。
車の接触の場合、道自体は何の影響も受けません
隕石との接触の場合、道は隕石から(高さ方向のスピード)×500というダメージを受けます。このダメージ蓄積量が耐久値を超えると崩れ落ちます。extraモードではうけるダメージが3倍になります。
隕石の発生位置は道の中心より左右に+-24.0fmの間に均等に、上空107.0fmに発生します。奥行き方向の発生位置は非常に特殊な法則を持っており。プレイヤーの車の座標、速度の奥行き方向パラメータに影響されます。奥行き方向の発生位置のは車の奥行き方向相対で(車の速度)×138.5fm + 224.0fmの位置に発生します。
3.15fm x 2.4fm x 0.7fm
回転中心より -1.6fm ~ +1.55fm x -1.2fm ~ +1.2fm x 0.0fm ~ +0.7fm
マシンは以下の公式に従い加速を行われる
(速度) fm/f = (現在の速度) × 0.99 + 0.04
停止時にフルアクセルによる加速を行うと瞬間的に4Gの加速を行うことができる。
1秒間で1.8fm/fの加速が可能
ちなみにアクセルOFF時の減速率は1%である
上記の加速性のよりブーストを用いない場合の最高速度(x)が求められる
x[fm/f] = x × 0.99 + 0.4これより x = 4.0fm/fということがわかる
スピードメーターの表記はmfm/f(ミリフロートメートル パー フレーム)である。(1000.0mfm = 1.0fm)
フルブレーキ時 0.1fm/f2
つまり10Gの減速を行うことができる
最大旋回性能 0.01rad/f2
ジャンプ性能瞬間最大加速 0.3fm/f2 (30G)
これにより上記の物理法則を適応するとジャンプ後の着地時の減速は
減速率(%)= 0.3×30 = 9%
ブーストによる瞬間最大推進力は0.04fm/f2 (4G)
ブーストは発動すると50f間持続し、発動の瞬間に最大推進力で加速し1f毎に瞬間最大推進力の2%ずつ威力が落ちていく
1秒間で1.0fm/fの加速が可能
ブーストは一同発動させると、304f間使用不能になる。
停止時にフルアクセル&フルブーストを行うと8Gの推進力を得ることができる。
ハンドルのブレの大きさはマシンの速度により正比例する
+- 0.01 × (速度) [rad/f2]
地面接地時の横方向の摩擦は減速率で表され、晴れの時に50%、雨の時に10%減速する
プレイヤー及び敵のマシン性能はまったく同じである。
まず、ジャンプで飛び越しを行った際の隕石すり抜け条件について考察する
上記のマシンスペックよりマシンの通常ジャンプ時の到達最大高度(h[fm])はジャンプ初速をa[fm/f2]とすると
h = a ( a/G ) /2 = 4.5[fm]
隕石が地面の上で停止した場合、隕石の半径は2.0fmなので中心は道路上空2.0fmに存在する
また、上記の計算結果より車は4.5[fm]の高さまで到達可能なので、最適のタイミングで隕石を飛び越えた場合の隕石との高低差は
4.5 - 2.0 = 2.5[fm]
これは隕石の半径+車の接触判定半径である3.0fmより小さい。よって理論的に隕石をジャンプでは飛び越せないように思われる。しかし、XWorldにおける特徴の一つとして離散的な時間経過があるため。速度4.0fmで通常ジャンプ時の到達最大高度に達する瞬間が隕石の中心より手前に2.0fmの位置に車が存在したとすると隕石と車の中心間の距離の2乗は(4.5 - 2.0)2 × 2.02 = 10.25となり接触判定距離3.0fmの2乗である9.0より大きくなるため接触が起きない。その後1フレーム後は前方に4.0fm進んでいるので(4.5 - 2.0)2 × 2.02 = 10.25と同じ式が成り立ち接触判定をすり抜けることが可能である。
次に、地上高速走行時の隕石すり抜け条件について考察する
地上で隕石にすこしずつ近づいていった場合、隕石の中心から手前x[fm]で接触するとすると次の式が成り立つ
3.02 = x2 + 2.02 これよりx = 2.236[fm]となる
これより、速度がxの2倍である4.472[fm/f]以上の時に、隕石の手前 2.2360[fm]の位置に車が存在していればすり抜けることは可能である。<
しかし、上記の計算結果から分かるようにこのような条件が成り立つ確率は極めて低い。人間の空間認識力ではおそらく狙うことはできないであろう。
隕石の発生から道の上空11.0fmへ到達までの時間をt[f]とすると次の公式が成り立つ。
107.0fm - 11.0fm = Gt2/2 これより t = 138.564[f]が導き出せる。つまり、隕石はプレイヤーが等速で移動をした場合、前方224.0fm上空11.0fmに到達するように逆算された位置に生成されている。
初速度は左右に+-0.1fm/f、下方向に0 ~ 1.0fm/f、奥行き方向に+-0.5fm/fで生成されます。
では、実際に隕石が発生してから道に衝突する時間(t[f])を求めてみよう。隕石の初速をa[fm/f]とすると
107.0fm = at + Gt2/2 これより a = 0.0fm/fの時t = 146.287[f]、a = 1.0fm/fの時t = 62.480[f]が導き出せる。プレイヤーが等速で移動した場合の隕石の落下位置は
(隕石発生時の速度) × 138.5 + 224.0 - t × (隕石発生から落下までの平均速度)となる。マシンの最高速である4.0fm/fで走りつづけていたとすると
a = 0.0fm/fの時(最低初速時) 4.0×138.5 + 224.0 - 4.0 × 146.287 = 192.852fm
a = 0.5fm/fの時(平均初速時) 4.0×138.5 + 224.0 - 4.0 × 104.596 = 359.616fm
a = 1.0fm/fの時(最高初速時) 4.0×138.5 + 224.0 - 4.0 × 62.480 = 528.080fm
つまり隕石は192.852fm~528.080fmの間に落下することになる。XWorldにおいて道の存在は車の位置から相対+=384.0fmの範囲でしか存在しないためこの値から逆算するとa = 0.594fm/f以上の時(40.6%の確率で)隕石は道に落下することなく海に消えていくことになる。
これにより、マシンの速度によって道に落下する隕石の数が大きく変化することがわかった。
最後に隕石が直撃する条件について調べてみよう。直撃する条件式は以下のようになる
(隕石発生時の速度)×138.5 + 224.0 - t × (隕石発生から落下までの平均速度) = 0.0fm
この状況が起こる例をあげてみよう。発生した隕石が平均初速である0.5fm/fとする。隕石発生時、プレイヤーはスピンをして停止していたとする(隕石発生時の速度=0.0fm/f)。その後走り出し隕石と衝突するまでの間に速度を上げ(隕石発生から落下までの平均速度)が約2.0fm/fになったとすると
0.0 × 138.5 + 224.0 - 104.596 × 2.0 = -14.808fm プレイヤーの後方14.808fmというかなり近距離に落ちることになる。つまり、プレイヤーが停止してからの約2秒間の平均速度が2.0fm/fに近い時、隕石の直撃を食らう可能性が高いということが分かる。