Horizontal Movement Formulas/ja: Difference between revisions

From Minecraft Parkour Wiki
Content added Content deleted
No edit summary
No edit summary
 
(26 intermediate revisions by 2 users not shown)
Line 11: Line 11:




<span id="Multipliers"></span>
==倍率==
==倍率==


Line 16: Line 17:




::<math>M_{t} = \begin{Bmatrix}1.3 & \textrm{ダ ッ シ ュ} \\ 1.0 & \textrm{歩 き}\\ 0.3 & \textrm{ス ニ ー ク}\\ 0.0 & \textrm{停 止} \end{Bmatrix} \times \begin{Bmatrix}0.98 & \textrm{通 常}\\ 1.0 & \textrm{45° Strafe} \\ 0.98 \sqrt{2} & \textrm{45°ス ニ ー ク} \end{Bmatrix}</math>
::<math>M_{t} = \begin{Bmatrix}1.3 & \text{ダ } \\ 1.0 & \text{歩 き}\\ 0.3 & \text{ス }\\ 0.0 & \text{停 止} \end{Bmatrix} \times \begin{Bmatrix}0.98 & \text{通 常}\\ 1.0 & 45^{\circ}~\text{Strafe} \\ 0.98 \sqrt{2} & 45^{\circ}~\text{ス } \end{Bmatrix}</math>




Line 22: Line 23:




