新・日々の暮らしに疲れてない?

一人バンド、火頭工房

楽曲「Like a Composer's Quota in a Cold Winter」を公開。

楽曲「Like a Composer's Quota in a Cold Winter」を公開。

 

冬になるとこういう曲を書きたくなります。

寒い地域に住んでいて、雪がザンザカ降るのを見ているとなんとなくね。

 

soundcloud.com

ダークソウル2 周回、忘れられた罪人をソロで倒せた。

年末年始、ヒマです。

 

色々やりたいことはあったのですが、大方片付いてしまったので、ダークソウル2をダラダラとプレイし続けております。

 

せっかくなので、周回バージョンの忘れられた罪人をソロで倒したいな、と思いチャレンジしてみました。

 

2週目は召喚ルカティエルに頑張ってもらってなんとか倒せたのですが、今度は召喚なし、ソロで圧倒します!

 

とりあえず篝火を強化し、罪人の塔はレベル3の地獄へと変貌。

まず道中の敵が沸かなくなるまでお掃除してから忘れられた罪人に挑戦、数十回死ぬ覚悟でしたから少しでも快適に。あ、松明をつけるのを忘れずに。

 

装備など

レベル: 140くらい。筋力と技量が同じくらいというアホっぷり。

武器: クラブ+10とミダの捻くれ刃+5。

盾: ゲルムの大盾 炎カット重視、できるだけ強化する。

防具: 罪人の仮面とヴァンガルシリーズ できるだけ強化し、物理と炎防御を高める。

指輪: 緑花+2 刃+1 繋ぎとめる 3匹目の竜

人間に戻れば繋ぎ止めるはいらないし、他の装備にしたら良い。

 

戦法

 

基本: 相手の攻撃は全て物理なので盾受けが安全。クラブの速さなら盾受けしてから一撃入れられるので、1対1ならたんたんと殴れる。軽い攻撃を2発耐えられるだけの防御・体力があればすごく良い。回復のタイミングがシビア、連撃の最後の突きなど、リーチの長い攻撃には十分注意。

 

序盤1 

クラブで4、5発殴る、そんだけ。罪人の体力調整、2に続く。

 

序盤2 

次はミダ刃で毒になるまで切る。理想は毒状態になる時点で相手の体力が6割程度、このあたりで魔術師が乱入してくるので、それまでに毒にするのがベスト。意外と耐性があるようで、中々毒にならないので、契約をネズミにしておくと良い。毒が切れた時点で相手の体力は半分以下。

 

魔術師乱入後 

魔術師には攻撃をしない戦法です。

武器をクラブに変更。罪人をターゲットしつつ盾を構え、魔術師二人を視界に入れるように動く、魔法を打つモーションをしたら魔術師に対し横方向に歩いて回避、爆発魔法や大火球は即死の可能性もあるので、けっして無理しないこと。魔術師に接近しすぎると火柱も打ってくるので注意。

死角からの大火球が一番の脅威、外れても視界を塞がれ、そのタイミングで罪人の攻撃が重なる時があるので、ビビってローリングしまくらず、盾を構えよう。

 

罪人の回り込み攻撃の後など、魔術師に背後に回られるのは回避したい、とにかく視界に捉えるように立ち回りつつ、罪人の攻撃を積極的に誘う。こちらの体力が十分あり、魔術師が最低一体は視界に入りつつ攻撃を休んでいて、ようやく攻撃チャンスです。罪人のダッシュ突きは単発なので、素早く攻撃が終わり、確実に一撃を当てられるので嬉しい。

 

これで運が良ければ倒せます。一度ボス撃破直後に焼き殺されましてね、撃破がカウントされてなくて悲惨でした。撃破後も魔術師は残るので、ボスソウル回収までは逃げ切りましょう、その後はやられても大丈夫です。

 

感想

結局一撃の重さがモノを言うので、筋力にステを振っていればもっと簡単に討伐できた。刃+2の指輪が欲しかったのですが、入手が中々困難で諦めました。

 

魔術師のせいで短期決戦はあまりおすすめしない。クラブのエンチャントならかなり攻撃力が稼げるのですが、武器交換を伴うミダ刃戦法が使えない。交戦中にエンチャントは...あまりおすすめしない。ミダのエンチャントは不可。毒のクラブを作るのは良いかも。

 

