下野動物園

下野動物園

ブログの説明を入力します。

Amebaでブログを始めよう!
 hujisan主催の大会に関して、koujanさんのこのツイートに対する返答です。と言っても恐らく本人はこのブログを見ていないでしょうが、他にちょうどいい場所も無いのでとりあえずここに書き残しておきます。なお、ぼくが勝手に書いているだけですので他の大会運営者が同じことを考えている保証はありません。

 彼の言いたいことは次の2点のどちらかあるいは両方だと推測されます。
・自分の書いたルールを勝手に使うのはやめてほしい
・ルールを他からの丸パクリで済ませるような大会は信用ならない

 まず1点目。大会ルールの文章というのは独創性の出にくいもので、流用しても大半の人は気に留めないでしょう。もちろんそれで気分を害する人もいるかもしれませんし、そうした価値観が間違っているなどというわけでもないですが、koujanさんがどちらに属するかは我々にはわかりません(現在こちらから連絡を取ることもできないので)。あくまでも確率的に問題ないだろうと判断しました。もし文章の使用中止や引用元の明記を望む場合は、その旨をはっきりと伝えて頂ければすぐに応じます。

 続いて2点目。丸パクリと言っても、エントリーやチーム分けの仕方、貢制限、配信ルールなど少なからず変更点はあります。それらについては大会関係者の間でよく話し合った上で決めています(ただし大会概要を除く)。特に文明ピックのルールは、議論が白熱しすぎて固定ビルド制という訳の分からない方向に進んだ末、現在のUP杯とほぼ変わらない形に落ち着きました。
 恐らくkoujanさんは「大会ルールを自分達で考えて作る」という工程そのものに価値を感じているのではないでしょうか。大会に参加するわけでもないのに横から口を挟んでいるぼくもこれに近いものがあります。一方、hujisanを始め他のメンバーは、大会を成立させ楽しむことが主目的であって、ルールは「必要だから作るもの」という認識が強いでしょう。そのような考え方を前提とする場合、既存のよくできたルールを流用するのは手抜きではなく真っ当なやり方です。前述したように、大会ルールはどうやっても完成物にそれほど差が出ないものですから。
 要するに、結果だけを見るか過程を重視するかの食い違いから誤解が生じているのではないか、というのがぼくの推論です。
https://www.dropbox.com/s/1594iu3czp5ec4t/Age%20of%20HotKey.zip?dl=0

【これは何?】
aocのホットキーを非常に高い自由度でカスタマイズできるツールです。
使用の際にはAutoHotKeyを事前にインストールする必要があります。

現在動作テストしてくれる人を募集中です。

【使用例】

・半角/全角やCapsLockなどゲーム内では設定できないものをホットキーとして使う
・適当なTCを選択してcキーを長押しするだけで、全てのTCに必ず1つずつ農民生産予約を入れる
・全ての暇農民を一瞬でまとめてナンバリングする(技術提供:ラスタバナナ社)
・負けた時の言い訳をマクロのバグのせいにする
etc

【詳しい紹介】
前回の操作量の記事で以下のように書きました。
>例えばShift+Ctrl+Aのように普段使わないものをホットキーに振っておき、
>外部マクロか何かを用いて特定の条件下でこのキー入力を送るようにすれば、
>実質的にどんなものでも「ホットキー」として使うことが出来ます。

しかし、例えば「キー○○を押すとキー××を入力するようにし、キー××をゲーム内のホットキーに設定」というような単純な方法を用いると、ホットキーの有効範囲を設定することができません。
そのため、チャット中にも干渉してまともに入力ができなくなる、「TC選択中にキー○○を押したときだけ実行」などの設定ができない、といった問題が発生します。

