2021年9月5日日曜日

チートを許すな、革命だ、選挙に行け

掲題の件、またぞろチーターが湧いた様なので書きます。


僕は、ゲームは上手く付き合えば自分を成長させてくれるツールになると考えています。

自分の過去のプレイから悪かった部分を発見できる能力と、それを毎日少しずつ改善していける努力は、ゲームの成績を上げる定番セットですが、これと同じ方法でテストの成績も上がりますし、それだけでなく社会に出てから独りで生きていく上で基礎とも言えるスキルでもあります。

FPS等のチームという、全く関係性の無かった人達が集まって作った即席の組織の中で自分の役割を果たし貢献していく、あるいはリーダーとして組織をまとめるという経験は、10代20代のレベルでの現実生活では貴重なもので、かならずその後の自分にプラスになります。経験を得て血肉となった人生哲学は、その人のレベルを一段も二段も上げてくれると思います。

そんな社会貢献とか自身のキャリアなんてどうでもよくて、日々テキトーに、そこそこ楽しく生きていれば満足な人も多いと思います。しかし今はそんな考えでも、いざ自分にとって守るべきものができたときには次の世代に自分が何か残してあげなくてはと思うようになりますし、あるいは老いて静かに死ぬ頃には、一度しか無い人生をもっと真剣に生きていればよかったと後悔します。僕は15年前からネットゲームを始め、これまでプロになって収入を得たり、人気になっていい思いをしたことは全くありませんが、それでもネットゲームで失ったものより、ネットゲームから得たもののほうが圧倒的に多いと断言できます。


ですがチーターはゲームからこの様な利益を全く得られていません。勝つことで一瞬の満足は得られるとは思いますが、もちろんその勝利が本当の自分の能力や努力の証明でないことは知っているので、わずかばかりの承認欲求が満たされるのみです。チームに入ったとしてもチートを使い続けて承認を獲得し続けなければならず、その様な偽りの人格が他人と正当な関係性を築けるとは思えません。言ってみれば犯罪者が犯罪者であることを隠して生活するようなものです。いつ自分の真の姿が露見するのかと自らの影にも怯え、いざそのときに周りの人が自分を非難する夢を見ては怯え、他人が制裁を受けるのを目の当たりにして我が事のように怯える。例えば初心者チームに入ってチヤホヤされると気持ちいいかもしれませんが、自らの実力はそれら初心者と同等以下であるため指導力を発揮できず、かと言ってチーターであると告白するわけにもいかないので表層の関係に終始する日々を送るのみ。あるいは上位のチームに入って高いスキル集団の一員となったことに一旦は満足しても、彼ら/彼女らとは根本的にゲームに対する姿勢が異なるわけですから、いずれベクトルの違いが明確になり破綻するのは目に見えています。

チーターの皆さんには、ゲームから得られる利益というものは、決して他人から与えられるものではないということに気付いてほしいと思います。ネットゲームが今日の様な市民権を得る以前からFPSを真剣にプレイしていた人は既に気付いていることですが、他人から何か言われたり、思われたりすることが嫌で自分の気持ちに嘘を付くことは、決して自分の為にはなりません。他人からの評価ではなく、自分で努力してここまで来たという自負こそが自分を支えるものでありこの世を生き抜く糧になるのです。

これを書くと甘いと思われる人もいるのは重々承知していますが、我々が本来憎むべきはチートツールであって、チーター(チートを使う人)ではないと考えています。たしかにチーターは最大限に譲歩しても人間として未成熟と言わざるを得ませんが、チートはチーターがゲームから学べる機会を意図的に奪っていると考えます。犯罪者も更生すれば社会に復帰して貢献できる様に、チーターもチートを使うのを止めて真摯に努力すれば、ゲームから利益を得られるはずです。我々は更生した元犯罪者を元犯罪者という理由だけで迫害してはならないし、元チーターを元チーターだという理由だけで遠ざけてはならないと考えます。

ただし、チーターが悔悛し更生を志すのであれば、まず謙虚な心で自らの過去の行動を自省し、偽りのない気持ちを告白し、周囲に協力を依頼し、自分の真の実力でもってゲームに取り組まなければならないと思います。その様な姿勢を見せ続けることで、またコミュニティに受け入れられた元チーターも数多くいると思います。これに対して表向き反省したように見せかけつつ実態はチートの使用を否定し、転生し、再びチートを使ってプロになろう、注目を集めようと企画するのは、ありていに言ってチート依存症の状態(病気)であると考えます。

例えばアルコール依存症は否認の病とも言われ、依存症に陥った人間の定番セリフとして「いつでもやめられる(自己を過大評価)」、「大した問題ではない(問題の矮小化)」、「昨日は飲まなかった(例外探し)」、「仕方なく飲んでいる(他責)」、果ては「どうせ自分は変わらない(自己否定)」、「酒が悪い(?)」と言った発言が挙げられます。(?は言い訳にもならない)

これに対してチートを使用したプレイヤーの言い訳についても、「チートなんか使わなくても元々俺は強い(自己を過大評価)」、「チートを使うのは普通のこと(問題の矮小化)」、「確かに以前のゲームでは使ったがこのゲームでは使っていない(例外探し)」、「相手もチートを使っているのに自分だけ否定されるのはおかしい(他責)」、「努力して目立っている他人が許せない、その努力を無駄にしてやりたい(自己否定)」、「兄弟のPCだ(?)」、「中古のPCだ(?)」、「(証拠は無いが)hackされた(?)」、「友達にアカウントを貸した(???)」、とほぼ内容は一致しており、チートも否認の病ではないかと思います。

依存症からの復帰の第一歩は、自らが依存症であることを認めることにあります。依存症であることを否定する人は、あらゆる方法を使い否定しようとしますが、チートを使っているにも関わらず否定して転生し、再度チートを使う人は自分の力だけでは依存症から抜け出せない病気の状態であると考えています。

