タイピングゲームで高得点を目指そう!

こちらはジャンルなしオンラインもくもく会 Advent Calendar 2021
記念すべき1日目の記事です
https://adventar.org/calendars/6803
まだ参加されていない方は、お気軽にもくもくしに来てください


本題


e-typingというタイピングゲームで微妙に良い点数が出たので、
どうやって達成したのかをまとめました

是非、参考にしてください

キーボードは見ずに打てることができるくらいのキーボード中級者くらいの方向けの記事です



 とりあえず記録画像

e-typing記録

記録は609ポイントです!!
全国トップクラスには全然届いてないけど
そこそこ速いかもしれないなくらいのレベルです

そもそもe-typingって何?という人に簡単に説明すると
ゲームが始まるとお題のワードが表示されます
その画面に表示されたワードを素早く打ち込みます
ミスが少なく速く打ち終わるほど点数が高くなる無料ゲームです

大体スコア200点ほどあれば実務で困ることはないと思われます




1.道具を揃えよう


[キーボード]

何はともあれキーボードが最重要です

現状APC機能付きのRealforce R3一択ですが
値段が無理ならAPC機能付きのRealforce R2にしてください

APC機能というのは何かと言うと
キーを押し込んだ時に押されたと認識する位置を変更する機能です

当然浅く押しただけで反応する方が速く打ったことになるので
高得点に繋がります

とは言うものの
R1と比べて1点稼げるかどうかくらいの違いなので必須ではないです

R2でも厳しく、さらに妥協するとしたらRealforce R1やHHKBなどになってしまいますが、できれば全キー同時押し対応しているものがいいです
RealforceR2以降ならPS/2接続でなくてもUSB接続で多分全キー対応してます

打ちやすいキーボードと言えばLibertouchと言うキーボードもあります
打鍵感は大変素晴らしいのですが、おそらく業務向けの為
残念なことに全キー同時押しに対応しておらず
スムーズに打てる小脳が発達しきった天才でない限り
ゲームでの高得点は望めません
一般人の我々は機器の性能に頼っていきましょう

【参考】主なキーボード
静電容量無接点:Realforce R3 or R2 APC付きのヤツ ⇦ 迷ったらコレ
持ち運ぶなら:HHKB Pro
パンタグラフ:BFKB113PBK ⇦ 安いのがいいならコレ
メカニカル:Majestouch
メンブレン:Libertouch (全キー同時押対応版出してくださいお願いします)


[ディスプレイ]

ディスプレイはなるべくリフレッシュレートが高い物を手に入れましょう
(360hzが理想)

リフレッシュレートはディスプレイに映す映像を1秒間あたり何回切り替えれるかの数値ですので高い方がいいのですが、そもそもゲーム自体が高リフレッシュレートに対応してるのかわからないのと、速くなったところで誤差程度の点数しか上がらないのであまり重要視する必要はありません


[パソコン]

パソコンはシングルスレッド性能がそこそこあれば何でもいいです


[プラグイン]

e-typing plusという非公式のchromeプラグインを入れてください
https://chrome.google.com/webstore/detail/e-typing-plus/oamfkdadogckhpdbhiibkobglkpiligo?hl=ja

お題が表示されてから1文字目を入力するまでにかかった時間(latency)が確認できるようになります

さらに

ワードごとの1分間当たりのキー入力数(kpm)も確認できます

Plugin導入後

latency:お題のワードが表示されてから1打目を打つまでにかかった秒数
kpm:ミスなく打ったらこの点数になる ⇦ メッチャ基準の値になる
rkpm:無視でいい
miss:間違えた打鍵数
WPM:ミスなく打ったらこの点数になる

練習の時にこの数値を何度も悔しがりつつ見ることになります




2.ホームポジションを覚えよう

タイピングする時は手首の位置をできるだけ固定して
指だけを動かしてキーボードを打った方がミスが少ないのですが
様々な文章を打つと当然手の形も変わります

打ち終わったら大体この辺りに指を戻すという
家のような帰るべき場所を作っておき
その戻るべき位置をホームポジションといいます

大体この図のような位置でいいと思います

運指表


どの指でどのキーを押すかもおおよそで記載していますが
このキーはこの指でなければならないという固定観念はなくしましょう
場合によってどのキーも様々な指で押すことになります

四角く黒線で囲ってあるのがスコアを出すためのホームポジションです
指の長さによりますが、指は伸ばさず丸まっている状態になります

