忍者ブログ
TAS以外のことも書いていきたい。
Posted by - 2024.05.18,Sat
×

[PR]上記の広告は3ヶ月以上新規記事投稿のないブログに表示されています。新しい記事を書く事で広告が消えます。

Posted by ISMin(いずみん) - 2012.02.22,Wed
アイテム取り寄せ(二度食い利用)
難易度C

◯概要
各種スプライトをヨッシーの舌の上に移動させるテクニック。他にも「上書き利用」、「無を頬張る利用」の方法があります(別の記事で紹介)。他の方法と比べると簡単に実行でき、汎用性も高いですが、口内変化ができないという欠点もあります。スーパーマリオアドバンス2では二度食いができないので使えません。

◯使える場所・タイミング
ヨッシーに乗っていてアイテム二度食いができるスプライト(キノコ、フラワー、羽、1UPキノコ、スター、スプライトコイン、銀コイン、持った後のブルブルブロック)があるとき。

◯方法
アイテム二度食いの要領で舌で掴んだアイテムに直接触れてアイテムを取得します。そして消滅したアイテムをヨッシーが食べてしまう前に元のアイテムと同じIDに新たにスプライトを出現させます。すると新たに出現したスプライトがヨッシーの舌の上にワープします。

ブロックから出現したアイテムやストックアイテムを利用して、普通のスプライトを取り寄せる場合は、ある程度スプライトを出現させて、アイテムが普通のスプライトが出現する枠に出るようにしなければなりません。

◯効果
新たに出現させたスプライトがヨッシーの舌の上にワープします。このスプライトはほおっておくとすぐに飲み込んでしまうので、その前に効果を発動させるか(ゴールバー、鍵穴等)、食べキャンを用いて飲み込まないようにしなければなりませ。やり方を考えればほとんど全てのスプライトを取り寄せることが可能になります。

◯原理
アイテム二度食いの記事で書いたように、舌で掴んだスプライトを消滅させてもヨッシーは依然としてそのIDのスプライトを食べようとします。ここで元のスプライトが消滅=同じIDに新たなスプライトが出現できるので、新たなスプライトを出現させると、ヨッシーはそのスプライトを食べようとしていることになり、出現直後に座標補正を受けて舌の上にワープします。

◯応用
・操作不能バルーン
アイテム取り寄せによりPバルーンを取り寄せて、舌の上に乗っている状態でPバルーンに触って取得すると、マリオはバルーン状態になるのですが、何故か方向キーの操作ができなくなります。

・ブルバグ
アイテム取り寄せにより各種ブルを取り寄せてそのまま食べると、様々な現象が起こります。どんな現象が起こるかは一般にマリオのパワーアップ状態とストックアイテムと食べるブルの種類によって決まり、ゴール玉や鍵をストックに入れることもできます。何故かブルを食べるとパワーアップアイテムするという扱いになっているのが原因のようです。詳しいことは忘れたので一覧表を見つけたら書きます。

◯その他
実はスーパードンキーコング2の無を取得を調査するきっかけのきっかけとなったテクニックです。原理や挙動が非常に似ているのでスーパードンキーコング2の方も一度調べてみるといいでしょう。
PR
Posted by ISMin(いずみん) - 2012.02.21,Tue
アイテム二度食い
難易度C

◯概要
一つのアイテムをマリオが取得しつつヨッシーが食べるテクニック。今まではただ二倍お得になるだけのテクニックかと思われていましたが、実は無を取得によるアイテム取り寄せに応用できることが判明し、有効であることが確認されました。スーパーマリオアドバンス2では仕様変更のため使えなくなりました(その他の項に記述)。

◯使える場所・タイミング
ヨッシーに乗っていて何かそれっぽいスプライトがあるとき。

◯方法
このテクニックは各種アイテム(キノコ、フラワー、羽、1UPキノコ、スター)及び、スプライトコイン(ファイアで敵を倒した時や黄ノコノコを踏んだ時に出るコイン)、銀コイン、持った後のブルブルブロックあたりで出来ます。他のスプライトで行うのは別の記事で紹介します。

