移行しました。
ダイアリーの方は自分で作ったCSSを前提にしたエントリだったからちょっと見にくいかもしれない。
何で移行したのかって言うと、完全に何も考えずに「移行してみよう」と思ってやった。
Call of Duty InfiniteWarfare(CoD:IW)が起動できなかった原因がわかった
CoD:IWをSteamで購入して起動したところ、何故かゲーム画面が表示されず、全くプレイ出来ずに居た。
Steamのフォーラムでnot launchとかで検索しても解決してないか、症状が違うか、大抵がアンチウイルスソフトの問題じゃないか、という話で終始していたが、そのどれもが違う。
いくらググってもあまりにも情報が無いので1週間ぐらい放置していたのだが、やっぱり情報が出てこないのでキレて原因を追い詰めた。
そのおかげでゲーム画面を全く見てないのにプレイ時間が既に1時間もある。
症状
試したこと
- ゲームキャッシュの整合性を確認(2回試した):意味なかった
- ゲームデータの削除→再インストール(2回試した):意味なかった
- アンチウィルスソフト(Avira AntivirusPro))のスキャン除外設定(2回試した):意味なかった*1
- アンチウィルスソフト(Avrira AntivirusPro)のReal-Time Protectionの停止(2回試した):意味なかった
- マルチディスプレイ→シングルディスプレイへの変更:意味なかった
- ディスプレイ解像度の変更(1920x1080→1280x1024):意味なかった
- 片っ端からバックグラウンドプロセスの停止:意味あった
原因と詳細
現象を回避するには、MacTypeを使わない・MacTypeを停止する・MacTypeのスタートアップ起動をやめて手動起動にする・MacTypeを互換性重視モードで起動する等すると発生しなくなる。
僕はMacTypeをサービスモードで起動するように指定していた為発生していたようだ。
これはサービス(services.msc)にMacTypeサービスを自動起動として登録してくれるが、このWindows起動時のスタートアップ起動の時だけこの現象が発生していた。
詳細は以下。
検証したMacTypeのVersion : 1.2016.904.0*2
一応検証のために他の起動モードでも試してみたが、結果が意外すぎた。そもそもMacTypeが適用されないケースが多すぎる。MacTypeが適用されないケースは馬鹿らしくなってCoD:IWの起動まで試していない。
モード | 現象 |
レジストリモード | そもそもMacTypeが適用されない。 |
MacTrayロード(独立モード/管理者権限あり) | そもそもMacTypeが適用されない。 |
MacTrayロード(互換性重視モード/管理者権限あり) | そもそもMacTypeが適用されない |
サービスモード | MacTypeが適用されるがCoD:IWが起動できない。一度停止してサービスを手動で開始すると、CoD:IWが起動できる*3 |
MacTrayロード(独立モード/管理者権限なし) | MacTypeが適用されるがCoD:IWも起動できない。停止すると起動できる。停止→起動の後にCoD:IWを起動した場合はCoD:IWは起動できない。 |
MacTrayロード(互換性重視モード/管理者権限なし) | MacTypeが適用され、停止しなくてもCoD:IWも起動できる。 |
※重要なのは、Windowsを起動してスタートアップでMacTypeがどういう状態で起動したか?ということのようなので、例えばMacTrayロード(独立モード/管理者権限無し)→MacTrayロード(互換性重視/管理者権限なし)に設定変更したところでCoD:IWは起動できない。MacTypeを再起動するか、PCの再起動が必要になる。
なお、MacTypeの設定でプロセス除外を指定できるが、除外指定しても意味は無かった。
(そもそもMacTypeはiw7_ship.exeに対して起動してなかったし、念のため除外設定をした後に試したが現象は発生した)
実行環境(おまけ)
必要スペックは満たしている。
*1:結果的に意味はなかったのだがやったことは書いておくと、Real-TimeProtectionとSystem Scannerの除外にCoD:IWのフォルダを指定した。除外設定を解除しても起動出来ているのでAviraの場合は起動を阻害しない。
*2:ここのものを使用https://github.com/snowie2000/mactype/releases
*3:ただしCRITICAL PROCESS DIEDが発生しやすくなってるっぽい?関係ない?1度起きた
*4:過去にWindows10をクリーンインストールしても何かの環境ファイルがバグっててKindleの書籍ダウンロードがめちゃ重かったり(普通1分そこらが20分かかる)、AviraのWebProtectionが定期的に落ちてネットから切断される等起きて居たが、今回ののコイツはそんなことが一切起きていないPC
依頼の仕方
大体の依頼メールは「何をして欲しい」だけしか書かれていない。
本当はこういうものを入れて欲しい
- 概要:何をしてほしい(したい)のか
- 詳細:目的を達成させるための手段が指定されているならそれも書く。どのように?が必要。
- 目的(理由):なぜそれをして欲しいのか。
ただの注文とかなら要らないが、人に何か作業をお願いする場合には必ず入れて欲しい、これがあると無いでは納得感が全く違うし、優先度の判断基準にもなる。
また、そういうことなら違うアプローチができるという提案もできたり、逆にこれは不要か?これは必要か?というのも想像できる。
殆どの場合これがないから再質問の手間がかかる。 - 結果の出し方:テキストでいいのか、ファイルがいいのか、フリーフォーマットなのか、欲しい事項は?アウトプットを指定する。
これが無いと、お願いした結果想定した結果が出て来ず、やり直しになる。なんてことが発生する。絶対に必要。 - 期限:ASAP、なるべく早くはNG、ちゃんと期限を切る。当日とか明日だけ書かずに日付と時間を書く。その上で、可能ならなるべく早く欲しい旨を書く
先に述べた目的を書いてあれば期限設定に説得感がでる。
*1:上の文章はこれに沿っているかどうか考えずに書いたがまあいいか
格ゲー(ストV)してる時に気をつけること
ウル4の頃はただただ好きに動かしていただけだったが*1、セービングやEXセビキャンと言った
要素がなくなって誤魔化せなくなってしまったので、いよいよまじめに格ゲーやろう。と思って頑張った結果
キャラの強さもあるけど、ララでどうにかプラチナになれたのでメモ。
なので、ここでの話はストVに限る話。
攻撃編
1.基本コンボを練習する
後述する要素で多分一番重要。調べれば大体出てくる。
http://sfv-wiki.com/wiki/%E3%83%AA%E3%83%A5%E3%82%A6
2.強い技を調べる
wikiに書いてあればよかったけど、書かれていない。
でももし強いと聞いたことがあるなら、それは以下のうちのどれかの理由で強い。
候補 | それが強いとどうなる? | 例 |
小技で発生が早い | 攻撃をガードしてる時の割り込み(暴れ)に使える | ネカリの5小P等小P、小Kの類 |
威力が高く隙が少ない | 差し返されにくいので、その技をブンブン振り回す事ができる | かりんの大K |
当たればダウン・またはコンボまでいけるが、ガードされても反撃をもらいにくい | その技をブンブン振り回す事ができる | かりんの2大K、ナッシュのムーンサルト |
攻撃判定が強い | 地上対空技に使えたり、置きにバラまいておくと相手の攻撃を潰せる | ケンの2中P、ナッシュの2中P |
3.相手が何に対応できてないのか見極める
見極めるといっても大層なことではない。
連携・セットプレイ・起き攻め・着地攻め・ブッパ・中段等特定状況のあとのこの行動は対応できてないか?というのを1回やってみて、通れば永久にそれを繰り返すし、通らないなら対になる択を試す。
ここで重要なのは勝手に相手と読み合いをしないこと(先読みをしない)。相手がアンサーを見せてからこっちが再回答を出すことが重要。
通るなら一生それをやること。自分と読み合いをせず、相手と会話をすること。
4.相手の暴れの癖を見極める
見極めるといっても大層なことではない。大体以下に分類して勝手に自分で決めつける。
タイプ | 対策 |
ずっとボタンを押してるタイプ(ずっと暴れてる) | フレーム的に絶対に暴れを潰せる攻撃を重ねる。暴れたら駄目だというのをわからせる必要がある。 |
ジャンプで逃げようとするタイプ | フレーム的に絶対にジャンプを潰せる攻撃を重ねる。ジャンプしたら駄目だというのをわからせる必要がある。 |
バクステで逃げようとするタイプ | フレーム的に絶対にバクステを潰せる攻撃を重ねる。バクステしたら駄目だというのをわからせる必要がある。 |
ずっとしゃがみガードしてるタイプ | 中段連携で攻める、投げる、または投げを誘って近づいて潰す(前ステ後即バクステとか) |
ずっと立ちガードしてるタイプ | 固めて長めの中足で攻める、ガードさせて有利の攻撃をガードさせて前ステして投げ・再度攻撃、投げる、または投げを誘って近づいて潰す(前ステ後即バクステとか) |
特定の技を見てから暴れてるタイプ | (あれば)それを潰せる攻撃を出す、その技をしばらく出さず他の技で意識を散らす |
昇龍暴れ多めのタイプ | 昇龍をすかせる連携を出す、ちょっとだけガードを入れて様子を見る |
それ以外(純粋にゲームがうまいタイプ) | 何を見て・どうガードしてるのかを見て行動を変える。難しい |
ここで重要なのは、フレーム的に絶対に潰せるというのが超重要。暴れたら手痛いお仕置き待ってるけどまだ暴れるの?という的確なアンサーを返さないと相手はそれで攻撃をしのぎ続ける。
でもここに書いてあることをやると、オレの好きな(気持ちいい)攻めが出来ないな〜と思うんだけど、
実はこうして行くと、相手の行動を制限しているのと同じなので、だんだん相手の焦りとこちらの精神的優位から気持ちの良い攻めが出来るようになっていく。
防御編
1.確定を覚える
相手の必殺技をガードした時の一番痛い反撃を把握しておく。
通常攻撃をガードした時の確定はとりあえず後回しでもいい(大体2大K,2大Pには確定があるぐらい覚えておくと良い)
2.暴れどころを覚える(有利不利を理解する)
暴れに使う技はできるだけそのキャラの最速の技が良い。
基本は中攻撃以下をガードしたら手を出さない。なんか硬直が大きそうと思ったら最速の通常技をこすってみる。
最速の通常技は大体5小P、5小K、2小P、2小Kのいずれか。
より良いのは固められて困った行動に対して、その技が不利なのか、有利なのかを調べて行動を決めること。
フレームはググると出る。後の方でも少しだけ書く。
3.対空に使える通常技を調べる
昇龍拳を持ってるなら、一番良いのは昇龍拳だが、持ってないキャラは対空になる通常技を調べる。
全部の飛びをその技で潰せるというのはまず無いが、あるだけで全然違うので絶対に調べたほうが良い。
調べ方は普通にぐぐってもいいし、トレモでリュウにジャンプ大Kを覚えさせて、それに勝てる通常技を探すだけでも良い
この通常技はダメージが安くても全く問題ない。
例:ネカリの5小P、春麗の5小K、ララの5中P等
なぜダメージが安くても問題ないのかというと、相手の飛びを落とせるというのは以下のメリットが有るため。
- 相手の攻めの機会を潰せる
ジャンプ攻撃は非常に強力な行動で、当たれば最大コンボ、ガードされてもガードさせた側が有利に展開を進めることが出来る上、遠距離では近づきにくい相手でも一気に攻めることが出来るようになる。
でも立ちコパン1発でその機会を潰せるならやらない手はない。 - 執拗に飛びを落とし続けると相手が飛べなくなる
相手のジャンプ攻撃を制限している状態になるということは今までジャンプ攻撃だけでどうにか飯食ってた相手は非常に困ることになる。
強制的に地上戦に持ち込めるようになるので、ジャンプ攻撃ばかりしてくるような相手にはまず負けなくなる。 - 小技で落とした後の着地攻めが出来る
例に出したネカリ、春麗、ララ共に、ジャンプを地上対空で潰した後に前ステすることで表裏択+打撃重ねまたは投げ(コマ投げ)による着地攻めが出来るという非常に有利な状態になる。
下手をすれば昇龍拳以上に大きなリターンを得ることが出来るチャンスを攻撃力30とかの小技から得ることが出来る可能性が生まれる。
4.手癖のジャンプ、暴れ、グラップ等をやめるように意識する。
幸いにしてストVは理不尽に見えない攻撃と言うのは少ない(結構ヤバそうなネタは徐々に出てきているが)
ならば、まずどっしりとしゃがみガードを固めて、相手の攻撃を見て、次のセクション5を実行したほうがいい。
5.起き攻め時、相手がなにで攻めたいのか傾向を掴む
こっちが攻撃するときに相手が何を対策できてないのか決めつけたのと同じように、相手はこちらが何に弱いのかを探っている。
あるいはお決まりの行動しかしないタイプがいる。
ではそれに対する対策は、手癖の行動をやめて、その傾向に対するアンサーをぶつけてやるしかない
タイプ | 対策 |
投げスカさせてから攻めるタイプ | 2中K,2大Kなどのリーチの長い下段で暴れる |
投げ多めのタイプ | (3F小技があれば)暴れる、グラップする |
中段連携多めのタイプ | 中段をガードして暴れる。中段ガード後は大体こちらの有利 |
打撃を重ね多めのタイプ | ガード、中攻撃以上の攻撃をガード後にVリバーサル、相手の不利フレで暴れる |
打撃重ね後、すぐ投げ多めのタイプ | 2弱K等の早めかつちょっとだけリーチの長い攻撃で暴れる |
特定状況の時の行動が毎回同じタイプ | 昇龍ブッパ、スーパーアーマー技ぶっぱ、ガード安定等 |
昇龍読みのガードタイプ | 何もしない |
理屈編(フレームの話)
ガード時のフレーム
ストVはセービング等による誤魔化しが効かないゲームなので、有利・不利ぐらいは知っておいた方が良い。
本当に強くなろうと思ったら、どの技が何フレで〜と覚えた方が良いのかもしれないがそこまではしなくてもいい。
例外はいくつかあるが、大体こんな感じで覚えた。
弱攻撃はガードさせて有利が取れる。
中攻撃はガードさせて有利が取れる。
強攻撃はガードされると不利、確定がある。
レバー入れ攻撃は有利、不利がキャラによってバラバラ
あとはフレームアプリを見て、この技ガードした後に暴れたらダメなんだな。とか、
この後こっち微有利だから3F技擦ろうとか、そんな感じで理解した
これだけで不用意な暴れによる余計な被弾は格段に減った。
アプリは以下を使った。
VFrames - Google Play の Android アプリ
iPhoneは知らないけど、探せばあると思う。ググれば普通にWebページにも載ってる。
攻撃時のフレーム
攻撃時にもフレームを知っているのと知らないのでは大分差が出てくる。
例えばジャンプ攻撃を通した後、相手は近づかれたのでどうしても暴れたくなるとする。
結果暴れるが、暴れた時に「そこで暴れたらオレが勝つよ?」という連携を調べておくと強い。
僕はララ使いなのでララでしか説明出来ないが、例えば以下の例
Sが攻撃判定発生までのフレーム。
Aが攻撃判定の持続フレーム。
Rがよくわかんない。攻撃を外した時の隙?。
OnBlockがガードされた時の有利不利。OnHitが攻撃された時の有利不利。マイナスなら不利。
つまり、このs.LK(立ち小K)でガードさせた後、3F有利。その後s.MP(立ち中P)を出すと、
3F有利の状態から6F技を出すので、相手が4F技で暴れるとこちらが一方的に勝つ。
3F技で暴れようと、1Fでも遅れていればこちらが勝つ事になる。
この辺りの理屈、算数2勢の僕には慣れるまで意味がわからなかったのだが、これ書いててなんかそれっぽく理解できた。
○=発生までのフレーム(アプリ内のS)
●=ガードさせて稼いだ有利フレーム
▼=相手の動けない状態
A=攻撃判定
経過フレーム→ | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | |
5小Kを出す | ○ | ○ | ○ | ● | ● | ● | |||||
5中Pを出す | ○ | ○ | ○ | ○ | ○ | ○ | A | ||||
相手の暴れ4F小パン | ▼ | ▼ | ▼ | ○ | ○ | ○ | ○ |
5小Kで稼いだ有利フレームから5中Pを出すことで、相手の4Fまでの暴れなら確実に潰せるという連携だ。
じゃあガードしてればいいじゃんという話になるが、ララの場合5小Kからコマ投げに行ったりするので、そういった対になる連携を知っているとより有効になる
さて、最初にどの技が何フレで、等覚えなくていいと言ったが、こういった連携はフレームを覚えているというよりも、この連携なら潰せる、としか覚えてない。
フレームとにらめっこするのは、対策や強い連携を探す時だけで良い。とりあえずは。
ララ、おすすめです。
*1:PPは2500より上に上がったことはない
UbuntuにSikuliをインストールする方法
openjdk-7-jdkだとキャプチャができず、かといってopenjdk-8-jdkを入れても今度はスクリプトが実行できなかったり
やっと動いたと思ったらapt-getでインストールできるバージョンは古くて、1.0rcなので(2016/05/05現在の最新は1.1.0)、
動かない機能があったりと散々だったが、実はめっちゃ簡単に動く環境を作り出せたので、同じ沼にハマる人がいないようにメモ。
結局一番の問題はバージョンが古い事。それに気付くのに1日もかかってしまった。
正直よくわからず色々試しまくった部分もあるので手順抜けてるかもしれない。
でも基本はWindowsにインストールするのと同じだと思ってもらったら良い。
確認したバージョン
Javaをインストールする。
sudo add-apt-repository ppa:webupd8team/java sudo apt-get update sudo apt-get install oracle-java8-installer sudo apt-get install oracle-java8-set-default http://qiita.com/TsutomuNakamura/items/f12fdf0a8502e634584d
Sikuliをインストールする
- Sikuli公式サイトから「sikulixsetup-1.1.0.jar」をDLする。
https://launchpad.net/sikuli/sikulix/1.1.0 - setupを実行
java -jar ~/Downloads/sikulixsetup-1.1.0.jar
※実行した場所にインストールされるので注意 - セットアップウィザードに従い、任意にチェック(1は必須)をつけてSetup Nowをクリック
ウィザード内のチェックボックスについては割愛。
※pythonを既にインストールしている場合、セットアップ中にpythonのバージョン違うけどインストールする?という内容が出てくるが、これはNoを選択したほうが無難と思われる。(NoでSikuli1.1.0と互換のあるpythonがインストールされる)
実行してみる
父に似てきた(2009年)
たまたま下書き記事を開いたら、2009年に書きかけの記事があったので書き終えて公開する。
父はいつも厳しい顔をして怒っているように見え、子供とはあまり喋らない。たまにひねた冗談を言って母を笑わせる。
テレビを見ている時も常に厳しい顔をしており、バラエティ番組でたまに笑う。怒る時は火山のように怒るが、子供らとの会話で笑っている所は一切記憶に無いし、泣いているのを見たことも無い。大股でゆったりと歩き、その度に少し古い実家の床は同じタイミングでギシリと音を立て父の存在感を強調する。
それが僕の父。
僕は面白かったり、悲しかったり、何か特別な事がない限り自分にとっての普通の表情をしている。会話のネタが無ければ友人と2人きりでも全く喋らない為、決して社交的ではないが、コミュニケーションに困らない程度には人と接する事が出来る。会話のネタを提供したり、継続させたりすることが若干下手ではあるが、それなりに愛想笑いもするし、冗談を言って相手を笑わせたりする。
どこにでもいる普通の会話下手な人間。
それが僕。
最近同僚から何かの拍子で僕の第一印象を聞いた。「最初怖くて怒ってるのかな。と思ってたけど、めっちゃ優しい人ですよ〜」と言われた。
僕は特に強面の顔をしていないし、身長も日本人平均男性並だ。粗暴な行動もしていないし、乱暴な言葉遣いでもない。
どこが怖かったのかと聞くとやはり顔だったわけだが、僕はやはりその時も必要以上には喋らず自分にとっての平静の顔をして過ごしていた。
高校生時代の事を思い出すと、何の会話の流れだったか、何の脈絡も無く「なんで怒ってんの?」と言われたことがある。
その時もただ喋ることが無くて喋らず普通の顔をしているだけだったが、既にその頃から、黙って普通の顔をしているだけで「怒っている」「怖い」という印象が持たれていたように思う。
これらの会話をした時には「へ〜そう」としか思っていなかったのだが、ふと部屋の掃除中にこの会話を思い出した時
「そういえば親父もTV見てるときでも不機嫌そうだよな〜。変な人だよなあ。歳取ると、ああなるのか?」と考えていたのだが
僕が抱く父に抱く印象と、初対面の人が僕に抱く印象が同じで有ることに気付いた。
ここから共通点を整理すると「ゆったりと歩く」「ネタが無ければ必要以上に喋らない」「普通の顔で怖がられる」「笑うと目尻にできるシワが似ている」「酒が飲めない」と僕が意識して直せるところから体質的なことまでそれなりにあった。
僕は子供の頃から怖い父が嫌いで、そういう父の所作も嫌で、ああいう風に何を考えているかわからない大人にはなりたくないと思っていた。
しかし、ただ自分が自分らしく生活しているだけで、ここまで父に似てきたことには結構なショックを受けた。
父もそういった所では苦労していたのだろう。
父と普通に話を出来るようになったのは、このことに気づいてから。2009年の話
液晶が壊れてタップが出来ない!そんな時にASM。
事の発端
解決策その1
参考:Androidのadbコマンドからタップイベントを起こす - Tatuas Blog
adbが使えるなら、これでも出来た。
adb shell input tap 100 200例えば上のように書いて実行すると、x:100 y:200の座標に内部的にタップ処理が走る。
ただ、座標をいちいち調べないと行けないのは面倒極まり無いのでボツ。
ちなみに、Nexus7ではBACKキーもソフトキーなので、BACKはこいつにやらせた。
adb shell input keyevent KEYCODE_BACK(後から気づいたのだが、これは普通にマウスでBACKを押しても良かった。)
解決策その2(おすすめ)
DL先→Android Screen Monitor - adakoda
このAndroidScreenMonitorことASM、出てきた当初は本当にスクリーンをモニタするだけだったのだが
バージョンアップを重ねて、なぜかサイト上に説明されていないのに、PC上の画面をクリックすると、その座標をタップする機能までついているのだ。
きっちりバージョンアップを重ねてくれている事に本当に感謝、感謝です。
今回はこの方法を使った。
ASM操作方法
1.操作はASMに表示する端末を選択する。
2.端末が表示されるまでちょっと待つ。
3.タップしたいところをASM上の画面でクリック
これだけだ。
Q.クリックが効かないんだが?
慌てず騒がず、一度端末からUSBを抜いてASMを終了させ、もう一度USBを繋いでASMを起動してみよう。
Q.画面遷移が遅すぎなんだが?
USBでも10秒ぐらいラグがあるが、タップ操作自体は画面に関係なくできるので、液晶が無事に映るなら、実際の端末の画面を見ながら進めて行っても良い。
クリックしてからボタンを離すまでは、液晶に指を押し付けてなぞっている状態と同じなので、スマホ系のゲームでタッチの軌跡を表示するタイプや、ボタンを押した時にボタンが光るようなUIの時はそれを目印にしよう。
Q.画面が縦横逆なんだが?
Portrait(縦画面)
Landscape(横画面)
の好きな方を選ぶが良い。
Q.画面の縦横はあってるんだけど、反転してるだが?
ひっくり返した画面がASM上に表示されるのも、もちろん時間がかかるぞ。
まとめ
今回紹介したASMとadb input keyeventは、液晶画面が壊れて全く映らなくなったり、ボタンが壊れて泣きそうになったりした時には強い味方になってくれるので覚えておこう。
追記:adbを有効にしてなかったら…?
僕ならadb設定の階層・位置を画像検索とかしまくって調べて、USBマウスかキーボードを接続して勘でONにする(めっちゃ大変だろうけど)
うまくadbをONにできてればPCで繋げた時にドライバを認識するはず。