DASの基本

ここでは、テトリスにおけるDASについて概説します。

DASとは?

DAS (Delayed Auto Shift) にはいくつかの意味が存在し、文脈によって使い分けられます。いずれの意味でも、日本語では「横タメ」と呼称することがあります。

多くのテトリスでは、横方向に入力をし続けた時、キーボードのキーを押し続けた時の文字入力と同じような挙動を示します。つまり、まず入力が始まった瞬間に横に1マス移動し、その後一定の間を置いてから、入力が途切れるまで短い間隔で移動し続ける、という振る舞いです。

まず、この横移動のシステム全体を広くDASと呼ぶことがあります。

このシステムは、テトリスの操作性の向上に大きく役立っています。もしこれが搭載されていなかったら、端までミノを動かすために連打をすることが必要になってしまいます。

また、「間を置いてから」「短い間隔で移動し続ける」という要素は非常に重要なものです。押し続けても横移動の間隔が長い場合、レベルが上がり高速に落下する中でミノを端まで持っていくことが難しくなります。一方、1回目の移動から2回目の移動までの「間」が存在せず、最初から短い間隔で移動し続けるとするとどうでしょうか。横に1マス移動したい場合、横を押してからすぐに離すという操作を行わなければなりませんが、離すまでの時間が少しでも長くなってしまうと、その間に2回目の移動が行われてしまい、意図した位置に移動できない、ということになります(これをミノが「滑る」と表現することがあります)。

つまり、この「間があること」はミノの小回りに影響し、「間隔の短さ」はミノの移動速度に影響することになります。この「間」「間隔」の時間をそれぞれ定量化した値のことをそれぞれ「DAS」「ARR (Auto Repeat Rate)」と呼びます[1]

また、このようなシステムを実装するために、ゲーム内部に、横を入力し続けている間加算されるカウンター(変数)が存在することがほとんどです。これをDASカウンターと呼び、省略してDASと呼んでしまうことがあります。横を入力し続けることで素早く移動できる状態に移行することを「DASが溜まる」と表現したり、新たに横移動の入力を行うことで、このカウンターをリセットさせることを、「DASが切れる」「DASがリセットされる」と言ったりします。

ゲーム間の横移動システムの比較

ゲーム DAS ARR サンプル
テトリスオンライン (横移動4) 110 ms (≒7 f) 55 ms (≒3 f)
ぷよぷよテトリス 11 f 2 f
TGM (初代) 14 f 1 f
NESテトリス 16 f 6 f
GBテトリス 24 f 9 f

NESテトリスにおけるDAS

上の表にある通り、NESテトリスにおけるDASは16フレーム、ARRは6フレームです。ゲームボーイ版ほどでは無いですが、他のゲームに比べてかなり遅く、高速域でミノを端まで持っていくためには不十分です。

しかしNESテトリスには、この困難をある程度克服できる仕様が存在します。それは、

  • DASカウンターは左右で共通
  • DASカウンターは、ミノの落下中にのみ更新される
  • ミノの落下中、新たに左や右だけを入力した時にのみ、DASカウンターが0にリセットされる
  • 横を押し続けても壁があってそれ以上移動できない場合、DASカウンターは最大値をとり続ける
  • 壁方向に新たに横を入力した時に、即座にDASカウンターが最大値となる

ということです。

この特徴的な性質を活かし、様々なテクニックが考案されてきました。これからの記事では、それらを一つずつ紹介していきますが、その前に予備知識として、NESテトリスのDASカウンターについてもう少し詳しく学んでおきましょう。

NESテトリスのDASカウンターは、0から16までの値を取ります。新たに横が入力された時には、これが0にリセットされ、ミノが1マス移動します。その後、横が入力されているフレーム毎にカウンターが1加算されます。カウンターが15または16の状態で、更に横が入力され続けていると、カウンターが10にセットされ、ミノが1マス移動します。なお、カウンターの最大値が15ではなく16となっているのは、上に挙げた仕様の4つ目と5つ目に該当する場合にカウンターの値が16となるためです。

DASカウンターが0~15に増加するまでの間がDASの16フレームとなり、10~15を繰り返す間がARRの6フレームとなっているわけです。

今後の記事では、DASカウンターが0~9の値を取る間の状態を「未チャージ状態」、10~16の値を取る間の状態を「チャージ状態」、15または16の状態を「フルチャージ状態」と呼ぶことにします。画像においてはそれぞれ、赤、黄色、緑の色で示すことがあります。


  1. 前者を「DAS Delay」、後者を「DAS」と呼ぶ流派もあります。「60Hz DAS」と書いてあればこちらです。ややこしいですね。 ↩︎