ど~もeagle0wlです(再)

140文字では収まらないネタを記録するブログ

椅子をアーロンリマスタードに変えた


リモートワーク突入時に適当な椅子を購入したが、軋みだしてうるさくてこの上ないので買い替えることにした。

今回買ったのは、ハーマンミラーのアーロンリマスタードアーロンチェアの後継モデル)。決して安くない椅子ではあるが、アーロンチェアを20年以上使い続けている知人の一言で購入を決意した。2週間使い続けた感想としては「もっと早く買うべきだった」。自分の体型に合うように背もたれや肘掛けの位置を調整して、長時間座ってわかったことだが、とにかく疲れにくい。自然と姿勢もよくなるためか、肩こりも起こらなくなった。なんだこれは。


↓実際に購入したモデル。安い買い物ではないし円安の影響もあるが、12年保証がついているので、1日あたり50円換算になる。こう考えると安いかも。

何にせよ、今のところ買ってよかったと思える品物だった。

初の単著『オンラインゲームセキュリティ』6/18全国書店にて発売決定



6/18に、初の単著『オンラインゲームセキュリティ』が全国書店にて発売となります。

本書はオンラインゲームにおけるチート行為と、それに立ち向かうために必要な知識や手法を防御視点で記した、(おそらく)世界初となる書籍です。

オンラインゲームにおけるチートと、それに対するチート対策の基本的な考察から、クライアントサイドとサーバーサイドのゲームセキュリティを学び、オンラインゲームに限らずさまざまなゲームにおける不正を振り返ります。

今まで技術書は共著で書いてきましたが、初めての単著です。前例のないジャンルなのでリサーチに苦労したり執筆期間が大幅に長引いたりしましたが、そのぶんこの本にしかないものが揃っていると思います。

本の詳細、およびAmazonのリンクはサポートページから御覧ください。
eagle0wl.hatenadiary.jp

書籍『オンラインゲームセキュリティ』サポートページ

書誌情報

書名:オンラインゲームセキュリティ
著作者名:松田和樹(株式会社ラック)
発行:データハウス
発売日:2022年6月18日
価格:3,500円(+税)
単行本(ソフトカバー):496ページ ※電子書籍版はありません。
ISBN-13:978-4-7817-0251-3

出版社の商品ページはこちらから

↓をクリックするとAmazon.co.jpの商品ページにジャンプします。

↑をクリックするとAmazon.co.jpの商品ページにジャンプします。


店頭在庫はこちらから
紀伊國屋書店 / TSUTAYA


概要

本書はオンラインゲームにおけるチート行為と、それに立ち向かうために必要な知識や手法を防御視点で記した、(おそらく)世界初となる書籍です。

オンラインゲームにおけるチートと、それに対するチート対策の基本的な考察から、クライアントサイドとサーバーサイドのゲームセキュリティを学び、オンラインゲームに限らずさまざまなゲームにおける不正を振り返ります。

目次

本書について
まえがき

第1章 オンラインゲームセキュリティとは
1-1 序論
 なぜオンラインゲームセキュリティなのか
 なぜ脆弱性が生まれるのか
 なぜ脆弱性や不正行為を放置してはいけないのか
 なぜ不正行為が発生するのか
1-2 本書の読み方
 すべてを網羅することはできない
 セキュアなやり方を強制するわけではない
 倫理上の注意事項
 本書におけるオンライン要素を含むゲームの定義と各要素
1-3 オンラインゲームセキュリティの実現に必要なもの
 オンラインゲームの開発に求められるスキル
 堅牢なオンラインゲームの理想形は?
 いつからセキュリティを考慮すべきか
 自社で脆弱性診断を行うべきか
 オフラインのゲーム開発に由来するバッドノウハウ
 守る技術は正しく使わなければならない
 COLUMN
  WinGrooveの事件

第2章 チート行為に対してどう立ち向かうべきか
2-1 情報セキュリティに関する「表現の不自由」
 情報公開と表現の不自由
2-2 チーターの行動様式を考察する
 チーターの数はゲームの人気度に比例する
 チーターはソースコードを所有していない
 チーターは独自のコミュニティを形成している
2-3 通信の改ざん
 今日の「常時SSL/TLS
 「常時SSL/TLS」と中間者攻撃
 「常時SSL/TLS」はチート対策にはならない
2-4 クライアントとサーバー、不正行為の検出はどちらでやる?
 検出するポイントを分類する
 利用者を目視で監視する(オフライン限定)
2-5 思考実験:ハイスコア集計におけるウソスコアとその攻防

第3章 クライアントサイドのゲームセキュリティ
3-1 そもそもクライアントは信用できない
 クライアントは改造可能である
 設計段階から考慮する
 曜日替わりイベントをどう実装するか?
 ゲーム開発者は不正対策をやりたくない
3-2 クライアントのセキュリティと解析
 ゲーム開発にセキュリティを組み込むのは難しい
 マルチプラットフォーム化の流れ
 プラットフォーム別に見るクライアント概観
3-3 ゲーム改造とクラック対策
 ゲーム改造とそれに対するクラック対策の概要
 クライアントプログラムのクラック対策には限界がある
 COLUMN
  歴代最強のプロテクトは何か?

第4章 サーバーサイドのゲームセキュリティ
4-1 ゲームにおけるセキュアコーディング
 家庭用ゲーム開発に由来するバッドノウハウ
 サーバーサイドのゲームセキュリティの要点
