RPGツクールと数学のブログ

RPGツクールと数学についてのブログです。

ジャンプに掛かる時間

過去ブログの転載です。

4, 8, 11, 16, 22, 32

この謎の数列はドラマLOSTに登場する謎の数列に似ていますが、全く関係ありません。これはRPGツクール200Xにおけるキャラクターのジャンプに掛かる時間です。LOSTのは「4, 8, 15, 16, 23, 42」なので、あまりに似てて運命的なものを感じてしまいます。

具体的には、こういうことになります。

移動速度 掛かる時間[F]
4倍速 4
2倍速 8
標準速 11
1/2倍速 16
1/4倍速 22
1/8倍速 32

[F]とはフレームの略です。60[F]=1[秒]です。例えば移動速度が1/2倍速のときにジャンプをすると、歩数に関係なく16フレーム、すなわち16/60秒掛かることになります。

キャラクターの移動時間については他はすべて計算で求まるのですが、ジャンプに掛かる時間だけは移動速度から計算で求められず、依然として謎のままとなっていました。規則がありそうでないこの数列。どう考えても標準速と1/4倍速が外れ値です。色んな曲線に当てはめましたが、どうやってもうまくいきません。

PCゲームのTAS制作によく用いられるHourglassというソフトを用いるとコマ送りでゲームを進行できるので、それを用いてジャンプについて詳しく記録してみることにしました。

例えば以下は標準速のときのキャラクター画像の動きの表です。

ジャンプ開始からの時間[F] 動いたキャラ画像[dot]
1 6
2 10
3 13
4 15
5 16
6 16
7 15
8 12
9 9
10 4
11 0

地面を0dotとして、それから上に何ドット動いたかを記録しました。
11F経ったら地面に着地しているので、11F掛かることが分かります。

この表を確認すると、何か違和感があります。ジャンプは基本放物線の動きをしており、現に2倍速とか4倍速とかの場合はジャンプ頂点を軸としてきれいな放物線を描くようになっているのですが、↑この表の場合は頂点に行くまでのときと、頂点から落ちるときとで画像の位置が若干ずれていることが分かります。

これは、整数ではジャンプ頂点を軸に対称になっていないことを意味します。

実際に対称になっている4倍速、2倍速、1/2倍速、1/8倍速について、予想されるジャンプの関数を提示します。以下は実験をもとに推測したものです。

Aパターン

No. 移動速度 推測された関数(x:時間[F] y:位置[dot]) ジャンプに掛かる時間[F]
1 4倍速

{ \displaystyle y=\left\lceil 16-4(x-2)^{2}\right\rceil}

{ \displaystyle 4}
2 2倍速 { \displaystyle y=\left\lceil 16-1(x-4)^{2}\right\rceil} { \displaystyle 8}
3 1/2倍速

{ \displaystyle y=\left\lceil 16-\frac{1}{4}(x-8)^{2}\right\rceil}

{ \displaystyle 16}
4 1/8倍速 { \displaystyle y=\left\lceil 16-\frac{1}{16}(x-16)^{2}\right\rceil} { \displaystyle 32}
n ?倍速

{ \displaystyle y=\left\lceil 16-4\times\frac{1}{4^{n-1}}(x-2\times2^{n-1})^{2}\right\rceil}

{ \displaystyle 4\times2^{n-1}}

4倍速、2倍速、1/2倍速、1/8倍速の順に番号を1、2、3、4とすると、上のようにnを用いて一般式を提示できることが確認できます。{ \displaystyle \lceil \cdot \rceil }は、天井関数(切り上げ)を意味します。yが0以下になると着地したと判定し、強制的にy=0にしてジャンプ終了、とするようです。

実際にこの式を用いると、各時間に対するキャラクターの位置を正確に求められます。
数式もきれいなので、これで合ってるんじゃないかと思っている所です。

問題なのは、標準速、1/4倍速がそれぞれ無視されている点です。似たような式で標準速、1/4倍速も表されないかと試した所、以下のようにして求められることが確認できました。

Bパターン

No. 移動速度 推測された関数(x:時間[F] y:位置[dot]) ジャンプに掛かる時間[F]
1 標準速

{ \displaystyle y=\left\lceil 16-\frac{9}{16}\left(x-\frac{16}{3}\right)^{2}\right\rceil}

{ \displaystyle 11}
2 1/4倍速

{ \displaystyle y=\left\lceil 16-\frac{9}{64}\left(x-\frac{32}{3}\right)^{2}\right\rceil}

{ \displaystyle 22}
n ?倍速

{ \displaystyle y=\left\lceil 16-\frac{9}{16}\times\frac{1}{4^{n-1}}\left(x-\frac{16}{3}\times2^{n-1}\right)^{2}\right\rceil}

{ \displaystyle 11\times2^{n-1}}

標準速、1/4倍速の番号をそれぞれ1、2とし、あんまり意味なさそうですが、一般式も提示しました。

こうすると標準速と1/4倍速は関連がありそうですが、頂点のxが分数である点が先ほどのAパターンからすると奇異であるように感じます。しかしnによって変動する部分(9/16を1/4倍すると9/64になるなど)は同様に与えることができます。

以下は推測になります。

恐らくはAパターンのような式を考えたところnの増加による変化が大きすぎたのではないかと考えられます。そこで、補間する形でBパターンの式を追加し、変化が大きすぎると考えられた箇所に埋め込まれたのではないかと思います。

そのためにどうしても不規則に思われるジャンプ時間が生まれてしまったのではないかと思います。

4, 8, 16, 32

11, 22

二つの数列が合わせられて、

4, 8, 11, 16, 22, 32

なるほど、そうすると合理的です。

はっきりしたことは不明ですが、現状はこのような形に落ち着いています。