繰り返しますが、チーターからの復帰の第一歩は自分がチータであると認めることにあります。闇に堕ちたチーターを社会復帰させるためには、彼ら/彼女らが現実に根ざした人間社会関係の下で、何故自分はチートを使用しているのかという自身の根本の問題を直視し、生き方を変えることが必要だと思います。しかし現実問題としてPCゲームはチーターによって破壊された、あるいは破壊されつつあり、コミュニティにとってチート対策は喫緊の課題であるために、チーター個人へ攻撃が向いてしまうことも理解しなければなりません。

ですが一介のプレイヤーがチーターに対して個々にチートの使用を止める様に要求したところで既に述べてきた通りチーターは依存症(病気)の状態であるので、自らの判断で止めることができません。10年前と比べてesportsの興隆等によりゲーム人口が増えたことで軽い動機からチートに手を染めるプレイヤーも多く、その結果チート開発者の経済的利潤も増えるため、チートツールの品質、種類、入手性は今後益々増していくものと思われますが、人の弱い心に付け込んだ需要-供給関係に対してコミュニティ、ゲーム会社、議会(法律)が有効な対策を打てていないことが、根本問題であると考えています。

短い目で見れば例えばプロプレイヤーにおいては実名、住所、顔写真入りの身分証、転生に備えたVC音源等の提出を義務付けると言った対策が出るかもしれませんが、それらは短期的にプロシーンを守ることにはなっても、ゲーム自体は破壊され続けると思います。

むしろよりマクロ的な問題解決策を取るのが適切で、コミュニティが一体となって主体的にムーブメントを起こし、ゲーム会社、議会議員、行政、団体、病院、研究者等ステークホルダーに対して行動変容を促す(例えばアンチチートに対する研究費助成、チートの害についての周知活動、チート開発者の摘発・処罰についての国際的枠組み、チート使用者のケア体制の構築等)ことができれば、よい方向に変わっていくのかもしれません。


ただチーターを追い詰めても得るものはないからチートを憎めと言ったところで、たくさん努力してきたプレイヤーに月に13.99ユーロ払えば勝てるという資本主義のシステムは到底許容できるものではありません。実際一人の犯罪者に全体が悩まされること自体、資本主義体制が破綻している証左であり、我々労働者階級が労働基準法を無視したブラック企業の下でマルクス主義的な意味で搾取される一方で、休日出勤とサービス残業を強いられ疲弊した労働者の弱みに付け込んでチートという名の麻薬を売り上海のタワマンでワインくるくるしているチート開発者はブラック企業の社長同様明確なクラークです。万国の労働者が団結する社会主義革命でしかこの問題を打倒(以下略)。。。

最後少しだけ左に寄ったかもしれませんが、いずれにせよ何かを変えたければ、誰かが変えてくれるのを待つのではなく、自ら第一歩を踏み出すしかありません。チート対策を社会に求める人は一見遠回りに見えますが、今年の秋に行われる衆議院選挙時に、地元の候補者全員のSNSに、投票の参考にするためという理由でゲームにおけるチート問題をどう考えているか質問を送り、最良の回答を得た候補者に投票する考えを伝えるとよいかもしれません。国会議員は基本的に国民全員に対して仕事をする必要はなく、そのため国民は議員に対して無能の評を与えがちになりますが、実は議員は自らを議員たらしめている支持者に対してはしっかりと利益を与えています(そうでなければ支持者からの支持を失い落選する)。例えばある議員の支持者の大半が空飛ぶスパゲッティ・モンスター教の信者であったとすれば、議員本人がそれをバカバカしいと思っていたとしても、必ずその宗教を養護する行動を取ります。今の政府がコロナ問題等で若者寄りの政策を取らないのは政府が無能なのではなく単に若者が投票に行かないため支持者となり得ないから無視されているだけですので、この様な社会を変えるためには若者の投票率を上げることが必要です。(投票先はどこでもよいので)必ず選挙に行きましょう。


さて今チーターである君へ、こどもの頃は自分の失敗や社会の失敗を親や大人の責任にできたかもしれません。チートに依存する君にも、チートを使わなければならない苦しい理由があるのだと思います。しかし学校を出ればもはや自分は自分で救わなければならず、18歳になって選挙権を得たら否応なく今度は君自身がその失敗した社会の一部になるのです。君がいつの日か自分自身や特定の誰かや社会ではなく、チートそのものを憎むことができるようになれることを祈ります。

2021年8月15日日曜日

投げ物開発について part2

 part1はこちら

2章 効果

前章では成功率は再現性に依存することを説明しました。

この章では、効果的な投げ物について、様々な視点から書いていこうと思います。投げ物を開発する際や、これまでなんとなく使っていた投げ物について改めて考える際に、参考にしてもらえればと思います。


#2-1 時間軸

前章では再現可能性が主な議題でしたが、実戦では再現性だけでなく投げるまでの速さも求められる場合が多くあります。

下に示す通りnukeのventを降りるためのSGは、2Fのheavenにいる敵の視界を遮るのに有効ですが、HUTの上にいる敵には有効ではありません。そのため時間的に敵がHUTにポジショニングすることができない開幕直後に投げると効果的ですが、試合の途中で投げてもHUTへの対策ができていないため、これだけでは不十分な場合があります。

(図1:nukeの開幕vent降りSG)


つまり同じ投げ物でも時間によって効果に差が生じます。特に開幕の投げ物については1秒投げるのが遅いと全く効果の無い場合も多く、精度を多少犠牲にして投げるまでの速さを取る場合が多々あります。

開幕のTラッシュを止めるために投げるmolotovは、最大で5人の敵の足を止めることができますが、試合途中で敵がバラけている状態のときに同じ場所に投げても、その効果は5人より少なくなりますので、効果は小さくなります。