大体の人は指が10本あると思いますが、キーボードを打つときは親指を除いた8本しか使わないとかいう人が結構います
両手の人差し指2本だけより8本使って打った方が速いのは、指を移動してからキーを押し込む動作の指の移動時間が減るからです
親指2本も使えば8本からさらに2本分指の移動時間が減らせて高速化できるのが容易にわかると思います
親指を使わないのはもったいないです

親指は違和感があるから使えないとか思うかもしれませんが、
今まで8本やもっと少ない数で練習してきてるので、違和感は当然でます
私も始めは違和感ありすぎてスコア半分以下になりましたが
慣れるので問題ありません
再三言いますが、存在する指を全部使わないのはどう考えても勿体ないです


とりあえずここまでで忘れないで欲しいこと

  • 打鍵ミスを防ぐために、手首の位置をなるべく固定して指を動かして打つ
    ※特に右手側ですが、手首ごと動かした方が速い場合があるので完全固定するわけではなく無駄に動かすのやめましょうという意味です

  • 指の移動時間を削減の為、指は10本全部しっかり使う

  • 無駄な待機時間を減の為、キーを押すときは一番近くの空いてる指で押す




3.入力方法を確認しよう

点数のとれない正攻法での入力方法をしている方が多いので
キーボードの正しい入力方法を理解する必要があります

下記の通り一文字当たりなるべく多く打鍵します


I」 ⇒ 「YI


U」 ⇒ 「WHU」 or 「WU


SI」 ⇒ 「SHI


TI」 ⇒ 「CHI


TU」 ⇒ 「TSU


N」 or 「NN」 ⇒ 「XN

ばった(半音)
「BATTA」 ⇒ 「BALTSUTA」


LI」 ⇒ 「LYI


LE」 ⇒ 「LYE


FU」 ⇒ 「HU」 or 「FU」 (どちらも使う)


KU」 ⇒ 「KU」 or 「CU」(どちらも使う)ごくまれに「QU

例.
「牛のような衣服だと勘違いしてしまった」と打つ場合は
「WHU SHI NO YO WHU NA YI FU CU DA TO KA XN CHI GA YI SHI TE SHI MA LTSU TA」のような感じになります

なぜ、わざわざ打鍵数を増やす入力にするのかというと
e-typingのスコア計算式がWPMに大きく依存するからです
WPM:1分間あたりの入力文字数

このWPMですが、なんとお題のワードが表示されて1打鍵目をするまでのオーバヘッドタイムも含まれてます
1回当たり0.4秒として15回ワードが表示されるので何も打鍵してない6秒が計算対象に含まれます

こうなってくるとワードがなるべく長い方がオーバヘッド時間は変わらず割合は減ることになるので高得点が出しやすくなります
残念なことに、お題はこちらでは決めれない為
勝手に打つ文字を増やしオーバヘッド時間の割合を減らそうという作戦です

また、次で説明がある最適化という考えにもプラスになります




4.最適化は必須!!

指の無駄な動きを極力なくそうという考えが最適化になります

どういうことかと言うと

一本の右手人差し指でキー入力するとした場合
キーを押しこんだ状態から次のキーを押すには
①指を上げる
②次のキーの位置まで指を移動する
③指を下げる
の3アクションが必要になります
この指を上げて下げるという動作はかなり時間がかかります

実際やってみましょう
「7」キーを繰り返し10回押すのと
「1234567890」のキーを10本指でほぼ同時に押すのを比べると
当然ながら、明らかな差で10本指を使った方が速いと感じ取れると思います
指の上げ下げより、別の指で別キーを押す方が断然速いということです

つまり
「かくかく」と打つ場合は「KAKUKAKU」ではなく
「CAKUCAKU」と4キーずつほぼ同時に押すべきですし、
「かこく」と打つ場合は「KA KO KU」や「CAKO CU」ではなく、「CAKOQU」と6キーをほぼ同時に押します
このように素早く押せるキーに変更するのが最適化です

また
「ラブラブ」と打つときRとBを左手人差し指一本で
「RA BU RA BU」と打つとすると
「R」から「B」に指を移動する時間も明らかに遅いということがわかりますこの場合はBキーを右手親指に変えます
この押す指を素早く押せる方法に変えるのも最適化です
(前後のワードによって左手親指の可能性もあるけどちょっと打ちずらい)

指を上げ下げする時間を削ったり、隣のキーならともかく大きく移動する必要がある状態を避けたり等々
速く打つために工夫することは全部最適化です