::<math>E_{t} = (\underset{\textrm{移 動 速 度 低 下 の レ ベ ル 1 ご と に} \; 15\% \textrm{低 下}}{\underset{\textrm{移 動 速 度 上 昇 の レ ベ ル 1 ご と に} \; 20\% \textrm{増 加}}{\underbrace{\left ( 1 + 0.2\times \textrm{移 動 速 度 上 昇 } \right ) \: \times\: \left ( 1 - 0.15\times \textrm{移 動 速 度 低 下 } \right )}}} \geq 0</math>
::<math>E_{t} = \underset{\text{移 動 速 度 低 下 の レ ベ ル 1 ご と に} ~ 15\% \text{低 下}}{\underset{\text{移 動 速 度 上 昇 の レ ベ ル 1 ご と に} ~ 20\% \text{増 加}}{\underbrace{\left ( 1 + 0.2\times \text{移 昇 } \right ) ~ \times ~ \left ( 1 - 0.15\times \text{移 下 } \right )}}} \geq 0</math>




:'''Slipperinessの倍率'''([[Special:MyLanguage/Slipperiness|Slipperiness]]を参照)
:'''滑りやすさの倍率'''([[Special:MyLanguage/Slipperiness/ja|滑りやすさ]]を参照)




::<math>S_{t} = \begin{Bmatrix}0.6 & \textrm{通 常}\\ 0.8 & \textrm{ス ラ イ ム}\\ 0.98& \textrm{氷} \\ 1.0 & \textrm{空 中} \end{Bmatrix}</math>
::<math>S_{t} = \begin{Bmatrix}0.6 & \text{通 常}\\ 0.8 & \text{ス }\\ 0.98& \text{氷} \\ 1.0 & \text{空 中} \end{Bmatrix}</math>
:
:


<br />
<br />


<span id="Linear_Formulas"></span>
==直線の公式==
==直線の公式==


Line 40: Line 42:
:<br />'''定義''':
:<br />'''定義''':
:*<math>V_{H,0}</math>はプレイヤーの初速(デフォルト = 0)。
:*<math>V_{H,0}</math>はプレイヤーの初速(デフォルト = 0)。
:*<math display="inline">V_{H,t}</math>は<math display="inline">t</math> tick目でのプレイヤーの速度。
:*<math display="inline">V_{H,t}</math>は <math display="inline">t</math> tick目でのプレイヤーの速度。




:'''地面での速度''':
:'''地面での速度''':


::<math>V_{H,t} = \underset{\textrm{慣 性}}{\underbrace{\underset{ }{V_{H,t-1} \times S_{t-1} \times 0.91 }}} \: + \: \underset{\textrm{加 速 度}}{\underbrace{0.1 \times M_{t} \times E_{t} \times \left (\frac{0.6}{S_{t}} \right )^{3}}} </math>
::<math>V_{H,t} = \underset{\text{慣 性}}{\underbrace{\underset{ }{V_{H,t-1} \times S_{t-1} \times 0.91 }}} ~ + ~ \underset{\text{加 速 度}}{\underbrace{0.1 \times M_{t} \times E_{t} \times \left (\frac{0.6}{S_{t}} \right )^{3}}}</math>




:'''ジャンプの速度''':
:'''ジャンプの速度''':


::<math>V_{H,t} = \underset{\textrm{慣 性}}{\underbrace{\underset{ }{V_{H,t-1} \times S_{t-1} \times 0.91 }}} \: + \: \underset{\textrm{加 速 度}}{\underbrace{0.1 \times M_{t} \times E_{t} \times \left (\frac{0.6}{S_{t}} \right )^{3}}} + \underset{\textrm{ダ ッ シ ュ ジ ャ ン プ ブ ー ス ト}}{\underbrace{\begin{Bmatrix}0.2 & \textrm{ダ ッ シ ュ}\\ 0.0 & \textrm{そ
::<math>V_{H,t} = \underset{\text{慣 性}}{\underbrace{\underset{ }{V_{H,t-1} \times S_{t-1} \times 0.91 }}} ~ + ~ \underset{\text{加 速 度}}{\underbrace{0.1 \times M_{t} \times E_{t} \times \left (\frac{0.6}{S_{t}} \right )^{3}}} + \underset{\text{ダ ッ シ ュ ジ ャ ン プ ブ ー ス ト}}{\underbrace{\begin{Bmatrix}0.2 & \text{ダ }\\ 0.0 & \text{そ れ 以 外}\end{Bmatrix} }}</math>
れ 以 外}\end{Bmatrix} }}</math>




:'''空中での速度''':
:'''空中での速度''':


::<math>V_{H,t} = \underset{\textrm{慣 性}}{\underbrace{\underset{ }{V_{H,t-1} \times S_{t-1} \times 0.91 }}} \: + \: \underset{\textrm{加 速 度}}{\underbrace{\underset{ }{0.02 \times M_{t}}}} </math>
::<math>V_{H,t} = \underset{\text{慣 性}}{\underbrace{\underset{ }{V_{H,t-1} \times S_{t-1} \times 0.91 }}} ~ + ~ \underset{\text{加 速 度}}{\underbrace{\underset{ }{0.02 \times M_{t}}}} </math>






<span id="Complete_Formulas"></span>
==完全な公式==
==完全な公式==


Line 77: Line 79:
:'''地面での速度''':
:'''地面での速度''':


::<math>V\displaystyle _{X,t} = \underset{ }{V\displaystyle _{X,t-1} \times S_{t-1} \times 0.91 } \: + \: 0.1 \times M_{t} \times E_{t} \times \left (\frac{0.6}{S_{t}} \right )^{3} \times \sin (D_{t}) </math>
::<math>V\displaystyle _{X,t} = \underset{ }{V\displaystyle _{X,t-1} \times S_{t-1} \times 0.91 } ~ + ~ 0.1 \times M_{t} \times E_{t} \times \left (\frac{0.6}{S_{t}} \right )^{3} \times \sin (D_{t}) </math>
::<math>V\displaystyle _{Z,t} = \underset{\textrm{慣 性}}{\underbrace{\underset{ }{V\displaystyle _{Z,t-1} \times S_{t-1} \times 0.91 }}} \: + \: \underset{\textrm{加 速 度}}{\underbrace{0.1 \times M_{t} \times E_{t} \times \left (\frac{0.6}{S_{t}} \right )^{3}}} \times \cos (D_{t}) </math>
::<math>V\displaystyle _{Z,t} = \underset{\text{慣 性}}{\underbrace{\underset{ }{V\displaystyle _{Z,t-1} \times S_{t-1} \times 0.91 }}} ~ + ~ \underset{\text{加 速 度}}{\underbrace{0.1 \times M_{t} \times E_{t} \times \left (\frac{0.6}{S_{t}} \right )^{3}}} \times \cos (D_{t}) </math>


:'''ジャンプの速度''':
:'''ジャンプの速度''':


::<math>V\displaystyle _{X,t} = \underset{ }{V\displaystyle _{X,t-1} \times S_{t-1} \times 0.91 } \: + \: 0.1 \times M_{t} \times E_{t} \times \left (\frac{0.6}{S_{t}} \right )^{3} \times \sin (D_{t}) + \begin{Bmatrix} 0.2 & \textrm{ダ ッ シ ュ}\\ 0.0 & \textrm{そ れ 以 外}\end{Bmatrix} \times \sin (F_{t}) </math>
::<math>V\displaystyle _{X,t} = \underset{ }{V\displaystyle _{X,t-1} \times S_{t-1} \times 0.91 } ~ + ~ 0.1 \times M_{t} \times E_{t} \times \left (\frac{0.6}{S_{t}} \right )^{3} \times \sin (D_{t}) + \begin{Bmatrix} 0.2 & \text{ダ }\\ 0.0 & \text{そ }\end{Bmatrix} \times \sin (F_{t}) </math>
::<math>V\displaystyle _{Z,t} = \underset{\textrm{慣 性}}{\underbrace{\underset{ }{V\displaystyle _{Z,t-1} \times S_{t-1} \times 0.91 }}} \: + \: \underset{\textrm{加 速 度}}{\underbrace{0.1 \times M_{t} \times E_{t} \times \left (\frac{0.6}{S_{t}} \right )^{3}}} \times \cos (D_{t}) + \underset{\textrm{ダ ッ シ ュ ジ ャ ン プ ブ ー ス ト}}{\underbrace{\begin{Bmatrix} 0.2 & \textrm{ダ ッ シ ュ}\\ 0.0 & \textrm{そ れ 以 外}\end{Bmatrix} \times \cos (F_{t})}} </math>
::<math>V\displaystyle _{Z,t} = \underset{\text{慣 性}}{\underbrace{\underset{ }{V\displaystyle _{Z,t-1} \times S_{t-1} \times 0.91 }}} ~ + ~ \underset{\text{加 速 度}}{\underbrace{0.1 \times M_{t} \times E_{t} \times \left (\frac{0.6}{S_{t}} \right )^{3}}} \times \cos (D_{t}) + \underset{\text{ダ ッ シ ュ ジ ャ ン プ ブ ー ス ト}}{\underbrace{\begin{Bmatrix} 0.2 & \text{ダ }\\ 0.0 & \text{そ }\end{Bmatrix} \times \cos (F_{t})}} </math>


:'''空中での速度''':
:'''空中での速度''':


::<math>V\displaystyle _{X,t} = \underset{ }{V\displaystyle _{X,t-1} \times S_{t-1} \times 0.91 } \: + \: 0.02 \times M_{t} \times \sin (D_{t}) </math>
::<math>V\displaystyle _{X,t} = \underset{ }{V\displaystyle _{X,t-1} \times S_{t-1} \times 0.91 } ~ + ~ 0.02 \times M_{t} \times \sin (D_{t}) </math>
::<math>V\displaystyle _{Z,t} = \underset{\textrm{慣 性}}{\underbrace{\underset{ }{V\displaystyle _{Z,t-1} \times S_{t-1} \times 0.91 }}} \: + \: \underset{\textrm{加 速 度}}{\underbrace{\underset{}{0.02 \times M_{t}}}} \times \cos (D_{t}) </math>
::<math>V\displaystyle _{Z,t} = \underset{\text{慣 性}}{\underbrace{\underset{ }{V\displaystyle _{Z,t-1} \times S_{t-1} \times 0.91 }}} ~ + ~ \underset{\text{加 速 度}}{\underbrace{\underset{}{0.02 \times M_{t}}}} \times \cos (D_{t}) </math>




<span id="Stopping_Conditions"></span>
==停止条件==
==停止条件==


Line 106: Line 109:
:'''無視できる速度のしきい値''':
:'''無視できる速度のしきい値''':


::<math display="inline"> \left | V\displaystyle _{X,t-1} \times S_{t-1} \times 0.91 \right | < 0.005, </math>の場合、慣性がキャンセルされ、加速度のみが残る。
::<math display="inline"> \left | V\displaystyle _{X,t-1} \times S_{t-1} \times 0.91 \right | < 0.005</math> の場合、慣性がキャンセルされ、加速度のみが残る。
::<math display="inline"> \left | V\displaystyle _{Z,t-1} \times S_{t-1} \times 0.91 \right | < 0.005, </math>の場合、慣性がキャンセルされ、加速度のみが残る。
::<math display="inline"> \left | V\displaystyle _{Z,t-1} \times S_{t-1} \times 0.91 \right | < 0.005</math> の場合、慣性がキャンセルされ、加速度のみが残る。


::1.9以降は、このしきい値は0.003となる。
::1.9以降は、このしきい値は0.003となる。
Line 113: Line 116:




<span id="Source_Code"></span>
==ソースコード==
==ソースコード==



Latest revision as of 09:49, 26 December 2023

Other languages:

ゲーム内では、以下の3ステップが毎tick実行される:

  1. プレイヤーの速度に加速度を加える。
  2. プレイヤーを動かす(新しい位置 = 元の位置 + 速度)。
  3. 抗力の再現のため、プレイヤーの速度を落とす。

公式をより読みやすくするため、各種倍率の紹介から始める。


倍率

移動方法の倍率45°Strafeを参照)



