ICFPC2017

ICFPC2017にチームAdlersprungで参加しました。Adlersprungとはドイツ語でEagle Jumpという意味です。どこかで聞いたような名詞ですね。メンバーは

  • mkut
  • osa_k
  • pepsin_amylase
  • y3eadgbe
  • yuusti
  • kawatea

の6人でした。去年は8人いたけど、人数が多すぎて話がまとまらなかったりして面倒だったので少なくしました。それでも一般的なICFPCチームよりは多いという説があります。

リポジトリはこちら: github.com

概要

今年の問題は、対戦型ゲームのAIを作るというものでした。グラフGが与えられ、一人ずつ交互に辺を取って自分の色で塗っていきます。Gに含まれる頂点の部分集合L (Lambda Mine)ではラムダが産出するため重要度が高く、この頂点を起点としたパスを作るのが目的となります。具体的には、∀(l, v) ∈ L×V(G)について、(lからvまで自分の色の辺だけを通って到達できるか ? 1 : 0) × (lからvまでのG上での最短経路長)2を合計したものが点数となります。mkutがTicket to Rideだと言ってたけど、自分は1回しかこのゲームをやったことがないので、どれくらい似ているかは不明です。

自分はAI作成にはほとんど関わらず、ひたすらインフラをいじって遊んでいました。第一目標はもちろん優勝ですが、裏目標として

あたりを想定していました。

以下作ったものと知見です。

Ka Dingel

先史文明期の遺産であるところのJenkinsです。なんだかんだ言ってプロセスをWebインターフェースから走らせられたり、手軽にログの残るcronを仕掛けられたりするので重宝します。中にはたくさんのフレンズと数人のイーグルジャンプ社員が住んでいました。

f:id:osa_k:20170813220137p:plain

GitHubにpushされた変更はとりあえず自動でビルドしておくという運用になっていたのですが、ビルド結果をコミットメッセージとともにSlackで通知するようなスクリプトをpepsin_amylaseが書いたところ、Slackの治安が終わりました。

f:id:osa_k:20170813225054p:plain

Sandstar

AI担当のyuustiとkawateaはC++しか書かずJSONを読めない(boostがあるので頑張れば読めるはずだけどよく知らない)ので、触れたJSONをいわゆる競プロ形式に変換するRubyスクリプトが生まれ、Sandstarと名付けられました。いろいろな仕様をこのスクリプトで巻き取った(頂点IDは0〜N-1の連番とは限らない、ゲームの状態はシリアライズして保存する必要があるためグラフの管理をする等)ので地味に面倒くさく、Rubyで書き始めてしばらくしてから後悔しました。一度書き終えてからは大きなバグもなく安定していたものの、終盤ではこいつのI/OがボトルネックになってTLEする可能性を指摘されて冷や汗をかいた(結局AI側の高速化によって回避された)ので、こういう用途にスクリプト言語を使うべきではないなぁと思いました。Rustで書いていれば……。

Alpaca

ジャパリカフェ前に生えている草をむしることで、対戦結果を可視化してくれるフレンズです。Sandstarを書いていたらpepsin_amylaseが対戦をぶん回すためのスクリプトFennecと呼ばれていた)を書き上げていたので、じゃあ後はビジュアライザだなーということで書きました。Riot.jsがSVGを特殊なやり方でハンドルする(riot-cxのようなattribute名にしないとコンソールがエラーで溢れる)ので少しハマったものの、概ねサクサクと書き上がりました。Riot.jsいいですね。Intellijで正しくハイライトできないけど……。

AIをあまり触らなかったことの弊害で、あると超便利系の機能がAI班に言われるまで実装がほったらかしになっていたりして、相変わらずうまく行かないなぁと思いました。ユーザが6人であってもドッグフィーディングしないと分からないものですね。

f:id:osa_k:20170813221806p:plain

Time Vault

ターンを溜めるすごいアーティファクトです。2日目が終わるあたりでSplurgeというルールが追加され、Sandstarの修正は済んだもののあまりやることがなくて暇だったので、機能テストがてらSplurgeを使うAIを実装しました。これは通常1ターンに1本しか辺を塗れないところ、直前Nターンをパスしておくと最大N+1本からなるパスを一気に塗れるというもので、一気に高得点が入るのでロマンがあります。本物のTime Vaultは自力では1ターンしか溜められないけどゆるして。

