せーらのブロマガ

時オカコラム #6 デクの如意棒と効果音

2019/03/21 20:00 投稿

  • タグ:
  • ゼルダの伝説
  • 時のオカリナ


デクの如意棒と呼ばれるバグ技の発動原理がなかなか興味深かったので、簡単にまとめて紹介しようと思う。

https://youtu.be/rVbCB2Cyq-Y





主観武器使用時のSEは、「手に持っているアイテムが何か」によって決まる。


例えば弓の射撃時の効果音ID1だが、ただ手に持っている間は常にこのIDの負の値にセットして、待機状態にしている。

これがフックショットの場合であれば射撃時の効果音ID3、手に持っている間は-3という数値をセットする。


アイテムをAのアクションコマンドでしまうか、別のアイテムを取り出すことで自動的に一度しまうアクションを起こすことで、このメモリにセットされる数値が切り替わるというようになっている。



この「手に持ったアイテムに関するメモリ」は、当たり前だが、デクの棒には射撃モーションが存在しないため、このメモリの数値は基本的にデフォルト値の0になっている。

だが、このメモリの数値はデクの棒の燃焼タイマーも共通している。
燭台等の火にデクの棒の先端が触れた瞬間に200というタイマー用の数値をセットし、火から離れた瞬間からカウントダウンを開始する。そして数値が0になった時点で、棒が焼失するという仕組みになっている。


まずはこのゲーム上の仕様を把握してもらいたい。





さて、ここでポイントになるのは、「今現在手に持っているアイテムが何か」によって、このメモリにセットされる数値が変わるという点である。

弓を持っているのなら-1、フックショットなら-3、デクの棒なら0だ。


ここで登場するのがQuick Drawというバグ技である。

着水する瞬間等にアイテムを取り出そうとすると、そのモーションをキャンセルし、アイテムを使ったけどまだ手には持っていない状態にさせられるといったものだ。


このアイテム使用キャンセル状態でもう一度そのアイテムのボタンを押すと、アイテムを取り出したりしまったりするモーションなく、アイテムを手に持つことができる。


この技を、弓やフックショットを予め持った状態で行うと、先に持っていたこれらのアイテムをしまうモーションを発生させずに別のアイテムを手に持つため、先のメモリにセットされた数値を更新することなく、別のアイテムを手に持つことになる。


つまり、この状態でデクの棒を手に持って着火させると、

①メモリに200という数値をセットする

②射撃中ではないため値をマイナスに変える

③火から離れた時点からセットされた値をカウントダウンする

という処理が発生する。


-200という数値でカウントダウンが始まると当然ながら数値は0に達することはないため、棒は焼失することなく、そのまま延々とメモリの数値は-300,-400…と、どんどん下降していく。


また、デクの棒は通常、タイマー値が0になると燃焼したことを示すため"縮んで"消滅する演出がされるが、この状態では値がマイナス方向にどんどん膨らんでいくため、それに合わせてデクの棒本体の長さもマイナス方向に"縮む"ことになる。


逆手方向にものすごく伸びていくのはこの処理によるもので、これが「デクの如意棒」などと呼ばれる所以である。





またこの、実質2つのアイテムを無理やり手に持たせた状態でさらに棒を振ろうとすると、射撃アクションを発生させることもでき、(こちらはAction Swapと呼ばれるバグ技になる)これによって射撃アクションを発生させると、マイナス値に膨れ上がったメモリの数値がプラスになって、該当するIDの効果音を再生させようとする。

タイマー値はカウントダウンをひたすら続けているため、射撃アクションをするたびに全く関係ない違うIDを参照して効果音が再生される。そのため対応するIDによって、一部の数値の時はフリーズする。


https://youtu.be/gj4UImG4GHw





詳細な解説動画


https://youtu.be/CmCHru6FxrI




以上


質問やリクエスト等は、Twitter @sera18171


コメント

コメントはまだありません
コメントを書き込むにはログインしてください。

いまブロマガで人気の記事