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

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

Posted by ISMin(いずみん) - 2014.02.22,Sat

1. はじめに

 今更ですが、12/5/30に公開したTASです。

【ニコニコ動画】【TAS】ワリオランド3 不思議なオルゴール 37分21秒83 (1/2)
なんかサムネと詳細リンクできないんでタイトルだけ。

 10/8/22に公開した56分51秒22のTASでは、壁めり込みやスクロールバグを利用して各種ショートカットやステージカット(8ステージ分)を行い、1時間切りを達成しました。これに対して、本TASでは、壁めり込みの派生テクニックの開発や新スクロールバグ、水流突破テクニックの発見により、さらに14ステージのカットに成功しました(48ステージ中22ステージカット)。また、ステージごとのルートの見直しや最適化も行われ、合計70163フレーム(19分29秒38)もの更新に成功しました。


2. プレイ環境、プレイ条件

プレイ環境
  • ROM:日本語版ワリオランド3 (英語版と共通)
  • エミュレーター:VBA-rr v23.4だったと思う。

プレイ条件
  • 最速でエンディングを迎えることを目指す。
  • その他の縛り(バグ、ダメージ縛りなど)はなし

3. テクニック紹介

3.1. 移動関連

ワリオの横方向速度と移動距離
 ワリオランド3ではワリオのx方向(横方向)の移動距離は移動方向とx速度(横方向の速度)によって決まります。速度と移動距離の関係は次の表の通り。

表1. ワリオの速度と移動距離の関係
速度 移動距離(pixel)
0
0 or 1*
1 0
2 1
3 0
4~9 1
10~17 2
18~ 3
*停止状態からの移動時は0、速度ループの途中に0がある時は1

 速度は十字キーを押して加速することで(一部アクションでは自然に)毎フレーム1ずつ増えていき、アクションごとに定められる一定の値に達したら以降ループします。アクションと速度のループのし方の関係は次の通り。


表2. ワリオの速度と移動距離の関係
アクション 速度ループ "平均移動距離
(pixel)"
備考
しゃがみ歩き、立ち泳ぎ 0,1,2,3 0.5
落下 4,5,6,7 1
歩き、ジャンプ上昇 12,13,14,15 2
ダッシュ、ダッシュジャンプ 16,17,18,19 2.5 自然に加速
 
ゾンビ、膨らむ、潰れる 0,1,2,3 0.5
太る、火だるま、バネ、
雪をかぶる、コウモリ
4,5,6,7 1
ドラキュラ 12,13,14,15 2
お尻に火がつく、氷づけ 16,17,18,19 2.5 自然に加速、
お尻に火がつくは反転時に減速しない
転がり、糸玉、雪だるま 20,21,22,23 3 自然に加速、
糸玉は反転時に減速しない
潰れる(落下) 0,1,2,…,39 特殊

 表より、基本的には歩きまたはダッシュで移動するのが速いです。なお、速度の値は十字キーを離すことで一瞬で0になります。


ワリオの縦方向の移動
 調べていません()。とりあえず、ジャンプは踏み切り直後が最も速く、Aボタンを離した時点で一瞬で速度0になります。


その他の移動
 しゃがみ滑りや泳ぎ、ダメージ等は速度変化せずに移動します。瞬間的に最高速に達するので早くなる場面もありますが、使い所は難しいです。


ジャンプ、ダッシュ、ダッシュジャンプの硬直
 ジャンプをすると1フレーム、ダッシュをすると7フレームの硬直が発生します。特にジャンプは落下時に減速してしまうので基本的に悪手です。また、ダッシュの硬直はダッシュジャンプをすることで最小2フレーム(ダッシュ開始時1フレーム+ジャンプ硬直1フレーム)まで減らせますが、ダッシュの時間は短くなります。
 ダッシュジャンプ等でダッシュのモーションのまま着地するとx速度が0になります。これは、着地直前に逆方向のキーを押すなどしてダッシュをキャンセルすることで防止できます。この場合でも落下以降による減速は生じます。
 以上より、ダッシュやダッシュジャンプは短距離の場合には歩きより遅くなってしまうことがあるため、注意が必要です。


x速度の保存
 ダッシュをキャンセルしたり、移動中に水に入ると、その前の速度が保持されます。保持された速度は着地したり、x速度を変化させることで通常通り初期化されます。つまり、最高でも1フレームしか保存した速度の恩恵を受けられませんが、これが下記の壁めり込みに大きく関わってきます。水中では基本的に速度が変化しないため、速度を保存したままかなり自由な移動ができます。また、扉などで画面移動しても速度は初期化されません。
 ダッシュを壁にぶつかることでキャンセルすると、その前の速度が保持されます。この場合、着地しても速度が初期化されないため、着地硬直や落下移行による減速なしで歩きに移行できます。


往復加速
 十分な助走距離がない場所でも、ダッシュで加速→反転キャンセル→反転中に再度ダッシュ、を繰り返すことで、徐々に加速することができます。これを利用すれば、例え1マスしかない場所でも最高速を得られます。