基本的には一番遠いLambda同士を一気に繋げるようになるまでターンを溜めて解放するというAIです。無理だったら一番点数の増えそうな辺を取ります。当時はすでにmkutのArtemis(めっちゃつよい)とkawateaのkawatea-v3(めっちゃつよい)が争っている魔界になっており、疎なグラフでターンを溜めていると橋を取られて死ぬという状況だったのであまり成果は残りませんでした。

Kaban

知能が発達しているためMySQLを読み書きできます。2日目の半ばあたりまでは対戦のログはすべてFS上に生のJSONメタデータの組み合わせで保存されていたのですが、ランダムで大量のマッチをスケジュールするFennecが現れて、これAlpacaのトップページを表示するたびに数千ファイルを舐めることになるけど大丈夫か、みたいになったのでログをMySQLに突っ込むことになりました。最終的にMySQLだったから良かったという処理はしなかったので、かなり無駄だった気がします。MySQLにするとローカルでのデバッグがクッソ面倒くさくなるし……。あとgo getがちゃんと動くようなディレクトリ構成がわからずハマりました。今も良く分かっておらず、雰囲気でディレクトリを決めてGOPATH=pwd go getしたら動きました。

総括

やったことはこんな感じです。1日目はひたすらインフラを整えていて、3日目はやることないのでTime Vaultを強くしていたのですが、2日目に何やったか完全に覚えていません。pepsin_amylaseから飛んでくるインフラの拡張要求に対応してたのかな……。

目標は概ね達成できたと思います。自己対戦インフラがちゃんと組めたので2015年よりは成長してるかなと思いましたが、Unagiは数百CPUとか回してたらしいので、まだ思い切りが足りなかったかなと思います。 あっ思い出した、CPUめっちゃ増やそうとしたらGCPのQuotaにぶち当たって諦めたんだった。増やして〜ってリクエスト送ったら増やしてくれたんではないかとは思いますが、そんなにたくさんいらんやろと言われたのでそっか〜と思って16CPUで満足してしまった。

Riot.jsはいいですね(2度目)。個人プロジェクトでWebpackなんか使いたくないし、なんならBabelとかBrowserifyも使いたくないので、ファイル1個置いておくだけでお手軽にWeb Componentsライクなタグとかモジュール化の恩恵を受けられるのはかなり良い。

インフラはやはり日頃から慣れ親しんでいるかによって、ハマったときの対応力が全然違うなぁと思いました。Jenkinsからnohupでdaemonを起動しようとしたら普通に殺されるという現象もしばらく気付かなかったし、気付いてからsystemd対応するのも結構時間がかかった。ユーザ単位のsystemd使おうとしてsudoするとXDG_RUNTIME_DIRが定義されなくて死ぬのとか、前もやったのに全く覚えていなかった。

コンテストそのものは、問題文を読んだ瞬間はLambda Lifterの再来かと思って身構えたけど、やってみると意外と面白かったです。AIに関わってないとはいえ、mkutやkawateaやyuustiが書いたAIの挙動を見比べているだけでも楽しかった。ただ、公式のスコアボードがないのはコンテスト感がないというか、何と戦っているのか分からないし自分がどれくらいうまくやっているのかも推測できないので、ゲーム性を下げてしまっていたと思います。

退職しました

f:id:osa_k:20170630235314p:plain

6月30日付で2年と3ヶ月勤めたリクルートホールディングスを退職しました。7月1日からはグループ会社のIndeed Japan勤務になります。

そもそも元がリクルートに籍を置きつつIndeedでコードを書くという雇用形態だったので、何が変わるかというと何も変わらないと思います。給与は上がった。リクルートで加入していた諸々について、転籍に伴って書類を処理する必要が生じて精神が終わった。それくらいです。あとこれからは、勤めてる会社を説明する時に無駄なステップが省略できるようになる(籍はリクルートだけどIndeedで働いてるみたいな意味不明なマクラがいらなくなる)ので会話が楽になりますね。

せっかくだし退職エントリを書こうと思ったけど、想像以上に書くことがなかった。

メキシコに行った

今年の目標1.5/10。

せっかくアメリカへ出張したので、帰りがけにメキシコシティへ旅行した。

治安

