アズールレーン赤城加賀自働周回マシーン
はじめに
最近めっちゃUSAの駆逐艦になめられてる
あかんこのままじゃ・・・どうしてこんなことに
こいつらを締めてくれる怖いお姉さんが我が艦隊に必要
怖いお姉さんといえば赤城
赤城さんが指導すればUSAの駆逐艦もおとなしくなるはず
赤城さんを入手するためには、建造じゃでないので3-4周回が必要
でもドロップ率が低すぎて全然でない
手動で周回するのはだるすぎて限界がある
このままじゃ艦隊の秩序、保てないよ・・・
そうだ、自動化しよう
自動化
自動操作の実行環境の準備
-
OSエミュレータの利用
OSエミュレータはOSをパソコン上でエミュレートするソフトウェア。エミュレータ上でソフトウェアをインストールして動かせば、エミュレータを起動しているパソコンからマウスのクリックで操作できます。
アンドロイドの場合、エミュレータは実機ほどの性能はでないとのこと
iOSの場合、エミュレータのできが良く実機と遜色ない性能で動作させることが可能とのこと
今回はアンドロイドでNoxというエミュレータの使用を想定していますが、他のエミュレータでも問題ないと思われます。 - 自動化フレームワークの利用
アンドロイドOSエミュレータ上での実行はパフォーマンス上問題があり遅延等の原因になるそうです。しかしリアルタイム性がそれほど要求されないゲームの操作には問題ないレベルと感じました。もしパフォーマンス上気になる場合はアンドロイドOS上で直接実行し、アンドロイドOS上の操作をプログラムから制御できる何らかのソフトウェアを入れるほうが良いでしょう。Appiumというツールを使うとできるとのことですが詳細はよくわかりません。企業での受け入れテスト等では使われていることもあるとのことですが、個人で使うには情報も少なくまた高機能な分敷居は高そうという印象です。ただしオープンソースで個人でも利用は問題なし。
結論としては非リアルタイムゲームなので(戦闘はオート前提)アンドロイドのエミュレータで性能面は充分。また今回の目的では大したことはしないので高機能なツールを使う必要もなし。
クリックの自動化
クリックできるといってもどうやってクリックを自動化すればいいの?
クリックの自動化はWin32 APIのPostMessageを操作対象のプログラムのMainWindowHandleへ渡してあげることで実現できます。PostMessageを.net frameworkから利用する場合、user32.dllをインポートしてあげる必要があります。
(.netではクリックをウインドウハンドルに渡す関数は実装されてないらしい?)
実際にはクリックしているというかクリックの命令を送っているので実行している間マウスが操作できないとかそういうことはありません。
画像の取得
クリックする対象の画像を取得します。
Win 32APIのGetClientRect, GetWindowRect, ClientToScreen関数でデスクトップ上のプログラムの位置と画像を取得できます。取得した画像をBitmapに入れます。ピクチャボックスにBitmap画像をいれれば表示されます。
(.netではウインドウハンドルからウインドウの画像を取得するやウィンドウのサイズや位置を取得する関数は実装されていないらしい??)
別にそんなことをしなくてもPrintscreenからの画像を取得すればいいのですが、ディスプレイが2枚ありそこからマッチング範囲を設定するのも手間なのでこうしました。後述するテンプレートマッチングのパフォーマンスはマッチング対象のスクリーンの大きさに影響されるので何らかの方法で対象範囲は絞っておいたほうが良いです。
画像のマッチング
取得した画像に対して、プログラムでクリックしたい場所を探してクリックします。
画像のマッチングにはOpenCVのテンプレートマッチングを使用します。
テンプレートマッチングはテンプレートとして用意した画像をマッチング対象の画像から探すというオーソドックスなマッチング手法です。多少画像が伸びていたりしてもマッチングできるらしいです。ただし、例えばテンプレートとして用意する画像が星型をしている場合星型の背景まで含めてマッチング対象とみなされてしまうのでマッチングがうまくいきません。星という形として認識しているわけではなく、あくまでテンプレート画像そのものがマッチング対象としてみなされるためです。そのため、マッチングするためにテンプレート画像は背景を含めないように注意する必要があります。
その他マッチングにおける注意点として、色深度(ビットの深さ)の設定があります。
テンプレート画像とスクリーン画像の色深度が異なっている場合、テンプレートマッチング関数がエラーとなってしまいます。スクリーン画像の色深度は32bitなのでそちらに合わせるようにしました。
キャプチャソフトを使用した場合、色深度が24bitなど32bit未満になっていることがあります。その場合はmspaintで開いて保存するとなぜか32bitになってます。
テンプレート画像とスクリーン画像をマッチングすると、マッチングした範囲が帰ってきます。マッチングした範囲の中央をクリックすることで、ある特定の画像が表示されたらそれをクリックするという処理が可能となります。
Cv2.MatchTemplate(screen, template, result, TemplateMatchModes.CCoeffNormed);
Cv2.Threshold(result, result, 0.8, 1.0, ThresholdTypes.Binary);
Cv2.MinMaxLoc(result, out OpenCvSharp.Point minPoint, out OpenCvSharp.Point maxPoint);
状態遷移の処理
プログラム上ではひたすらループを回しています。
GUIでそれをやると固まっているように見えてしまうため、別にTaskを作成してその中でループを回すようにしています。例えば戦闘中は戦闘中の状態として処理し、戦闘中状態ではひたすら画面の虚空をクリックし続けています。そうするといずれは勝利するので確認ボタンが検出され押されます。
そうすると画面が遷移します。画面の遷移にあわせて、マップにいることが確認できたらマップ状態に遷移し今度は敵艦を探してクリックします。
実際の処理
戦闘マップでの処理
戦闘マップでは敵艦を見つけたらクリックして移動します。
クリックして無事戦闘に入れればいいのですが、上手くいかない場合があります。
例えば移動中に迎撃艦隊に遭遇した場合、移動が止まってしまいます。
また、クリックした敵艦との間に敵艦が存在し敵艦を通過せずに移動ができない場合、移動が失敗します(クリックしても移動できない)。
そのような場合を検知してうまく移動させます。
戦闘中での処理
戦闘中での処理はシンプルでひたすら画面の左端あたりをクリックします。
そして確認がみえたらクリックするだけです。
SorakaでBronzeでキャリーしてSilverプレイヤーになろう
はじめに
LoL日本サーバーSeason7はじまりましたね。
今シーズンも振り分けがおかしいのか半数近くのプレイヤーがBronzeに放り込まれているようです。そんな中うまい人は簡単にBronzeを抜けられるのかもしれませんが、なかなか勝ったり負けたりでDivisionが上がらないプレイヤーもいるのではないでしょうか。
本記事はそんなBronzeから抜けられないで困っているプレイヤーの助けになればと思い記載しました。
結論
結論から言います。
僕はBronzeではSupportロール、そしてSupportロールのうちSorakaをプレーしたほうがいいと思います。
理由
- ワードを利用した視界の大切さが理解できる
Bronzeで勝てない1番の理由は視界を軽視しているからだと思います。
序盤から優勢で勝てると思っていたゲームがベイトや無理なドラゴン・バロンから逆転され負けてしまった・・・そんなケースは稀ではないと思います。Bronzeでのゲームは全体的にワードの数が少なく、視界が取れていません。その上視界が取れていない中でリスキーなプレーをしがちです。そんな中Support以外のロールをプレーしても、ワードで視界を確保する上でできることは限られています。自分がSupportロールをプレーしてワードをおけば、チームのリスキーなプレーを防ぎ勝利に貢献できます。 - 味方チーム全体のヘルスを意識できるようになる
SorakaはUltで味方全体のヘルスをマップ上どこにいるかに関わらず回復することができます。Ultを効果的に使うには味方のヘルスの減り具合を常に確認する必要があります。SorakaでUltが上手に使えるようになれば、自然と味方のヘルスに気を配る癖がついているでしょう。
Soraka以外のチャンピオンをプレーするときも、味方のヘルスに応じてエンゲージするかなどの選択を考慮することができプレーが安定します。 - ハンドスキルがあまり求められない
Sorakaは他のSupportとくらべてもハンドスキルが求められません。
Qはハラスをしつつ回復ができるスキルですが、ダメージ・回復量も大したことがなく相手のADCやSupportにトレードを仕掛けられた場合は回復以上にダメージを受けてしまいます。SorakaのQは牽制として打つ程度で、ハンドスキルを駆使して当てに行くようなスキルではありません。
Eは重要なスキルですが、置くだけで即時発動するため外すことはないでしょう。
Botのレーン戦ではADCの後ろでWで回復しているだけでも貢献できます。特に慣れないうちはWで回復し自分はダメージを受けないことを意識しましょう。
Wで回復しているだけということは、それ以外の時間に味方を助けることができます。具体的にレーン戦で何をしたら良いかは後述します。
すること
以上でSorakaをプレーする重要性について伝わったと思います。
次に具体的にどういったプレーをすればよいか記載します。
マスタリーとルーン
ルーンは普通のAPとARとMRをベースで積んだものでOKです。
マスタリーはキーストーンは風詠みが必須ですが他はなんでもOKです。
キューの入れ方
Rankキューを入れます。
1stはSupport、2ndはFillです。
Supportロールは人気がないため、おそらく8割以上のゲームはSupportでマッチするでしょう。それ以外のロールになってしまったらSorakaはプレーしないように。AAがおそすぎてCSがまともに取れません。適当に好きなチャンプを使いましょう。
チャンピオン選択
あなたのロールは当然Supportです。
BanPickがはじまるまでに素早くSorakaをピックしましょう。
Sorakaをピックしたら、即次の魔法の言葉をチャットしてください。
あなた)My soraka win rate is 100%
あなた)Please ban Blitz
嘘つけOPGGみたけど50%やんけ(笑)みたいなリプライがあるかもしれません。
その場合は勝率が5%アップします。
BanPick
BanPickがはじまりました!
ブリッツクランクをバンしてもらいましょう。
バンしてもらえた場合は、Thank you!とチャットしましょう。
うまくいけば、チーム内が暖かな雰囲気で包まれます。
そしてチーム内で英語によるコミュニケーションがとれることがわかりました。
この時点で勝率60%は硬いでしょう。
ゲーム開始~レーン戦
適当にコインを買ってプレーしてください。
疲れたのでここまでにします。
LOL日本サーバーでBronzeでつらい話
ふえええぇぇ
Bronzeつらいでしゅううう
・各レーンの特徴
なんかもう顔を合わせたら戦ってる。
常に血で血を洗う闘争を繰り広げているのでbotのスコアがやばいことになる。
Mid
jungleがちょっと通りますよ~と素通りすることもある
居場所を奪われた他のレーナーが集まる憩いの地でもある
おわり
Top
何も起こらない or 片方が一方的に勝ち続ける。
大半のゲームにおいてなくてもいいレーン。
・オブジェクト
ヘラルド
20分になるまで場を温める存在。
変な効果音がなり、おっそんなのおったな~と思い出すことも
ドラゴン
急にはじまり、そして味方が全滅する
デワードされるかはサポート次第
Bronzeにおけるサポートの力が試される運ゲー要素
負けてても何かキルとドラゴン一気にとれることもあるから諦めないで(Soraka
タワー
決して諦めないオブジェクト
そしてタワーと共にしぬ
バロン
近づかないほうが良いと言われている伝説の生き物
急にバロンにPingがなり、味方が1人で殴り始めたら注意
負けててもバロンとキルと更にタワーが一気に(略
・チャンプ
MasterYi
逃げ足に定評のあるチャンプ
Shyvana
嫌われてて良くバンされる
目が光ってるのがいけないのかな・・・
私のような敵は(普段バンされるので)はじめてだろうな~?(威圧
Teemo
きのこを撒いておなにーするきのにーなチャンプ
Garen相手にも序盤から負ける
Leona、Taric、ありすたー
ずっと挑発とかジョークとか連打してる
絞っても乳はでんぞ~
えっ!??ダイアのネックレスがまさかのこのお値段!?
へいまーは挑発で挑発がキャンセルできる最強のチャンプ
・ブッシュ
皆さんブッシュに例えばアニーちゃんがW打つとしますよね?
(Wじゃちょっと射程短くない?というのは置いておいて
一見するとフェイスチェックするより安全で理にかなっているように思われます
でも実はそうではありません
Wをすることでブッシュは傷ついてしまいます
そのうちブッシュそのものが無くなってしまうかもしれません
そんなのは嫌ですよね?
Bronze民はさもなーずりふとの環境のことも考えてプレーしているのです
なのでフェイスチェックが基本
おしまい
将棋倶楽部24の思い出
それはネットで将棋をするというサイト
将棋倶楽部24は凄かった
完全に無料で遊べる
めちゃくちゃ安定していて軽い
安定して人がいて、休日だと2000人ぐらい
レーティングシステムで似た強さの対戦相手が数秒で見つかる
9割9分以上まともなユーザーだから、変な人がいると即通報され排除される
強い人だらけだし、おそらくプロもいる
下手な人でも真剣に将棋を指している
僕は高校生の時にやっていた
最初はじめたとき10級ぐらいで最終的には4級ぐらいになった
ちなみに将棋倶楽部24で4級はアマ初段ぐらいの強さです
何を言っているかわからないと思いますが。。。
将棋倶楽部24は棋力ごとにタブでわかれていて、
4級になると1級~4級のタブに自分の表示が変わるんですよね(確か)
4級になってタブかわったときめちゃ嬉しかったのを覚えている
将棋倶楽部24は神
サイフを落とした話
サイフを落とした
絶対拾われてるのに出てこない
拾った人交番に届けてくれよ
ほんと東京砂漠みたいなクソな街だな
サイフが拾われないだけ砂漠のがまし
もうサイフ見つからなかった時点で戻ればよかったわ
はぁ・・・つら