I'm pleasewait

競技エイミング・FPS/TPS ゲームに関することや取り留めの無い日記など

エイム練習シナリオ「Through Hole Tracking」の紹介

先日、KovaaK's FPS Aim Trainer のシナリオ「Through Hole Tracking」を制作した。

ゲーム内のシナリオ検索バーより、シナリオ名「Through Hole Tracking」または作者名「pleasewait」で検索するとプレイできる。

シナリオ名が示す通り、プレイヤーは中央の穴から射線を通して動き回るターゲットをトラッキングする。そのままでは射線を壁に阻まれてしまうため、ダメージを稼いでスコアを伸ばすには自分も動きながら撃たなければならない。そのため、キャラクターの移動制御と照準の微調整を同時にこなす練習になる。

この記事では、エイム練習メニューの考案やシナリオ制作に興味のある方に向けて、このシナリオの制作背景を紹介していきたい。

制作背景

採点システムの課題

エイムにおいて最も難しい局面の一つが、自分もターゲットも動く中での照準合わせである。もっとも、それは自分の修練が足りていないだけの話であって、キャラクターの移動も込みで調整した方がむしろ楽という方も居られるかもしれない。いずれにしても、「自分もターゲットも静止している」または「自分とターゲットのどちらかが静止している」といった状態とはまた別の難しさが生じることになる。

では、両者が動く練習をしたいと考えたとき、各エイムゲームにおける練習環境はどのようなものだったか。たとえば初期の Aim Hero は、自分のキャラクターを動かすことができなかった。次第に Aimtastic や Aim Lab、KovaaK's FPS Aim Trainer といった自分が動けるゲームが登場する中で、Aim Hero もアップデートによって動き回りながら撃てるようになる。しかし、ここで採点システムが課題となる。つまり、止まって撃った方が楽で高いスコアが出るのに、わざわざ動きながら撃とうとは思えない、という問題である。

また、自分が動けるようになったことで、スコアを稼ぐための特殊な位置取りが生じやすくなるという懸念もあった。たとえば Aim Lab では、開始直後にマップ端まで移動し、ターゲットが出現する角度を狭めてから撃った方がはるかに楽というシナリオも存在した。

つまり、自分もターゲットも動く練習という需要はあれども、それを適切に評価する仕組みを設けることが困難であった。

もちろん、プレイヤーによって目的意識は異なるのだから、スコアを気にせず動きながら撃つ練習を積めば良いだけの話ではある。しかしながら、練習環境や採点システムによる適切な評価の支えを得て取り組んだ方が、練習を積むモチベーションを維持するためにも、自分の今の立ち位置を知って成長に活かすためにも、有意義ではないかと考えている。

「動きながら撃つシナリオ」の模索

KovaaK's FPS Aim Trainer ではシナリオ制作者たちによって様々なアプローチが取られている。たとえば、プレイヤーが動いた距離に応じてスコアが加算される「Distance Traveled」というオプションを導入するもの、またはターゲットから弾速の遅い弾を飛ばしてプレイヤーが受けたダメージ分を減点する(つまり弾を避ける必要がある)ものや、ターゲットに武器を持たせてプレイヤーと純粋に撃ち合わせるものがある。

「Distance Traveled」は他のゲームでは見かけない興味深い採点法であるが、いくつか懸念点が挙げられる。たとえば、移動キーを前後に連打することで視界移動を最小限に抑えつつ移動距離を稼ぐ、といったテクニックを許してしまう。また、スコアが上下した際、その原因が自分のエイムにあるのか、はたまた移動距離にあるのか、分析にひと手間要してしまう(セッション終了時にスコアの内訳は表示されるものの、自己ベストとして記録される合算スコアからは内訳が分からない)。さらには、ターゲットを射撃して得られるスコアと移動距離で得られるスコアの重み付けについて、どの程度が妥当なのか考える必要もある。要するに、このオプションさえつければ直ちに「動きながら撃つシナリオ」の完成かといえば、いささか物足りなさがある。

弾速の遅い弾(ロケットランチャーなど)を回避させるという手法にしても、ぎりぎりまで動かず引きつけてから避けたり、あるいは 2D 縦横シューティングのように、少しずつ移動して避けるといったテクニックが考えられる。もっとも、小刻みな動きをしながら当てる方がむしろ難しいかもしれないが、より継続的に移動を強いるような仕組みの方が望ましい。