街は汚いけど治安が悪いということはなく、夜に歩いていてもスリに遭ったり事件に巻き込まれたりということはなかった。Doctres等の危険と言われているエリアは避けていたものの、観光地なだけあって、普通に生活する分には大きな問題にはならなそうだと感じた。 交通マナーは悪い。自動車から20cm程度離れていれば安全だと思っているのか、ギリギリの間隔で追い越しや割り込みをかけてくるし、曲がっている途中の車を曲がりながら追い越したりする。対象が人間でも同じで、横断歩道を渡っていても歩行者ギリギリまで寄って止まったり、歩行者のすぐ側を徐行しないで走り抜けていったりする。また、小さい交差点や夕方のラッシュ時はめちゃくちゃに混んでおり、交差点の中まで自動車がひしめき合っているため、歩行者は車の間をぬうように横断する必要がある。その状態でも少し隙間が開くと平気で間隔を詰めてくる。最初はかなり怖かったが、現地の人の真似をして2,3日過ごしていたら慣れた。

生活

言葉はほぼスペイン語しか通じない。英語と似ているので、単語をいくつか覚えれば喋ることはそんなに難しくないが、聞き取るのは付け焼き刃ではなかなか難しい。会計等で数を聞き取ることはできるようになったが、ちょっと複雑なことを言われるとすぐに会話できなくなる程度にしかならなかった。 とにかくどこでもチップを払う必要がある。例外はコンビニや観光地の物売りくらいで、だいたいの場所では会計の後にチップを置いて出るか、レジに置いてあるチップ入れにチップを入れる。クレジットカードだとアメリカと同じでチップ欄を埋めれば良いのだが、メキシコはクレジットカードを使えないところが多いと聞いていたので基本的に現金で払うようにしていたため、最初は払い方が分からずに戸惑った。常に小銭を持っておく必要がある。 移動はUberが便利だった。タクシーはスペイン語が話せないとトラブルになることが多いらしいので、全く喋らなくても良いのは安心感がある。

例によってホテルのクリーニングは高いので、洗濯は洗濯屋を使った。コインランドリーの文化はないらしく、代わりにあちこちに洗濯屋がある。自分の使ったところは3kgで65ペソだった。洗濯物を渡して料金を先払いすると引換券を渡してくれて、指定の時間以降に引き取りに行けばよいの で、これもスペイン語が怪しくても使える。早めにやってくれとか交渉したいんだったら別だけど……。

街中

ビジネスエリアは近代的なビルが建っており、街も比較的きれいに保たれている。それ以外の箇所はあまりきれいではなく、屋台が至るところに出ていることもあり、生ゴミのような臭いがある。道路や歩道は質が悪く、よく凸凹や割れ目があったり、砂利がむき出しになっていたりする上、場所によっては水はけが悪く、雨の後は巨大な水たまりができていたりする。また、雑に道路を掘り返して工事している光景をよく見た。中でも街中の細い道をまるごと掘り返して通行止めにし、自動車はおろか歩行者も横断できなくなっているのはメキシコならではの雑さを感じた。

食事

街中の至るところに屋台が出ていて、10〜50ペソ(1ペソはおよそ6円)で大体のものが食べられる。建物に構えている店はもう少し高く50〜150ペソ程度、もっと高級なレストランでは300〜500ペソが相場になる。味付けは全体的に素材の味+強めの塩味というものが多く、サルサ等で味を調整することが想定されているように感じる。実際、食事をすると必ず数種類のサルサが器に入って出てくる。食事を頼むと大抵トルティーヤが付いてくるので、適当に丸めてパンのように食べる。

タコス

アメリカのタコスと異なり、大抵具は1種類しか入らない。任意で玉ねぎ、レタス、パクチー等をトッピングできることもある。

ポゾーレ(大粒のとうもろこしの入った、ダシの強いスープ)

モーレ(カカオのソース)料理

エンチラーダ

目玉焼き

サルサソースがかかっていて、半熟の黄身とよく合う。

2枚目は小さい鉄鍋に目玉焼きが入っていて、その上から鍋いっぱいにソースがかけられている。

プルケ

東日本大震災の影響でまどか☆マギカの最終話が3話連続放送になった当時、「謎の白い液体」としてCMで流れまくり深い印象を残したアレ。これを蒸留するとテキーラ(メスカル)になる。味はマッコリやどぶろくのクセが強くなった感じで、蜂蜜酒やワインに方向性が似ている。

個人的にはあまりメキシコの味付けが舌に合わず、Tex-Mexのようにアレンジされているものの方が食べやすいと感じた。