この最適化作業があとで出てくる練習メニューで
何度も何度も考えることになる重要な考えになります

凄まじい記録を出す人たちの動画とかを見ると
出題されたワードの入力が、後半になればなるほど速くて
とても人間では不可能じゃないかぐらいのスピードで打ち込むわけですが
案外ワードの1打目は遅いです

私はワードが表示されてから1打目を打つのが
0.2秒台前半から0.3秒台前半でかなり速い方です
凄まじい記録出している人達も、この速度出してる人は中々いないんじゃないかぐらいに速いです
このまま練習をつんでいって、ワード後半の速度が同じ速度を出せるようになれば初速の差で勝てるなとずっとそう思ってました

が、

全然違いました

凄まじい記録の人たちは
1打目の前に最適化どうしようかなと考えてる時間がかかってます
そのせいで1打目が遅いのであって
何も考えず打てば同じ人間なので、私と同じかもっと速いと思われます

なので私も初速を捨てて最適化重視にしました
一番最初に貼った609点の画像を改めて見てみましょう

latency確認

latencyの欄が初速です
最初のワードの1文字目打つのに0.512秒かかってます

これはいくらなんでも遅すぎですが、あとで出てくる
「スコアだす時は間違えるくらいなら止まれ」を
実践した結果で0.07秒ほど停止してる結果です

目安としては大体0.4秒台半ばくらいで600点は取れます
計算してませんが、800点も0.3秒台でいけるはずです
つまり初速0.2秒台をたたき出す必要はまったく無く
初速は多少遅くてもいいので最適化を重視した方が結果が出ます




5.同時押しこそ高速化の基幹部分

これまでの話しを踏まえると
「うかうかしている」と打つとき
「U KA U KA SI TE I RU」ではなく、
「WHU KA WHU KA SHI TE YI RU」と打鍵することになります

また、最適化も行い「WHU」を打ち終わった後に右手中指を上にあげてKキーの位置まで移動して押し込むのは時間がかかるのでKは右手薬指で打ちますという話しでした

このワードを一番速く打つには
WHUKA WHUKAS HITEY IRU
と、スペースまでをほぼ同時に打つとして
4回指を下げて上げてを繰り返す必要があります

これだとさすがに脳みその限界を超えてしまいそうなので
WHUKA WHUKA SHITE YIRU」や
WHUKA WHUKA SHI TEYIRU」でもいいです

何にせよ最速の4回と同じ数、指の上げ下げすれば終わるようにしましょう
押す指は近くで余ってる好きな指を使ってください

最適化したワードは1文字ずつ滑らかに打つのではなく、
全キー同時押し対応キーボード使ってるんだからほぼ同時押ししてください

同時押しのやり方は、キーボードのほんの少し上の空中で指を微妙に上下ずらしてその形で指を固定します(先に打つキーを下、後で打つキーを上)
その後、全指を同時に同じ速度で一気にキーの底に叩きつける感じで落とします(指は動かさず手首ごと落とした方が楽です)
そのため、A-Z0-9キーはAPCの位置はすべて一番浅いところで統一して、指の形通りの順番で入力されたと認識されるようにしてください

ちなみに、全国トップクラスで秒間20打鍵ほどです
この「WHUKAWHUKASHITEYIRU」ワードは19文字あるので1秒間に4回指を下げて上げて繰り返すと考えると、
意外と達成できそうな速度ということがわかると思います
1秒の間にボタン4連打してと言われたとしても余裕でできますよね

高橋名人だったら15連打できるので4連打と、残りの11連打分の時間で指の位置を整えればいいだけです

指の位置を整える作業は頭に叩き込む必要がありますので次に出てくる練習メニューをしっかりやる必要があります


注意点

  1. 左右の手の指で同期をとるのは思っているより難しいです
    「FU」と左手人差し指と、右手人差し指で打つより
    「HU」と右手人差し指と、右手中指で打った方が確実に速く打てます
    その為「うふふ」と打つ場合は前後のワードで右手が空いてそうでしたら
    「WHUHUHU」と打つべきです

  2. 一つの指で二つのキーを打つ必要がある場合もあります
    「ピコっと鳴った」と打つ場合「C」は使わず
    「PIKOLTSU TONA LTSU TA」と打ちます
    「IK」「OL」はキーとキーの隙間を打つ感じです
    Realforceキーボードなら傾斜があるので自然と上のキーが先に反応します
    この時、指の腹を使わずにできるだけ指を立てた状態で下のキーに引っかかるようにした方が次のワードに移りやすいです