当ツールでは、ゲーム内のHUDに表示されているアイコンを識別して状態を判定し、ホットキーの条件設定を可能にします。
そして、実行する動作はAHKのスクリプトによってユーザーが自由に記述することができます。
更に細かい使用方法などは同梱のReadmeを見てください。
 「農民生産を途切れさせず畑を貼り続けていれば内政は伸びる」、「当たり前のことが当たり前にできれば誰でも強くなれる」といった話をよく目にします。しかし実際にできていない人が(上級者と呼ばれる人たちですら)大勢いるわけですから、それは当たり前でもなんでもないのです。ではなぜ実践できないのかと言えば、いわゆる操作量が足りていないことが原因なのは明らかでしょう。このゲームは“リアルタイム“ストラテジーですので、あらゆる操作には時間的なコストが発生します。兵の強さを純粋な性能だけでなく資源コストも含めて考えるのと同じように、農民生産予約などの行動選択についても時間コストまで含めて考慮するべきです。

 操作量という言葉はかなり曖昧にぼかされがちですが、以下ではAPM(Actions Per Minute)とほぼ同義に用います。すなわち、時間あたりにこなせるタスクの量という意味です。操作量が多い人の例としてはmasa4さんが挙げられます。彼の手にかかれば、敵が自陣に来た瞬間に資源場を急造の柵でガードするという荒業も朝飯前です(その結果、芸術的な陣作りになっていることがよくありますが)。

 ここで問題なのは、操作量さえあればそれだけで十分操作が上手いと言えるかどうか、ということです。時間コストを全く考えない場合、やる価値がある操作はいくらでも存在します。農民生産はもちろんとして、兵を一匹単位で掴んで弾を避けたり、波状投石で交易路の邪魔な森を焼くなどの操作も含まれます。しかし、これらを全てやろうとすれば当然プレイヤーの操作量の限界を遥かに越えてしまいますから取捨選択が必要です。この選択の仕方によって結果は全く変わってくるので、操作量だけでなく操作配分というものも合わせて考慮しなければ意味がありません。

 ではこれから、操作量と操作配分の2つの要素について詳しく掘り下げていくことにしましょう。まずは操作量についてです。aocはマウスとキーボードを使ってやるようにできていますから、全ての操作は「カーソルを動かす」か「キーを押す」の2種類だけに分類できます(ただし、マウスのボタンを押すのも「キーを押す」に含めます)。カーソルを動かす操作は更に、カーソルの位置を用いるものとカーソルの移動方向を用いるものの2種類に細分できます。例えば画面上のボタンを押したりユニットを掴んだりする操作は前者、カーソルを画面端に移動させる操作やマウスジェスチャー(aocではサポートされていないですが。)は後者にあたります。

 後者は目をつぶっていてもできるようなものですし、誰がやっても大差ありませんので以後議論の対象外とします。厄介なのは前者の方で、これを素早く実行するためには精密なaim力が必要になります。更に、aocにおけるマウス操作は(視点スクロールを除いて)全てが前者に該当します。これに関するより詳しいことは、操作配分について考えるためにも必要となるのでそちらで触れます。

 ではaim力を高めるためにはどうしたらいいか、といきたいところですが、残念ながらそれはわかりません。そもそもぼく自身のaim力がかなり下層に位置するレベルです。そのため以降ではaimが必要な場面を極力減らすという方向で話を進めていくことになるでしょう。

 というわけで、「キーを押す」操作の話題に移ります。これを速めるために重要なのは、考える時間を減らすこと、そして手を動かす時間を減らすことです。考える時間を減らすというのは、「家を建てるためにはB→Eで…」などと思う前に無意識に手がキーを押しているレベルにしましょうということです。これは慣れの問題ですので深く言及しません。手を動かす時間を減らすというのは主にホットキーの設定に関する問題です。

 以前記事を書きましたが、雑すぎるのでここで改めて書き直すことにします。手の移動距離を減らせばいいわけですから、当然第一に考えるのは使う頻度の高いホットキーを密集させて配置することです。そのために必要な、各コマンドを重要度によって分類するという作業は既に行いましたが、その妥当性にはだいぶ疑問が残ります。例えば学問所ジャンプは城主ではたまに弾道学を押す程度でほとんど帝王専用ですが優先度高に分類しました。一方、遠投の梱包/組立も同じく帝王専用のコマンドですが、帝王だけで見ればかなり使用頻度が高いにも関わらず優先度低に分類されています。この他にも色々とおかしな点はありますが、曖昧な経験則に頼る話になるのでやめておきます。ホットキーの使用回数の統計でも取ってみたらおもしろそうですね。

 第二に考えるべきは、手の移動の中でも特にマウス・キーボード間の往復を減らすことです。よって、極力片手だけでホットキー操作を完結できるようにするために、距離が離れている2キー以上の組み合わせは避けたほうがいいでしょう。ただし2キー以上の組み合わせとは、単にShift+Pのような修飾キーとの同時押しだけでなく、小屋ジャンプと兵生産のように合わせて使うことが多いホットキーのセットも含みます。

 ホットキーに関する制約条件についても触れておきましょう。各コマンドには、この状況下でホットキーを押した場合にのみ発動する、という有効範囲があります。設定画面に表示されているグループのうち、ゲームコマンドとスクロールコマンドはゲーム中のあらゆる場面で有効です(これを便宜上グローバルコマンドと呼ぶことにします)。一方それ以外のコマンドについては、特定のユニットや建物を選択しているときのみ有効です(ローカルコマンド)。有効範囲がかぶっている複数のコマンドに同じホットキーを割り振ることはできませんから、重複が許されるのはローカルコマンド内の異なるグループに属するものだけです。いくつか例を見てましょう。
 ☓フレア-暇農民に移動(グローバルコマンド-グローバルコマンド)
 ☓小屋に移動-ユニットを生産(グローバルコマンド-ローカルコマンド)
 ☓農民生産-TCの鐘を鳴らす(TCコマンド-TCコマンド)
 ○騎士を生産-弓を生産(馬小屋コマンド-弓小屋コマンド)

 重複のないように割り振るためにはホットキーが最低いくつ必要かを考える場合、重要なのはグローバルコマンドの数と建造コマンドの数です。建造コマンドはローカルコマンド内の全グループ中で最もコマンド数が多いため、建造コマンドの分のホットキーを確保すれば他のローカルコマンドもそれを使いまわすだけで済むからです。参考までに、グローバルコマンドは42個、建造コマンドは25個で計67個です。このうち、前回の記事で不要と分類したものと海関連のコマンド(計14個)を除くと53個になります。一方で、アルファベット、ファンクションキー(F10以外)、ホットキーに使える特殊キー(Tab、Del、マウスホイールなど)を合わせると44個あります。組み合わせキーや記号キーも合わせればもっと数は増えますが、前述したように押しやすさの都合があるのでこれらはできるだけ使う数を抑えたいところです。

 ところで、aocでは全く使われていないキーが結構な数あります。半角/全角、Caps Lock、無変換などは左側の使いやすい位置にあるキーですが、ホットキーに振ることが出来ず非常にもったいないです。しかし、例えばShift+Ctrl+Aのように普段使わないものをホットキーに振っておき、外部マクロか何かを用いて特定の条件下でこのキー入力を送るようにすれば、実質的にどんなものでも「ホットキー」として使うことが出来ます。上に挙げたようなキーはもちろんのこと、半角/全角+数字キーの組み合わせや、マウスジェスチャーだって利用可能です。

 そして今一番熱いのは、マウスボタン+マウスホイールの組み合わせです。aoc業界では、ホイール前後には暇農民/暇兵ジャンプを設定すると良い、という謎の言い伝えが存在し、ぼく自身も始めたばかりの頃にこの設定にしたままずっと使ってきましたが、はっきり言ってそれは重大な損失です。ホイールというのは連打するのに最適な作りになっています。また、当然マウスの上にあるわけですから手の移動によるロスはほぼ0で、更にもう片方の手は完全に自由に別の操作をすることができます。暇農民ジャンプでこの性質が活かされるのは、帝王戦で過剰な農民をまとめてDELするという極一部の場面に限られます。そんなものよりもっとよく使うのがあるでしょう。小屋ジャンプ/兵生産です。

 ぼくの場合は建造コマンドをデフォルトからあまり変えていない(それで慣れてしまった)ため、小屋関連のコマンドを一箇所に固めることが難しく、いちいち両手でキーを押して兵生産をしていました。しかしこれを、ホイールを転がして小屋ジャンプしながらキーを押して兵生産、あるいはその逆、というようにすれば劇的に快適になるはずです。

 ではより具体的に、ホイール回転は小屋ジャンプか、兵生産のどちらに割り振るべきでしょうか。それを考えるため、生産予約を入れるときによく使われる3つの流儀を挙げておきます。
 1.ホットキーで小屋ジャンプしながらホットキーで生産
 2.クリックで近場の小屋を選択しながらホットキーで生産
 3.ホットキーで小屋ジャンプしながらボタンクリックで生産