やり方は2つあります。
1.  ヨッシーがアイテムに触れると同時に舌で掴む。
アイテムに突っ込んで取る直前に舌を出す、もしくはアイテムの目の前に立ち、一旦アイテムを掴まないように舌を出し、舌を引っ込めるときにタイミングよく前進すると出来ます。どちらも通常プレイでは難易度が高いですが、1Fずつタイミング調整できるツールアシストではそれほど難しくありません。また、ヨッシーから降りる必要がないため、特に前者は高速で行えます。

2.  ヨッシーが舌を出すと同時にヨッシーから降り、舌で掴んだアイテムに触れる。
いろいろ方法はありますが、着地した状態でY+左キー(右向きの時)を押した直後にAを押すと、舌と同じ方向に降りる事ができるので簡単に出来ます。ただしヨッシーから降りなければならないのでタイムロスは大きいです。

◯効果
アイテムに触れた段階でアイテムを取得でき、さらにヨッシーがアイテムを食べた時にもう1度取得できます。ブルブルブロックは触れて破壊した後にヨッシーが食べます。

◯原理
ヨッシーが舌で掴んだスプライトも、普通の状態のスプライトと同様に触れることができ、普通の状態のときと同様の効果を発揮します。もちろんアイテムも普通に取得することができ、取得したアイテムは消滅します。
一方でアドレス(0x7E160E+ヨッシーのID)には舌で掴んだスプライトのIDがセットされますが、この値は上記の手順ではリセットされません。ここで消滅したスプライトでも同じIDに新たにスプライトが出現しない限り、メモリの初期化等は行われないので、ヨッシーは消滅したはずのアイテムを食べたことになり、直接触れた分とあわせて2個分取得したことになります。

◯応用
・踏み食い、Pスイッチリサイクル他
敵を踏みながら食べるテクニックやPスイッチを最利用するテクニックなど無を取得を伴わないものをいつかまとめます。

・アイテム取り寄せ(二度食い利用)
当該記事参照

◯その他
スーパーマリオアドバンス2では舌で掴んだスプライトに触れることができなくなったので、このテクニックは使えません。
Posted by ISMin(いずみん) - 2012.02.15,Wed
調査しつつ某所で発言してたら一人で情報が交錯してしまったのでまとめます。
ウェンディも似たようなものだと思いますがまだ調査してないので詳細はわからないです。
また、スーパーマリオアドバンス2(以下SMA2)についても同時に記述します。
(追記:結局間違ってたからバレないうちに直しておく。)

◯レミーの特徴(全てSMA2も同じ)
  • 本体は7つの土管からランダムに出てくる。出る場所は乱数のみに依存。
  • 偽物は本体の2つ右の土管と4つ右の土管から出てくる。ただし7番目の土管の右は1番目の土管とする。
  • 土管は1番目、4番目、6番目が1段高く、5段目が2段高くなっている。最後にレミーが高い位置にいるときに倒してしまうと、落下に時間がかかり、1段につき3Fロスしてしまう。
  • 本体のポーズは8種類からランダムに選ばれる。ポーズは乱数のみに依存。偽物にはポーズの種類はない。
  • ポーズは前向き4種、横向き2種、上向き1種、逆向き1種があり、向きによって出現から攻撃できるまでにかかる時間が異なる。最速は逆向きで出現後64Fで攻撃できる。その後は上向き(72F)、前向き(74F)、横向き(80F)と続く。
  • つまり最速で攻撃してるつもりでも乱数によっては最大54Fもの差が生じてしまう。