4-2 一般的な脆弱性
 管理機能への不正アクセス
 ファイルの露出
 XSSクロスサイトスクリプティング
 SQLインジェクション
 多重ログイン(同時ログイン)
 認証・認可不備
 課金処理
4-3 オンラインゲーム固有のチート可能な脆弱性
 本項で使われる用語「API」の説明
 ファイルパス・ファイル名の推測による隠し情報の漏洩
 デバッグ用/開発者用APIの露出
 抽選結果の漏えい(意図しないリセマラ)
 ガチャに対する不正行為
 ゲームの仕様に反するデータ露出
 制限回避
 特定パケットの受信・送信拒否
 DoS攻撃(サービス拒否攻撃)
 リプレイ攻撃
 なりすましによる他プレイヤーへの攻撃
 アイテム複製と排他制御
 不適切なAPIの設計(機能単位ではない通信)

第5章 「ゲーム」における様々な不正
5-1 家庭用ゲームにおける「裏技」とゲーム改造の是非
 かつて存在した裏技ブーム
 ゲーム改造ツールの存在
 Modから考える「遊び方の問題」
5-2 家庭用ゲームにおけるセーブデータの汚染
 ポケモンシリーズで考えるゲーム改造
 ドラクエIXで考えるゲーム改造
 改造ツールが他人に及ぼす影響
5-3 不正コピー・CFW・マジコンの蔓延と規制(前編)
 パソコンソフトの不正コピー
 家庭用ゲーム機の不正コピー
 エミュレータによる動作
 カスタムファームウェアによる動作
 マジコンによる動作
5-4 不正コピー・CFW・マジコンの蔓延と規制(中編)
 マジコン概説
 マジコンを使う人の話
 マジコンを売る人の話
 マジコンを作る人の話
 ストレージ業界への影響
 マジコンの法規制
5-5 不正コピー・CFW・マジコンの蔓延と規制(後編)
 公式開発と非公式開発、公認ソフトと非公認ソフト
 非公式開発、公認ソフトの話
 非公式開発、非公認ソフトの話
 現在の非公式開発、非公認ソフト
 「無いものは作る」Homebrew
 マジコン利用の隠れ蓑にされたHomebrew
 Homebrewの終了
 グレーゾーンがホワイトになった「Kinectハック」
 MODチップの話
5-6 オンラインゲームの生存期間
 パッケージとオンラインの寿命の違い
 なぜ生存期間を調査しようと思ったのか
 結論は「ない」
 多様過ぎるプラットフォーム
 プレスがない、消えてなくなるから再評価のしようがない
 ステマ・欺瞞的顧客誘引の疑いのある商行為
 ソーシャル以前のアダルトゲーム
 アダルトゲームとソーシャルの相性は最悪
 ガラケー専用タイトルの記録は絶望的
5-7 オンラインゲームの終了とその保全
 過去のゲームの掘り起こし
 何をもって「保存」なのか?
 何を「保存」の対象とするのか?
 オンラインゲームは後世に残せるのか?
 エミュレーションサーバーによる「動態保存」
 コンテンツのフリー化による「保存」
 『星宝転生ジュエルセイバー』の保存
 『Paragon』の保存
5-8 配信元が定義する「不正な」ツール
 どこからが「不正」?
 なぜ「不正ツール」が生まれるのか?
 どうやって「不正ツール」と定義するのか?
 どのように「不正ツール」を排除するのか?
 公式の(?)チートツール
5-9 不正プレイヤーへの処罰のやり方
 アカウントの停止(アカウントBAN)
 通報制度の設置
 泳がせる
 監視国家のもとでサービスする(超暴論)
5-10 内部犯行と刑事事件
 日本で起こった主なインシデント
 どうすれば犯罪は減らせるのか?
 刑事・民事事件にするべきか?
 ガチャと確率操作は?
 結局は、健全なビジネスを行っているか次第
5-11 乱数の話
 奥が深すぎるコンピュータの乱数
 乱数が必要となるゲーム
 コンピューターゲーム創世記からの乱数
 シード値の決定
 擬似乱数の内部状態と周期
 生成アルゴリズム
 ゲームで使われるプロシージャル
 暗号論的擬似乱数生成器
 ハードウェア乱数
 まとめ
5-12 ギャンブルにおけるチート行為
 テーブルゲームイカサマ
 カジノにおけるイカサマ
 オンライン賭博におけるイカサマ
 ぱちんこ、パチスロにおけるイカサマ
 ぱちんこ、パチスロの乱数生成器
 攻略法を失った末路「オカルト」
 まとめ
5-13 パッケージソフトに未来はあるのか?
 ソフトウェア著作権の誕生
 パッケージのコピー
 パッケージからの脱却とライセンス形態の変異

参考文献
あとがき

正誤情報 2022.10.03最終更新

p183
- ガチャの回数のような離散的な値が、-1のような負数や、
+ ガチャの回数のような自然数となる値が、-1のような負数や、

p226
- 例えば、前傾したURLを再掲する。
+ 例えば、前掲したURLを再掲する。

p254
比較例を下記のものに差し替えます。