最後に、このゲームの強敵は貴重なアイテム使用などで乗り切るものではないと思います(アイテムの無駄になるので)基本亡者状態で、安い回復アイテムで、これで挑むべき。十分勝利が見えるくらい自身のスキルが上がったら貴重なアイテムもアリです。敵の観察とスキルの向上で勝率を数%ずつ上げるという感覚です。

 

余談ですが、このタイミングでコントローラーが荒ぶる現象が来ました。ご存知ない方は「PS3 コントローラー あらぶる」で検索してみると良いのですが、罪人戦でコレはヒドすぎる。

 

ともあれ、3週目の忘れられた罪人、討伐完了。

Chrome拡張機能 オートページ系のお勉強。

Chrome拡張シリーズ。
今回は車輪の再開発モノです、いやオベンキョーと呼ぶべきか。

 

世の中から非常に評価されている拡張機能の一つにオートページモノがあります。
AutoPatchworkとかGoogle Auto Next Pageさんが有名。

 

グーグルやアマゾンの検索画面って沢山ヒットして、目的に辿りつくまで数ページめくることになったりするじゃないですか、で、それがメンドクサイと。

 

オートページは、後ろのページの内容を読み込んで、どんどん画面下に追加していってくれる的な動きをします。永久スクロールみたいな使用感です。

 

すげえなぁ、カッコいいよなぁ。

というワケで真似してみることに。今回はグーグル検索ページで実行してみます。

 

動作は...

 

・グーグルの検索ページの下部。

f:id:hiatama:20171229134510p:plain

これの中から例えば「2」に設置してあるURLを取得する。


Ajax(別のサイトからデータを取り寄せる機能)で、さきほど取得したURLを指定して「2」のページの中身をHTMLでもらう。


・帰って来たデータはページ丸ごとの長大なテキストファイルなので、そこから検索結果の部分だけトリミングする。オーヤダヤダ


・元のページの検索結果の最後にトリミングしたモノを追加する。

 

こんな感じ。


トリガーのタイミングは、ページのプロパティ読み取れば調整できる、近いことを以前やった気がする。でも今回は面倒だからそこまでやらない。

 

では、詳細。

 

現在開いているグーグル検索ページの次のページのリンク取得

f:id:hiatama:20171229134513p:plain
この沢山あるtdがそれぞれ1,2,3…などのボタンを表しています。

こういうしっかりしたページの要素取得って面倒、階層深くて。HTML界隈の人達も大変ですね。

 

Ajax
あんまり使わないので、ちょっとビビッてましたが、すごくあっさりと動きました。
ただdataTypeにhtmlを指定するとクロームに怒られるんですが...一応止まらず動作しています。中身を見るのが怖いけど、console.log()してみると。

f:id:hiatama:20171229134516p:plain

これですよ。PCがフリーズしなくて良かったですがしばらく固まりました。
次は、この文字列の中から個別の検索結果の切り取りをしないといけません、あーユウウツ。

 

検索結果の部分だけトリミング


ここでだいぶ手こずりました。

さきほどの、わけのわからない文章の海に検索かけて、にらめっこして、個別の検索結果の起点となる文字列を判別。
<ここから検索結果その1が始まります> とか書いてありゃいいんですがねぇ。

 

実際はこれを採用 <div class="srg"><div class="g">

 

それからそれを閉じるタグ。
これを採用 </span></div></div></div></div><!--n--></div>

 

indexOf(開始タグ)で、文章の海の中でどこに存在するのか、トリミングの開始地点を特定します。おなじく終了地点を特定。

 

splice(開始地点、終了地点)を使えば、トリミングッド。検索結果が1つバラせました。
この時点で試しにページに埋め込んでみたところ動作確認が出来ましたので、もう止めようかと思いました 笑。

 


さて、ここからが悩みどころ。
上のindexOfは最初に見つけたものしかもって来てくれません。どうしたら効率良く全ての開始地点と終了地点を取得できるものかと。

 

正規表現で/gでマッチさせれば複数マッチできる、ということで試しましたが、なんと/gはマッチした位置が取得できないという使用、なんででしょうね。

 