◯最速パターンが出る確率
  1. 乱数を無視して求めてみる。
    ポーズや土管ごとに起こりやすさに差はないとする。つまりあるポーズが選ばれる確率は1/8、ある土管が選ばれる確率は1/7とする。

    すると最速パターンである「3回とも逆向きのポーズで出現し、3回目は一番低い土管から出現する」確率は
    (1/8)×(1/8)×(1/8)×(3/7)=3/3584≒0.0837% となる。
    また、土管の位置を無視してポーズだけで考えた場合(以下「妥協パターン」と表記)
    (1/8)×(1/8)×(1/8)=1/512≒0.1953% となる。
    これらはSMA2でも同様である。
     
  2. 全ての乱数値におけるレミーの動きを調べて求める。
    乱数はアドレス0x7E148B(以下乱数A)とアドレス0x7E148C(以下乱数B)で管理されており、それぞれ256通りの全65536通りのパターンが考えられる(実際にはそうではないがそのあたりは3で記述)。SMA2もアドレスが0x03003f11(乱数A)、0x03003f12(乱数B)となっている以外は同様。

    これら全ての乱数値におけるレミーの動きを調べると、最速パターンを取る乱数値は56通り、妥協パターンを含めると128通りある。
    つまり、確率は最速パターンが 56/65536≒0.0854%、
    妥協パターンを含めると 128/65536≒0.1953% となる。

    SMA2では最速パターンを取る乱数値が40通り、妥協パターンを含めると120通りとなり、
    確率は最速パターンが 40/65536≒0.0610%、
    妥協パターンを含めると 120/65536≒0.1831% となる。
     
  3. 取り得ない乱数値を考慮。(実際の確率)
    2では256×256=65536通りのパターンがあると記述したが、実際には乱数Aは256個中217個、乱数Bは128個しか使わないため、全パターンは217×128=27776通りとなる。SMA2も同様である。

    これを考慮すると、最速パターンは8通り、妥協パターンを含めても32通りしかなくなってしまう。
    また、確率は最速パターンが 8/27776≒0.0288%、
    妥協パターンを含めると 32/27776≒0.1152% となる。

    SMA2では最速パターンが16通り、妥協パターンを含めると56通りとなり、
    確率は最速パターンが 16/27776≒0.0576%、
    妥協パターンを含めると 56/27776≒0.2016% となる。
     
  4. 取り得ない乱数値の組み合わせを考慮
    そんなものはない。
実際の乱数値は以下のテキストファイルにまとめています。
http://ism.harisen.jp/SMWlemmy.txt
http://ism.harisen.jp/SMA2lemmy.txt

◯現実には
乱数の消費を数十回で抑えることや、数千回回すことはTAS的に現実的でないので、使える乱数値は1~2個となる。最速パターンをタイムロス無しで引くのはたぶん無理です。
現行のWIPで乱数の詳細を知らずに1ヶ月程度で妥協パターンを引いたのは相当運が良かった、そして最速パターンを粘らなくてよかったなあと今になって思うのでした。
Posted by ISMin(いずみん) - 2012.02.10,Fri
 先にスプライトの基本知識についてまとめようと思いましたが全然まとまらないまま数ヶ月経過してしまったので、投げ捨てて先に進みます。スプライトについては改造関連の解説を見ていただくか、TASLabo Forum(跡地)のSMWのトピックにMr.さんがまとめてくださっています。以下で使用している用語やIDの値などはTASvideosのLuaスクリプト及びMr.さんの記述に準じています。


アイテム取り寄せ/無を取得(上書き利用)
難易度B

◯概要
アイテムやゴールなどをヨッシーの口の中や舌の上に移動させるテクニック。現象自体は結構前から確認されていたようですが(ドーナツ平野秘密のコース2のラストでゴールバーが消える&鍵のようなものを吐き出すバグとして紹介されている)、09年前半頃に詳しい条件が解明され、TASで使える技に昇格しました。やり方は大きく分けて「上書き利用」、「二度食い利用」、「無を頬張る利用」の3つあり、それぞれ別の記事で紹介します。
スーパーマリオアドバンス2ではゴールバーを取り寄せることができなくなりました(その他の項に記述)。

◯使える場所・タイミング
ヨッシーが存在して、さらに十分な数のスプライトを同時に出現させることが出来るとき。

◯方法
このテクニックで取り寄せられるスプライトは、通常はブロックから出るアイテム(ヨッシー以外)とストックアイテムとゴールバーのみです。また、方法はゴールバーとそれ以外で若干変わります。ただし、特殊な手順を踏めば全てのスプライトを取り寄せることができます(応用の項に記述)。