エフェクトの倍率ステータス効果を参照)



滑りやすさの倍率滑りやすさを参照)



直線の公式

以下の簡易式は、直線的な動き(移動方向の変化なし)にのみ適用される。 この条件は限定的に思えるかもしれないが、シンプルなジャンプや助走の分析に非常に有用である。 角度を含めた公式への拡張は、後の見出しで行う。


定義:
  • はプレイヤーの初速(デフォルト = 0)。
  • tick目でのプレイヤーの速度。


地面での速度:


ジャンプの速度:


空中での速度:


完全な公式

新しい変数を2つ導入する:

  • (Direction)、プレイヤーの動いている角度、単位は度(キー入力と回転角度によって決まる)。
  • (Facing)、プレイヤーの向いている角度、単位は度(回転角度のみによって決まる)。


実際には、significant angleの数が限られているため、角度はそれほど単純ではない(角度を参照)。

簡略化のため、この事実は無視する。


定義:
  • はプレイヤーの初速に対応する。
  • tick目でのプレイヤーの速度に対応する。

地面での速度:
ジャンプの速度:
空中での速度:


停止条件

水平方向の速度は、プレイヤーが壁に接触するか、その速度が無視できるほど小さいと判断された場合、0に設定される。


壁の衝突判定:
プレイヤーがX方向の壁と接触すると、慣性がキャンセルされ、に含まれるのは加速度のみになる。
プレイヤーがZ方向の壁と接触すると、慣性がキャンセルされ、に含まれるのは加速度のみになる。
どちらの場合も、ダッシュは途切れる。


無視できる速度のしきい値:
の場合、慣性がキャンセルされ、加速度のみが残る。
の場合、慣性がキャンセルされ、加速度のみが残る。
1.9以降は、このしきい値は0.003となる。


ソースコード

[...]