なら/gを使わずマッチさせればちゃんとindexを取得できる、でもその後はどうやって途中から検索をかける?indexOfと一緒やんけ!深みにハマりました。
だから正規表現嫌い。

 

力技なら、文章の海から結果をトリミングしてリストに保存し、更にその結果以降の海を保存し、それをもう一度トリミングし...を繰り返せば達成できますが、いかにもブサイク。

 

結局、連続マッチさせつつlastIndexが調べられる正規表現オブジェクトでやります。


var regexp = /<\/span><\/div><\/div><\/div><\/div><!--n--><\/div>/g
↑これを regexp.exec(文章の海)すると最初にマッチした場所で止まりregexp.lastIndexで位置を取り出せます。続けて.execするとさきほどの場所から先を検索してくれます。マッチしなくなるまでループさせ、最後のlastIndexを保存。

 

文章の海をよく見りゃ、検索結果は1つ1つトリミングしてリストに格納する必要はなさそう。検索結果同士の間に無駄なタグがないので、最初の検索結果の開始地点と、最後の検索結果の終了地点がわかれば、それをズボーンと切ってそのまま埋め込めそうです。

 

元のページの検索結果の最後にトリミングしたモノを追加する


document.getElement~でそれらしい箱を選んで調べ、埋め込むのに良い位置を探す。
createElementしてトリミング結果を代入、それを選んだ位置にappendChild。どや?

 

はい、上手くできました。

縦長になるのでスクショにおさまらなくて残念ですが、グーグルの検索結果って1ページに9件なんですが、18件表示されています。

 

というわけで私のブラウザ、グーグル検索では自動で18件表示してくれるようになりました。

 

でも人気の拡張機能はこれグーグル以外のサイトでも出来るようにしてんだよな。
どうやって次のページのリンク取得してるの? 次のページのリンクはここにまとめて置く、とかいう業界のルールでもあります? 埋め込む位置はbodyの下の方って、適当に?

 

よくわかんねぇ...。でも人のコードは読みたくねぇ。おしまい。

 

ダークソウル2を今更プレイした。ついでに2週目の忘れられた罪人攻略法。

世間的には限りなくホットじゃない話題です。
タイトルの忘れられた罪人攻略法は中ほどに記述します。

 

ダークソウル2を買い、プレイし、そして終わりました。

 

デモンズとダクソ無印は大好きな作品だったので、2も早くプレイしなきゃと思っていたところを数年放置。メルカリで数百円だったので、ついに買いました。

 

さきほど2週目をクリア出来たので、ここらでひと区切り(イベント回収やアイテム集め目的でまだプレイするかも知れませんが)

 

感想として、評判で聞いていたほど不満は感じませんでした。
たしかに敵の多さや配置がイラっと来る場面が多かったですが(ヴェルスタッド戦の前の大通路 やアマネの祭壇など)何度もトライするのが当たり前のシリーズですから、いずれザコはリポップしなくなりますし。

とはいえ上のステージではかなり時間の無駄を感じました。


以下タイトルの内容。

 

一番苦労したのは2週目のボス戦、忘れられた罪人ですかねぇ...これは本当に参りました。
最寄の篝火からの道中が比較的長く、敵も多いのに加え、罪人自体のバランスの取れた強さ、更に途中から乱入してくる魔術師×2の嫌らしさ。

 

このボスは特別に隙が大きい攻撃をしてこないので(方向が決まった魔法攻撃とか召喚とかパワーアップ動作とか)わずかなスキを見つけ着実に攻撃を与えることが必要になります。

 

でチビチビ当ててると、途中から魔術師×2が乱入ですよ。

ネットでは魔術師は無視して罪人のみ相手にする、という戦法が出ていますが、死角からいきなり攻撃を食らい、ゲームオーバーではイライラがMAX。

あ、ちなみに私は回線無いのでヘルプさん無しです、召喚はしますが。

 

1つ発見したこと。魔術師が乱入してくる窓ですが、その中は小部屋のようになっているらしく(プレイヤーは中を見ることは出来ません)どうやら魔術師共はそこで待機している模様。登場時に突然湧き出るのではなく、たぶん始めからスタンバってるんですね(時間経過やボスの体力を察知し沸いてる可能性もありますが)。

 