(図2:開幕Rを止めるmolotov ※これだけでは止まらない。

投げ物は相手が投げたら返すと効果的ということがよく語られますが、これを時間軸の文脈で語ると、相手の投げ物の効果が自分の投げ物の効果より先に消えてしまうために効果的であると言えます。(後述する通り投入資源の差という文脈で語ることもできます)

SGの効果時間は約18秒、molotovの効果時間は約7秒のため、(18×5)+(7×5)=125秒はmap上で通行しにくい場所を作ることが可能です。現実的にはひとつの場所に投げ物をスタックさせることは難しいことですが、infernoのbananaやoverpassのB Longなどの狭くてmap上重要なポジションについては投げ物を重ねる作戦が取られやすいです。

他の投げ物と同じタイミングで投げることで効果を高めることも可能です。set smokeでサイトへ入りやすくしたり、molotovを複数の場所に投げて敵の隠れる場所を限定させたり、FBを前と後ろに投げたりすることがその代表例になります。

(図3:trainのBサイトに侵入するため2つのSGを投げる)

(図4:昔ミーハーな人達がこぞって真似したB site全焼molotov)


投げ物開発とは、常に時間軸を意識したものでなければなりません。
もしBラッシュを止めるためのmolotovであれば、開幕何秒後でどのエリアを燃やせば効果的なのかを把握した上で、そのエリアに最短移動ルート上から投げ込めるmolotovを開発することが必要です。

(図5:奥に投げ込むことでアパートへの侵攻を防ぐ)

上図5はmirage Bの開幕molotovです。部屋の奥に投げ込むことでキッチン以外のB アパートをクリアすることができます。

set smokeであれば、展開後速やかにサイトに侵入できる様な位置から投げることが必要です。この意味において一般的なmirage A setのオーダーは改善の余地があると言えます。

またfakeで使用する投げ物については、できるだけ本命側から投げると刺さりやすいと考えている方も多いと思います。これは時間軸の観点から語ると間違いではないのですが、overpass A⇔B fakeで考えるとわかる様に、投げ物が飛んでくる方角で大体どこから投げているかバレてしまうので、時間以外にも投げ物が描く放物線についても考慮が必要です。
(図6:ASからheavenに投げてもどこから投げているかすぐバレる)

またSGとFB、molotovやHE等、複数の投げ物を同じポジションから投げることができれば、一人で投げ物を重ねることができます。例えばset smoke投げた後に同じ立ち位置から投げるFBを開発することで、より素早く投げ物を投げることができます。
(図7:train Bは大体この辺りから投げることになる)

特にsmokeについては着地後に展開する仕様になるので、overpassの様な天井が高いmapでは投擲後にキャラクターを移動させ、smoke展開と同時に別の位置からFBを投げる等、時間差で投げ物を重ねることも可能です。


#2-2 意味

成功率、時間軸と共に意識しなければならないのは投げ物の効果です。

(図8:coilから移動する際もダメージを与える)

上図はtrainのB setで使われるmolotovですが、この様にcoilから追い出した後も継続的にダメージを与える広がり方で投げるのか、それとも階段下~coilのラインのみを燃やす投げ方なのかで、効果(この例ではダメージ量)に違いが出てきます。開発する際には成功率、時間軸だけでなく、効果についても許す限り最大の成果があげられる様に考えられたものでなければなりません。

許す限りというのはこれまで述べてきた通り投げ物によって求められる精度が異なるため、ある程度のレベルで妥協しても許容できる場合があるからですが、それだけでなく現実世界の時間も有限なため、ある程度のレベルまで到達した投げ物をブラッシュアップするよりも、次の投げ物を開発したり、別の課題に時間を消費する方が試合の勝率を上げることができるからです。ときどき難易度の高い投げ物を必死に練習している人もいますが、投げ物はあくまで試合に勝つために投げるものですので、優先度を意識した上で練習しましょう。


それぞれの投げ物の意味を考えることで、効果的な投げ物について一般論を語ることができます。即ちsmokeについては上下左右の壁まで煙が到達するとより効果的、molotovについては対象のエリアを広く燃やすとより効果的、FBについてはブラインドさせる位置が多い且つ効果時間が長いとより効果的、HEについてはよりダメージが与えられるとより効果的になります。

(図9:上下左右の壁まで煙が達しており効果的)

上図9は旧cacheのA Main smokeになりますが、左右の壁際からSiteを覗こうとしても煙で見えないため、見えるsmokeと比較してより効果的な投げ物になります。一方で下図10の様なsmokeの場合は上側に隙間ができており、図9と比較して上方向に効果が低い投げ物といえます。

(図10:上に隙間が確認できる)

上図10は実戦ではほぼ影響はない隙間のため特に問題となりませんが、smokeはこの様に上方向に隙間ができることが多く、それを相手に利用されることがあります。
mirageのA set smoke投げてもCT箱上に乗られるのが典型的なパターンですが、これを防ぐためには、下図11の様に箱上にsmokeを追加する必要があります。
(図11:CT箱~チケットを無効化するsmoke)

もちろんこの様な隙間をわざと作ることにより相手に覗かせる、あるいは自分が覗くことも可能です。俗に言うone way smokeはこの種類の投げ物になり、他のsmokeの様な視界を遮る効果とは別の意味を持っていると言えます。

(図12:one way smokeを意図的に投げることも可能)

開発に際しても従来の開発知識の延長線上で対応可能ですが、敢えて言えば相手に普通のsmokeと思わせるレベルまで毎回投げるsmokeと似せておく必要があります。上図12のsmokeはA main側から隙間有無の判断がつきにくく、通常の投げ物と混ぜることでより効果を発揮できます。

一方で下図13の様な明らかに怪しいsmokeは単発で投げても相手に怪しまれるため効果は低く、相手のsmokeに混ぜて投げる、投げ物ミスを装う等の工夫が必要です。

(図13:CTが見える)

mapの構造上どうしても左右の壁が完全には隠れない場合もあります。

この様な場合は例えば2個のsmokeを投げて左右を隠すか、あるいは下図14の様にできる限り中央に投げると許容可能なレベルの隙間に収まることがあります。

(図14:僅かな隙間なので走り抜けることができる)

また、上図10と重なる部分がありますが、下図15で上下左右だけでなく前後のsmokeの広がりについても、考慮する必要があることがわかります。この場合、ドア寄りにsmokeを投げるとsite側に広がりが甘くなりますが、site寄りに投げると今度はsite方向に煙が広がりsite裏まで入られてしまう可能性が高くなります。どちらが効果的かについてはその時の状況によって異なります。例えばこの場合、ramp側からドアを見ているにも関わらずsite方向に煙を広げてしまうと敵にサイト裏への侵入を許してしまう確率が高くなりますが、ドアの上で待ち伏せている場合はドアに近い位置に煙を展開しても煙を抜けた敵と戦うことになるのでsmokeとしての効果は薄くなります。またこのような何かの入口となっている付近のsmokeについては、状況によってはクロスを組んでいる味方の視界を切ることにも繋がりかねません。

(図15:意外に難しいどの位置にsmoke投げるか問題)

molotovは覚える数はsmokeより少なく1map20~30個程度かと思いますが、検証せずに適当に投げると端まで燃え広がらず重大なクリアリングミスを引き起こすことがあります。CSGOのmapはよくできていて、きっちり端まで燃やそうとすると精度の高いmolotovが求められることが多く、数の割に面倒な種類の投げ物になります。
(図16:旧cobbleのやぐらの上まで燃やすmolotov)

もうあまり知っている人も少ないかと思いますが、上図の通り旧cobbleのALやぐらは生半可なmolotovでは上の段まで燃え広がりませんでしたが、1pixel単位の精度で投げることで100%燃える様になります。
(図17:spawnを100%燃やすmolotov)

(図18:屋根下を100%燃やすmolotov)
(図19:箱の両側が燃える様に調整した投げ方)
(図20:強ポジKennyを燃やす)
(図21:D2 Aサイト奥を燃やす)

上図のようなT側の攻めで相手を炙り出してから攻撃する使い方の他に、下図の様にCT取り返し時にsiteに投げる場合にも高い精度が求められます。

(図22:site奥まで燃えるmolotov)
(図23:窓下が燃えるmolotov)

その他にも、train Bに代表されるような解除妨害としても利用が可能です。上述の通りmolotovの効果時間は7秒なので、数秒を争う設置後のせめぎあいの中では有効な手段となります。
(図24:いつものmolotov)
(図25:A mainからsite内を燃やすmolotov)

もちろん開幕Rを防ぐことや、set smokeに対してmolotovを返すことも重要な効果の一つです。#2-1で述べた投げ物を返すことの効果について意味軸の観点から見ると、投げ物というのは購入代金の他に、獲得しているエリア、投げる時間(移動時間、照準を合わせる時間、setであれば合わせる時間)等有限の資源を投入しなければ投げることはできません。例えばmirage A setをするためにT3人がA rampに集合してSG3個、molotov2個、FB2個と45秒を費やし、3人分のエリアも失ったのに対して、CT側がmolotov2個、SG1個、FB2個を返せばそれは費用対効果でTを上回ることになります。

今は修正されているのかもしれませんが一応molotov仕様である黒煙の差を利用する使い方もあります。これはmolotovを遠くから見ると黒煙で炎の先が見え難く、逆に近くからmolotovを見ると黒煙が映らなくなるため炎の先の敵が見やすくなる仕様を活用して、視認性の差で敵を一方的に撃つ方法になります(Smokeの端と似てますね)。ちなみに設定をshader/effect高にするとそもそも黒煙が薄くなります。それと投げ物開発とは全く関係ないですがmolotovを投げて侵入する際、燃えている場所をクリアリングするのはやめましょう。敵がいるなら燃える音が出ています。


HEはもちろん相手にダメージを与えるための投げ物ですが、CTについて言えば開幕Rを止めることや、10程度ダメージを与えてM4のhead1発圏内に持ち込むことが重要視されるためあまり精度は求められず覚えることはあまり多くありません。使うタイミングは少ないですが下図の様に設置中に投げることで相手にダメージを与えることもできます。

(図26:アパート設置に対してダメージ大)

一方TについてはCTの隠れているポジションに投げることになるため、定点を覚えることが必要になります。Tのメイン武器であるAKはhead1発なのでHE不要論もありますが、半分以上HEでダメージを与えておけばheadshotが出ない場合でも2発で敵が沈みます。また下図の様にHEを味方と同じタイミングで投げることで相手を吹き飛ばすことができるため有効と考えます。ただし、HEの特性上1箇所に投げることしかできないので、CTに隠れるポジションがたくさんあるtrainの様なmapでは有効性は下がります。overpassやinfernoの様なmapで多用すべきだと思います。

(図27:隠れる場所の少ないA siteにHEを重ね投げ)
(図28:CTにHEを重ね投げ)
(図29:coilにHEを重ね投げ)

さて、decoyについては触れないので最後に一番難しいFBの話です。(もうお腹いっぱい。。。)

FBの効果はこの動画に書いてある通り炸裂地点からのキャラクターの角度と距離で変わりますが、FBを開発する際にこれらはあまり気にする必要はありません。最も気にかけることは、どこを見ている敵に与えるFBなのかを意識して開発することだと考えます。

(図30:AS/AL対角への対策)
(図31:張り付きへの対策)

上図30と31で示した通り、infernoのT字に侵攻するFBでも敵の位置をどこに想定するかで投げるFBが変わってきます。恐ろしいことに、全ての場所についてこれと同じことが言えます。つまりあるmapでCT側の待ちポジションが50個あるなら、FBをマスターしようとすれば50個のFBを覚える必要があります。上述のT字の場合ですと張り付き、屋根上下、AL対角、AS対角の5箇所が主な待ちポジションですが、例えば張り付きでも前に張り付くのと、後ろに張り付くのとでは当然ですがキャラクターの位置が異なるので、投げるFBによってはどちらか一方は喰らわないことも十分にあり得ます。よくyoutubeに紹介されている様なFBは検証不足であることも多く、ある位置には十分に効果的であるがそこと同じくらい重要な位置には全くダメージが入らないということがよくあります。できるだけ1つのFBで複数のポジションをカバーできる投げ方を(限られた時間で)開発していくのが、FBの最も難しい問題のひとつだと考えています。

この難しさを示すために追加で例を示します。overpassのALの待ちポジションとしてよく採用されるのは、T側に近い順から張り付き、岩、木、トイレ出口、cafe上下(花壇上下)の6箇所になりますが、これら6箇所全てをカバーできるFBはありません。これには幾つかの理由がありますが、そのうちの一つは張り付きや岩とcafeの距離が離れすぎているため、岩に与える様なFBはcafeには届かず、cafeに与える様なFBは岩のポジションからすれば背中になるので喰らわないという単純なものです。また、木のポジションは木を壁をみなして右壁・左壁を作ることができるため、どちらの壁にも喰らう様なFBを投げることができないということでも説明ができます。(一応木の真上に投げると両壁喰らうと思われるがやはり張り付きや岩にとっては背中のFBとなる)

(図31:張り付きと岩への対策)
(図32:木の右とcafeへの対策)
(図33:トイレ出口とcafeへの対策)

上図31が張り付きと岩への対策、上図32が木の右とcafeへの対策、上図33がトイレ出口とcafeの対策、と言った様に、6箇所全てをクリアリングしようとすれば複数のFBを投げる必要があり、とても現実的とは言えません。

そのため敵がecoラウンドでDE張り付きがありそうであれば張り付きや岩対策のFBを投げる、味方が後ろに付いてきていれば岩や張り付きはカバーに任せられるので複数kill取られる恐れのある木へFBを投げる、またAWPが見てると想定するならばcafeやトイレ出口対策のFBを投げるといった、状況に応じた選択が必要になります(これもまた難しい)。

これらをmapの全ての場所について行わなければならないのです。更にsite内はFBの天敵である壁も多く更に待ちポジションが増えるためFBだけでは解決することができず、SGやmolotov、HEなどと組み合わせて投げ物全体で各ポジションに対応することになります。以下に待ちポジションの系統毎に与えるFBの作り方のコツを挙げますが、当然FBだけでは不十分ですので実践ではSG等との組み合わせや投げ物のタイミングについても考える必要があります。

①壁を利用しているポジションに対しては壁の逆側に投げる

(図34:左壁を作っているので右にFBを投げる)

(図35:右壁を作っているので左にFBを投げる)

上図34、35の様に、片側に壁を作るポジションの場合には、壁側は視界が防がれているのでFBは当たりにくい状態になっています。そのため壁とは逆側にFBを投げることで簡単にダメージを与えることができます。

②敵の待ちポイントが多い場所は上から全体に与える

(図36:出口と敵の間で上空にFBを投げる)

(図37:A Main出口の上にFBを投げる)

上図36、37の様な敵の待ちポジションが多いトンネル出口等の場合は、出口の上や出口~敵の間にFBを投げることが効果的です。待ちポジションは多いですが見ている場所は同じなので、出口付近にFBを投げることで多くのポジションにFBを与えることができます。なおFB対策をしている敵の場合は出口を見ている時間帯と見ていない時間帯があるので、この投げ方ではタイミングによってはダメージが入りませんし、①の様に壁に張り付かれている場合もダメージが入らない場合がありますので、過信はできません。

③トンネル内など高さが使えないポジションや張り付きに対しては目の前に落とす

(図38:トンネルの前にFBを投げる)

(図39:トンネルの前にFBを投げる)
(図40:張り付きの前にFBを投げる)


(図41:張り付きの前にFBを投げる)

上図38~41の様に敵が角待ちしているような状況や、トンネルなどで上に投げられないシチュエーションでは目の前にFBを入れることが効果的です。その際不可避FBとなる様に投げ方や立ち位置を調整するのがベストで、例えば上図38はheavenから打たれないB site内のポジションから投げていて一度壁に反射させる投げ方を採用していますが、この投げ方は反射音で敵に気づかれる可能性があります。改善点として右クリジャンプ投げや後ろ走り中間投げ等を使って引き続きheavenに打たれない位置を維持しつつ、壁に反射させずに投げる方法を模索するべきでしょう。

FBはもちろん敵の視界を奪うことが一番の目的で、これまでTがどの様に相手の視界を奪うかを述べてきましたが、実際の使い方としては後ろを振り向かせることが目的のFBや、FB後に敵が再ピークするのを狙う目的、fake用途として使って相手に投げ物を消費させるFB等もあります。本題とそれますが自分が投げるのがどのFBなのかについて、試合中コミュニケーションを取る必要があるでしょう。

またCT側にもラッシュを止める、投げ物を返して相手の侵攻を止める、取り返しFB等の使い方があるので、これらについても具体的な投げ物の研究が必要になります(例えば自分がよく守るポジションから投げられるFBを開発する、取り返しの位置から投げられるFBを研究する等)。

その他FBに関するtipsとして、壁や地面への反射音を消すために銃を撃つ(味方に撃ってもらう)、下手投げの場合はなるべく空中で炸裂するように上を向いて投げるまたはジャンプ右クリ投げにする、投げるときに音が出る場所と出ない場所が存在する(もうFIXしているかも)、味方のFBを避けるときは角度と距離を考えて白くならないギリギリの範囲で避ける(必ずしも180℃避ける必要はない)、投げた後どの順番でクリアリングするのか話しておくなどがよく議題に上がると思います。

FBについて色々述べましたが大事なことは敵の位置を予測してその敵に与えられるFBを投げることです。そのFBをキルにつなげられるように、味方や他の投げ物と組み合わせるとmuch betterです。


以上、CSGOはやるべきことが多すぎてnadeにかけられる時間はそこまで多くはありませんので、信頼できる人とチームを組んで分担して取り組むべきでしょう。本当にチームゲームやでぇ。

2021年8月13日金曜日

投げ物開発について part1

日に日に薄れゆく記憶に身を任せてもよかったのですが、折角たくさん練習したことでもあるので、新しい投げ物を作る際に気をつけていたポイントを書き残しておこうと思います。
(2020年5月から仕様変わっていたら申し訳ないです)
ちなみに僕はだいたいの投げ物は30分以内に作ることのできるnade星人でした。aim星人に生まれたかったけど仕方ないね。

僕が投げ物開発で重視しているのは、「成功率」と「効果」の2点です。

どれだけ有益な投げ物であっても10回に1回しか成功しない曲芸みたいな投げ物は実戦的ではありませんし、逆に100%成功する投げ物であってもまったく相手に効果がないのであれば、これも意味がありません。

以下に成功率も効果も高い投げ物について、考えていきたいと思います。


1章 成功率


プロプレイヤーでも1試合(25Rとする)に平均1.5回は投げ物ミスがあるので(僕調べ)、毎ラウンド2個投げ物を投げると仮定すると成功率は97%程度となります。一般人の場合は成功率95%以上が理想だと思います。経験上練習で成功率が95%を切る投げ物は、本番では90%を切るようになりあまり信用できないので再考しましょう。

成功率を上げるためには、再現可能な投げ物を投げる必要があります。
CS:GOにおいては、同じ立ち位置、同じ照準位置、同じ投げ方をすれば、投げ物が再現可能になります。(molotovの広がりは再現しません。一応molotovは移動キーの方向に燃え広がりますが同じ広がりにはなりません。)
そのためこの章では、投げ物の成功率を上げるために立ち位置、照準位置、投げ方の3点について考えていきます。

#1-1 立ち位置について

立ち位置のことを始点と呼ぶことにします。

下図1の様に、2つの壁で挟まれた角に張り付く場合が、最も易しく、再現性も高い始点の作り方だと思います。この場合、WASD移動によりプレイヤーモデルを角に押し込むだけで位置に付くことができます。
(図1:mirage T Baseから投げるヤシSmokeの始点)

ここで注意したいのは下図2の様に、壁に張り付いてもそこから壁を登っていく場合があり、その場合は角張り付きによる始点は再現性の低いものになります。
ただし後述する通り完璧な再現性を求める必要のない投げ物も多く、ある程度の誤差が許される場合にはこのような始点でも十分に役割を果たすことができます。
(図2:overpass Bの壁張り付きの例)

より精度の高い始点を求められているときは照準合わせを使います。下図3はわかりにくいですがinfernoのBananaから投げる1way smokeの始点です。照準合わせの場合、クロスヘアはドット(点)に替えて行うと確実です。
(クロスヘアの例:cl_crosshairsize 0; cl_crosshairdot 1; cl_crosshairthickness 2; cl_crosshair_drawoutline 0)
(図3:一番下を見ている状態で照準を合わせることで正確な始点となる)

ドットにしないまでも図4の様に下を向いて始点を合わせる方式は、壁の無いポジションで多用されます。
(図4:左上に合わせることで精度の高い始点となる)

1つの壁で合わせる方法は、壁の無い部分が流動的になりますので投げる度に立ち位置に若干のズレがあります。しかし殆どの投げ物はそれほどの精度を必要としませんので、これでも問題ない場合が多いです。
下図5は旧cacheの有名な開幕Smokeを投げる場合の始点ですが、これはタイヤに体をくっつけることにより立つ位置を決めています。この場合では毎回タイヤの真ん中に立つようにしていても実際の始点は少し前目だったり後ろだったりするので、毎回同じSmokeにはなりません。
(図5:タイヤの前に立つことで許容される精度内でA Main Smokeを投げることができる)

もう一つ同じ例として下図6のinfernoのボイラー(階段下のこと)に投げるmolotovの始点を挙げます。毎回扉の中央を狙って立ちますが、実際は若干前後した位置に立つことになると思います。
(図6:扉の中央から少し外れても許容される精度内のmolotovを投げることができる)

特殊な例として他のオブジェクトに注目することで始点を合わせる方法もあります。下図7はbananaに投げ物を投げるポイントですが、壁を向いて位置を合わせてからbanana側に振り向く時間が無いという実戦上の理由でこの様な方法で始点を合わせています。
(図7:背中を壁に接触させた状態でドアが半分隠れるまでD移動する)

また、これは直接投げ方とは関係ありませんが、投げ物を構えている間は敵に対して無力ですので、実務上極力体が隠れる始点を選ぶべきです。
(図8:ここからCT Smokeを投げることができるが敵に見つかりやすい)

実際に新しい投げ物を考える際は、安全な位置から投げられることを優先して考えます。
2つの壁があればベスト、駄目なら1つの壁を使い成功率が許容できるかを評価し、これも駄目なら壁を使わず下を向く等精度の高い照準合わせ、これも駄目なら安全な場所は諦めて危険な場所から投げることを考え同じ試行錯誤を繰り返すといった順序で繰り返し検討します。

#1-2 照準位置について

照準位置のことを照準点と呼ぶことにします。

目印があれば毎回そこに照準点を合わせることで再現可能な投げ物になります。
目印はわりと何でも利用でき、map上の構造物やオブジェクトの位置関係、太陽、壁や壁の傷、柵、木や草、キャラクターの手やHUD、果てはスコアボードなんかも使用可能です。

下図9はmap外の構造物(クレーン)に照準点を合わせています。このようなmap外の構造物や壁の傷などはshader設定が低いと表現がカットされていることがありますので、lowの場合は照準点探しに苦労する場合があります。その例が下図10の取り返しFBで、設定が高であれば電線があり簡単に合わせられますが、低であればFB缶合わせにする等の工夫が必要になります(僕はlowでしたhighは240FPS出なくて...)。
(図9:クレーンを目印にすることで安定した取り返しSGを投げている)

(図10:設定がlowの場合はここの電線が消える)

次の例はmap上の構造物に照準点を合わせる簡単な例です。図11は壁のマークに、図12は壁の角を目印に照準点を合わせることでX軸、Y軸の合わせが完了するため素早く正確に投げることができます。
(図11:簡単にA siteに投げることができる。)

(図12:壁の角に合わせることでX軸・Y軸を再現可能にしている)

適当な目印を見つけることができない場合は、次策として構造物の縁や中央(3本の棒がありそこの真ん中)を目印にX軸、Y軸を決めることが多いです。
(図13:Bの設置ポジションに投げることができるHE)

同様に柵・木・壁などもX軸、Y軸を決めるために利用します。
(図14:柵を目印に開幕B Rを防ぐmolotovを投げている)

(図15:草を目印にpartyからのピークを阻止するmolotovを投げている)

(図16:壁に向かって投げることで跳ね返りを狙える)

オブジェクトの位置関係とは上記の方法でも適切な照準点が見つからない場合や、よりインパクトのあるオブジェクトが近くにある場合に、その物体からの位置関係を利用するものです(図13もこれと同じ考え方)。その物体を起点として照準点を大まかに決める場合と、クロスヘア1個分右といった決め方や、X軸のみ起点に合わせてY軸はまた別の物体を起点として扱う等の使い方があります。
(図17:掲示物の頂点をY軸起点、掲示物右端とトンネル壁面との中間をX軸起点としている)

(図18:2つのオブジェクトの頂点をY軸起点とし、X軸はその中間としている)

(図19:ピンク~赤色に見える物体の右端を起点として少し右に照準点を合わせている)

下の図20はX軸の起点とY軸の起点がともにオブジェクトの位置関係を利用しており、その2軸の交点が照準点となります。
(図20:これでsiteの中にSGが飛んでいくので便利)

キャラクターを使う方法としては下図21の様にグローブの指を特定のポジションに合わせることで、X軸とY軸を固定させることができます。これはT/CT・グローブ・viewmodelによって影響されるため、これらの設定が異なると使えません。
(図21:Tのデフォルトグローブを使いviewmodel_presetpos "1"の場合の合わせ方)

SG展開中は照準点を合わせることが困難な場合があります。その場合は下図22の様に投げ物を利用したり、下図23の様にスコアボードを利用して照準点を合わせます。
(図22:Tの場合の合わせ方。CTは火炎瓶の形状が異る)

(図23:スコアボードの端を利用する。)

このようなHUDを利用する方法はaimの照準を使うよりも高所に合わせられる事が多いため、天井が高いoverpassの様なmapでは重宝します。例として図24を示します。
(図24:SGの缶を利用することで空に照準点を合わせることに成功している)

立ち位置は敵から身を隠せる位置であることが必要なため使えるポジションは限られますが、照準点は豊富なため経験が物を言うと思います。慣れれば投げ物が飛ぶ距離が何となく分かるのでこの立ち位置からならこのくらいの高さが必要だなーそれならこのオブジェクト使うかーとか現場を見ただけで大枠で完成形が頭に浮かびます。

幸い以下のコマンドがありますので、今は初心者にも開発環境が整っていると思います。

cl_grenadepreview 1 //投擲前に軌道を表示する
sv_rethrow_last_grenade  //前回投げたグレネードを再投
sv_grenade_trajectory 1             //グレネードの起動を表示
sv_grenade_trajectory_time 15 //15秒間グレーネードの起動を表示

#1-3 投げ方について

ここまでもまぁまぁ難しかったかと思いますがこれからが更に難しいです。
投げ方はかなり多くの方法があり、ざっくりと分類するだけで18通りの投げ方があります。
僕の呼び方なので表記のゆれは許してください。

動作:投げる瞬間に立っている(静止している)か歩いているか走っているかの3通り
投げ方:左クリックか右クリックかその中間かの3通り
ジャンプ:ジャンプするかしないかで2通り
(3通り×3通り×2通り=18通り)
キャラクターの動作投げ方ジャンプ呼び方使用率top5
立っている
左クリック
しない立ち投げ#1
するジャンプ立ち投げ
右クリック
しない右クリ立ち投げ
する右クリジャンプ立ち投げ
中間
しない中間立ち投げ#4
する中間ジャンプ立ち投げ
歩いている
左クリック
しない歩き投げ#3
する歩きジャンプ投げ
右クリック
しない右クリ歩き投げ
する右クリ歩きジャンプ投げ
中間
しない中間歩き投げ
する中間歩きジャンプ投げ
走っている
左クリック
しない走り投げ#2
する走りジャンプ投げ#5
右クリック
しない右クリ走り投げ
する右クリ走りジャンプ投げ
中間
しない中間走り投げ
する中間走りジャンプ投げ

もっと言えばしゃがみを入れた状態だとか動いている方向(WASD)によって飛ぶ距離も変わりますし、中間投げ・ジャンプなんてのはデジタル的に距離が変わるので厳密に言えばとても18通りなんかでは済まされないのですが、以下大事な投げ方のみをピックアップして説明していきます。

①立ち投げ

一番簡単な投げ方で、キャラクターが静止した状態で左クリック(+attack)だけを押して投げるとこの投げ方になります。特に説明は不要かと思います。
(図25:左クリックで投げるとこの程度飛ぶ)

②右クリ立ち投げ

①と同じく静止した状態で右クリック(+attack2)を押した場合が右クリ投げになります。これは下手投げとも呼ばれ飛距離が出ませんが、カウンターFB等で使われます。

(図26:infeのALへのカウンターFB)

下手投げを使う場合は照準点を上にして高さを稼ぐことがほとんどだと思います。
効果のところでも出ると思いますが空中で炸裂しないと音でバレるため。

③右クリジャンプ立ち投げ

下手投げは下図27の様に、主にジャンプ投げと組み合わせて使うことも多いです。

(図27:ジャンプすることで高さを稼ぎ空中で炸裂させている)

④歩き投げ、走り投げ

投げ物の飛距離は投げる瞬間のキャラクターのVEL値に依存します。(VEL値とは
即ち歩きや走りを入れながら投げることで飛距離を稼ぐことができます。

(図28:一瞬Wキーを入れて前に進むことで少し飛距離を伸ばす)

走りのキーを一瞬入れただけでVEL値は少しは増えます。MAXのVEL値になるまではデジタル的に飛距離を調整することができるので、1瞬だけキー入力する場合と、2、3歩走る場合で飛距離は変わります(たまに使う)。

図28はWキーを押す場合ですが、飛距離を減らしたい場合はSキーを押して後ろ走り投げも可能ですし、かなり再現性と使い所が難しいですがA/Dキー方向に走ることでキャラクターの左右に投げることも可能です。Sキーは下図の通り壁越しに投げる際に、③の応用である右クリ走りジャンプ投げと比較検討した上で利用します。(これは壁を越せるジャンプ投げ+右クリでは飛距離が出ないため走りを取り入れるあわせ技です。)
(図29:Sキーを入れることで高く短く飛ぶため壁越しに投げることができる)

下図30も走り投げですがこちらは本来走り投げしたい位置に目印が見当たらない場合に使う方法です。



(図30:D2 Asiteへの渡りSmoke)

D2の中央に投げるSmokeを安定して投げるにあたり、毎回3枚目の位置に立つことができればこの位置から走り投げを行い高い成功率を保てるのですが、この始点は壁や地面で目印を付けることが難しいため、1枚目の壁とドラム缶に挟まれた位置に立って、2枚目の様に照準点を作り、そこから3枚目の位置までWキーだけで走ることで高い再現性を確保しています。

もう一つ例として図31の歩き投げを示します。



(図31:Overpassの開幕Smoke)

こちらも同様に3枚目の始点、照準点が毎回担保できるのであれば歩き投げで高い成功率となりますが、それは難しいので1枚目の位置を始点とし、照準点が2枚目から3枚目の位置に来るまで歩いて投げる(正確には時間短縮のため途中まで走って最後歩き投げ)ことで高い成功率を確保しています。

この種の投げ物はスタートの照準点と投擲する照準点の2つを覚える必要があり、また動きが入るので当然静止して投げる場合より成功率は下がりますが、それでも実戦で90%以上の成功率になると思います。
それと当然ですが開発が難しいです。最初から意図して開発するというよりも、基本的には特定の場所に投げたいニーズが先にあって、そこへ投げるためにどうするのかを考えて試行錯誤を繰り返した結果この投げ方に辿り着いてしまったという流れが多いと思います。

⑤中間投げ

次に左クリックを押したまま右クリックを押す、あるいはその逆で右クリックを押したまま左クリックを押すと中間投げと僕が勝手に呼んでいる投げ方になります。
これは”cl_grenadepreview 1”で確認すれば理解が容易ですが、左クリックを押した時間だけ飛距離が伸び、右クリックを押した時間だけ飛距離が短くなる仕様で、最大の飛距離は左クリックだけを押した場合の飛距離以下、最小の飛距離は右クリックだけを押した場合の飛距離以上になるので、右クリック以上で左クリック以下の飛距離を飛ばしたいときに使用する投げ方になります。このような使い方のため、大抵は静止した状態で投げることが多いです。(歩き投げや走り投げを使うならそもそも①の立ち投げを使う)
(図32:train B set Smoke)

左クリックでは飛距離が出すぎる場合に、一瞬右クリックを入れることで飛距離を抑えることができるため利用されることが多いと思います。上級nade星人になると、右クリの時間で飛距離を把握してピンポイントで練習していないFBを入れることができるらしいです。ホントカナ?

⑥ジャンプ投げ

ジャンプ投げの魅力はなんと言ってもその飛距離です。
下図は有名なmirageのTベースからwindowに投げるSGになりますが、SGは弾着してから展開する仕様なので天井が許せばベースからmapの半分程度の距離であれば投げることができます。

(図33:開幕Tベースから投げることで大きな威力を発揮する)


(図34:上述の通りoverpassは天井が広いためジャンプ投げが有効)

ジャンプ投げの欠点としては精度の悪さです。ジャンプ中のどの位置で投げるかによって、飛距離が異なるため、毎回同じタイミングで投げることは難しく、感覚を掴むのに苦労します。

ジャンプ投げスクリプトを使って精度を高めることは技術上可能ではありますが、個人的に投げ物の精度は個人のスキルに依存するべきとの考えから推奨はしていません。
これは投げ物を持つときだけ画面いっぱいに十字クロスヘアを表示するスクリプトについても同様です。

余談ですがSteamにおいては唯一神VACだけが公的回答でありそれ以外は個人の良心に委ねられるものですので、対戦相手がマナー違反だろうがハードウェアチートだろうがゴースティングだろうがチーミングだろうが盛りすぎスクリプトconfigだろうが止めることはできません。何ならVACされても転生可能な世界です。その様な現状を許すつもりはありませんが、一個人には止める術がないのが現実です。
ただそこで自らもその様な禽獣以下に堕ちるのではなく、何故人生における貴重な時間を費やしてゲームをしているのかを考えた上で、目的意識を持って自らの行動を律してほしいと思います。ゲームは上手く使えば人生におけるよい友になれるはずです。


さて、このジャンプ投げは精度が悪いため、僕はよく上図30の様な走り投げを使って代用していました。最後にジャンプ投げの代用として使っていた下図35を示します。



(図35:CTを隠すSGでジャンプ投げより精度は高い)

この様に照準点を工夫すれば走り投げでもジャンプ投げと同等の飛距離を出す事ができます。

最後に開発した投げ物の共有ですが、この章で書いた通り再現可能にするためには始点、照準点、投げ方を知らなければなりません。nadeマスターになれば1mapで100個以上の投げ物を保有していることは当たり前なので、面倒ですが管理や記憶のことを考えると動画や写真で共有することが望ましいと考えます。

また立ち位置については、getpos/setposのコマンドが便利です。
getposコマンドで取得した位置情報でsetposするとキャラクターが上から落ちてくる仕様ですので、低い建物内などでは天井に埋まって動けなくなります。
この様な場合は、getposで得たZ軸情報を-50程度してあげると挟まらずに済みます。
(図36:一番右の情報を-50程度するとよい)

大変長くなってしまったので、効果については次の記事に回そうと思いますsry~
part2はこちら