K3の住民

最近はレア社のゲームについては書いていませんが、一応レア社のゲームが一番好きな人です。『雪圀』で"圀"は"国"とほぼ同義ですが、国ではありませんって当たり前か(笑)。

【マリオ64】HOLPとは

2017/09/14 「HOLPの応用」を追記
2017/09/15 「HOLPの応用」にある計算式を訂正

皆さん、こんにちは。雪圀です。
今回は、前回、前々回の記事でところどころに書いていた「HOLP」について書いて
いこうと思います。

概要

HOLPとは、Held Object's Last Placeの略で、マリオ64にあるアクターの移動、生成
をさせる為に記憶する座標
のことです。このHOLPは、マリオが木箱やペンギンを
持っていた最後の座標として使われています。

どういうことか?

先ず、マリオが木箱というアクターを持っていたとしましょう。これにより、HOLPが
更新されます。
そして、マリオが木箱を持っている間、HOLPは更新され続けます。

f:id:ryoryoau24:20170913124414g:plain

しかし、マリオが木箱を途中で離すと、その時点でHOLPは更新されなくなります。

f:id:ryoryoau24:20170913124441g:plain

このHOLPが更新される条件は2つあります。

  1. マリオがアクターを持っていること
  2. マリオが手に帽子を持っていないこと

この2つです。逆に言えば、マリオがアクターを持っていなかったり、帽子を手に
持っていたりすると、HOLPは更新されません

このHOLPは、ゲームをやめない限り永遠に記憶され、この仕様により他のコース
に行ってもHOLPは記憶されたままです

HOLPの応用

HOLPは帽子を手に持っている間は、更新されません。そして、帽子を手に持っている
間も、アクターを運ぶことは出来ます。ということは、運べないアクターでもHOLP
の位置に移動させることが可能、ということが言えます。

その方法は、以下の通りです。

  1. 運べるアクターを持つ(ボム兵バグ(こちらを参照)で得た無を使う)。
  2. アクターを飛ばしたい座標に投げる。
  3. 帽子を手に取り(2回連続で帽子を取る。方法は様々)、1.で持ったアクターと
    同じアクター(無)を持つ。
  4. そして飛ばしたいアクターをマリオの持っている無に描画させ(帽子を手に取って
    いるので何も無いように見えて分からないが、そこは祈る*1)、投げる。

これで、HOLPの位置にアクターを移動させることが出来ます。
分かりやすくする為に、以下の図にどういった現象が起こるのかを示します。

f:id:ryoryoau24:20170913135859g:plain

※左下の緑の丸は投げるボタン(Bボタン)を示している。

ここで、無を使って運べるアクター以外の物をHOLPに移動させる場合と、そうで無い
場合(先ほど解説した方法の3.で運ぶものを無以外のものに変える)について解説
します。

運べるアクター以外をHOLPに移動させた場合
落ちずにそのまま浮きます。また、敵の場合だと外見だけの何かになり、弾かれると
無くなります。
使われる例としてはクリボーの階段を作るときが挙げられます。例えばクリボー
階段を5段作るとき、Σ [ k=1..5 ] k(=15)匹分のクリボーをHOLPに移動させる必要が
あります。

運べるアクターをHOLPに移動させた場合
この場合、マリオが投げた方角にHOLPからアクターが飛び出てきます。物運びの
ショートカット(?)に応用可能。
但し、ボム兵の場合は別です。ボム兵の場合、アクター描画範囲外であればHOLPから
飛び出しません。そして奇妙なことにどうやらボム兵はアクター描画時にシーンの外
にはいかないように出来ているらしく、代わりにマリオの現在の位置に描画
されます。

Transport Cloning

ここで、先ほどの応用を更に応用させた不可解なバグ技、「Transport Cloning」に
ついて解説します。

このバグは、HOLPの位置に飛ばせるアクターが別のアクターに押されているときに
マリオが持つ無(飛ばせるアクターは描画済み)を投げると飛ばせるアクターとHOLP
の中心の座標にアクターを飛ばせるというものです。

正直これに関しては原理等はよく分かりませんが、重要なのがアクターを飛ばした
際にx,z軸はHOLPの座標から変わるのに関わらず、y軸はHOLPの座標から全く
変わらないということです(因みにアクターを飛ばした際に押していたアクター
も飛ばしたアクターと同じ座標に飛ばされますが、y軸は飛ばす前の座標と同じ
です)。

つまり、これによりアクターの飛ばせる幅が広がるということが言えます。



以上です。これで前回、前々回の記事の意味が多少は分かると思いますが、これ
でもし分からなかったらもう理解するのを諦めてください。正直これ以上上手に
説明出来る気がしません。

今回はこれくらいにしときます。

*1:アクターの描画された番号が無の番号と異なることがある為