結局のところ、純粋に撃ち合わせれば良いのではないか、という考え方もある。時間当たりの練習効率に関しては、リスポーン時間を最短にし、復活したら即交戦できるマップにすれば問題ない。しかし、BOT のエイムをどの程度正確にするかという設定が難しい。100 % 追従するような強いエイムでは移動してもしなくても変わらなくなってしまう。程よい具合に設定しても、スコアの原因が適切な移動による回避にあるのか、あるいは単に BOT が外しているだけの運によるものなのか、分析が難しい。

より良い仕組みを考えた末、たどり着いたアイデアの一つが射線を穴で制限するというものであった。無論、これが「動きながら撃つシナリオ」を実装する上での最適解とは限らないが、少なくとも、これまでの手法よりは取り組みやすい練習になるのではないか。そうして制作されたのが「Through Hole Tracking」である。

「Through Hole Tracking」プレイ画像引用:KovaaK's FPS Aim Trainer on Steam

設計背景

半透明の壁と穴

当初は移動可能なエリアと壁が近かったものの、キャラクター移動に伴う穴の移動が素早く、著しく難しいものになってしまった。キャラクターの移動速度を落とす案も試したが、こんどはターゲットのトラッキングが簡単で物足りない。いい塩梅を探った結果、ある程度距離を置く形を採用するに至った。

穴の大きさは、移動しなければ壁に遮られてしまう程度のものに調整している。大きすぎると立ち止まったままでも十分射線を通せてしまい、題意にそぐわない。小さすぎるとエイムよりもキャラクター操作の比重が大きくなってしまう。

より FPS ゲームらしい状況を再現するなら、壁を透過させずに穴を通じてのみ視界を得られるようにする調整も考えられる。

扇形の斜面

穴から射線を通す関係上、四角いエリアでは射線が通らない箇所が生じてしまう。穴を通じてエリアのすべてに射線を通せるよう、扇形の地形を採用した。

斜面になっているのは、左右だけでなく上下にも移動させるためである。最近のバトルロイヤル系ゲームでは起伏に富んだ地形での撃ち合いが多いため、こうした地形で上下方向に動くことも考慮した練習は需要があるかもしれない。もちろん、平坦なマップを用意して横方向に絞った練習をさせる、という調整も考えられる。

キャラクターの移動速度

このゲームでは、キャラクターの移動速度を ups(units per second)で設定する。このシナリオでは 320 ups とした。あまり詳しくないものの、Quake Champions の移動速度が 320 ups という話を見かけたので、それに準じた*1。練習の負荷を高めるために比較的大きめの移動速度を設定したいと考え、その一例として QC の値を拝借した。

複数のターゲット

トラッキング系のシナリオは、ターゲットの出現が単体か複数かに分けられる。特に、ターゲットが体力を持ち、ある程度ダメージを与えると消失して別のターゲットにエイムし直す必要が生じるシナリオは「Target-switching」系のシナリオと分類される。「Through Hole Tracking」は「Target-switching」の方式を採用している。

「Target-switching」の利点として、フリックとトラッキングの両方の要素を兼ね備えている、ターゲットを倒す達成感を得ながら練習できる、一つのターゲット毎にどの程度時間を要したかを通じてリアルタイムに調子を認識できる、SNS に動画投稿した際にプレイヤーの技量や凄さが視聴者に伝わりやすい*2、といったものが挙げられる。「Target-switching」系のシナリオは楽しさと実用性を両立するポテンシャルを秘めたものと考えており、今後そういったシナリオを増やしていきたいなと思っている。

ただ、複数のターゲットをどのように出現させるのかについては改善の余地がある。同じ空間に出現させてしまうと、ターゲット同士がぶつかって不規則な挙動になってしまうケースが生じる。空間に仕切りを設けるという手もあるものの、リスポーン地点はランダムに選出されるため、同一空間に複数のターゲットが入り込む可能性は残る。あるいは、「Target-switching」系の利点を取る代わりに、単体で無敵化(体力は減らないが、弾を当てた分のダメージはスコア計算される)したターゲットを出現させるといった調整も考えられる。

弾数制限

マガジン 30 発の武器を使用させている。ターゲットを倒すと残弾数が回復するため、ターゲットに当て続けることができればリロードを挟まずに済む(その分、スコアを伸ばせる)。ターゲットは 10 発で倒せる設定のため、30 発費やして倒せなかった場合は正確度が 33 % を下回っていることを示す。このように、セッション終了時のスコア集計を待つことなく、リアルタイムに成果を認識させる指標としての役割を担っている。