6.実際の練習メニュー

最初は腕試しレベルチェックで練習を行います
「スペースキーで開始」という画面で「L」ボタンを押して始めてください
現在e-typingにはスペースキーを押して開始すると半音を打つときに「LTSU」と打つと標準入力方式なのに認識しないという致命的なバグがあり反応しません
テスト費用が足りないのかと思って応援の気持ちでとりあえずイータイピング本を買ってみました。多分初心者にとても良さそうです読んでないけど
担当技術者の方頑張ってください!
※e-typingの回し者ではないです

e-typing本が販売されてるよ!


気を取り直して練習方法です

下記8+1の課題で腕試しレベルチェックを行います
 課題1:後半加速するのを意識して打つ
 課題2:初速を速くするよう意識して打つ
 課題3:指を上に上げすぎないよう意識して打つ
 課題4:音をたてずに静かに打つ
 課題5:素早く押し下げる為に力強く打つ
 課題6:打鍵ミスしないように打つ
 課題7:複数のキーを同時に押すのを意識して打つ
 課題8:押し込んだらすぐ指を上げるのを意識して打つ
 課題9:(余裕があれば)上記全部合わせて打つ

この課題に書いてあることを守れば他はどうでもいいというわけではなく、
上記に色々書いてきたことは常に実施してください(特に最適化と同時押し)強く意識する部分を課題としてあげてます

最初の方でe-typingのプラグインを入れたので、ワードごとのkpmが見れるようになってます

課題1つ行うごとに
目標kpmを下回っているワードと
1キーでも誤入力したワードについては
10回連続ミスが出なくなるまで、適当なテキストエディタ(メモ帳、テキストエディット、viなど)に打ち込みます

この時ゆっくり打つのではなく「最適化の指の配置」と、
「押せるキーは同時押し」を必ず意識して素早く打ち込みます
これは頭で考えるというより指が勝手に動く状態に仕上げる目的でやります

やってみたらわかると思いますが、
10回連続ノーミスというのは全然できません
1つのお題に数十分~数十時間は当たり前のようにかかります

すんなりできる人は
よほどの天才なのか、同時にキーを押す意識が足りてません
複数押せるキーは同時に押すという考えを徹底的に意識してやりましょう




7.本番の考え方(ランキングに登録するスコアを出す時)

e-typingのお題はおそらく月曜24時頃に変更されるので、火曜~月曜が1セットになります

私は練習の10回繰り返しが難しすぎてできたことがありませんが、
練習を火曜日から月曜日までやり遂げることが奇跡的にできた場合、
800点を出す実力は間違いなくついています

練習したワードはサクサク打てると思いますが、練習してないワードはどうしても詰まる場合があります

本番は基本的に押し間違えるくらいなら一瞬指を止めてでも間違えないよう打ってください
大体理想では800点くらいは出せるはずなので、0.05秒~0.1秒くらい指を止めたところで600点はとれます

正しいキーと同時に横のキーに少し引っかかってしまったなどならまだマシですが、明らかに別のキーを押してしまう間違えは絶対に避けましょう
押し間違えの減点 + 同時押ししてるので別キーの減点 + 間違えたので打ち直さなければと認識する時間 + 指を上げなおす時間 + 正しいキーの上に指を移動する時間 + 正しいキーに指を押し込む時間もかかるので散々です

私は一回やらかしてますが600点とれてるので1回くらいならやらかしても大丈夫です

得意なワードがいくつかと、練習したワードがいくつか出るまで何度か挑戦すればいい点数が出ると思います




さいごに

純粋な技術を競うので個人的にはタイピングゲームこそeスポーツの代表にふさわしいと思うのですが、中々難しそうです
タイピング界そのものが発展途上であり、今回の内容も長々と書きましたが、説明した打ち方は最善ではありません
もっと速く打つにはどうするかを考えるのはエンジニアの得意領域です
エンジニアの方々にもタイピングゲームを楽しんで頂き、より画期的な作戦が出てくればありがたいです

また、エンジニアでない人も現在では様々な場面でパソコンが使用されておりますので、何をするにしてもパソコンは関わってくる可能性は高いです

タイピングは作業効率に直結しますので、速くなればなるほど優位です
是非とも高得点を目指して頑張りましょう!

※どんなに速くなってもプログラムを書くときはミスを防ぐ為にIDEの補完機能を使ってください。


この記事が気に入ったらサポートをしてみませんか?