何故これがわかったかというと、窓に毒霧を当ててみたんですよ。

じゃゲージが表示されてダメージが入ったと、うおぉ! じゃ楽勝じゃん!
って思うじゃないですか。 でもダメなんです。

魔術師は小部屋の中を徘徊しているようで、壁に近づいたタイミングでないと毒らない、でもそのタイミングは知るよしもない、と。
私は一発目でそのラッキーを引いたわけですね、まぁせっかくの発見なのでここに記します。

 

結局自分が取った攻略法は次。
赤眼の指輪を装備、敵に狙われやすくなる指輪です。
ルカティエルを召喚し、前半は出来るだけ攻撃を自分に引きつけてルカの体力を温存させつつ戦う。魔術師が乱入したら魔術師の相手はルカに任せ、自分はひたすら罪人を引きつけ逃げ回る、もしルカに向かったらちょっかいかけてルカを守りましょう。それ以外は無理に攻撃する必要なし。

 

運が良ければ、そのままルカが2体とも片付けてくれるでしょう。
そうなれば後は楽勝。あと罪人には一応毒も入りますが、結構耐性があるようで、期待するほどのダメージはかせげず 、途中で毒戦法は止めました。

 

しかし、ルカいなかったら絶対詰んでたよこれ。

 

罪人の攻略法はここまで。以下ダラダラと。


今回活躍したのは、やはり毒系の道具全般です。かなりのボスにも有効なので、まずは毒が入るか試しながらプレイしていました。
途中からパワーアップする系のボスは前半毒無しで頑張って、モーション中に毒を入れるのがオススメです、1回目以降は毒の耐性が付き毒ダメージの伸びが悪くなる気がします(確証なし)。

 

あとは結局は一撃の攻撃力がモノをいうので、エンチャント系の魔法も活躍しました。
霧に入る前にかけておくだけで前半戦が捗りますからね。魔法効果を伸ばす指輪なんてのもあります。

 

上記の罪人の他で苦労したボスについて。

 

2週目ガーゴイル

毒霧攻めで攻略した記憶が...とにかく逃げ回ってばかりでした。
攻撃範囲が広く、回避に回ることが多いので、自動でダメージを稼げる毒が良し。
あと意外と距離を取らせてくれるので、回復はしやすかったかな。

 

意外と苦労した2週目竜騎兵。

毒霧を当てつつとにかく1体を片付けることに集中、とくに攻略法も思いつかず、運で勝てた気がします。ちなみに上に陣取る一体にも毒は入れられる。

ステージ左手前の壁際は弓が当らないですが、満足に立ち回れるほどのスペースもないので、気休め程度。
物理ボスなので物理100の盾があれば安心。

 

1週目、溶鉄デーモン

あまりの強さに、2週目はビビッて戦わずに無視しました。 1週目ではこいつが一番大変だったと思います。スリップダメージが非常に厄介なので、その対策が整った2週目はもしかしてそれほど苦労しない?

近づくだけでダメージを受け続けるので、大抵1~2発でゲームオーバー → 大振りの攻撃は見切れないとまず攻略できない、という感じなので、これは誰でもできること、と思って回避が上手くなるしかありません。

 

こんな所でしょうか、100時間は遊びましたし、十分満足です。

マウスジェスチャーを調べてみて。その2

前回に続いて、巷のマウスジェスチャーを見て回った話。前回はページバック機能を真似してみたのですが、意外と使わないことに気づきました。

 

ページバック機能は、あってもいいか、という程度の使用感でしたが、それよりも右クリックホールド+ドラッグで機能をトリガーさせる、というのは使えそう。

 

上下左右、4種類の機能を持たせることが出来ますもんね、私は右ダブルクリックも完成させているので5種類も!!

 

もう1つ使えそうと目星をつけたのが、タブの移動機能。わざわざページ上を狙ってクリックするの面倒ですもんね! 右クリック+右ドラッグで右隣のタブに移動できるようにしました。左に移動するときは...大抵は自作の機能でタブを閉じるので、とりあえず無視だ!

 

chromeのtab apiをバックグラウンドスクリプトで使うので結構面倒でした。

 