1. ゴールバーを取り寄せる場合
まずスプライトを1体以上のヨッシーを含めてたくさん出現させ、ゴールバーの出現しうるID枠(※1)がいっぱいになるようにします。この状態でゴールバーが上書きできないスプライト(※2)でない最もIDが大きいスプライトを頬張るか、舌で掴んだ状態にします。そしてそのままゴールを出現させると、ゴールバーが本来の位置に現れず、食べようとしている(=頬張ってるor舌で掴んでいる)スプライトがゴールバーに変化します。

2. ブロックから出るアイテム、ストックアイテム(以下単にアイテムと表記)を取り寄せる場合
まずは1と同様に1体以上のヨッシーを含めてスプライトをたくさん出現させ、アイテムの出現しうるID枠(=全てのスプライトID枠)がいっぱいになるようにします。その状態でID11 or ID10のスプライト(*3)を頬張るか舌で掴んだ状態にします。そしてそのままアイテムを出現させると、アイテムが本来の位置に現れず、食べようとしているスプライトがアイテムに変化します。

いずれの方法も食べキャンで木の実、ストックアイテム、Pスイッチ等の画面外でも消えないスプライトを利用すると楽になります。

※1 ゴールバーは大抵のステージでは、ID0~ID9に出現しますが、K.K.が出現するステージ(厳密には違いますが)はID0~ID4、乗ると回転するリフトが出現するステージはID0~ID5、ハナチャンが出現するステージはID0~ID8などと一部のステージではより狭いID範囲でしか出現しなくなります。詳細は墓場のカスタムスプライトの解説ページをみればわかりますが、これらのID範囲はゴールバーの他にも大部分のスプライトにも適用されるので 少しステージを進めればすぐに分かると思います。

※2 ゴールバーは画面外でも消えないスプライト及びリフトなどの足場を消すことができません。
いつか一覧を作りたいです。

※3 アイテムによって上書きされるスプライトのIDは最初はID11ですが、一度上書きされると次はID10のスプライトが上書きされます。さらにID10が上書きされたあとはID11、そのあとはID10と交互に上書きされるIDが変化します。

◯効果
食べようとしているスプライトがアイテムやゴールバーに変化します。
頬張っている状態で変化させた場合、厳密には吐き出した瞬間に変化が起こります。またこのときグラフィックや挙動は異なっている場合が多いです。 これもいつか一覧を作りたいです。
舌で掴んでいるときに変化させた場合、変化させたスプライトそのものに変化しますが、ほおっておくとすぐに飲み込んでしまうので、その前に効果を発動させるか(ゴールバー、鍵穴等)、食べキャンを用いて飲み込まないようにしなければなりません。

変化とか来ましたが厳密には元スプライトの消滅+ゴールやアイテムの出現→舌の上や口元に引き寄せ が一瞬で起こっています。詳細は原理の項で説明します

◯原理
ゴールバーやブロックから出るアイテム、ストックアイテムには出現しうるスプライトID枠が全て埋まっていたときに特定のスプライトを消滅させて代わりに出現することができるという仕様があります。

一方、ヨッシーがスプライトを舌で掴むとアドレス(0x7E160E+ヨッシーのID)に掴んだスプライトのIDがセットされます。このアドレスにセットされたIDのスプライトはヨッシーの舌が動いたり、頬張っているものを吐き出したりした時に座標の補正を受けてヨッシーの舌の上や口の近くに移動します。また、この値はヨッシーが舌を出した時、吐き出した時、飲み込んだ時、ヨッシーを消滅させて同じIDに別のスプライトが出現した時にリセットされます。ポイントは食べようとしているスプライトの状態には依存しないことです。

今、ヨッシーが食べようとしているスプライトがゴールバーやアイテムに上書きされると、例に漏れず元のスプライトは消滅しますが、上記メモリアドレスにセットされている値(=掴んだスプライトのID)がリセットされる行動は取っていないので、結果的に同じIDに出現したゴールやアイテムを食べようとしている状態になります。そして吐き出しを行ったりヨッシーの舌が動いたりするとゴールやアイテムは座標の補正を受け、ヨッシーの口付近や舌の上に瞬間移動します。

取り寄せたスプライトを吐き出した時にグラフィックや挙動がおかしくなるのは、スプライトの定常状態と吐き出した後の状態が異なっているためと考えられます。