また、数日滞在していたら下痢になった。日中は活動できる程度には収まっていたのでしばらく様子を見ていたのだが、夜ごとに腹痛と水下痢を繰り返すようになり、流石にまずいと思って薬局でTredaという薬を買った(下痢の薬をくれと言ったらこれが出てきた)。この薬はよく効いて、飲みながら1日安静にしていたら完全に治った。後で調べたところ、外食の生野菜は飲用不適の水道水で洗ってある可能性があり、食中毒の感染源になるらしい。発症した日は生の玉ねぎの入った屋台のタコスや、レタスとトマトの入ったハンバーガーを食べていたので、疲労と重なって発症したのではないかと思う。

観光

宿泊していたホテルが提携している観光ツアーがあったので申し込み、周辺都市を観光した。

テオティワカン遺跡

謎の滅亡を遂げた古代文明の遺跡。どことなくイタリアのポンペイ遺跡を思い出す。

でかいピラミッドがあり、登ることができる。

遠くの火山(名前不明)がたまに噴火し、白煙を噴き上げているのが見えた。

プエブラ

メキシコシティ周辺もいろいろある。

ろう人形館

歩いていたら見つけた。結構リアルな上、量があるので面白い。

人類史博物館

アステカやマヤ文明を初めとした、メキシコの歴史を所蔵している博物館。

チャペルテック城

城。英語の案内がなく、歴史的な位置付けはよく分からなかった……。

ルチャリブレ(メキシコのプロレス)

30分弱の3本先取マッチが6本あった。日本のプロレスは知らないが、あまりガチンコ感がなく、殴りも受けもかなり手加減しているように見えた。でも面白い。

まとめ

国内旅行と同じようなノリで雑に歩き回ったり歩き回らなかったりしたが、スペイン語が話せるともっと楽しめると思った。食事が合わないのは少し辛いけど、人によるのかもしれない。

アメリカに行った

今年の目標0.5/10。0.5なのは旅行じゃなくて出張だから。

アメリカはテキサス州のオースティンへ、2ヶ月出張した。

仕事

がんばった。会社に置いてあるBarq's Root Beerがうまく、毎日飲んでいた。

運転

基本的に車がないとどこにも行けない。バスは一応通っているが、本数が少ない、遅い、網羅的でない、アナウンスが不明瞭で次の停車駅が分かりづらい、等の理由から使うべきではない。車を運転しない場合はUberLyftに頼ることになる。タクシーは日本のクレジットカードが使えないことがあるので注意が必要。

自分の場合は、2年前の研修で車がないと生活不可能であることが分かっていたので、出張が決まってから1ヶ月半で日本の免許を取った。当然日本では教習以外に運転していないので、ぶっつけ本番でアメリカの公道を時速50マイル(80km/h)とかで走ることになる。とは言え、右側通行と常時右折可にさえ気をつけていれば、基本的に道幅が広くて余裕があるので日本よりも楽だと思った。

いわゆるハイウェイ沿いの道はハイウェイを挟んで上りと下りが分かれており、1回曲がり方を間違えると2km以上後戻りできなくなることも結構ある。Google Mapsにナビをしてもらえば、勝手にリカバリの仕方も考えてくれるので便利だった。あとダウンタウンは一方通行だらけの上道が狭いので、慣れるまでは運転するのが難しかった。

ガソリンスタンドは注意が必要で、基本的にはセルフサービス方式なのだが、アメリカで発行されたクレジットカード以外は機械が認識してくれない。正確にはZIP Codeを聞かれるので、そんなものが登録されていない日本のカードでは詰む。仕方がないので、併設されているコンビニに入り、先に$20なり$30なりを払ってポンプをアクティベートしてもらってから給油することになる。先払いで余った分は、レシートをレジに持っていけば払い戻してくれる。

買い物

買い物はあまり日本と変わらない。スーパーは、良いものが欲しければWhole Foods、安く食料品を買いたいならHEB、日用品ならTargetという雰囲気があるが、HEBにも日用品が置いてあるのでHEBに行っとけばほぼ困らない。レジにいる店員はほぼ確実に開口一番"How are you?"とか聞いてくるが、これはただの挨拶なので"Fine"とか"Great"とか答えておけば良い。人によっては更に会話を続けてこようとするので、そのときは応対するなり無視するなりしてがんばる。