現在の閲覧中のタブの情報は取得できるのですが、次のタブを取得、などという都合の良い機能が用意されておらず、工夫が必要でした。

 

まずはchrome.tabs.queryで現在閲覧中のタブの情報を取得する。開いたタブにはそれぞれidやindexが割り振られているが、idは固有っぽく、隣のタブのidを予想したりすることはできない。一方、indexは連番になっているので良かった。

 

というわけで、もっかいchrome.tabs.query で今度は、index + 1 を指定し、右隣のタブ情報を取得。これで隣のタブが操作できる、という感じです。

chrome.tabs.update でタブを移動(というか注目?)できます。

 

ただ隣のタブに移動するだけなのに、大変でした。

 

細かいことですが、右クリックに機能を乗せると、元々ある右クリックの機能と干渉する可能性があるので、注意が必要です。右クリックで開くメニューあるじゃないですか? 自作の機能をトリガーした後でそのメニューが表示されていると邪魔なので、それを抑えるのに e.preventDefault するのですが、そのタイミングなどが結構読み辛く、試行錯誤が必要でした。

 

onmousedownは押した時に発火し、oncontextmenuは、なんとクリックを離した時に発火するんですよ! onmouseupと同じ扱いです。

 

以上。

 

拡張機能を作り始めてから、おかげさまでブラウジング事情はかなり良くなりました、もう自作機能なしでは生活できないです。

 

私のブラウザでは現在以下を採用しています。一部は市場未公開。

 

・ページスクロール機能(ページトップへ一瞬で、スクロールバックもできる)

YouTubeの画質自動調整

・オートコンプリート機能(メルアド、パスワードなどを簡単入力)

・広告消す君(自作ではない)

・ブラウザ落とす時にクッキー&履歴消す機能(自作ではない)

・データセーバ(グーグル提供)

・リンク上で左クリック長押しで新タブで開く、ページは移動しない。

・右ダブルクリックで現在のタブを閉じる

・グーグルの検索結果をワンタッチで期間フィルター

・右クリック+左ドラッグでページバック

・左右同時クリックでページリロード

・ページのバックグラウンドカラーを優しい色に変える君

・フォントサイズ調整

・右クリック+右ドラッグで右のタブへ移動 ←NEW!!

 

マウスジェスチャー系の機能が増えて来たので、これらをまとめられたら良いのですが...考えなしに作りすぎて組上げるのが大変そうでしり込みします、まさにクーロン城状態。

マウスジェスチャーを調べてみて。

どうも、火頭です。

 

以前、マウスの右クリックと左クリックに独自の動作を組み込むクローム拡張機能を作ったのですが、それっていわゆるマウスジェスチャーだということで、他にどんな可能性があるのか、少し調べて回りました。

 

前から、あってもいいかなぁ、と思っていたのがページバック機能。ご存知でしょうが、1つ前のページにブラウザバックするという機能、ブラウザの左上の小さいボタンをクリックするのが面倒という人向け ←なんという怠け者。

 

ちまたでは、右クリックをホールドしたまま、少し左にマウスを動かすと動作するようにしているらしい、なるほどぉ。

 

で、実際にコピーというか、作ってみたんです。

クリックの挙動は何回も使用していたので、ほぼコピペ。

マウスを左に動かす、という部分はたぶん座標取得でやっているのだろう、座標取得も以前何かで使ったので楽勝。

 

内容は、

1.マウスを右クリックした時の座標を記録する。

2.右クリックをホールドした状態で、マウスが動いた時に座標を記録する。

3.1と2の座標を比べて、一定以上の距離を左方向へ動かせばイベントをトリガーするようにする。(別に右方向でもいいんですけど)

こんな感じ。

 

すぐ作れたのですが、使用感はというと...

最近あまり階層が深くなるページ閲覧をしていないことに気づきました。ページを開く時は新規タブで立ち上げることの方が多い、サイトを作る側の傾向もあるかと思います。

 

というわけで、あまり使わない機能になりました。

↓のタブショートカットのが私好みです。

hiatama.hatenablog.com

 

楽曲「Carrier」を公開。

久しぶりにトラックを公開しました。

雨が降るたびに季節の変化を感じます。

 

soundcloud.com