◯応用
・アイテム複製/別スプライト引き寄せ
スプライトを頬張っている状態で方法2を用いてアイテム取り寄せを行い、吐き出す前に新たに出現したアイテムを取得したり、穴に落としたりして消滅させます。その後口内にあるアイテムを吐き出すと先ほど消滅させたアイテムが口から出てきます。
また、同じように出現したアイテムを消滅させた後、同じIDに別のスプライトを出現させてから吐き出しを行うと、ヨッシーの口から最後に出現させたスプライトが出てきます。

原理の理解のためにはスプライトの状態を示すアドレス(0x7E14C8+ID)を見ると良いです。この値が0の時にスプライトは消滅している、7の時にヨッシーが頬張っている、8の時に定常状態、9の時に置かれている/運ばれている、10の時が滑っている(蹴られている)状態になっています(他の値もありえますが割愛)。

スプライト状態が0のときには同じIDに他のスプライトが出現することができ、この時に速度や座標などの各種パラメータが新しいスプライトのものになります。後者の応用技を使った場合スプライトのパラメータが変わっても、ヨッシーが舌で掴んだスプライトのIDはリセットされないので、結果として最後に出現したスプライトを頬張っていることになり、吐き出した時に座標の補正が起こります。
また、先ほどとは逆にスプライト状態が0のときに同じIDに他のスプライトが出現しなければ、スプライト状態以外のパラメータは元のスプライトのものを保っています。ここで前者の方法を使えば、スプライト状態が0から9または10に書き換わるため元のスプライトが復活します。

ちなみにスプライト状態7のときもスプライトは消滅していますが、新たなスプライトは出現できなくなっています。つまり頬張ったスプライトを吐き出すということは、ある意味毎回アイテム複製を行なっているとも言えます。

・ほぼ全てのスプライトを取り寄せる
手順は結構複雑です。bahamete氏の動画を参考にしました。
1. レイヤーチェンジバグを使う。(参考:レイヤーチェンジバグ)
2. ヨッシーが消滅するスプライトを頬張っている状態で方法1でゴールバーを取り寄せる。
3. ゴールバーにファイアを当てると、レイヤーチェンジバグのおかげでゴールバーをコインに変えれるので変化したコインを消滅させる。
4. ゴールバーと同じIDに取り寄せたいスプライトを出現させてから吐き出しを行うと、最後に出現させたスプライトがヨッシーの口から出てくる。

これは本来消滅させられないゴールバーをレイヤーチェンジバグによって消滅させることで、ゴールバーのIDに別スプライトを出現させられるようにしています。

◯その他
・頬張っている状態で変化させることを特に「口内変化」と呼ぶこともあります。

・スーパーマリオアドバンス2ではゴールバーによる上書きの仕様が以下のように変更されています。
1. 画面外でも消えないスプライトやリフトでも上書きの対象になる。
2. ヨッシーが食べようとしているスプライトは上書きの対象にならない。

2の仕様変更のため、ゴールバーではアイテム取り寄せが成功しなくなりました。
また、1の仕様変更によりマリオが乗っているヨッシーも上書きの対象になり得ます。しかし、マリオが乗っているヨッシーが上書きされるとゴールバーがバグって機能しなくなります。バグったゴールバーも通常のゴールバー同様消滅することが無いので、別ゴールもルーム移動手段もない場合はゴールができなくなってしまいます。
Posted by ISMin(いずみん) - 2011.12.30,Fri
需要の有りそうな針巫女だけ公開します。というか他のキャラはまだ調べてません。

カレンダー
04 2024/05 06
S M T W T F S
1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 31
最新コメント
[02/15 NONAME]
[05/01 NONAME]
[11/03 Mr.]
[02/28 IT志望者]
[02/28 NONAME]
プロフィール
HN:
ISMin(いずみん)
性別:
男性
自己紹介:
別名ISMさん。なぜHPのタイトルといっしょになったのだろうか。荒島博久さんは旅に出ました。
ブログ内検索
最新トラックバック
Template by mavericyard*
Powered by "Samurai Factory"
忍者ブログ [PR]