ホイール回転を小屋ジャンプに設定した場合は3の方法が、兵生産に設定した場合は2の方法が使えなくなります。ホットキーで小屋ジャンプする場合にはどこに飛ぶか自分で決められないので、ある特定のエリアの小屋にだけ生産予約を入れたいときに不便ですが、2の方法はこのデメリットを受けません。したがってこの観点から見れば、2の方法を残せるようにホイール回転は小屋ジャンプに振るのが良いと言えます。更に嬉しい事に、小屋は戦士、弓、馬、包囲、神殿、城の6種類ありますが、これはマウスボタン{左、右、どちらも押さない}とホイール前後で実現できる組み合わせ3☓2=6通りと一致します。ただし、小屋ジャンプがグローバルコマンド、兵生産がローカルコマンドであることに着目すれば、ホイールを小屋ジャンプに割り当てることで他のコマンドに使えなくなるというデメリットもあります。

 以上でホットキーに関する話、そして操作量に関する話は大体言い尽くしました。予想外に長くなりすぎてしまったので操作配分の話(本当はこっちがメインになるはずだったんですが。)はまた次回にでも回そうと思います。


     ____________
    ヾミ || || || || || || || ,l,,l,,l 川〃彡|
     V~~''-山┴''''""~   ヾニニ彡|       出す・・・・・・!
     / 二ー―''二      ヾニニ┤       出すが・・・
    <'-.,   ̄ ̄     _,,,..-‐、 〉ニニ|       今回 まだ その時と場所の
   /"''-ニ,‐l   l`__ニ-‐'''""` /ニ二|       指定まではしていない
   | ===、!  `=====、  l =lべ=|
.   | `ー゚‐'/   `ー‐゚―'   l.=lへ|~|       そのことを
    |`ー‐/    `ー――  H<,〉|=|       どうか諸君らも
    |  /    、          l|__ノー|       思い出していただきたい
.   | /`ー ~ ′   \   .|ヾ.ニ|ヽ
    |l 下王l王l王l王lヲ|   | ヾ_,| \     つまり・・・・
.     |    ≡         |   `l   \__   我々がその気になれば
    !、           _,,..-'′ /l     | ~'''  次回の記事は
‐''" ̄| `iー-..,,,_,,,,,....-‐'''"    /  |      |    10年後 20年後ということも
 -―|  |\          /    |      |   可能だろう・・・・・・・・・・ということ・・・・!
    |   |  \      /      |      |