飲食店だと支払いのときにチップを払う必要がある。相場は価格の20%と言われているが、レシートに印刷されている金額は通常8.25%の消費税を含んでおり、消費税分はチップに反映しなくてよいので、印刷されてる額の18.5%が厳密には正しい(という議論が1回あった)。何も考えずに1/5してからキリのいい感じに切り捨てればいいと思う。店によっては、チップ15%ならいくら、20%ならいくらという金額が印刷されたレシートを使っていることもある。また、レシートと一緒にクレジットカードを複数枚渡すと、勝手に割り勘してくれる。店によっては各人が何を注文したか覚えており、一緒にカードを渡しても個別の明細が返ってくることもある。

食事

アメリカ飯はまずいとよく言われるが、少なくともオースティンに限って言えばおいしい飯屋は多い。タコス、サンドイッチ、テキサスバーベキュー等は定番のうまさだし、飽きたら中華料理屋やラーメン屋もある。無数にあるブルワリー(ビールの醸造所)で飲めるクラフトビールもうまい。

タコス

Torchy's Tacos

アメリカンなジャンクフード系の改造を施されたタコス。1つがでかい。個人的にはBaja Shrimp(小エビにフライドチキンの衣をつけて揚げたやつが入っている)がうまく、いつも頼んでいる。しかしたまに注文したのと違うものが出てくる。

Tyson's Tacos

安くてうまいタコス。Crispy Duckという、鶏肉と皮をカリカリに揚げたやつに甜麺醤のタレがかかっているタコス(要するに北京ダック)が独特でうまい。

Tacodeli

上品においしいタコス。曜日ごとに特別メニューがあり、水曜と日曜のDeli Berryにファンが多い。午後3時で閉まってしまうので夜は行けない。

Taco Flats

落ち着いたスポーツバーのような雰囲気で、店内のテレビではいつもスポーツ番組が流れている。タコスは普通だが、青唐辛子にチーズを詰めてベーコンを巻いて焼いたStuffed Jalapenoがうまい。ビールも品揃えが豊富で良い。

バーベキュー

テキサスのバーベキューというのは、日本のように屋外で焼肉をやるものではなく、塊肉を数時間〜十数時間かけて炭火で調理したものを言う。原理としては最近流行っている低温調理肉と同じ。

Ludy's BBQ

チェーンのバーベキュー店。味はそこそこだけど並ばなくて良いという圧倒的メリットがあるし、そこそこと言っても日本ではなかなか食えない。Rudy'sやRuby'sというそっくりさんもある。

La Barbecue

1時間くらい並ぶ。ビールを持参してきて、わいわい飲みながら待つのが定番なので、あまり苦にはならない。試してないけど無料ビールも置いてある。

Franklin Barbecue

定番だが、4時間くらい並ばないといけないことで有名。今回は行ってない。

バー・ブルワリー

たいていブルワリーにはバーが併設されていて、クラフトビールを飲むことができる。アメリカのバーはTabというシステムがあって、最初にクレジットカードを通すときにTabを開くかどうか聞かれる。開いた場合、自分の注文は以後レジに記録されていき、帰るときにTabを閉じると初めて決済される。Tabを開いた後の注文時はLast Nameを聞かれるので少し戸惑う(アメリカではほとんどLast Nameを使わない)。

Pinthouse Pizza

名前通りピザがうまい。10種類くらいあるが、色気を出さずに普通のマルガリータを頼むのが安全だと思う。PHPと書かれたシャツが買える。

Jester King

少し酸味の強いビールだが、クセの強いいくつかのビール以外は飲みやすい。ここもピザがうまい。市街地からは少し遠いので平日には行きづらい(そもそも開いてるのだろうか)。

Draughthouse

屋外席が多いためか人気がある。ここは食べ物を自分では提供していないが、よく隣にフードトラックが止まっていて食べ物を売っている。

ラーメン

意外とラーメンはアメリカでもウケるらしく、怪しいのも含めると結構見かける。

Ramen Tatsuya

オースティンと言えば、のラーメンその1。基本的には豚骨ラーメンかつけ麺のどちらかを選ぶ。豚骨ラーメンはちゃんと細麺を使っている、普通の豚骨ラーメン。つけ麺は独特で、つけ汁の粘度が少し高く酸味もあり、平たく言えばごまドレッシングのような味がする。好みは分かれるが、試してみて損のない味だとは思う。チームメンバーに勧められてDeep Fried Sprout(揚げ芽キャベツ)を入れたらすごくおいしかった。