3.2. 壁めり込み関連

壁めり込み
 ダッシュジャンプで壁に突っ込み、壁の2ピクセル手前でダッシュをキャンセルすることで速度18もしくは19(移動量3ピクセル)を保存します。そして落下中に壁方向に移動するとワリオが壁に1ピクセルめり込みます。ダッシュジャンプに限らず、壁の2ピクセル前で3ピクセル移動できる速度を保存できれば壁めり込みは成功します(下記応用テクニック参照)。
 壁にめり込むと押し上げが発生するため、ジャンプの到達点を1マス高くすることができます。また、壁にめり込むとしゃがみ状態になり、逆キーを押してめり込みを解除しない限り身動きが取れなくなってしまいますが、ワリオの上半身部分に壁が存在しない場合は立ち状態となり、そこからジャンプすることができるため、合計2マス分の高さを稼げます。


垂直跳び壁めり込み
 地上ダッシュを反転もしくはしゃがみ滑りでキャンセルし、垂直にジャンプすることで壁めり込みに移行します。反転の場合は壁手前までダッシュしてから行います。反転中は速度の初期化がされないため、反転を繰り返すことで壁めり込みのタイミングを調整できます。しゃがみすべり中も速度の初期化がされず、速度と無関係に移動するため、x座標の調整が楽に行えます。しゃがみ滑りからの垂直壁めり込みは実機でも比較的成功します。
 いずれの方法も、ダッシュジャンプからの壁めり込みより時間がかかりますが、狭い場所でもでき、移動方向と反対側にある壁にもめり込めるというメリットがあります(図1)。

図1. 垂直跳び壁めり込みの軌跡


空中垂直跳び壁めり込み
 図1のようなマップで垂直跳び壁めり込みする場合、壁の2ピクセル前に地面がないためできないように思えますが、以下の手順で行えます。ダッシュ中に崖から落下した時に、1フレームだけ空中で着地判定が残るために、そこで反転やしゃがみをしてダッシュをキャンセルします。キャンセル後は反転なら反転中、しゃがみなら1フレームだけ着地判定が残るため、その間にジャンプして壁めり込みに移行します。


空中敵踏みジャンプ壁めり込み
 静止状態から敵を真上に投げて、直後に最速ダッシュジャンプをすると、速度19を保存しながら敵踏みジャンプができるので、ここから壁めり込みに移行します。敵踏みジャンプの項も参照。


壁めり込みブロック破壊
 壁沿いに壊せるブロックがある場合、垂直跳び壁めり込みを使うことで、ブロックを頭突きで破壊したり、めり込み後にダッシュで破壊できます。


水中速度保存からの壁めり込み
 ダッシュや、お尻に火がついた状態、転がりなどで水に侵入し、速度18以上を保存します。そして、泳いで壁の2ピクセル前まで移動し、水面から垂直に飛び上がることで壁めり込みに移行します。画面移動を挟むこともできますが、水面を立ち泳ぎすると速度が初期化されるため注意。この方法は実機で最も簡単にできる壁めり込みだと思います。


壁登り
 壁めり込み中に、太る、ゾンビ、バネ、ドラキュラ、雪をかぶるのいずれかの状態になり、ジャンプすると1マス上に移動します。これを繰り返すことで、壁を登ることができます。壁登りは天井も無視できるため、画面外など本来行くことのできない場所にも行くことができ、この場合、画面ずれ状態(下記参照)になったり、別マップにたどり着いたり、バグマップに飛ばされたりします。


3.3. スクロールバグ関連

下方向スクロールバグ
 画面が自由に上下スクロールするマップで、Aボタンを秒間30連打(2フレームに1回)することでジャンプを繰り返すと、画面が下にずれていきます。すぐに連打をやめると画面は元に戻りますが、連打を続けて1画面分程度ずらすと画面がさらに下にずれ、カメラの位置がワリオの位置の2画面下に固定された状態になります(画面ずれ状態)。ただし、スクロール中に画面の上端または下端に達するとそれ以上画面は動かなくなるため、画面ずれ状態にはなりません。
 画面ずれ状態になると、ワリオの位置は実際位置のままですが、敵や動く仕掛けなどはずれた後のものとなります(図2)。これを利用して、道を塞いでいる敵や仕掛けを消し去ったり、本来あり得ない場所で変身したり鍵を取得したりゴールしたりできるようになります。 画面ずれ状態は画面の上端か下端まで移動することによって解除できます。また、マップ移動や、中断セーブでも解除できます。

図2. 画面ずれ状態(右)。ワリオは本来の位置(左)にいる。
敵(ヤリマル)はずれた先のものが出現し、ズレた先の地形に従って移動する。


上方向スクロールバグ
 画面が自由に上下スクロールするマップで水面に浮かび、(泳げる状態で)下キーをタイミングよく押したり離したりすると画面が上方向にずれます。こちらは水中にいる限り画面が戻ることはありません。あとは下方向スクロールバグの場合と同様。