1 == "1"                // true
1 === "1"               // false
12345 == " 12345"       // true
12345 === "12345"       // false
null == false           // true
null === false          // false
"php" == true           // true
"php" === true          // false
"php" == 0              // false (PHP 8.0.0以前ではtrue)
"php" === 0             // false
"1php" == 1             // false (PHP 8.0.0以前ではtrue)
"1php" === 1            // false
0 == ""                 // false (PHP 8.0.0以前ではtrue)
0 === ""                // false

 排他制御の説明で挙げているソースに不備があり、適切な排他制御がなされていない問題がありました。
p278 12行目から

  // (4)データベースから現在の「石」の所持数を取得して
  // 必要なコストぶん所持しているかを検査する
  $stmt = $pdo->prepare(
    "SELECT normal_stone".
    "  FROM socialgoat.sg_status".
    "  WHERE user_id = :user_id"
  1. // (d)排他ロックを実施する
  2. // ." FOR UPDATE"
);

p280 本文1行目

  • 排他制御のために新たに追加すべき処理は(a)、(b)、(c)、(c')の4箇所であるが、説明のためにコメントアウトしている。
  1. 排他制御のために新たに追加すべき処理は(a)、(b)、(c)、(c')、(d)の5箇所であるが、説明のためにコメントアウトしている。

p282 1行目

  • 今回の実装では(a)、(b)、(c)、(c')、(d)の4箇所のコメントを削ればよい。
  1. 今回の実装では(a)、(b)、(c)、(c')、(d)の4箇所のコメントを削ればよい。

執筆者

松田 和樹(まつだ かずき)

 北海道札幌市出身。1996年に放送されたNHKのドキュメント番組『新・電子立国 第4回 ビデオゲーム~巨富の攻防~』を観て人生を踏み外し、学生時代から書籍執筆を行う。
 中堅SIerにて大手カード会社のWebシステムの開発・運用を行うJava/PHPプログラマを経て、ネットエージェント株式会社に入社。通信パケットやプログラムの解析、組み込み機器向けミドルウェアの研究開発からサポートまで、機種を問わず行う。
 2000年代からゲームセキュリティの研究開発に着手し、商業化に成功する。国内最大手MMORPGのゲームセキュリティ診断に参画、他社タイトルの診断も行う。
 共著『0と1のコンピュータ世界 バイナリで遊ぼう!』(マイナビ)、別名義での共著『クラッキングバイブル』(データハウス)など共著多数。

攻略 モータルコンバット11で効率よくKoin/Soul/Heartを稼ぐ - Klassic Tower編

f:id:eagle0wl:20211114220015j:plain

※筆者はニンテンドースイッチ版で試しています。

モータルコンバット11でKoin/Soul/Heartを効率よく稼ぐ方法を記す。ここでは、ゲームをある程度進めてきて、有用なオーギュメントが揃い始めてきたあたりから使える方法である。Kryptの宝箱を開けるKoinに難儀するレベルであれば、別の方法をあたるかTower of TimeやKryptで回して欲しい。

今回の方法・条件で実践した所、時速で30000+Koin、2600+Soul、800+Heartを稼げることを確認した。Soulを多くしたいのなら時速で4000+Soul、Koinだけでいいなら時速3600万Koinになる。

基本的な流れ

 Klassic Tower
→SURVIVORを選択
→お好みのキャラをAI FIGHTERとして選ぶ
→難易度はvery_easyで挑む
→Tower Konsumablesから獲得Heartを増やすアイテムを選ぶ(必須ではない)
→決定ボタンを連射しっぱなしにすると次々と進む
→SURVIVORをクリアしたら最初に戻る(ここまで30分ぐらいかかる)
 このタイミングで決定ボタンの連射を解除しなければならない

AI FIGHTERでもFatality、Brutalityを発動してくれるので、オーギュメントを複数装備するとより効率よく稼ぐことができる。

オーギュメントによる強化が十分であれば、FLAWLESSの成功率が上がる。Luckalityがあれば、(AI FIGHTERを使用していても)Brutalityの成功率がさらに上がる。

Koin/Soul/Heartを変換するオーギュメント

・Soul - Lvl.4 Dark Magic
獲得したSoulを1個あたり250/500/750/1000Koinに変換する。

・Soul - Lvl.4 Heart and Soul
獲得したHeartを1個あたり5/10/15/20Soulに変換する。

両方のオーギュメントを装備すると、獲得したHeart/SoulはすべてKoinに変換されるので、Koinがものすごく貯まる。主にSoulを増やしたい時は『Heart and Soul』だけを装備すればSoulがよく貯まり、Koinも貯まる。Koin/SoulをHeartに逆変換するオーギュメントはないので、Heartが一番貯めにくい。したがって、Heartが得られるオーギュメントを優先的につけたほうが良い。

Heartを稼ぐための基本セット

装備するオーギュメント

以下のオーギュメントはLvlが低くても装備したほうがよい。持っていない場合は装備しなくても良い(そのぶん効率は落ちるが)。

・Soul - Lvl.4 Perfect Kombat
1マッチ(1ラウンドではない)をFLAWLESSで勝利すると、7/14/21/28個のHeartが得られる。1マッチのFLAWLESSは難しそうだが、SURVIVORでは1マッチ1ラウンドなので、細かいことを気にする必要はない。

・Soul - Lvl.4 Death Benefit
Fatalityを決めると3/6/9/12個のHeartが得られる。

・Soul - Lvl.4 Brutal Heart
Brutalityを決めると5/10/15/20個のHeartが得られる。

・Dragon - Lvl.4 Luckality
Brutalityが2/4/6/8%の確率でいつでも決まる。発動条件・コマンドは自身が持つBrutalityと同じ。ギアにXPは貯まらない。Luckalityを装備したAI FIGHTERは、対戦中でもBrutalityを狙うので、Fatalityより効率の良いBrutalityの成功率が上がる。

Tower Konsumablesで選ぶアイテム

任意で以下のアイテムをつけると効率が上がる。

・Tarkatan Cannibal Blade
f:id:eagle0wl:20211114221234j:plain
マッチ終了時に得られるHeartが2倍になる。KryptのForge(素材合成)では作れないので、Tower of TimeのリワードやKryptのChest(宝箱)から探すしかない。

Soulを稼ぐための基本セット

装備するオーギュメント

・Soul - Lvl.4 Heart and Soul
獲得したHeartを1個あたり5/10/15/20Soulに変換する。

これに加えて「Heartを稼ぐオーギュメントの基本セット」からお好みでセットする。獲得したHeartはすべてSoulに変換される。

さらに、以下のオーギュメントをセットする。

・Soul - Lvl.4 Spoils of War
1マッチ勝利すると5/10/15/20個のSoulが得られる。

・Soul - Lvl.4 Good Souls
1ラウンドをFLAWLESSで勝利すると40/80/120/160個のSoulが得られる。

Koinを稼ぐための基本セット

装備するオーギュメント

・Soul - Lvl.4 Dark Magic
獲得したSoulを1個あたり250/500/750/1000Koinに変換する。

・Soul - Lvl.4 Heart and Soul
獲得したHeartを1個あたり5/10/15/20Soulに変換する。

これに加えて「Heartを稼ぐオーギュメントの基本セット」と「Soulを稼ぐオーギュメントの基本セット」からお好みでセットする。獲得したHeart/SoulはすべてKoinに変換される。

※Koinを獲得できるオーギュメントは複数あるが、Mercyを決める(1ラウンド制なので使えない)、Fatal Blowを使う(very_easyなので体力がそこまで削られない)といった風にいまいち旨味に欠けるので、他のオーギュメントを使ったほうがいい。

選択キャラ

実際の操作はAI FIGHTERに任せるのだから強キャラを選びたい。Luckalityを持っているのなら、AIが使うコンボからBrutalityに移行できるキャラであればなお良い。

ギアのスロットは上記のオーギュメントで埋まっているはずなので、Jinseiのオーギュメントが強いキャラも射程に入る。その中にはKoin/Soulを稼げるものもある。

ただ、オーギュメントのJinseiはキャラごとに固有のものであって、しかも入手しづらいものである。Lvl.4のものともなると、Character TowerのSTAGE 6かTest Your Luckあたりで入手するものである。そこまでたどり着けるのであれば、すでにKoin/Soulは十分貯まっているだろうし、他の有用なオーギュメントもいくらか入手しているはずなので、そこにこだわる必要はないと思う。稼ぎで有用と思えるオーギュメントは以下の1つ。

Kollector

・Jinsei - Lvl.1-4 Rampant Inflation
得られるKoinの量が25/50/75/100%増しになる。

あとは各キャラごとにある、ヒット回数が増える、オフェンスゲージの使用コストが減るといったものをつければ良いと思う。

参考として、筆者はNoob Saibotを使っている。装備は以下の通り。

f:id:eagle0wl:20211114215819j:plain
筆者のバリエーション

※Koin/Soul/Heartの変換を使わずに1周してみたら16,821Koin/2,640Soul/807heartだった。

まとめ

Lvl.4 Dark Magic(1Soul→1,000Koin)とLvl.4 Heart and Soul(1Heart→20Soul)を装備してSoul/HeartをKoinに変換していれば、18,796,821Koin (=16821+(2640+(807*20))*1000)も得られたことになる。SURVIVOR1周に30分かかるとすれば、時速3600万Koinとなる。

オーギュメントのレベルが2つともLvl.1の場合なら 1,685,571Koin (=16821+(2640+(807*5))*250)。Soud/Heartを獲得できるオーギュメントのレベルが下がればもっと少なくなる。

マクロによるさらなる効率化

冒頭で示した「基本的な流れ」のうち、対戦が始まってからは連射ホールドのできるコントローラがあれば手放しができる。しかし、SURVIVORの25人を倒しきった後も放置するとややこしいことになるので、手動操作が必要になる。

ワンボードマイコンであるArduino Leonaldoを使えば、ゲームコントローラになりすますことができる。後は上手く稼ぎループができるような入力を行うコードを書いて、Arduino Leonaldoにコードを書き込んでゲーム機に繋げると、あとは放置するだけで延々とSURVIVORの塔をさまよい続けることができる。

この手法は、比較的最近(?)『ポケットモンスター ソード・シールド』の一部操作の自動化で有名になったものである。

f:id:eagle0wl:20211114215643j:plain
Arduino Leonaldに自作プログラムを書き込んだもの(スイッチ本体に差すとコントローラと認識される)

筆者はArduino Leonaldo(の互換基板)を使って、世にも珍しい(?)ニンテンドースイッチ版『Mortal Kombat 11 Ultimate』用のマクロ基板を自作してみた。Arduinoは数年前から使っていたので簡単な作業だった。うまく動作している。公開予定はありません(MK的には主流とは言えないニンテンドースイッチ版だし…)。

筆者が買った基板はこれ。

攻略 Mortal Kombat 11 Ultimateで効率よくアイテムを稼ぐ方法 - Test Your Luck編

※筆者はニンテンドースイッチ版(ダウンロード版)で試しています。

解放条件

f:id:eagle0wl:20211109210845j:plain
TEST YOUR LUCKに入室

Tower of TimeのSUMMONED TOWERSでLucky Keyを使う。

Lucky KeyはKryptで入手するか、他のTower Keyを使って召喚できるTowerのクリア報酬で手に入れる。いちどLucky Keyを手に入れることができれば、Test your luckの2つめの塔(挑戦コストなし)のリワードでLucky Keyが手に入るので周回可能。

概要

4人の塔と1人の塔を1組として、4組ある。
1回挑戦するたびに高額なKoin/Soul/Heartが必要な塔がある。
1マッチ1ラウンドの戦いを4連勝すると、右隣の1人の塔が開放される。

リワード

・Test your luckを召喚できる「Tower Key」
・運が100%増加するオーギュメント「Lucky Rabbit's Foot」(初回のみ)
・レベル4のオーギュメント(Jinseiを含めてランダム)
・AUSPICIOS(縁起の良い)キャラアイテム
 (コンバットリーグで得られるギアも含まれるらしい?)
・コンシューマブルズ「Elixir」(完全クリアの報酬)

※「Lucky Rabbit's Foot」をつけると、Lvl.4のオーギュメントが出やすくなったり、敵AIの攻撃機会が減るらしい。

Brutal Difficulty(2周目以降で選択可能)をオンにすると、追加で

・オーギュメント「Lvl.1-4 Luckality」
 (敵の体力の残量に関係なくBrutalityが2/4/6/8%の確率で決まる。2ラウンド制でも1ラウンド目で決めることができるが、それ以外の発動条件・コマンドは自身が持つBrutalityと同じ。ギアにXPは貯まらない)
・オーギュメント「Lvl.1-4 Lucky Blows」
 (Krushing Blowsが2/4/6/8%の確率で即死攻撃になる。ギアにXPは貯まらない)

が入手できる。

※「Lvl.1-4 Luckality」「Lvl.1-4 Lucky Blows」は各キャラ専用のオーギュメントで、誰専用のものが得られるのかは運任せになる(塔に構える敵のものが得られる模様?)。

※運を100%増加させるオーギュメント「Lucky Rabbit's Foot」をつけると、即死攻撃が出る確率は2/4/6/8%よりも上がる?(未確認) 100%即死攻撃にならないことは確認済み。


これが手に入れば、以降のファーミングの手間や難易度は大幅に下がる。

傾向

敵は様々な強化が行われているうえ、体力も非常に高く4000-8000もある。敵はインベントリ(アイテム)を使わないが、殴られるとデバフがつくことがある。自分の体力が何割か削られた状態で戦闘が始まることがある。

タイムアップ時の勝敗判定は、実数ではなくゲージの長さで行われるが、それを考慮しても強化された敵の攻撃を受けると簡単にやられてしまううえ、タイムアップによる判定でも競り負けてしまう。

こちらはインベントリを使えないため、正攻法による勝算はない。

オーギュメントによる強化と、それにより可能になるハメ技を繰り返して、少しずつ体力を削り切るしかない。

戦略

高額なKoin/Soul/Heartの用意

1回挑戦するために1,000,000Koins、9000Souls、2,500Heartsが必要な塔がある。

かなり高額なので稼ぎプレイが必要。別エントリで書くかも。

f:id:eagle0wl:20211109210845j:plain
写真では100万コイン必要。アンロックではなく1回挑戦できるだけなので、負けたら丸損。

属性攻撃無効への対処

f:id:eagle0wl:20211109213233j:plain
一番上のCHARACTER RESISTANCESがこれ。
f:id:eagle0wl:20211109213343j:plain
対戦開始後にポーズをかけると、Fire属性無効、Dark, Electric, Energy属性耐性、Ice弱点とわかる

全ての敵はキャラ固有の特徴(1つの属性攻撃無効+3つの属性攻撃耐性+1つの属性攻撃弱点)を持つ。属性攻撃無効と同じ属性を持つ攻撃は全く当たらず、基本コンボもつながらなくなってしまうので、Physical属性(物理属性)を持つ攻撃や投げを主戦力にするか、別の属性を持つキャラを使うしか無い。

オーギュメントで属性攻撃無効を解除することはできない。別属性のダメージをPhysical属性のダメージに変換するオーギュメントはあるが、そもそも攻撃が当たらないので意味がない(属性による有効無効の判定が先で、その後でPhysical属性のダメージへの変換が行われるかららしい?)。

Ramboによるハメ技

ここではRamboを使った方法を記す。

※オーギュメント「Luckality」「Lucky Blows」を装備できるようになった場合、さらに時間効率の良い方法or他のキャラでもできる方法が見えてくるが、それまではこの方法でしのぐ。

戦い方としては、Hidden M60を打ち続けるだけ。まさにランボープレイ。近づかれた場合はアッパーカットなどでダウンを取ってHidden M60を打つ猶予を作る。

Hidden M60はPhysical属性なので、攻撃無効を受けない(はず)。
f:id:eagle0wl:20211109213537j:plain

Amplifyで機銃掃射を続けているときにFINISH HIM(HER!)と出たら、レバーを前に倒すとそのままBrutalityに入るので若干早く終わる。
f:id:eagle0wl:20211109213601j:plain

Rambo専用の「Luckality」を入手できた暁には、早速装備してAmplifyで機銃掃射する。レバーを前に倒さなくても良い。Lvl.1の2%であっても数の暴力でBrutalityが出る。
youtu.be

アビリティの選択

Hidden M60をつける。
f:id:eagle0wl:20211109213645j:plain

オーギュメントの選択

装備するオーギュメントはできれば最高のLvl.4が欲しいが、Lvl.2 - Lvl.3でも支障ない。

f:id:eagle0wl:20211109213903j:plain
オーギュメントの一例


絶対必要なもの
・Jinsei - Lvl.4 Ammo Dump
Hidden M60の機銃掃射を続ける時間が100/200/300/400%増加する。敵AIにしゃがまれても、100%程度機銃掃射すると敵AIは立ち上がるので、機銃掃射を受けることになる(ガードはされる)。Lvl.4の火力は凄まじく、Amplifyで全て当たれば120ヒットコンボ、打ち切る頃にはオフェンスゲージが1つ近く回復しているので、Amplifyを連発できる。

※Lvl.4のJinseiはCharacter TowerのSTAGE 6で入手可能

・Nether - Lvl.4 Breakthrough
こちらの攻撃が25/50/75/100%の確率でアーマーを貫通するようになる。ボス敵は体力が減るとアーマーが付くので、このオーギュメントが無いと機銃掃射を受けながら前進してくるから恐怖である。

・Nether - Lvl.4 Defenceless
こちらの攻撃が5/10/15/20%の確率でガード不可攻撃になる。ガードされるとHidden M60の機銃掃射でもほとんど削れないので、ただタイムを消費してしまう。M60の弾丸は1発1ヒットなので、1度貫通すれば敵のガードを崩すことができ蜂の巣にできる。

・Dragon - Elder God Armor
さまざまな状態異常を無効にできるが、敵を状態異常にすることはできなくなる。敵が繰り出してくるConfusionとSlowが非常に厄介なので、これがないと無理。


お好みでつけるもの

攻撃力を上げたい場合。

・Nether - Lvl.4 Mix it up
こちらのコンボが続くたびに1/2/3/4%のダメージが上乗せされる(上限100%)。M60の弾丸は1発1ヒットなので、ダメージ数がものすごく伸びる。

・Nether - Lv.4 Amped Up
こちらのAmplified必殺技のダメージが10/20/30/40%増しになる。

・Nether - Lv.4 First Position
ラウンド1に限りこちらのダメージが10/20/30/40%増しになるが、次のラウンドから10/20/30/40%減になる。1ラウンドのマッチしかないので、メリットだけを受けられる。

・Nether - Lv.4 Death Dealer
こちらの攻撃のダメージが5/10/15/20%増しになる。


敵の一撃が大きすぎるので体力を上げたい場合。

・Order - Lvl.4 Pumped Up
体力を250/500/750/1000上げる(本来の体力は1000)。

・Order - Lvl.4 Super Powered
体力を500/1000/1500/2000上げる。移動速度は20/40/60/80%減ってしまう(攻撃モーションは遅くならない)。ジャンプができなくなる。デメリットは機銃掃射に関してはあまり問題にならない。ただジャンプができないので、壁端に追い詰められると機銃掃射の構えすらできずにやられることもあるので、敵の立ち回りをよく見るしか無い。移動技を使うのもよい。

・Order - Lvl.4 Armor Clad
マッチ開始時に1/2/3/4ヒットぶんの回復可能なアーマーが付く。10秒経過ごとに1ヒットぶんのアーマーが回復する。アーマーを付けた場合、Hidden M60を打ち始める時に殴られても怯まないメリットがある。一方で、ワープ技を使う敵に対しては回り込まれるリスクが大きく、アーマーがついていると機銃掃射の背後から殴られ続けてしまい大ダメージを受けてしまうので注意すること。

f:id:eagle0wl:20211109215128j:plain
希少なアイテムが次々手に入る(コンバットリーグのスキンは手に入らないらしい)

参考

steamcommunity.com
steamcommunity.com


ニンテンドースイッチ版は居住国をアメリカに設定したアカウントを作って、eShopで買うと良い。
国別で価格を比較できるサイト↓
https://eshop-prices.com/

今からパッケージを買う際は、DLCが全て収録されている『Mortal Kombat 11 Ultimate』を買うと良い。

映画版は原作愛が素晴らしい。ゲームの概要を知っていれば10倍楽しめる…はず。

映画『モータルコンバット』(字幕版/吹替版)ネタバレ感想

恐ろしいことに1年ぶりのブログ更新になってしまった。

映画『モータルコンバット』を観た。字幕版は封切り日(6/18)に、吹替版はGame*Sparkさんオンライン試写室(10/18)で視聴した。

f:id:eagle0wl:20210623115244j:plain

筆者の原作知識量

筆者のモータルコンバット知識は、リアルタイムで遊んだのはゲームボーイ版のモータルコンバット2、後にDS版のアルティメットモータルコンバット3、PSP版のUnchained(6作目)、PS3版のモータルコンバット9から本格的に再開。ただし格闘ゲームは上手くなく、オンライン対戦ではほぼ勝てない。情報サイトであるMortal Kombat SecretやMortal Kombat Wikiをよく読む。

ストーリー

ストーリーとしては、オープニングで真田広之演じる白井流忍者であるハンゾウ・ハサシ(没後スコーピオンとして冥界から復活)は、敵対組織に属する忍者ビ・ハン(=サブ・ゼロ)によって家族もろとも殺されてしまう。

時代は現代に移り、総合格闘家であるコール・ヤング(映画オリジナルキャラクター)はサブ・ゼロに狙われてしまうが、特殊部隊に属するソニア・ブレイドとジャックスに導かれて、地球界を守護する浅野忠信演じるライデンの寺院を訪れる。選ばれた戦士たちは特訓を積んでそれぞれ奥義を身につけ戦士として覚醒するが、並行してシャン・ツン率いる魔界の戦士達がモータルコンバットの掟を破り急襲を仕掛けるも、犠牲を出しながらそれを退ける。ラストではコールとサブ・ゼロとの一騎打ちとなるも力の差は歴然、サブ・ゼロが止めを刺そうとしたところにスコーピオンが現れ因縁の対決になる…という具合。

感想

ゲームの方は長らく日本版が発売されていないモータルコンバットだが、25年ぶりの再映画である。最新作である『モータルコンバット11』の売上は1200万本を突破しており、対戦格闘ゲームではスマブラに次ぐ勢力である(参考:スマブラSPは2000万本以上、鉄拳7は約700万本、ストVは約500万本)。しかし本作の持つグロ要素はCERO Zすら通過できないだろう(日本のレーティングはエロに優しくグロに厳しいというのが謎)。

ゲーム原作映画としてはトップクラスの完成度だと思う。ゲーム原作映画って本当にろくなものがなくて、成功例としてはポール・アンダーソン監督のバイオハザードぐらいだと思うのだが…(ただし主演女優と結婚する前の初期作品に限る)。そういえば25年前の映画『モータルコンバット』の監督もポール・アンダーソンだった。『ピクセル』も良かったが、あれはパックマン映画ではなくレトロアーケード映画だな。

ゲームを原作とした世界観やアクション、フェイタリティの再現度はものすごく、ゲーム原作映画としては十分合格点。ただ、吹替版ではクン・ラオやスコーピオンが発する、モータルコンバットを象徴する決め台詞「FLAWLESS VICTORY」「Get over here!」がそれぞれ「完璧な勝利だ(これは1995年映画と同じ翻訳)」「こっちへ来い!」に吹き替えられている。前者はいいとして、後者はちょっと残念。まあ、シリーズのほとんどが日本未発売で翻訳もされていないから仕方ないことなのだが…。

ハンゾウスコーピオン)役の真田広之はオープニングとラストのサブ・ゼロ戦で登場、いずれの登場シーンでもかっこいい殺陣を見せ、主役を食う構図になっている。しかし、(字幕版でも)日本語を喋っているはずなのに、字幕を見ないと聞き取れなかったぞ。人間界の戦士を守護するライデン役の浅野忠信は、常に目が白く光り続け、雷を撃ちまくりテレポートする浅野忠信が見られるというだけでも相当にレアだと思う。

ゲーム原作映画の中でも、ゲームの設定やストーリーを非常に尊重した作品だと感じた。もともとのモータルコンバットは、ストーリーや設定が非常に奥深いが、矛盾点も非常に多く、9作目からストーリーが仕切り直されているぐらいである。

ゲームのモータルコンバットを知らない人でもわかるように最低限の説明はされているが、いかにもゲーム映画然とした作りになっているので、ストーリーの忙しさや説明不足な部分を感じた。ゲームを良く知っていれば再現度の高さや芸の細かさを楽しめるが、そうでなければ、突然妙な高速移動や必殺技を使うキャラクターが出てきたり、ハンゾウだった人物が突然スコーピオンと名乗る理由がわからなかったりするので、状況が飲み込めないかもしれない。

筆者が遊んでいるモータルコンバット11で使用しているカバルが登場するのは嬉しかったが、吹替版ではカスレ声ではなかったぞ。レイコとかニタラといった、かなりマイナーなキャラまで出てきている。レイコ戦でピッツステージが再現されていたのが嬉しかった。

ほかの配役も、外見はみんなゲームに似ているしアクションも良く出来ている。邦画みたいに原作の設定をねじ曲げて配役側に寄せるようなことはしていない。重要な局面ではハンゾウスコーピオン)は日本語を話すし、サブ・ゼロは中国語を話す。拳法を使うクン・ラオ役のマックス・ファンって成家班(ジャッキー・チェン スタントチーム)出身なのね。動きがゲーム中の基本コンボそっくりだった。

ゲームはM17+(アメリカ基準)で、映画はR15(日本基準)なので、フェイタリティは比較的地味なものが使われるのと思ったが、思いっきりモータルコンバットXクオリティの画質で断面を見せるゴア表現で笑った。しかしフェイタリティを食らう側は魔界の住人ばかりである。そらそうだ。

惜しいのはサントラである。比較になってしまうが、95年版映画のサントラが非常に素晴らしいだけに、何か抜け落ちたものを感じる。エンドロール時にメインテーマのアレンジ版が流れるんですけどね。レプタイルのテーマも名曲だと思うけど本作では未使用。



最高すぎる95年版映画のテーマ曲



最高すぎる95年版映画のレプタイル戦でのテーマ曲


もともとのストーリーや設定が中二感満載なので、ロッテントマトの評価が低いのは当然だと思う。残虐格闘ゲームの映像作品にメインカルチャー的なものを期待するのは違うと思う。

kobo Niaに256GBmicroSDを換装したら本のインポートができなくなったので直した

kobo niaについて記した記事が見当たらないので、メモ代わりに書き記すことにする。

安眠を得るために、本を読む際にバックライトが眩しいスマホではなく電子書籍リーダーを使うことにした。動作保証外な改造・CFWの導入、特に大容量化を望む場合はkoboが一番いいと聞いて、当時のエントリーモデルであるkobo Clara HDを購入した。そのうち、勉強用と娯楽用に端末を分けることを思いつき、エントリーモデルのkobo Niaを追加で購入した。

これに先立ってCFWをいじってみたが、CFWのメリットはそれほど感じられなかった。ここでは大容量化だけの実施にした。koboシリーズは外装を開けるとmicroSDが挿さっており、ddで大容量microSDにデータをバックアップして、パーティションを操作すれば最大256GBまで大きくすることができる。

以下は自己責任でお願いします。

koboの容量を最大化する(8GB→256GB)

koboの外装を開けてmicroSDを取り出す

f:id:eagle0wl:20201213153408j:plain
左:kobo Clara HD、右:kobo Nia

プラ製のオープナーをねじこんで外装を取り出す。絶対に金属製のマイナスドライバーを使ってはいけない。

kobo Niaは容量8GBと認識されているが、本体に挿さっているmicroSDは16GBだった。

koboに挿さっているmicroSDのイメージを取る

Ubuntuで実施した。

一例)

# dd if=/dev/mmcblk0 of=/tmp/kobo_nia.img

WindowsmicroSDを差し込むとフォーマットを促されるが、絶対にフォーマットしてはいけない。

大容量microSDのフォーマット

Windowsで実施した。

まずはSD Formatterで大容量microSDをフォーマット。続いて、大容量microSDFAT32でフォーマットした(exFATではない)。Windows標準ではexFATしか選択できないため、バッファローのDISK FORMATTERを使用した。

イメージの複製

Ubuntuで実施した。
バックアップを大容量microSDに複製する。

# dd if=/tmp/kobo_nia.img of=/dev/sda

パーティションの拡張

Ubuntuで実施した。gparted を使った。
KOBOReaderをいったんアンマウントしてから新規作成すると容量を広げられる。とりあえず末尾にスワップパーティションを設けた(linux-swap 2GBにした)。

動作確認

kobo Clara HDまたはNiaに差し込んで動作確認を行い、デバイスのリセットを行う。

f:id:eagle0wl:20201213154410p:plain
容量が増えていることがわかる。

※自分の環境では以下のmicroSDkobo Clara HDで認識しなかった。
Amazon | Transcend microSDカード 128GB UHS-I U3 V30 A1 Class10 Nintendo Switch 動作確認済 5年保証 TS128GUSD300S-AE【Amazon.co.jp限定】 | トランセンドジャパン | microSDカード 通販

本体アップデートを行う(画面左上にあったメニューが下部に移動する)。

kobo NiaのmicroSDを換装すると本をインポートできない?

もしかしたら自分の端末だけかもしれないが、以下はメモとして残す。

kobo Clara HDはmicroSDの換装だけでうまく動作した。しかし、kobo Niaだと本のインポートが思うようにいかなかった。本来であれば、

(1) koboをPCにUSB接続する
(2) kobo電子書籍データをコピーする
(3) USBケーブルを抜く
(4) koboの画面にプログレスバーが表示され、本がインポートされる ←これが動かない
(5) 追加された電子書籍を読めるようになる

こうなるはずだが、(4) が起こらず電子書籍を読めないのである。たまにインポートされることもあるようだが、原因はわからなかった。これだとただの石版になってしまうので、本のインポートができるよう解決策を考えた。

NickelMenuの導入

本がインポートされない問題は、NickelMenuを導入することで解決した。
www.mobileread.com

USB抜き差しでインポートされないことが多々あるので、明示的に「ホーム」から「本のインポート」を選べるよう項目の追加を行った。

KoboRoot.tgz を、PCと接続したkobo端末の.koboフォルダにコピーして、ケーブルを抜いて再起動する。「ホーム」のドロップダウンに「NickelMenu」が追加されているが、この時点ではまだ使えない。

.adds/nm フォルダにある doc ファイルをテキストエディタで開き、末尾に以下のテキストを追記する。文字コードUTF-8

menu_item :main   :本のインポート            :nickel_misc        :rescan_books_full
menu_item :main   :スクリーンショット機能    :nickel_setting     :toggle:screenshots
menu_item :main   :ライブラリ:すべての本    :nickel_open        :library:all
menu_item :main   :ライブラリ:著者          :nickel_open        :library:authors
menu_item :main   :ライブラリ:コレクション  :nickel_open        :library:shelves
menu_item :main   :ホーム                    :nickel_misc        :home

本当は先頭1行の追加だけでよいが、右手親指が届くところに置きたい項目を追加している。

f:id:eagle0wl:20201213154437p:plain
これで、ホームに追加された「NickelMenu」→「本のインポート」で無事本のインポートができるようになった。

スクリーンショット機能を追加している。スクリーンショット機能をenableにすると、電源ボタン押下でKOBOeReader 直下に png ファイルが作成される。

換装に使用したサンディスクの256GBmicroSD。kobo Clara HDでもkobo Niaでも認識した。