Michi Ramen

オースティンと言えば、のラーメンその2。店名を関するMichiは豚骨醤油ラーメンで、Tatsuyaよりも完成度は高いと思う。JungleとかTexasといった名前のラーメンもあり、そっちは地雷。餃子は独特で、炒めた肉そぼろのようなものが皮に包まれている。店の外見はプレハブっぽい上に隣の店(ガレージショップっぽいが謎)に駐車する仕組みのため、初見で正しく進入するのが難しい。

Jinya Ramen Bar

ここ2,3年で新しくできた(っぽい)ラーメン屋。Domainというおしゃれなショッピングモールの中にある。日本の標準くらいのラーメンが食えるが、少し高め。店に入ると、店員が片言で「イラッシャイマセー」と言ってくる。

その他

くら寿司

つい最近できたらしい。アメリカにあるということ以外は本当に特筆することのないくら寿司で、びっくらポンもちゃんとある(ただしアメリカの賭博法かなんかの関係でガチャにはならず、15皿ごとにカプセルが出てくる仕組み)。しかし裏を返せば、内陸かつ生魚を食べる習慣のないオースティンで、まともな寿司が食べられる便利スポットとも言える。

Whole Foods

Whole Foodsはちょっといい感じのスーパーマーケットで、ビュッフェ形式のランチボックスが売られている。少し高めだがあまり飽きない味だし、米も食べられる(ただし細長いジャスミンライスと呼ばれるもの)のが良い。

遊び

Red's Indoor Range

いわゆるShooting Range(実銃を撃てるところ)。ここは自分で銃を持ってこないといけないのだが、知り合いのツテで連れて行ってもらった。最初に撃った9mmですら思った以上に反動と爆発音があり、その後のハンドガン(名前忘れた)やアサルトライフル(AR-556)もおっかなびっくり撃っていた。ただ何回も撃ってると慣れる。最後に撃ったスナイパーライフルはかなり重い上反動も大きく、映画やゲームで軽々と取り回してるのは一体なんなんだと思った。

Barton Springs Pool

天然の湧き水を使ったプール。湧き水なので、年間を通じて温度が20℃程度に保たれている。言うまでもなく、プールとしてこの温度はかなり低く、30分も泳いでいると身体が冷え切って辛くなってくる。朝8:00までは入場料が無料になるが、真夏でない限り朝は寒い(むしろプールのほうが温かい)し、ダウンタウンに向かう183号線は朝にめちゃくちゃ混むので、別に朝を狙う必要はないと思う。入場料も高々$3だし……。

Google Photos(全天球表示)

Alamo Drafthouse

映画館。ただし座席にテーブルが備え付けられており、軽食とビールを注文して食事しながら映画が見られる。日によってはコメディアンが映画にツッコミを入れたり、VHS時代のテープを再生したりという面白イベントをやっている。

インセプション

今年の目標4/10(見た順番としては3本目)。アメリカ出張の飛行機内で見た。

夢の中に入って他人の記憶を盗み出したり、逆に記憶を植え付けて思想を操作したりするという、なかなかハードコアな作品。作品の始まりから夢の中で、しかも実際には夢の中の夢であったという、いきなりフルスロットルで現実と夢の境界を曖昧にさせてくる演出で引き込まれた。

夢の中では時間の進み方が遅くなったり、夢の中でもめちゃくちゃなことをすると無意識に気づかれて排除されたりするなど、話にスリルと現実感を持たせるための設定がよく練られており、必然の繰り返しでどんどん話が進んでいくので気持ちよかった。キックして落ちると目が覚める鎮静剤で、車が横転したり段差を踏み越えても起きないのはなぜかとか、強力な鎮静剤の影響下で夢の中で死ぬと現実に戻れず無となりさまようとか、なんだよそれと言いたくなるようなご都合主義はあったが、下の段の影響で刻一刻と変化する夢の状況や、それに合わせて復帰手段のキックを構成していくスリル、それと映像美を考えれば、SF的な多少の瑕疵は無視してよいと思う。

Ghost in the Shell

今年の目標 3/10 (見た順番としては4本目)。ハリウッドのほうの映画版攻殻機動隊