横方向スクロールバグ
 スクロールの右端や左端に達した状態でワリオを画面端に向かって16ピクセル以上移動させると画面端のスクロールストップを突破できます。ワリオを16ピクセル以上移動させる方法はストーブを使ってx座標を修正させる方法しか発見されていません(高速ストーブの項参照)。この状態になると、カメラの座標がワリオの一画面右(or左)に修正され、画面ずれ状態となります。さらに一度スクロールストップを突破すると、元の画面端に向かって移動するだけでさらに画面をずらせます。この方法で画面をずらすと他のマップが表示されることがありますが、出現する敵は元のマップのものになるようです。


3.4 水流突破関連

水面を利用した水流突破
 水に飛び込んだ時に少し沈んでから泳ぎ状態になりますが、沈んでいる間は水流の影響を受けません。これを利用して、斜め下に向かって沈む→斜め上に向かって泳ぐ(水流の影響で真上に移動)→水面からジャンプ、と繰り返すことで横向きの水流を突破できます。


天井を利用した水流突破
 水中で天井に頭をぶつけたときの反動は水流の影響を受けません。これを利用して、頭ぶつける→反動で斜め下に移動→斜め上に向かって泳ぐ(水流の影響で真上に移動)、と繰り返すことで横向きの水流を突破できます。


同時押しによる水流突破
 左右の方向キーを同時押ししながら泳ぐと、左を向きながら右に泳ぎますが、この時水流の影響を受けないため、左向きの水流を突破できます。
 上下の方向キーを同時押ししながら泳ぐと、上に泳ぎますが、この時この時水流の影響を受けないため、下向きの水流を突破できます。


3.5 小技

敵踏みジャンプ
 敵を真上に投げて直後にハイジャンプすると、ジャンプの最高点付近で敵を踏んでさらにジャンプすることができます。投げるモーション中に上+Aボタンを押し続けておくことで実機でも簡単にできます。これに限らず、敵をタイミングよく空中で踏んでショートカットできるケースは多いです。


高速ストーブ
 ストーブに接触した状態で後ろを向いてダッシュすると、何故かストーブを動かせます。このときワリオは反動を受けずにダッシュを続けようとするため、後ろ向きダッシュ(ストーブ動かす)→反転キャンセル→ダッシュ→しゃがみ滑り→ジャンプキャンセル→後ろ向く→ダッシュ(ストーブ動かす)、と繰り返すことでもの凄いペースでストーブを動かせます。
 ストーブが空中に移動して落下するまでには少し時間がかかるため、このテクニックを利用することで、落下よりも速く空中でストーブを運ぶことができます。
 また、動作を高速で行うとワリオがストーブにめり込んでいきます。ある程度めり込んだ状態でストーブの中心に向かって歩こうとするとワリオのx座標がストーブの端に修正されます。また、さらにめり込んで中心を超えると反対側に抜けられます。


ブロック無反動破壊
 壊せるブロックの上の端あたりにダッシュで突っ込むと、反動を受けずに破壊できます。また、地上ダッシュで壊せるブロックに突っ込み、破壊と同時にジャンプすると、反動を受けずにダッシュジャンプに移行できます。
 ちなみにダッシュジャンプでブロックに突っ込み着地すれすれで破壊すると、反動を着地によってほとんど無くすことができ、かつダッシュの速度を保存できるためこちらのほうが速い場合も多いです。


コーナーブースト
 ブロックの角に頭をこすりつけるようにジャンプすると、ワリオがブロックの端に押し出されます。最大で10ピクセルの距離を稼げますが、ジャンプによる減速もあるため、逆効果となることもあります。
 また、ブロックの右側でコーナーブーストした場合、押し出された後の座標が、ブロック端から2ピクセルの位置となるため、垂直跳び壁めり込みに繋げることもできます。


スタートジャンプ
 扉から出た先が空中だった場合でも、1フレームだけ着地状態になるため、その間にジャンプやダッシュができます。


太るモーションキャンセル
 ドーナツを食べたりして太る際のモーションは、敵を吹き飛ばすことでキャンセルできます。同様に地震を起こした際の硬直もキャンセルできますが、地震の時間は変身の残り時間に含まれる一方で、敵を吹き飛ばす時間は含まれないため、逆効果となることもあります。


炎2段ジャンプ
 炎に触れてお尻に火がつくと同時にジャンプすると空中でジャンプできます。


変身キャンセル
 転がり状態やヒップアタックなどを特殊な方法でキャンセルすると、これらの状態を維持したまま自由に動き回ることができます。説明が面倒な上、本TASでは使用していないため、詳細は割愛します。参考資料を参照してください。


続き
PR
Comments
Post a Comment
Name :
Title :
E-mail :
URL :
Comments :
Pass :   Vodafone絵文字 i-mode絵文字 Ezweb絵文字
カレンダー
11 2017/12 01
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]