「Accuracy Multiplier」という、弾を外すほど減点されるオプションもあるものの、最近のシナリオ制作では武器の弾数を絞る形で間接的に正確度を要求する手法が好まれているようである。弾数制限の利点として、前述のようにマガジン毎の当たり具合を認識できるため、前半はダメでも後半はよく当てられたといった具合に、より細かいフィードバックを得やすい。また、弾を常に撃ちっぱなしで照準を合わせるプレイスタイルに制限を課し、初弾を撃つタイミングも含めてプレイヤーに練習させることができる。

とはいえ、あまりリロード時間を長くすると時間当たりの練習効率が悪くなってしまうため、0.3 秒という短めの設定を採用している。ただ、これでは短すぎて正確度を要求する圧力が弱いかもしれず、調整を要する設定である。

ターゲットの回避運動

ターゲットの動きをあまり小刻みにしてしまうと、穴から見える範囲内で動きが完結してしまい、自分が動いて射線を確保する必要がなくなってしまう。このシナリオでは、切り返しまでの猶予が比較的長めの設定を採用した。

また、ターゲットには稀にジャンプさせるようにしている。移動パターンを増やして練習負荷を高めることが狙いであるが、ジャンプさせずに横移動に絞った練習をさせるという調整も考えられる。

制限時間

トラッキング系のシナリオは制限時間が 1 分間に設定されるケースが多いため、それに準じた。30 秒にする調整もあるが、人によっては物足りなさを感じるかもしれない。

制限時間が短いほど手軽に取り組めるため練習を習慣化しやすい。また、休憩を挟みやすいので怪我の防止に繋がる。一方で、制限時間が長いほど、疲れにくいフォームで安定したプレイを要求できるため、どちらにも利点はあると考えている。ターゲットを倒すたびに制限時間を延ばす設定もあるため、そういった調整を取り入れることも考えられる。

採点システム

ターゲットに与えたダメージ量をそのままスコアとして扱っている。武器の弾数制限を採用しているため、キル数や正確度によるスコア補正はしていない。また、「Distance Traveled」を採用することも考えたが、前述の通り、スコアの分析が難しくなることを踏まえて採用を見送った。ただ、今後このマップがプレイされていくなかで、スコアを稼げる特殊な位置取りやテクニックが発見された場合には、対処の一つとして取り入れることも考えられる。

今後の課題

穴によって射線が制限されている関係上、プレイヤーはターゲットと逆方向に動く必要がある。これは実戦において、半身を遮蔽物で隠しながら飛び出してきた相手を狙うような動きであるが、両者が平地で回避運動を取りながら勝負するような局面、すなわち自分とターゲットが同一方向に動く際の対処を練習することができない。そういった回避運動を取らせる設定はあるものの、程よい具合に時間を調整しないと、いつまでもターゲットに追いつけず穴から射線を通せない事態となってしまう。

また、複数のターゲットがあったとしても、その出現や動き具合によっては、ターゲットに射線を通すまで時間を要する場合がある。時間当たりの練習効率を考えると、そういった時間はない方が望ましい。「Target-switching」系のシナリオを推していきたいとは考えているものの、ターゲットを一つにして無敵化する「Tracking」系シナリオの手法を採用する方が、「Through Hole」系のシナリオには相性が良いのかもしれない。

そして、このシナリオに限った話ではないものの、シナリオの難度をどの程度にするべきかについて考える必要性を感じている。いくら負荷が高くて練習になるといっても、各々にとって適切な負荷でなければ続かないし、得られるものも少ない。他のシナリオのように、三段階程度の難度に分けてそれぞれ投稿するという手もあるかもしれない。

あとがき

以上、このシナリオの制作において考えてきたことを紹介した。万人に適合する練習メニューを作るのは難しく、今後様々な調整をしてくれる方々が現れてくれるとありがたい。シナリオ編集のやり方については、次回の記事で「Through Hole Tracking」を改変するという題材で紹介したいと思う。

*1:How to set projectile speed in Units Per Second? https://steamcommunity.com/app/824270/discussions/0/1694917906659354766/

*2:これは練習というよりも、競技としての考え方かもしれない。「〇〇さんのプレイ動画を見て始めました」といった声がある通り、動画の見栄えは新規流入に影響を及ぼす大切な要素の一つであると考えている。