冒頭の素子の語りから、ARISEに似た世界だと予想されたので少し身構えた。結果的にはARISEほどウジウジと悩むような展開ではなかったので、杞憂だったかもしれない。 SF的要素の描写は比較的おとなしめだと思ったが、個々のSFギミックの地味さを吹き飛ばすほどうさんくさい街の描写が、シュールを通り越して笑いそうになった。あちこちに謎のホログラフィが投影されていたり、日本語と中国語とハングルが入り混じっていたり。ビートたけし扮する荒巻課長がずっと日本語を喋っていたのも相当うさんくさかった(電脳化されているから言語の壁とかないのだろうか)。

トーリーはARISEのように、作り物の身体が原因で自己を確立できずに悩む素子をベースに、他の攻殻機動隊のエッセンスを絡めてくる感じで、無難なハリウッド的ストーリーだけど攻殻機動隊としてはぼんやりしていた。疑似記憶をかまされる清掃員の話を素子の立場に重ね合わせてきたのはうまいと思う。一方クゼの扱いはかなり雑で、過去のレジスタンス活動でのつながりをきっかけにして、素子に本来の出自を気づかせるトリガーでしかなかったように感じる。2nd GIGのクゼと同一人物じゃないにしても、人形使いにも通じる集合意識的な思想に触れているのに、最終的に素子が自分という個を確立するだけなのは、あまりにももったいない。

映像作品としては面白いのかもしれないが、SFとしても、攻殻機動隊としても、尖ったものがなく中途半端だと思った。

日本公開前にアメリカに出張してしまったので英語で見るしかなかったけど、日本語だとアニメ版の声優が吹き替えをしているようなので、そちらもぜひ見てみたい。

ソードアート・オンライン オーディナル・スケール

今年の目標 2/10。

SAOが好きなので見た。 今までのフルダイブ型のVRではなく、流行に乗ったのかAR型のゲームが題材になっている。ストーリーはまあいつものように、バーチャル世界で何かしらリアルに干渉するタイプの悪巧みをする連中がいて、キリトが計画を叩き潰すというもの。SAOの面白さはストーリーそのものではなく、ゲームの世界が現実に干渉するギミックと、いかにしてゲームで決められたルールを破るかという点にあると思う。

肝心のギミック部分は、最初の方はARの一般化した未来という感じで普通に面白かった。ショッピングモールに突然簡易ステージを出してシリカを歌わせるところは、電脳コイルのように、単に新しい技術を使っていつも通りのいたずらを仕掛けるという、現在との地続きな感じがあって、超近未来の予想図としてはワクワクした。ただ、戦闘が始まったあたりから、現実をベースにしたARであるという点はかなり雑に無視されていたように思える。そもそも風景のテクスチャを完全に書き換えてしまったら、動きの制約がきつくなっただけの没入型VRと変わらないし、敵の攻撃でプレイヤーが吹っ飛んだりするのもおかしい。ARで戦闘という題材でもやっぱり電脳コイルと比較してしまうので、全体的にそういったアラが目立ってしまう。AR戦闘として一番おもしろかったのは、エイジが「ARとVRの違いを教えてやる」と言って、異様に俊敏な動きでクラインたちのチームに腹パンを喰らわせていく所だった。確かにそこは大きな違いだけど……。 最後に100層ボスを倒すのは、必然性がやっぱりよく分からなかったことを除けば、かなり熱くてよかった。ついにアインクラッドの100層を攻略するのかという感慨と、それを当時にはなかった種々の武器と仲間で押し切るというパワープレイがなんともSAOらしい。

VRを除いたSFとしては、ARの出来以上に雑だった(SAO自体が元から結構めちゃくちゃだけど)。娘の人格を再構成するために大掛かりな仕掛けで記憶の断片を集めたのに、肝心の処理をディープラーニングの一言で片付けてしまうところなどはかなり正気を疑った。まあ、2026年のディープラーニングはあと3回くらいブレイクスルーが起きているのかもしれない。そもそも脳をスキャンされて記憶を失うとか、しかもそれが可逆だとか割とツッコミどころは多い。

作中に知っている場所が大量に出てきたのはかなり面白かった。クラインたちが襲われたところはオリセンだったし、ガーデンプレイスの見慣れた広場でボスが暴れまわっていたし、東工大の6号館あたりの地形と講義室が完全に再現されていたし、作品の本来の意図とは違うんだろうけど、まさに自分の経験した現実がアニメとして拡張されているような感覚があった。

次はひるね姫を見たい。神山健治がなんで細田守みたいなふわっとした映画を作ってるんだろうと思ったら、どうもガチのSFらしい。