読者です 読者をやめる 読者になる 読者になる

六月の開発局

「業界の人」じゃないよ

ひるね姫:感想(約1万2千字)

はじめに

火曜日はシン・ゴジラBlu-rayが到着するのでさっさと帰宅して見たかったのだが、興行がコケて平日夜の上映がなくなると会社帰りに映画館によってTOHOシネマズの割引日に見られなくなる可能性があり、かといって通常料金で見るとハズレだったときのダメージがデカいので、昨日「ひるね姫」を見てきた。

とてもよかったので感想を書く。なかなか評判がよろしくないのだが、よくできている。神山監督の作品としては最高に出来が良いと感じる。感想を一言で言い表すなら「僕が思っていた神山監督の作品の嫌いなところがない作品」だ。細かく書こうとしているので、前フリが結構あるので、一番良かったところを知りたいのなら「ソフトウェアの映画」まで飛ぶといい。

いつものことながら、作品解説でも評論でもない。感想である。僕個人が見てどう思ったか、僕個人が自分の経験と重ねたり境遇に連ねたりして思うところを書いている。

それから、一回しか見ていない。何度か見たいのだが、今はグラスリップの感想と映画の脚本と小説と新幹線の記事と演技の技術解説と撮影技法の本を書いており、ビルの爆破のためのモデリング作業とコミケのためのお絵かきとそれから積んでいるガレキを作ったり部屋を片付けたりいろいろやることがあるし、シン・ゴジラBlu-rayまだ本編しか見ておらず、さっさと特典も見たいので今のところ2回目に行く余裕はない。ので、記憶違い事実誤認等あると思うが勘弁してほしい。あまり時間がないのでロクに推敲もしていない。例によってほとんど行き帰りの電車の中で書いた。

例によってネタバレ全開である。あと「とある映画に対するアンチな思い」が充満しているので心が狭い方や「飲み会でケタケタ笑いながらしゃべっている」のイメージが理解できない方は帰ったほうがいい。では始めよう。

神山監督の嫌いなところ

いきなり監督の嫌いなところを書き始めるのは感想だから許される。たぶん。念のため書いておくが「嫌い」なのであって「間違っている」のでも「悪い」のでもない。ひるね姫の話は先の「ざっとまとめて話すと」からメインになるのでお急ぎの方はそちらへどうぞ。

僕は神山監督の作品はミニパト攻殻機動隊S.A.C.三作、東のエデン、それから009RE:CYBORGを見たことがある。

僕がミニパトを除くこれらの作品の中で共通して嫌いなところを次に述べる。

まず、ヒロインだ。神山監督の今までの作品のヒロインはどれも共通してヒロインが嫌いだった。いっつまでも男を小馬鹿にしたような態度を取ってイキがる草薙素子、ぐだぐだやってて好きでもない男に思わせぶりな態度を取っていいように扱う森美咲、色ボケとしか思えない上に下着の趣味も体形も行動もババァくさいフランソワーズ(まあ実年齢ババァなんだが)、どれもヒロインとして認めがたい連中ばかりだ(田中敦子さんは好きです早見沙織さんも好きです斎藤千和さんも好きです)。

次に、延々と政治的信条や最近の情勢についての知識を披露するための設定やキャラクタが嫌いだ。「はい監督はお詳しいですねありがとうございました誠に結構なお考えだと思います次に行ってくださいまし」と言いたくなる。何より、神山監督の特徴として最新の技術を作品に取り込む、という点が挙げられるが、その取り込み方が、学部四年生がやるような「僕はこの技術を使ってみたいから研究テーマを定めました!」みたいな感じで、作品の根幹にならないところが嫌だった。

わかりやすい例だと東のエデンシステムだ。「いろいろARでタグ付けして楽しいのはわかった。でもお前が描いてるのは既得権益に対する反発からのこの国の革命に英雄は必要ないんだというシン・ゴジラの元ネタだろ!どこにそのARが必要なんじゃい!」と思ってしまう。押井守監督作品にも信条や思想を滔々と語るキャラクタが登場するが、それはその思想が作品の中心であるから僕は受け止められる。現代の日本における戦争ってなんなのか、という映画において現代の日本における戦争を描いて現代の日本における戦争について語るキャラクタが登場する。攻殻機動隊フチコマは出さない。ところが東のエデンの場合、既得権層に反発する連中の話に全く関係のない技術が登場して、描かれるのはテロだかクーデターだかよくわからないシミュレーションゲームじみたことと自分探しの旅みたいな話で、キャラクタは好き勝手この国がどうのなどと話しているから、どこを真ん中に据えたらいいんだ、と僕は捉えてしまう。

それからエンディングのダラダラした感じが嫌いだ。「9課は壊滅してみんな逃げました。それから、二人でホテルにしけ込んで…トグサはうだうだ喋りながらAパート使い果たして…そこいらんわ!さっさと図書館行けや!」となってしまう。009も宮野氏が「神よ!」とか叫んでて狂気のマッドサイエンティストにしか見えねえなもうお終いかなと思ってたら延々とお話が続いたし(このときはだいぶマシになってた。念のため書いておくが神山監督以下スタッフも悪くないし宮野氏も何も悪くない良い島村だった)、「お前なんでうまく夜明けにして午前の激しい日差しの中に咲ちゃん飛び出して愛する滝沢くんを捕まえたのに、一生懸命映画一本かけて夜が明ける様子を描いたのになんで夜に戻すんや!」ってなっていた。

が、このひるね姫は違う。ヒロインは正直予告編を見たときブサイクだから「なんでこんなもんにしてもうたんじゃ……夏希先輩みたいに黒髪ロングで肩紐白ワンピ着たりお願いとウィンクしてくれるようなテンプレ女の子がワイみたいな30近い童貞は好きなんや……なんでわからんのや……」と思っていた。が、ココネ、見たらわかるがめっちゃいい子である。育ちのいいフリをして他人の財布から金使い放題やりたい放題で悪びれないどっかの女子高生とは大違うわこら何をするやめろ。

この作品は自動運転車が鍵になるが、この技術は作品が描いている「ソフトウェア」にしっかり合致する。この作品はソフトウェアのお話なのだ。

クライマックスを終えると、あっさり時間を立たせて何があったか最低限の情報をテレビでざっくり説明、めでたしめでたしなワンシーンをさらっと描いて、感動のエンディングへと雪崩れ込んで行く。

僕にとっては神山監督の嫌いなところが全部なくなっていて、大変よかった。

タチコマについて

神山監督というとどうしても攻殻SACになってタチコマの話題になるし、この作品は僕の見立てではタチコマの演出についてのもう一つの回答になるので、タチコマについて書こう。

結論から言うと僕はタチコマというキャラクタは可愛いと思うが、その描き方は嫌いだ。なぜなら人工知能を描こうとしてやれているのは「はい人工知能を描いてますよ」「はい可哀想ですねここで泣いてください」と言わんばかりのものだからだ。

第1シリーズのタチコマ御涙頂戴回も白けていたし、「手のひらを太陽に」も受け付けなかった。人工知能としてのタチコマを描くなら、こうして欲しかった、というのがひるね姫にはある。

神山監督の魅力とは

じゃあ僕が神山監督の作品で好きなところ、もしくは監督の尊敬できる点はどこかというと、時折見せてきたスパッとキレるような場面である。

攻殻SACで言うなら、やはり笑い男の初登場の衝撃は忘れられない。強敵の登場方法というのはいろいろあるが、僕が愛する名画「ダークナイト」のヒースレジャー演じるジョーカーでもあれほどの衝撃を持った登場ではなかった。平面に投影された笑い男のサイン、他人をハッキングして登場するそのやり口、完全に優位に立っていることが記号的でなく自然に紡ぎ出される台詞回し、音楽の使い方、全てが見事だった。自分が悪役を登場させるならこの水準に達したいと思わせるものだ。

そこの前振りであるインターセプターの使用が発覚する場面も見事だ。なんの変哲も無いプライヴェートショットに隠された恐るべき事実が暴かれて行く様は見事なものだった。

他にもアームスーツとの最初の戦闘の時間の長さを動かしてしまうような緊迫感の演出、HAWに対して勝ち目がないことを説明する剣菱の役員の言葉に宿る将棋で強敵に確実に詰められており自分の玉将に生き延びる手がないことを強制的に理解させられるような恐怖、ゴーダの暴言に反論するバトーの熱い魂や、そのゴーダが終わりを迎える時に現れた「奴ら」によって描かれる「彼の国」の恐るべき強大さなど、素晴らしい場面の構築技術をもって一瞬で時間を引きつけて輝かせるようなことを神山監督はやってきた。

全裸の王子様を捕まえてワシントンの街を駆け抜けるときに物語の始まる予感がしたし、水上バスに飛び乗るときには恋の予感があったはずだ。咲の悲しい告白に持つべきものの義務で答える滝沢に憧れなかったと言ったら嘘になるだろう。森タワーの屋上から飛び降りて行くときの流れるような映像と音響の連動によってゼロゼロナンバサイボーグが描き出す新たな戦いの予感に心を躍らせたし、3D立体上映の利点を僕が知る限りあらゆる映画の中で最も生かしたラストの水面周りはまさに神秘体験を作り出していた。僕が神山監督の作品を観るのはこういったキレ味の鋭いカミソリのような場面を期待しているからだし、尊敬しているのはそういう引き出しを持っていること、出してくることだからだ。

そんな神山監督の作品の中でも最高の流れだと思っているのは前述した東のエデン劇場版IIの「夜が明ける」ところだ。方々で書いているが、このシーンは本当に見事だ。物語もストーリィもドラマも夜明けを描いていて、美しい絵も夜明けを描いている。この演出を上回るものはほとんど見たことがない。作品が全力で何かを表現する、というのは簡単だが、ここまでやりきった作品は稀有なものだ。映画のすべてが夜明けというものを表現している。ひるね姫を観た後もその輝きは変わらないが、ひるね姫にはそんな監督の良さがたくさん詰め込まれているのでそれを記しておきたい。

「映画は全体である」という面もあると思うし、なんとなくよくわからなくてこの作品に落第点をつけてしまう人もいると思う。けれども小さな描写を読んで行くことで「アニメ映画のひるね姫」を楽しんでほしいと思うのだ。

ざっとまとめて話すと

ひるね姫という映画をぼくは「技術の映画」そして「ソフトウェアとは何か」というお話だと思った。

技術の映画であることは一度見ればわかると思うので、ここではソフトウェアについて書く。

ソフトウェアの生物性を描いたのが攻殻機動隊だが、ひるね姫においても親子三代の物語としてその部分が描かれる。

が、そこは作品全体を通して描かれていることではないと捉えている。最後にまた書くが、先にちょっとこのことを覚えていてほしい。

あと、ストーリィの語り口の上手さについてはパンフレットで作家の上橋氏が見事に語られているので、それを読んだほうが良い。

説明しないこと

僕は説明しないアニメが好きだ。昨年夏に発行した同人誌にいろいろ書いたが、最低限抑えるべきを抑えておいて、「あとはまあわかるでしょ」という態度の作品が好きだ。

ひるね姫はかなり説明しない方のアニメで、ここでこういうセリフを言わせておけばわかるよね、ここにこういう映像を挿しておけばわかるよね、という具合でストーリィを走らせていく。ここで脱落してしまう人がいるかもしれないが、ちゃんと描いてある。描いていないのは「昼寝とはなんだったのか」だけだ。

でもそれは映画の大きなファンタジィの部分であって、細かい部分は何度も正確にトレースしたわけではないがまとめられている。

日差し

本作でも夏の日差しは健在だ。

色々な場面があるが、特に印象に残ったのが警察署のシーンの外の陽射しと、サイドカーが帰還したあとのガソリンスタンド付近の日差しだ。

夏の日差しの描き方についてはいろいろあるが、本作もまた新しく良いものだったと思う。

階段を降りる

さて、映画が始まると、ココネが階段を降りてくる。この時、最後の数段をココネが飛び越えている。これは親父が作業テーブルとして使っているからだ。

このワンカットで親父が生活のことなどロクに考えていないちょっとズレた人間だということがわかるし、ココネもそんな親父に慣れきっているということがわかる。

そのあと様々な形でそれが描かれるが、大切なことは細かい描写を積み重ねてどういうものかをしっかり観客に伝えることだ。

よくあるミスとして、最初の方にちょっと描いた伏線をあとになって大々的に回収して作り手からしたら見事な作りなのだろうけれど、観ている側の大勢からしたら唐突すぎてわけわからない、というものがある。そういう事態を回避するためにひるね姫は3つの策を講じている。こういう細かな描写はそのうちの一つだ。二つ目はわかりやすく描くこと、三つ目は軽い伏線を軽く回収して慣れさせることだ。後で出てくる。

また、この動きを難なくこなしているココネの運動に関する制御ソフトウェアの良さがわかる。バランス感覚が良いのだ。これは後半の大アクションにおける伏線だ。

飛び乗る動き

ひるね姫の魅力の一つがアニメ作品としてのレヴェルの高さだ。僕はこの部分を見に行ったのだが、期待に違わない出来だった。

一つ目にあげるのはエンシェンがサイドカー(ハート)に乗り込む時の動きだ。人間が飛びのろうすると、ああいうふわっと飛び乗る運動はしない。あの動きをするにはハンドルをしっかりと握り、相当力を込めて身体を押しとどめていかないとベタッと落ちてしまう。つまり、嘘っぱちの動きである。

が、その嘘っぱちの動きが気持ち良い。良いアニメートだと感じる。もちろん、夢の中だから気持ち良さ優先と捉えても良いだろう。

それから、エンシェンの運動能力の高さ、つまりイクミも運動能力が高いということがわかる。

自動運転車のディスプレィ

モモタローが老人に自動運転車をセットアップしてやる場面には二つの見所がある。

まず見せ方だ。目的地を設定しているときに、まだカーナビの説明が必要な老人がいるんだな、となんとなく捉える。老人が右に座っているから運転席についていることがわかるが、ハンドルが自動で切られるのであれ?っとなるが、今度は外から老人が運転席についていることが再び描かれるので、やっぱり運転してるのか、となって、モモタローのセリフで自動運転であることが確かになる。なるほど、カーナビの説明ではなくて自動運転の説明だったな、ということがわかるわけだ。

軽く伏線を引いて軽く回収していて、そのことによって伏線を張って回収する作品だと観客に慣れさせていく、という二つの作用があるし、もちろん自動運転が認可されておらず一方でモモタローはそれを持っている、という伏線の張りどころにもなっている。

また、ここで登場するシステムの画面デザインが非常に良い。今までこういったディスプレィは妙に洗練されすぎていて「なんで無骨な業務用システムなのに色数豊富で線にアンチエイリアシングがかかっていて、グラデーション彩色までしてて、アニメーションは無駄に滑らかなんだ」と思うことが多かったが、色数少なく実用一点張りのデザインで大変よかった。まあ、今ならAndroidあたりに雑にコンポーネントをペタペタ貼り付けたインターフェイスになるんだろうが、まあそこらへんは目を瞑ろう。

ココネの投球モーション

掃除をサボって逃げ出そうとする男子生徒たちに、ココネは何か投げつける(何かよくわからなかった)。ココネの身体能力の高さ、特に足腰の強さが描かれるシーンだ。

野球をやったことがないとわからないかもしれないが、足腰が強くないと芯が定まらないので、遠投したときに自分の振る腕の遠心力に煽られてコントロールが定まらなくなる。肩の回転による角速度は人体の中でもスピードが出る部分だから、その遠心力はかなりある。移動予測をしながら投擲に入ってあのコントロール、ということは身体能力が高いということがうかがえる。

さらに、時をかける少女の真琴は「女投げやめろよな」と注意されていたように、肘で投げる女投げである。対してココネは肩で遠投する本格的な投球姿勢であることにも注目したい。

また、ココネのように身体の軽い女の子はタイミングを合わせるとよりコントロールが安定する。ああやって助走をつけているときは特にそうだ。ココネは投球モーションに入る前に片足でつっかけてリズムを取る。見事な作画だ。

鴨居の低さ

渡辺が森川家に入ってきたところで顕著になるのが、森川家の鴨居や天井の低さだ。高度経済成長期あたりに建てられた家の中にはまだこういった作りの建物がある。

長いこと使っていたことが感じられていて良い。自動運転装置のディスプレィと同じでデザインの良さがある。

足音

渡辺が森川家に侵入したとき、ココネは足音で自分の存在がバレかける。その後高松空港でジョイ奪還を目指す時にはバレないように靴を脱いで接近する。

これも軽く伏線を引いて軽く回収しているし、さらにココネの「知能」水準を見せている。前に起きた事象から次に起きる事象を予測して、さらに不本意な結果にならないように事前に手を打っているわけだ。

田圃の夜

二人が逃避行して社で夜を明かす時、ココネが畦道に立つ姿を遠くに捉えたレイアウトがある。明かりのない夏の夜に星空が見えてとても綺麗だ。この空気感はこの写真を撮った時と同じなので「ああ、やっぱりいいよな」と思った。素敵な絵だった。 f:id:TOYOZUMIKouichi:20170213223259j:plain

かな入力

社でタブレットからSNSに書き込んで連絡が取れるかもしれないと思ったココネが書き込む時、ココネはかな入力を行なっている。ここは、他のシーン、つまり志島自動車を知らないとかいったことと合わせて、ココネの「知識」水準を描いていると捉える「こともできる」。ココネはおそらくローマ字を覚えておらず、かなでしか入力できないのだろう、というわけだ。そう読んでおくと後でおもしろくなるのでそう読んでおこう。

他人の財布

モリオが新幹線に乗る金がないと言ったココネに対し、渡辺の財布から拝借したらどうかと提案するとココネはそれを否定する。他人の財布に手を出してはいけないという「良識」や「規範」がココネの中にあるわけだ。ここも抑えておきたい。

マルス

新幹線に乗りたいと書き込むと、JR西日本の職員がやってきて、ココネにマルス券を渡してくれる。このときマルス券がアップになるがC席である。東海道新幹線を二人で移動しているのにC席を割り当てる、ということはグリーン車を手配してくれた、ということだ。実際、二人はグリーン車に乗車する。

グリーン券かどうか見ればいいじゃんと思ったあなた、その通りである。僕がグリーン券の表記があったか覚えていないのは、昨年の夏に3人がけを山側に設定した東海道新幹線というとんでもない映画を観てしまい、どちらに座るのかが気になったからである。

「金にある程度余裕のある人間だな」ということがわかるし、ココネに対して本当に好意的な人たちか、もしくはかなり悪辣な罠であることが予想できる演出である。

幕の内弁当

乗車して腹が減ったココネはまたSNSに書き込んで弁当のデリバリィを受ける。これは新幹線のチケットを入手したことによって「前例」を得たココネが「知能」を発揮するという伏線回収シーンであり、伏線の新規設定でもある。

どんな育ち

渡辺に対し、ココネはどんな育ちをしているのかと非難する。ココネのオヤジは元ヤンでココネも徹マンするような女子高生でまったく良い育ちではない。やり返して盗ろうとは思わない。

字面通りに捉えるなら大企業で役員に上り詰めている渡辺の方がずっと育ちは良いだろう。

が、ココネはここまで説明してきたように、「マトモ」である。盗られたもんは取り返すが、だからと言って報復するような捻じ曲がった根性はなく、ただ謎をときに行くだけである。ここも抑えておきたい。

走るココネ

ココネは走る。この走るシーンは見事な作画で「あ、多分カリスマの担当はここだな」と思っていたのだが、本当にそうだったらしい。

走りは難しい。望遠平面投影横位置ならともかくこんな3Dガイド合わせでアングルもパースも変化するところに人間らしい動きを載せるのは神業と言って問題ない。

作画も見事だが、ここでも伏線が回収されている。前半に描いてきたココネの運動神経の良さが現れているわけだ。

スジと配慮

ココネは終盤、着地後にこっそり抜け出して「連絡を取らない」という筋を通そうとした親父を捕まえて会長に引きあわせる。これはココネの「こうした方が良かろう」という「知性」による行動だ。べつにそうしろと言われていたわけでも、前にそういうことがあったから学習したわけでもない。ココネの知における性分から「こうした方が良かろう」となったことが想像できる素晴らしいアニメートだし、良いシーンだ。

主題歌とエンディング

まず主題歌について書こう。

僕は昨今の「主題歌悪玉論」に異議を唱えたい。主題歌というものは本当にハマれば良いものだ。僕が最初に感じたハマりきった主題歌は「ガメラ3邪神<イリス>覚醒」の主題歌「もういちど教えてほしい」だ。その映画がどういうものであったか、何を描いたか、つまり主題それを歌にしたもの、それが主題歌だ。 ハマりきった主題歌がエンドクレジットに演奏されれば、映画の余韻をさらに良いものにする。

テレビアニメだと「シュタインズ・ゲート」の「Hacking to the Gate」なんかがこれに該当する。「なんとなく雰囲気があってる」程度ではダメなのだ。「THIS IS IT」が必要なのだ。

ひるね姫の主題歌デイドリーム・ビリーバーは、かなり高い水準で「主題歌をしている」と僕は思えた。

まるで白昼夢を見ているような親父にとってのクイーンの姿が描かれるエンディングに、この曲はふさわしいと思える。

が、あえていう。この映画の最悪のシークエンスはエンディングである。

これほどのアニメータの技倆を見せつけられて、エンドクレジットを追わない気になれるだろうか。その裏で西尾さんの情感たっぷりの原画によるアニメが映し出されているのは悪魔の所業としか言いようがない。そもそもエンドクレジットの時間ぐらいのんびりさせてほしい。ちょこまか細かいネタを仕込んで伏線回収祭りにしているので、情報過多である。例えば親父のバランス感覚が良いことがわかるので、エンシェンつまりイクミの身体能力が高いことと相まって、ココネに運動神経のソフトウェアが生きていることがわかる。そこには攻殻機動隊と同じソフトウェアと生物のつながりが描かれていて、それは後に書く僕が思う本作の最大の見所において大切な役割を果たしているのだ。

賞賛したいのだけど、出来がいいから賞賛すべきなのだろうけど、僕のこの気持ちをわかってほしい。

欠けていること

ちょっとナーバスなことを書いてきたのでここで書ききってしまって最後は良かったことを書いておきたい。

ひるね姫で一番残念だったのは、何かが始まるドキドキする感じがなかったことだ。さらさらと物語が流れて結末にたどり着いてしまったので「映画館に来てすげえ楽しそうな映画がはじまったぞ!」というところが僕には感じられなかった。

去年の7月29日、蒲田くんが大スクリーンに現れたときの衝撃や、新幹線N700系電車が突撃してきたときのとてつもない希望、会社を上がって満員の劇場で夢灯籠を効いたときの「イケる」という感触、前々々世がはじまった時の「新海監督の伝家の宝刀が炸裂するぞ!」という高揚感、そういうのが残念ながらなかった。 確かにビジュアルは素晴らしいし、アニメートも最高なのだけれど、すべてのレベルが高すぎて「おーすごいすごい」「うんうんそれでー」みたいな感じで盛り上がりに欠けたように僕には感じた。繰り返すが感想なので正しい間違いの問題ではない。

だからと言って映画館で観る価値がないかといえばそんなことはない。暗い部屋、大きな画面で隔離されて全てを映画に集中してたゆたう時間は大切なものだし、それに耐えうる強度を持っている。集中し続けないとすべてを堪能できないほどによく作り込まれている。映画館という環境を生かす別の方向で作品が作られているだけの話だ。

ソフトウェアの映画

さて、いろいろ書いてきたが、そろそろソフトウェアの映画としてのひるね姫についてまとめよう。

いくつかカッコ書きで書いてきた「知能」「知識」「知性」「規範」「前例」「マトモ」というキーワードをこうして列挙すれば気付くかもしれないが、これ、自動運転に全部必要なのである。

つまり法律や車の制御に関する「知識」、今起きている事象を捉え用意されているケースに落とし込んで行動に変換する「知能」、なんだかわからないけど生き物っぽいものがいたらそれを轢かないようにするという「規範」、人通りが少ないからといって傍若無人な走行をしない「良識」、「前例」を覚えておいてより良い方向に近づけようとすること、追い越し車線を走行して渋滞で詰まったからといって少しずつ流れている走行車線に割り込まない「マトモ」さ、こういうものが全部揃わないと、ハンドルフリーで自動運転なんかできないのである。とくに問題なのが「追い越し車線を走っている自分が外側になるカーブで内側の走行車線の先に故障車がいたら、並走するまだそれが見えていない車相手に強引な幅寄せをして減速させてやる」というような「知性」である。

もうわかったと思う。この映画、モモタローとイクミによってこの世に生まれたもの、つまり自動運転とはココネ本人なのである。だから親父がハンドルフリーにしても勝手に目的地に行ってやるべきことをやったのだ。そしてそれは子供が大人になっていくということは知を育み養っていくということなのだ。ココネは素性の良いソフトウェアであって、その経緯は夢の中であろうが現実なのかは関係ない、良い結果になったということが重要なのである。自動運転は単なるギミックでなく、作品の芯として、ソフトウェアを育てていくことを描くために作用しているものなのだ。

ここまで書けば僕がタチコマについてどうあってほしかったと思っているかわざわざ説明する必要はないだろう。そういうことだ。

ハードウェア屋がソフトウェア屋に頭を下げる日が来たら

いろいろ書きたいことはあるのだが、すでに一万字を超えており、そろそろ収束させようと思う。最後に志島の会長が喋るこの台詞について書いておきたい。

自動運転が大きな題材であることから、冒頭のシーンを含めてこの作品を日本の自動車業界に対する風刺だと捉えている意見を見ている。否定するつもりはないが、僕は別の話と捉えることができることに気づいた。

肝心な話を書くから、先にしっかり断っておく。「神山監督がそう思っている」と書いているのでもない。「豊住はそう思っている」と書いているのでもない。誰の意見を想定してもいない。これはオタクの楽しみ勝手解釈を披露しあって「なるほどそういう風にも読めるな」と見せあいっこする楽しみのひとつなのだ、とよく理解して読んでもらいたい。

渋滞が続いているから稼働時間が少なくなり、だから日当が下がっていて、常に新しい車に乗り換えることを求められる、というのは線数が多すぎるから作画の生産量が落ちていて、だから作画の実入りが減っていて、常に新しい絵柄に乗り換え続けることを求められている――つまり今のアニメ業界を描いている、と読めると思うのだ。

それで、だ。プログラムを持っている方はちょっと開いてもらいたい。真ん中のページが自然と開くようになっていると思う。左に捲ろう。つまり、助手席の側だ。そこには監督につづいてキャスト陣のコメントが掲載されている。続いて右に捲ろう。運転席の側だ。レビューや解説に続いて、作画スタッフなどのコメントが掲載されている。

運転席の反対側が助手席とされているのは、助手が地図を読んだりして運転を支援するからである。例えば、ラリーなんかだと「世界最高クラスの助手席」が揃っていて、恐ろしい速度と正確さで運転手に指示を与えていくさまがわかる。が、技術の発達で、助手席の仕事はコンピュータであるカーナビに回されて久しい。自動運転は運転席の仕事がカーナビに回されるようなものなのだが、大事なことは地図上における目的地を設定するという最低限の任は人間に任されるということであり、それはそもそも運転席の仕事ではなく助手席の仕事だったということだ。運転手自らがカーナビに入力することは多いが、そもそも地図上で行きたい場所がどこなのか指定するのは助手席の仕事だ。

助手席の側、つまり演技の仕事の一部はアニメでは運転席に変わっている。アニメータという演技者がいるからだ。アニメータが絵を作り、キャストが声を吹き込む。絵をハードウェア、声をソフトウェアと読み替えた上で「その台詞」を聞き直してほしい。

単なる「時代の変化についていけない老人のテンプレ台詞」ではなくなるはずだ。

だから、僕はこの作品がとても良くできている、つまり、いろいろ深読みして楽しめる耐性を持っていると思うのだ。

最後にもう一度書く。神山監督以下スタッフの見解を想像しているわけでもなく、僕の意見を表明しているわけでもない。誤解のないように。「心持ち一つで映画は変わる」ということを伝えたかった。

ラ・ラ・ランド を見て考えたこと

感想ではない。ほとんどポエムである。

同僚のミュージカルが好きそうな人物に「ラ・ラ・ランドを見たか?」ときいたら「みたよ。ミュージカル好きだから楽しみにしていて、初日に見た。つまらなかった」と言われた。「豊住も見て、感想聞きたいから」と言われたから見たのではなく、先日、シン・ゴジラを見たときに予告編を見て、撮影が良さそうだし主演のおねえちゃんも気に入ったので品川のIMAXで見た。DOLBY ATOMOSの劇場で見た方が楽しめると思う。

そもそも、ミュージカルというものをほとんど見たことがない。完全なミュージカルで見たことがあるのは、ウエスト・サイド物語の冒頭、サウンド・オブ・ミュージックの一部、それからヘアスプレー、学校の音楽の授業で見せられほとんど内容を覚えていない(確か黒人の女の子がデカい家で働いてトントン拍子に出世して舞台に立つ話だったはず)アニーぐらいである。歌詞を覚えているミュージカルなナンバは映画クレヨンしんちゃんブリブリ王国の秘宝の「ああ果てしないジャングルの中で」しかない。「私のささやかな喜び」もミュージカルと言えるかもしれない。そんなんだから雰囲気とイメージしかない。

見終わってなんとなく同僚がつまらないと言った気持ちがわかった。繰り返すがミュージカルという形式にはイメージしかない。それでも、ヘアスプレーの「You can’t stop the beat」のようなクライマックスの最高に盛り上がるナンバーはなく、演奏であることには違和感を覚えた。

ラ・ラ・ランドの冒頭は実にミュージカル、という感じだった、突然歌い出し、歩きながら歌い、華麗なカメラワークとダンスが広がり、周囲の人物もショウを形作っていく。

なのに、なぜこのクライマックスは演奏なのか。そこから少し考えたことを書く。

繰り返し念のために書いておくが、これは考察でもなければ、監督をはじめ製作陣の意図や思想を想像するものでもない。ただ「こう捉えることもできる」というだけの話だ。

この作品の最大の意外性はもちろんセブとミアが結ばれないことにあるだろう。ここを取り出して秒速5センチメートルと同質であると評価する人がいるが、僕はまったく違うものだと感じた。秒速5センチメートルには顔に恵まれた主人公が、自ら失態を繰り返してあらゆる物を失い落ちぶれていく、僕のようなスクールカーストの下位に位置するブサメン非モテにとっては胸がスッとするような爽快感と同時に、今まで幸せになることしかなく感情移入できない作品しかなかった青春アニメ、例えば前年に公開された時をかける少女なら真琴に感情移入なんかできず、高瀬の気持ちがよくわかる「俺たち」がかろうじて感情移入できるアニメを作ってくれた、という喜びがあった。これが秒速5センチメートルの特異性であり、新規性だ。ところが、本作にはそういったものはなく、セブもミアも成功を収めている。

成功を収めているのに上手くいかなかった、と捉えることができるのは二人の仲だ。クライマックスに描かれる「もしも」の世界に歌のない曲が奏でられることには何かの意味があると考えてよいだろう。

二人の仲を隔てる最大の要因は「パリ」だ。大西洋によって二人の仲は分断されてしまう。僕はロサンゼルスにもパリにもいったことはないので、大西洋の広さというものをあまり感じたことがない。ほとんどの映画は飛行機で軽く飛び越えてしまい、その搭乗時間がどれほどかもわからないからだ。

なにかその距離感を感じられる作品はないだろうか、と思いを巡らした時、思い出したのはトニー・カーティス主演の「グレート・レース」だ。

こち亀でパロディにもされ(コミックス第67巻収録、ザ・グレイト・レースの巻)、おそらく両津勘吉絵崎コロ助教授の元ネタは同作の悪役「フェイト教授(文字通り、悪さをしようとする度にひどい運命によりひどい目に会う)」であろうと想像できるこのコメディは、トニー・カーティス演じる主人公(金持ちであらゆる乗り物を乗りこなし、冷静沈着、つまり中川圭一である)とフェイト教授が、ニューヨークからパリへ向かう「グレート・レース」に出場し、その珍道中を描いた作品である。

彼らはお互いの相棒に加え、女性の権利を主張する女新聞記者(全身ピンク、男勝りなつまり秋本麗子である)とともに南極を経て大西洋を渡り、ロシアを経由して中欧の謎の国で政争に巻き込まれて壮絶なパイ投げを繰り広げ(絵崎コロ助パイ投げを習得しており、両津に圧勝し「リーチの長さが違う」と豪語する)、パリへと向かう。要はアタマ空っぽ、薄っぺらで楽しいコメディだ。ラ・ラ・ランドの冒頭で歌われた「テクニカラーで彩られた世界」の一つだといっていい。

けれども、こんなコメディが今作られることはないだろうな、と思う。キャラクタは皆ステレオタイプ、ただバカをやり続けるだけの話だ。中欧の国の描写など、今ではできないと思う。僕はあまり映画を見ないので、詳しくないが、こういった作品の予告編も見た覚えがない。

ラ・ラ・ランドの中盤、セブとミアがプラネタリウムで踊る時、周囲はおそらくコンピュータグラフィックスで描かれた美しい銀河になる。あのロサンゼルスの夜景を見下ろすマジックアワーも輝いている。

ところが、理想の世界であるべきはずのクライマックスに描かれる「もしも」の世界では、星ではなく電球のようだし、パリは絵である。物語は明るく楽しく夢があるのに、それを支える背景は明らかに手が古い。

ラ・ラ・ランドを作るためには、セッションが必要だったという(僕は見たことがない)。誰も知らない歌の流れるミュージカルなんか作れないからだ。勇気を持って新しい作品を作ることがハリウッドにはもうできなくなっていて、求められるのはあらゆる作品のいいところを組み合わせたインドミナス・レックスのごとく怪獣のような映画になっているのではないか。もちろん、それが悪いとは言わない。僕は黒澤明のように「カツカレーの上にハンバーグを乗せて卵でとじた映画」を作りたいと心から思っている。

けれども、ハリウッドの優秀なスタッフなら、まだ誰も見たことのない組み合わせ、誰も試していない食材で美味しい料理を作れるし、そういった料理も並べられることがハリウッドに「多様性」をもたらすのではないのか。声高に多様性を叫び、映画のキャラクタの設定に拘るのに作品は固さを求めていってしまっているのではないか。背景のコンピュータグラフィックスは確かに映画に臨場感と現実感を作るために進歩しているかもしれないが、テクニカラーで彩られた世界、憧れた夢の世界、ヒーローがヒロインと出会い、お互いが高め合って結ばれる単純で薄っぺらで軽い幸せな物語を作ることはもうできなくなってしまった。別に電球バレバレの星空だって、絵に描いたパリであっても描けた素敵な夢の世界なのに、その魂の部分はもうない。ジングルベルと自分の演奏したい曲を100対0で演奏しなければクビを切られる。

それを口にすることははばかられ、だから歌のない音楽と映像で叫び伝わることを待つしかない。成功しても、何かが欠けているーー

正直、IMAX料金を払って見るような映画ではなかった。ただただ退屈で、エマ・ストーンが好みのタイプなので彼女の姿を眺めること以外にすることがなかった。ただクライマックスのシーンが奏でられはじめた時に「ああ、こう捉えればなかなかの傑作だな」と思っただけだ。だから、今書いたことに間違いがないかすり合わせるためにもう一度映画館に行こうとは思わないし、衛星放送で何シーンか録画するだけだろう。影響といえば、その日の夜の夢は昔好きだった女の子が二人も出てきて、片方には無視され片方には食事しながら苛烈になじられ、こっちも言い返して言い争いになる内容だった、ぐらいだった。

自分の趣味に合わない映画なんかたくさんある。けれども、その映画の価値を見つけ出すこと、作り出すことは自分でできることだと僕は思っている。どんな映画にだって輝く一瞬があるはずだ。そういうものを見つけ出せば、映画はもっと楽しくなるだろう。それを教えてくれたのは、今春、幕を閉じる日曜洋画劇場で解説を担当していた淀川長治だ。

もう一度書く。監督をはじめとした制作側がそういう意図で作ったとは一言も言っていない。映画を観ることは、監督の意図を当てるゲームではないと僕は考えている。

Nikon D4

f:id:TOYOZUMIKouichi:20170213223839j:plain

僕は写真を撮る。この三年間、写真撮影のメインアームにNikon D4というカメラを使っていた。このカメラは発売が2012年と古いが、当時の最高級機種で、60万越えの機種である。

f:id:TOYOZUMIKouichi:20170213223853j:plain

このカメラを僕が買った理由は一つ、ニコンが出すプロ向けの最高級機種だからである。

f:id:TOYOZUMIKouichi:20170213223932j:plain

プロ向けの最高級機種というのは「実用的で最高性能」ということだ。だから「いやこれはいらんでしょ」みたいなところに力を入れていない。発売当時においてカメラに求められる性能、カメラマンが必要とする性能をすべて搭載しており、どこをとってもこれではちょっと、ということにはならない、ということだ。

f:id:TOYOZUMIKouichi:20170213223946j:plain

これは、僕のような下手なカメラマンには助かる。腕のなさを機械が補ってくれるのだ。安い。プログラマとしての性能が10なら、映画監督としての性能は50、絵描きとしての性能は1未満、写真家としては3ぐらいである。これがカメラの力で5ぐらいに引き上げられる。買えるものならこれを買うだろう。

f:id:TOYOZUMIKouichi:20170213223959j:plain

そしてこのカメラはニコン製である。ニコンのカメラを僕は数台保有したことがある。ニコンFから始まり、D7000、D7100と保有してきたから、このカメラは4台目だ。

f:id:TOYOZUMIKouichi:20170213224013j:plain

ニコンのカメラがいいのは、裏切らないことだ。僕はカメラを道具だと思って扱っているので、かなりひどい扱いをしている。ロケに出れば自分の足元か、運転するときは助手席に放置する。D4の場合シートベルトをしてやらないと警告がうるさいが、とにかくそういう扱いである。ちょっとこまると、ぬかるんだ地面だろうが砂浜だろうが雪だろうが直置きである。

f:id:TOYOZUMIKouichi:20170213224041j:plain

が、ニコンのカメラは裏切らない。ちゃんと動く。35度を超える猛暑の日に散歩していても、マイナス20度を割る中撮影していても動く。あれっ?みたいなことがない。とにかく動く。

f:id:TOYOZUMIKouichi:20170213223716j:plain

だから、僕のように作品の方向性も主な撮影対象もなく、ただ取り敢えず出かける時に持っていくカメラが欲しいカメラマンにも最高のカメラなのだ。

f:id:TOYOZUMIKouichi:20170213223752j:plain

そして今日、D4を売り払った。映画のためだ。僕は昨年の最後の映画作品をUHD 4Kで制作し、今後もUHD 4K以上の画面解像度で作りたいと考えている。

f:id:TOYOZUMIKouichi:20170213223831j:plain

僕は尊敬するクリストファー・ノーランのように、最高の映画を最高の画質で提供したいと考えている。

f:id:TOYOZUMIKouichi:20170213223819j:plain

D4に、そこで貢献できることはない。それなら、お金に変わって新しいカメラに貢献してもらい、誰かの元で働いてもらったほうが良い。僕も、カメラも、幸せだ。

f:id:TOYOZUMIKouichi:20170213223722j:plain

SuperGTでマシンやつっつー、aprにいたakiraを撮影したこともあったしもちろん騎士王さんもたまに被写体になった。もっとじっくり好きな女の子を撮ったりしたかったのだけど、なかなか機会がなかった。

f:id:TOYOZUMIKouichi:20170213223427j:plain

最後の仕事は週末の長野遠征だった。長野、青森は出かけるときにいつも候補に入る。どの季節に行っても良いのが長野と青森だ。

f:id:TOYOZUMIKouichi:20170213223514j:plain

長野の雪の中で、列車を迎え撃つ作業に従事し、帰りがけに寄った磯子護衛艦と潜水艦を仕留めてその任を解いた。

f:id:TOYOZUMIKouichi:20170213223522j:plain

D4は僕が保有したカメラの中でも最高のカメラの一つである。いや、最高でないカメラを購入することはほとんどないのだが、それは際立った性能であった。

f:id:TOYOZUMIKouichi:20170213223607j:plain

買ってから今日まで、約16000枚撮影した。そのうち702枚ほど納得のいく写真がある。最も活躍したのはCarl Zeiss Distagon T* 2/25 ZF.2で、367枚、半分以上がこのレンズで撮影された。

f:id:TOYOZUMIKouichi:20170213223700j:plain

最高の写真は、秋田の夜の田んぼで撮影したこの一枚、実際には九枚だ。

f:id:TOYOZUMIKouichi:20170213223259j:plain

他人が認めてくれる性質のものではないとわかっている。だが、僕にとって写真は、自分への入力であるから構わない。まあ、instergramのフォロワが増えれば今はちょっと嬉しいかもしれないけど。

f:id:TOYOZUMIKouichi:20170213223557j:plain

映画監督として求められる上質な入力を、Nikon D4は与えてくれた。いいカメラだった。

f:id:TOYOZUMIKouichi:20170213223541j:plain

CP+でのニコンの新型1眼レフの発表に期待したい。

岬にて

平日朝に聞く新幹線E5系電車Motor Soundは格別だ。それが遊ぶための旅路なら心はさらに軽やかに踊る。

f:id:TOYOZUMIKouichi:20170129173411j:plain

初めてE5に乗車したのはもう3年前の夏になる。夏休みに青森でも行くかと友人と乗ったのだ。320km/hの速度はもちろん、その快適さに舌を巻いた、と書きたいところだが、新幹線の快適さはよく知っていた。

E5は普通席とグランクラスに乗ったことがあるが、グリーン車はまだない。近いうちに試そうと思う。素敵な女の子と一緒だったりすると、良いのだけれど。まだ、異性と新幹線で旅行したことはない。修学旅行を除けば、だが、もちろんその修学旅行だって異性との絡みなどない。

f:id:TOYOZUMIKouichi:20170129161342j:plain

久々に朝一の新幹線で旅に出たので、東京駅の駅弁屋「祭」にはたくさんの駅弁が並んでいた。これから向かう先のことを考えると、自ずと選択肢は限られる。「きつねの鶏飯」名付けられた駅弁は黒胡椒が効いた、薄味で美味い駅弁だった。お茶によく合う。

寒さに高をくくって来て、少し寒い思いをしている。このままだと風邪をひくので恥を忍んで上着に肩を潜り込ませ、飛んでいく景色を見ていた。遠くに孤独に聳え立つタワーマンションは古河の駅前のものだという。

東京駅から厳かに走り出す最高速度110km/h、大宮駅から本領を発揮し始める275km/h、宇都宮駅手前から再加速して迎える320km/h、盛岡駅から穏やかに迎える260km/h、どれもが東北新幹線の速度で、一歩ずつ進んでいくことや出来る限りのことをしていくこと、無理をせず現実を積み重ねていくこと、そういう、僕らが小学校で習うようなことを見事に表しているようで、好きだ。

f:id:TOYOZUMIKouichi:20170129180054j:plain

東北新幹線の先を現実のものとして理解したのは、もう4年以上前だ。初めて友人と車中泊で泊りがけの旅に出て、津軽半島を北上する道中、夜闇に浮かび上がる高架を見た。僕は「その先の日本」に来ているのに、ここにはまだ「その先の日本へ」繋がる道があるのだと知り、その力に畏怖を覚えたのをよく覚えている。

f:id:TOYOZUMIKouichi:20170129180740j:plain

それ以来、その道は気になる存在であり続けた。建設途中の奥津軽いまべつ駅も、三線軌条が二手に分かれる地点も、北斗星の車内で見たはやぶさの輪郭と北海道の組み合わさった素晴らしいロゴも、3月26日が正月のように扱われた北海道新聞の一面も、仙台に向かう途中、車掌が言い間違えた「新青森、大変失礼いたしました、新函館北斗行きは」の一言も、「その日」の予感にあふれていた。

f:id:TOYOZUMIKouichi:20170129182401j:plain

10両編成の単騎が新青森駅を滑り出すと、見慣れた津軽半島に広がる景色に雪と、初めての視点が組み合わさり北への予感をさらに大きくする。宇宙でも広く知られていることだが、この惑星の新幹線は妙にテンションが上がる。

自動音声の放送に続き、JR北海道の車掌が乗務員の紹介とこれから雪の大地を飛ぶこの鳥が、その先の日本へ向かうことを告げる。白い手袋に包まれた手を僕らに差し伸べるように、銀色の時間を約束する。

最高時速270キロメートルの低速運転と、左右に防音壁がないことは、車内の音量を押し下げ、静けさを作り出す。音のない白い世界を映し出す車窓には、旅情しかない。

f:id:TOYOZUMIKouichi:20170129182728j:plain

日本の小学校にはプールがある。なぜなら、泳げずに子供が溺れ死ぬ悲劇を繰り返したくなかったからだ。合理的で、わかりやすく、非の打ち所がない判断だ。同じように、船に乗らなければ船が沈むことはないのだから、橋をかけたり、海底に道を作った。これもまた同じ、なにも疑うところのない、当然の選択である。つまり、この道は王道である。

奥津軽いまべつ駅を過ぎ、本州の終わりが近づくと、青函トンネルの紹介が始まる。24年の歳月と金をかけ、30年前に完成したこの道は、新幹線のために作られたのだ。王が厳かに王道を歩むように、減速した彼は静かに彼のための道へ、湿度100%の回廊へ進む。最速速度140km/hが作り出す、ダブルカプス型の風が北へ吹く。

爆音に包まれ、怒鳴り合わなければパブタイムを待つ時間を潰せなかった、夕暮れの豪華列車が擁した日本海最高のフレンチレストラン、ダイナー・プレヤデスの通路とは違い、新幹線が進む青函隧道は他のトンネルと変わらない。時折斜坑から入る電波でスマートフォンにメッセージが入り、大体の現在位置を推測させる。

和田誠の「倫敦巴里」という本に、様々な作家が書いた「北国」というネタがあり、一番好きなのは星新一が書いたものだったが、ここは捻りなく、トンネルを抜けると、北国だったと記そう。

「北海道へお越しいただきありがとうございます」そう言って彼は、多くの感動が待っていると知らせる。彼の言うとおり「この先の素敵な冬の北海道のご旅行」のために僕は4時間5分の一歩を進んできたのだ。

f:id:TOYOZUMIKouichi:20170129191715j:plain

新函館北斗駅を地図で見ると、ここを経由するために北海道新幹線はかなり急なカーブを描いていることがわかる。速度と、利便性、その矛盾する要求を最も高い水準で妥協した結果だ。技術とは概ねそのようなもので、最良の選択肢であったと言えるだろう。

その駅舎は最近の東日本の駅らしくすっきりとしていて、たくさんの小さな白い照明が灯されている。それが金属と石と木とガラスが混じり合った内装に複雑に反射して、あらゆるものを豊かな光と影に描き出す。彩度の低い建物だから、窓ガラスに映り込む車体や乗客の服の色彩とその窓ガラスにあしらわれた紫の線が見事にまとまって、瀟洒に見える。

f:id:TOYOZUMIKouichi:20170129183642j:plain

f:id:TOYOZUMIKouichi:20170129190748j:plain

臨時特急ニセコ号に乗り込む。はじめてのハイデッカー車に躓きかけたが、着座するとその利点に驚いた。視界が高く、窓は肘のあたりまで大きく取られているため、見晴らしが良い。はじめての函館本線、いわゆる「山線」の区間の車窓を存分に楽しめそうだ。

f:id:TOYOZUMIKouichi:20170129192835j:plain

昼は「バッテラ棒鮨」という駅弁を買った。このタイプの駅弁はシンプルだが、お茶にも酒にも合うところが良い。最後に買ったのは、最後の白い翼に乗った北陸新幹線開業前日の朝食「焼さば寿し」だったと思う。バッテラというと、バッテリィライトを想像してしまうが、魚である。

f:id:TOYOZUMIKouichi:20170129193000j:plain

f:id:TOYOZUMIKouichi:20170129192952j:plain

日がかなり傾いてきていて、はじめて通る区間がほとんど真っ暗になってしまいそうだが、長万部駅は美しい夕日の景色が描かれていた。

f:id:TOYOZUMIKouichi:20170129193743j:plain

金色の森は静かに夜へと引き込まれていき、ニセコの駅に着いたときには、あたりはすっかり暗くなっていた。

f:id:TOYOZUMIKouichi:20170129194342j:plain

けれども、こういう駅の情景を見ると「映画監督」の本能が動き出す。北海道新幹線は物語を2016年3月26日に始めたが、駅の明かりに照らされた舞い落ちる雪を見ていると、物語の始まる予感がする。頭のなかに見事に情景が描き出され、登場人物たちが話しだす。景色を狩るものとしての自分が目覚めるのを感じる。

f:id:TOYOZUMIKouichi:20170129194925j:plain

ニセコ号に車内販売は原則ないが、ここから一駅の区間だけ、地元のものを売りに来る人が乗ってくるので、クッキーとヨーグルト、それからせんべいを買った。

すっかりあたりは暗くなってしまったので、ついに手持ち無沙汰になり、ノートを取り出してコンテを切った。夏コミにはTHE NAME OF THE HEROINEに登場する僕のヒロインたちのイラスト集を作ろうと思う。絵をもっと上手くする。ここ数年、毎年絵を上手くすることに成功しているので、不安はない。

f:id:TOYOZUMIKouichi:20170129195029j:plain

小樽でまたしばらく停車したので、写真を撮った。小樽は二度来ている。いつか、手宮線と日本銀行小樽支店の跡を使って映画を撮影したい。もちろん、それより早く手宮線が復活した方が嬉しいが。

f:id:TOYOZUMIKouichi:20170129195522j:plain

f:id:TOYOZUMIKouichi:20170129195528j:plain

f:id:TOYOZUMIKouichi:20170129195541j:plain

札幌に一泊し、ついに憧れの車種の一つに乗れる日が来た――と書きたいところだが、残念ながらスーパー宗谷1号はノースレインボーエクスプレスでの代走となった。1号車2番という実に悔しい席である。何をやらせても一番になかなかなれない僕らしい席である。それでも、ハイデッカーと前面展望の組み合わせは素晴らしいもので、輝く雪煙を走らせて疾駆する快速エアポートの姿はとても美しかった。

5時間の旅路は、予定とは違う車種であるからきっと伸びるだろう。別に構わない。また別の楽しさがあるはずだ。

後輩の女の子に「なぜそんなに長い旅路を楽しめるのか」ときかれたことがある。きけば、移動はただ無駄で辛いだけだという。僕が思うに、移動することを楽しめないのは、移動することを楽しもうとしていないからだ。こちらからアプローチしなければ、旅路は楽しませてくれない。もちろん、あまりにも単調すぎて楽しむことに限界が来る旅路もなくはないけれど、楽しもうと思えば、かなり楽しめるものだ。

f:id:TOYOZUMIKouichi:20170129200031j:plain

例えば、車窓から見える景色を写真に残したいとする。すると、まずは決定的瞬間を逃さないことが難しいだろう。車窓から見える景色は、車窓からしか見えないことが多く、つまり通常の場合、走行中に撮影しなくてはならない。速くシャッタを切る必要があり、それに対応できる雑音耐性の高い撮像素子や、速いレンズを揃える必要がある。

また、写り込みも大問題だ。その点、iPhoneのような平たい「カメラ」は窓ガラスにぴったりと貼り付けられるので便利だ。

そして、決定的瞬間を逃さないためには、できれば事前に準備しておきたい。したがって、初めて乗ったときはとりあえずシャッタを切ってGPSで位置を割り出し、次に乗るときは狙いすましてシャッタを切るとか、可能なかぎりの高画質で録画してあとから切り出すとか、やることはたくさんある。上手く行けば嬉しいし、誰かと一緒ならその場で作品を見せ合ったりして楽しむことができる。

f:id:TOYOZUMIKouichi:20170129201900j:plain

知っておくことも旅を楽しむ手助けになる。宗谷本線で言えば、例えば急なカーブが連続している。ここをいかに高速に通過するか、ということが、時間短縮のためには必要になるわけだ。そのためにJR北海道は苗穂工場の総力を結集して振り子式車両を開発してきたし、高速化のための線形改良を行ってきた。

列車がカーブを通過するとき、力学的にはどういった力が働くのか、そうすると何に影響が出るのか、知っていて、実際に体験すると同じ長さの時間がまったく違う質のものになるだろう。

車窓から写真を撮ろうとしても、最新のガラスのコーティングの防汚性能が高く写真がとりやすいことがわかるし、地図と大気や雲の状態から光の動きが想像できれば、より良い撮影ができるはずだ。

理科の授業で学んだように、まず知識を得て、実験で確認して、また考える、そのサイクルを回すだけで旅の楽しさは高まる。修学旅行のしおりを作る時に、行き先のことを調べろと言われなかっただろうか。人生で大切なことは義務教育で教えてもらえるようになっているのだ。

f:id:TOYOZUMIKouichi:20170129203212j:plain

天塩中川駅でラッセル車と交換するはずだったのだが、順調に遅延していてより手前の駅で交換となった。「宗谷ラッセル」は皆が撮影しているので、同じような写真が量産されているわけだが、もちろん自分もそういうのが撮ってみたかったりする。けれども、それはそれとしてなかなかおもしろい写真が撮れた。

f:id:TOYOZUMIKouichi:20170129213838j:plain

ラッセルとの交換を果たしたので、昼食用に買っておいた「笹吉・助六寿司」を開ける。一般的な寿司弁当だ。もちろん景色も気になるので、忙しないが、車内で喰う駅弁には価値があるので、食べない手はない。

途中から保線員が二名、乗務員室に入り、走行中に何やら話している。乗務員室が密閉されていないので、内容は筒抜けだ。都合のいいように切り出してJR北海道を貶める道具にする奴がいないとも限らないのでここには書かない。

ただ、保線員たちの会話からは、常に存在する危険の予兆を見逃す気はないという強い意志と、大勢が想像する厳しい職場のステレオタイプとは違う、危険を受け止めなければいけない仕事人たちが持つべき態度が感じられた。一人ではなく、二人で乗り込んできたことからも、それは明らかだろう。

列車は急カーブの連続する山岳地帯を行く。天候も次第に悪化しているし、そもそも線形から見通しが悪い。このあたりは風で橋が数ヶ月で落ちてしまったので全村撤退が決定されたような陸の孤島なのだ。その困難な路線を、運転士は高い技術で切り抜けていく。そうしていくと、左手に海が見えた。次に来るときは、左側の座席に座ろう。

f:id:TOYOZUMIKouichi:20170129214900j:plain

終着、稚内駅で下車するとすぐに乗ってきたノースレインボーエクスプレスは棒線の駅から出発して、南稚内駅で待機していた上りのサロベツが入線してきた。国鉄型の特急マークは、シンプルで美しい装飾の手本のようだ。

f:id:TOYOZUMIKouichi:20170129215431j:plain

かつては棒線ではなく、一大貨物ターミナル駅であったが、貨物の取扱をやめ、どんどん縮小されていき、今では棒線一本しか残っていないという。しかし、新しい駅舎には、まだ希望がある。変われる、ということなのだ。また必要になったら、変われば良い。悲しいのは、誰も望んでいないのに仕方なく諦め、受け入れていくことだ。それは不幸であって、避けなければいけない。

f:id:TOYOZUMIKouichi:20170129215246j:plain

列車が遅れたので、予定のバスに乗れなくなってしまい、時間がある。なので、まずは別の行ってみたい場所に向かうことにした。

f:id:TOYOZUMIKouichi:20170129215846j:plain

語ればつまらない争いを生み出すだろう。だから語らない。ただ、美しい建物である。ここにある意味もある。

f:id:TOYOZUMIKouichi:20170129220008j:plain

この写真の色は全くの嘘だ。だが、誰も困らないし、伝えたいものがより強く描き出せたと思っている。

f:id:TOYOZUMIKouichi:20170129220157j:plain

バスに乗って辿り着いた夜の海には、流氷がたどり着いていたそうだが、どこからが流氷なのかよくわからなかった。複雑な光で、なかなか思い通りにならなかったが、残照の美しさは本物だ。

そういえば、以前「残照」という物語を書いた。評判が良かったのだが、技術的に撮れそうになかった。しかし、つくりたいと思っている。今なら、よりよいものができそうだ。ヒロインをやってくれる女優さんがいないのが問題だが。

f:id:TOYOZUMIKouichi:20170129220528j:plain

バスの道中は暗く、することもないので、いろいろと考えていた。何かが劇的に変わったわけではない。ただ、そこに行っただけだ。それでも以前とは違うのはなぜだろうと考え、iPhoneのメモ帳を開き、文章を書いては消して、書いては消してを繰り返す。

ある程度「子供」を進めると、将来に不安を持ち始める。想像力が育ったのだろう。みらいが想像できるから、期待も不安も生まれる。けれども、中途半端な成長は、中途半端な想像をするので、自分が夕暮れにいるとき、真夜中のことしか想像できず、次の夜明けのことを思い描けず、この夜闇に耐え続けるのならいっそ終わりにしてしまったほうがいい、と思うようになる。

僕もそうだった。何度終わらせることを考えたかわからない。けれども、その度に踏みとどまったのは、多分、映画があったからだ。好きな映画の台詞を信じ、見たい映画のために生きた。撮りたい映画のために攻め、見せたい映画のために守ってきた。

f:id:TOYOZUMIKouichi:20170129220932j:plain

夜が深まると、目が慣れてきて明るく感じる。僅かな想像力はすぐにそのことに気づき、夜は深まるばかりだと思う。そして、夜明けは日差しとともに来ると信じているから、静かに明るくなる世界に気づくことはない。曇りの朝だってあるのだから、いつだって強い日が射して栄光の日を迎えられるわけではない。気づいたら、明るくなっていた、ということもある。

僕は争いごとの映画が好きだ。勝つか負けるか、もっと言えば生きるか死ぬかの世界を描くのが好きだ。それから、人間らしい物語が好きだ。この二点によって、まともな学生映画の世界には合わなかったし、今も芸術映画を撮ることはできなくなっている。

だからこそ、世の中から生きるか死ぬかの局面を増やそうとする、より厳しくしようとする考え方が嫌いだし、より人間らしい生き方ができる世の中にしたいと思っている。

そうでないと、争いを描いても皆が現実を思い出しておもしろがってくれなくなるし、人間らしい考え方に現実味がなくなってしまい、僕の撮りたい映画の基礎が崩れてしまう。これでは、映画を撮り続けることができなくなる。 

f:id:TOYOZUMIKouichi:20170129222042j:plain

寿司屋の大将によれば、稚内の駅を見て多くの鉄道ファンががっかりするという。終着駅とは思えない、きれいすぎる、だから皆手前の抜海駅が好きなのだ、と。

僕はそうは思わない。新しく、美しい駅には夢と希望がある。映画館があり、コンビニもある。人が快適に暮らしていけるようにしようとする、堅実な態度がある。素敵な駅だと思う。古くて、薄暗く、汚い駅より、新しく、明るく、美しい駅のほうが日常には良いだろう。鉄道は日常のためにあるのであって、非日常の住人である僕ら旅行者のためにあるのではない。

明日のスーパー宗谷で発つことを伝えると、鉄ちゃんなのかときかれたので「鉄道は好きだが、自分のようなものが鉄ちゃんを名乗ったら本当の鉄ちゃんに申し訳ない」と答えたら「鉄ちゃんはみんなそう言うんだよ」と笑われた。貝の握りは素晴らしい歯ごたえだった。夏のほうが美味いというので、今度は夏に行こうと思う。

f:id:TOYOZUMIKouichi:20170129222511j:plain

朝の薄青の空気に、キハ261系の塗装はとてもよく似合う。貫通扉の周りの細かな部品とその隅についたディーゼルの排煙の汚れや、室内から漏れ出す暖かい光が、ステンレスの車体の輝きもすべてが美しい。

f:id:TOYOZUMIKouichi:20170129222825j:plain

もう、しばらくスーパー宗谷に乗ることはできない。3月に「宗谷」と「サロベツ」に一旦戻るからだ。

先頭車側面に誇らしげに記されたTilt261の文字が、ただの装飾と化して久しい。高速運転を取りやめているので、その機能は使われてはいない。

f:id:TOYOZUMIKouichi:20170129222854j:plain

みどりのマキバオー」で、マキバオーが「なんて悲しい話なのか、みんな貧乏が悪い」と嘆くシーンがある。

スーパー宗谷がその持ち前の空気バネを利用した振り子機能を利用して急カーブの連続する線区を駆け抜け、極北の地域の日常をより強固なものにすることができなくなったのも、そのマキバオーの生まれた日高地方につながる、まるで波の上を走るかのような日高本線の廃止が秒読み段階にあるのも、みんな貧乏が悪い。

f:id:TOYOZUMIKouichi:20170129224213j:plain

旭山動物園が栄え、知床が世界遺産に認定されると、稚内への観光客は減ったという。今回僕が利用したパック旅行にも道北へのオプションはなく、無理に組み込んだ。このエントリィを見ても、大して魅力に感じないと思う。ただ、僕はもう一度行くだろう。そこには普通の街があったからだ。

f:id:TOYOZUMIKouichi:20170129224557j:plain

動物園から戻ったあと、旭川の街はひどく吹雪いていて、とても気楽に散策できる様子ではなかったので、キヨスクと駅前のイオンでお土産を買い込み、ヤマトで発送し、寿司屋に入った。油坊主の西京焼きというものを初めて食べたが、美味かった。付け合せのゆりの根も美味かった。

f:id:TOYOZUMIKouichi:20170129225633j:plain

夜、駅に列車を撮りに行くと、キハ40が侍っていた。この北海道色が一番好きだ。今度TOMIXから再販されるので抑えておこうと思う。

f:id:TOYOZUMIKouichi:20170129224824j:plain

旭川駅も好きな駅だ。この手摺に持たれ、真奈美が見下ろしている絵が想像できたが、真奈美がここに来れるのはきっと就職してしばらくしてからだろう。お笑いゴールキーパの物語をそこまで進めなければいけない。英気は十分に養えているし、頭のなかに広がる絵の貯蔵庫も拡張工事が続けられている、良い旅行だ。

f:id:TOYOZUMIKouichi:20170129225704j:plain

朝になっても吹雪は収まらず、危うく滑って線路に落ちるところだった。気をつけよう。

乗車後もスーパーカムイの車内は静かにひんやりとしてきて、外の天気はどんどん荒れていった。

f:id:TOYOZUMIKouichi:20170129230029j:plain

短い乗換時間だったので不安だったが、ほぼ直線で構成されるスーパーカムイの走行区間では影響は小さく、すずらんの到着が遅れたので朝食の駅弁を買うこともできた。「北海道三昧冬御膳」はいろいろな地元の名品が楽しめる、駅弁の魅力の一つそのままの駅弁だ。

f:id:TOYOZUMIKouichi:20170129225139j:plain

北斗に乗ってからも天気は目まぐるしく変わったが、初めて駒ケ岳の輪郭をしっかりと認識することができた。天気運のない僕としてはかなりいいほうだったと思える。

f:id:TOYOZUMIKouichi:20170129230513j:plain

函館は三度目で、特に港周辺はかなり歩いたのでよく知っている。とはいえ雪の季節は初めてなので、摩周丸でも見に行くかと思い、歩みを進めたが、とてつもなく風が強い。 

普段ならどうということなく平衡感覚で取り戻せる無理なステップを踏んでしまい、風が強い、煽られるぞ、と気づいた時には既に遅く、横に倒れ慌てて手を伸ばしたが、したたかに腰を打っておまけに手首も捻った。

より一層気をつけて、摩周丸に近づき、叩きつけるような風と向き合うと激しく荒れる海の様子がよくわかる。波頭は白く、むき出しの顔には氷のような空気が襲いかかる。

f:id:TOYOZUMIKouichi:20170129225931j:plain

だから、青函連絡船の復活などありえないと確信し、青函トンネルの意味をより深く知ることができた。

僕は「渚にて」を最終話のタイトルとした「放課後のプレアデス」のオープニングテーマ「Stella-rium」のファーストコーラス、サビ手前の歌詞が好きだ。それは、自分で行ってみる景色を狩るものの本性以外の理由だと思うからだ。

f:id:TOYOZUMIKouichi:20170129231354j:plain

信号故障でいくつかの北斗やスーパー北斗そしてニセコが運休になっており、残念ながら早めに駅に戻って撮影するか、という目論見は失敗した。が、少し恐ければこちらも巻き込まれて運良くながまれ号塗装が入線していたので、低くなった日差しと組み合わせて撮ることができた。

f:id:TOYOZUMIKouichi:20170129231602j:plain

五稜郭駅で、はこだてライナーを待つ。海峡太郎が好きなので撮りたかったのだが、赤熊と夕日を組み合わせることができたのでまあ、良しとしよう。

f:id:TOYOZUMIKouichi:20170129232623j:plain

基地から入線したE5の車体は美しく洗浄されている。新函館北斗駅の小さなたくさんの照明が、その勇姿を輝かせていた。H5はまたお預けになってしまった。

f:id:TOYOZUMIKouichi:20170129232227j:plain

このドアから汐音が顔を出して島津を探す姿を頭のなかに描いている。連中の修学旅行は新潟の予定なので、E5ではないと思うけれど。

f:id:TOYOZUMIKouichi:20170129232849j:plain

夕食は鰊みがき弁当だ。何十年も売られているベストセラーとのことだが、納得の美味さである。ビールは奮発してエビスだ。サッポロクラシックがよかったのだが、まあ、E5なので仕方ない。エビスは美味いビールだし、問題はない。

f:id:TOYOZUMIKouichi:20170129233231j:plain

僕が最も高く評価するアニメのテレビシリーズが「翠星のガルガンティア」だ。いろいろと素晴らしい作品だが、特に好きなところが「人間らしさとは自ら変えていけること」と定義したところだ。自然に流されて生きていくのでは、動物と変わりがない、文化や進歩こそが人間らしさなのだと。

北海道の中心である札幌市は人口20万の、豪雪地帯に存在する世界でも珍しい大都市だそうだ。通りが碁盤のようになっていることからも、人に手によって計画的に整備されていることがわかる。その過酷な自然環境において日常を作り出している。人間らしさが溢れていると言えるだろう。

その日本有数の大都市に、日本最強――最速でも最高でもなく、最強である――の交通システムである新幹線が到達していない、これはおかしな話である。というのは建前で、北海道新幹線が札幌に到達し、JR北海道がゼニをガッポガッポ儲け、第二青函トンネルが建設され、皆が遊び放題の懐にならないと、北斗星や定期夜行列車としてのトワイライトエクスプレスの復活などありえないのである。北斗星に限らず、マキバオーの言うとおり貧乏は悲しい話を生み出すので悪だ。だから、北海道新幹線に失敗の選択肢はない

さらに、悲しい話というのは、つまり争いである。争いが起き、人間らしさが失われると、僕がおもしろい、とにかくおもしろい映画を撮るための環境が失われるのである。絶対に阻止されなければならない。

f:id:TOYOZUMIKouichi:20170129233300j:plain

まだ、文章は書き慣れない。論理を組み立てるのが苦手だ。勢いに任せて、紡いでいくしかない。けれども、幸か不幸か、そうやって書いた文章は、絵は当然のこと、なぜか一番自信のある映画よりも評判がいい。

だから、ちょっと多めに書いてみた。書くことで鍛えられるものがあるし、運が良ければ映画を見てくれる人も増えるだろう。そうやって、少しずつ作って、状況をよくしていくことが、僕の日常だし、自ら悪い状況を変えていくことが、人間らしさだからだ。

f:id:TOYOZUMIKouichi:20170129235806j:plain

東京駅は暖かく、上着はいらないほどだった。

まだ、夜のどの辺りにいるのかはわからない。僕らを照らしてくれた夕暮れの光も、北斗の星も、今は闇の中に沈んでしまっている。

けれども、恐れず、驕らず、真摯に地球を回していけばいい。いつもそうやって、夜明けを手に入れてきたのだから。

なにも変わらない

北海道新幹線についての記事を書き

アニメを作り


THE NAME OF THE HEROINE PV1

シン・ゴジラの感想を書いたら評判になり

toyozumikouichi.hatenablog.jp

コミケで同人誌を頒布し

toyozumikouichi.hatenablog.jp

昔作っていて座礁した映画をひとまとめにして新しい映画に仕立て上げて

ビームを放ってビルをぶった斬り

それを米子映画事変に持っていき、とてつもない人たちに見てもらい

toyozumikouichi.hatenablog.jp

セイバーの絵が上手く描けたと思ったら

セイバー by 104 on pixiv

宇宙船に自分の作品が掲載されていることに気づき

(いまのところアフィじゃない)

今日もコミケで同人誌を「知り合いに」頒布して

帰ってきた。

また明日もいつもと変わらず、何か作っているのだろう。

期待されていないのだな、と最後の最後に思い知らされたけど、期待されているように錯覚していたのが年を跨がなくて良かったとも言える。

ところで砲雷撃戦、こ-02と書いてあって、なんか僕の誕生日は1月22日だったみたいだ……

響け!ユーフォニアム2(1期も)感想など

はじめに

響け!ユーフォニアム2が最終回を迎えた。毎週楽しませてもらった。正直なところを言えば、1期よりは数段僕好みではなかった、よくわからなかったな、という印象だ。

ときどき「ユーフォニアム2は1期みたいなスポ根でなくなってしまった」というような話を見ていて、うーんと、それはちょっと違うんじゃないかなあと思う。

じゃあ自分はどう捉えているのだろうということをつらつら書く。

少し注意書きを書いておくと、僕は、テレビで放送された本編しか見ていない。それから、業界の人ではないので、用語を間違って使っていると思う。ただ、脚本という言葉は意図して使っていない。脚本=お話だと思っていないし、脚本家が話についての全権を握っているとも思っていないからだ。

最大の特徴

響け!ユーフォニアムはめずらしい音楽、というより「プレイ」アニメだった。音楽でなく「プレイ」としたのは、スポーツ物も同様だからだ。

この手の音楽物はいくつかあるが、よくある演出手法として「演奏ポエム」「コンクールブラボー」がある。どちらも自分で思いついたので、多分一般的な言葉ではない。

演奏ポエムというのは、演奏シーンになると、登場人物が突然ポエムをモノローグで語りはじめて、その演奏の素晴らしさを力説する手法で、コンクールブラボーというのは、コンクールのシーンで観客が立ち上がってブラボーと叫び、訳知り顔の登場人物が「コンクールなのにこの熱狂…!」と演奏者の技量を演出する手法である。

これら手法の良いところは、実際に演奏の優劣を描かずともキャラクタの技量を描き出すことができるということは明らかだが、映像作品であるならば、ぜひ演奏で示してもらいたいと思うものである。ところが、その実現はどう考えても難しい。だから、音楽アニメもスポーツアニメも、ポエムに頼るか、極端な技倆の差を描くことになる。

しかし、ユーフォニアム1期はその難題をやってのけた。「高校生ならなかなか上手い中世古香織」と「圧倒的に上手い高坂麗奈」の対立だけでなく、「高校生ならなかなか上手い中世古香織がいくつかの問題を修正し、高坂麗奈を追撃する様」まで、演奏によってのみ描いてみせた。もちろん、ヒロイン黄前久美子も、技巧的な部分で演奏から降ろされるという厳しい状況に直面する場面で、田中あすかとの些細な、しかし確実な技術力の差を認識させられた。響け!ユーフォニアムの一つの特徴は、この「音楽と真正面から勝負した」ということにある。

お話の堅さ

しかし、隙のない手堅いお話について見逃してはいけない。演奏が特徴なら、お話の堅さは土台となった。

まず、主人公にとっての課題が示されるが、これはやりたいことが見つからない、という定番である。 で、なんとなく高校生になった久美子は友達と出会い、部活見学に行き、基本的な講義を受け、また行う。部活ものの定番展開である。 それが済むと、今度は滝が現れ、久美子の課題を再度認識させる。そして「上手くなければ生き残れない」の原則を提示する。 続いて首の皮の繋がった吹奏楽部は、サンフェスで上手くなったご褒美としての勝利を満喫する。 さらに、初心者の葉月が合奏したことないのでつまらない、というわかりやすい話から、好きになる、というもう一つのキーワードを提示する。 「自分はどうしたいか」「上手くなければ生き残れない」「何が好きか」これが響け!ユーフォニアムの三大主題である、と前半を使って描ききっている。

それからは、葵が「上手くなければ生き残れない」の原則で脱落し、葉月が「何が好きか」を示し、大吉山で「自分はどうしたいか」が再度取り上げられ、オーディションでは改めて「上手くなければ生き残れない」と「自分はコンクールで吹きたい」が示され、その間に吉川優子が「香織先輩が好きだ」とか麗奈が「滝先生が好きだ」という気持ちを強く出し、滝が非情な決断を下し、さらにそこに救いの手を差し伸べることで、久美子は「自分はユーフォニアムが好きで、演奏したい。だから、上手くなって生き残りたい」と結論を出して、あとはご褒美で終わりだ。

実に手堅いお話で、それが響け!ユーフォニアムの良さだ。お話には様々な要素があるが、その多くが「あ、わかるわかる」とか「これが好きなら、もしくは嫌いなら、そうなるだろうね」というものでできている。感情移入がしやすいし、お話に違和感がないから納得して進んでいける。対立する場面においても対立する両者の気持ちにそれなりの感情移入ができるから、そこに現実感が生まれるわけだ。

また、次はどうなるか、というところに、例えば「麗奈がソロに選ばれる」とか「わたしね、滝先生が好きなの」みたいな「予定内の驚き」はあるのだけれど、突然吉川優子が出刃庖丁を持ち出して麗奈を刺突したりはしない、安定感がある。予定調和の良さがある。

さらに、同時にさりげなく常に「強大な敵に立ち向かう久美子」という構図を入れている。それから、物語の中心メンバでない、準レギュラでもない葉月やみどり以外のキャラクタが吹奏楽部に社会を描き出していたことも忘れてはいけない。

くわえて、滝を中心とした「無言のお話」が、明快にその下支えをしてきたことも重要だ。滝について言うなら、初登場時点で大吉山北中学校の地獄のオルフェを確認している。その後、中世古や吉川の実力を確認し、トランペットパート全体と信頼できる高坂の能力を最大限に活かせる三日月の舞を選曲したことは想像に難くない。オーボエに鎧塚がいたこと、あまりやる気のないホルン隊を「ホルンがかっこいい曲」でおだてて仕事をさせること、ユーフォニアムに名手田中あすかがいたことは、彼の選択を決定したものと思われる。

十分に世界観の性質の中で流れを収める選択をしていて、そこには「下手くそだった北宇治が府大会で金賞をもらって関西大会出場を決めました」という「ストーリィ」、「何をしたいかわからなかった黄前久美子が、何をしたいかわかりました」という「ドラマ」、そして「適当にやって思い出が作れる」から「一生懸命がんばってよい結果を出すと思い出が残せる」に変わる、言うなれば始まりがあって終わりがある「物語」がある。

この三点セットがしっかりあるお話つまり文芸を、高い作画、演技、演奏そのほか諸々の技術が支えた。つまり、映像作品、総合芸術としてやるべきことをやった、それが、響け!ユーフォニアムだったと僕はみている。

1期と2期の大きな違い

で、ユーフォニアム1期と2期の違いは、これらのうち、文芸の変化であることは明らかであるので、どう変化したか、ということを記していこう。

その変化の要点は3つで、1.問題に共感を得られる人の数が減った、これが大きく、小さなものとして2.久美子が強い立場になった、3.問題を冷めた目で見ている人間がいなくなった、だと思っている。

1期と2期の最大の違いは、久美子が出会う問題が、共感を得難いものになったということだ。

葉月が合奏したことないから音楽が楽しくない、という話は、まあ「そりゃ基礎練ばっかなら初心者は飽きるわな」となって、共感できない人は少ないだろう。「去年は下手くそな3年生がソロやってて、今年は下手じゃない自分が3年なんだからソロできると思ってたら1年に持ってかれたくやしい」というのも、多くの人が共感できると思うし、「私の方が上手いんだからソロ吹きたい」もわかると思う。

一方、「大好きな友達にキツイこと言われたから話しかけられると逃げたくなっちゃうんです」、と言われたら「は?」と思う人はそう少なくないのではないか。僕なら、好きな女の子にキツイことを言われたことは何度もあるが、それは「豊住キモい近づくな話しかけんな死ね」みたいな内容だし、そのあと話しかけられても尻尾振って喜んでいた。アホである。でも、高校生の好きってそう言うものでは?と思う。なお「そういう」趣味はない。

ところが、鎧塚はそうではない。それなのに、16にもなって黙って走り出して逃げました、という話を見たら「なに"ぶってる"の?」としか僕は思わない。

「記憶にないオヤジだけど、自分の演奏を聴いて欲しいからいろいろやったけど、おかんがうっさいのでもーいーです」と言われて「お前に何度も頭下げた傘木に詫び入れんかコラァ」とまでは思わなくてもちょっと違和感感じることはあるのではないか。僕でも言わないが、陰口は盛大に叩くだろう。いや、言っただろうな、多分。

「うぜえ、家からすでに出て行っており、たまに帰ってくる姉貴だけど、本格的に引っ越したら電車の中で泣くほど寂しいです」と言われても「大変だねぇ(棒」となる人はいそうだし、僕はそうだ。

同様に「好きな先生の元奥様が死んでるから墓を見に行きたいです」と言われて「わかるよその気持ち!!」となる人は珍しいのではないか。

「いやいや、久美子が麻美子のことを想っていることは丁寧に描いてあったじゃないか」という人はいると思う。が、それが「感想」だ。正しい、間違いではない。伝わる、伝わらないの問題なのだ。そこについて作り手は、諦めるしかない。シン・ゴジラのときもいたし「あのシーンの痛みがわからない奴は人でなし」みたいに言う奴もいた。はっきり言って、どうかしていると思う。

少数派から多数派への変化と社会描写の消失

話を元に戻そう。次に、久美子は1期において、概ね少数派であった。初登場シーンでは、みんなが大きく喜んでいるところで、一人だけ麗奈を上から目線で見ていて「よかったね」なんて声をかけている。

滝が着任すると、久美子は「手を挙げなかったずるい子」であり、ここでも少数である。この後久美子は「真面目に練習する派」「麗奈の味方」「2人しかいないユーフォニアムでダメ出しを食らった方の1人」と、少数派の道を歩き続ける。

ところが2期における久美子は大衆の尖兵、最も危険な領域に単身切り込み解決を要求される、特殊部隊隊員か007の立場となる。巨大な力を背景に、異端児を更正させる立場が主になるのだ。みぞれに対しても、あすかについても、麗奈についてもだ。

そして、些細に見えるが大きな違いとして、久美子が取り組む問題について冷めている人間をはじめとした周囲の描写が弱い。1期の場合、例えばあすかは、誰がソロかに「心の底からどうでもいい」立場だった。そしてそれについて晴香は「1人でやるしかねーぞ」と自分の立場を持っていた。さらにあまり焦点を合わせてもらえないキャラクタ達が、滝の悩みや立場を描き出すことを支えてくれていた。

これらは「本人達にとっては大問題だけど、まわりにとっては」というある意味社会の恐ろしさを描くために必要であり、それがあるからこそ、久美子の「周りが、ではなくて、自分がどうしたいか」という主題を強く描けていた。

ところが、2期は描くべき内容がわかりづらいものになったが故に、その説明のための描写を強化する必要があり、部活の社会を描写することができなくなり、結果として「巨大な組織を背景にした強者の久美子」を支えてしまった。まさに物言わぬ大衆として、1期で久美子が立ち向かった麗奈の敵を、今度は背景にすることを、支えてしまったのだ。

特殊なお話の良さと高坂麗奈

じゃあ、その違いは「ダメだったのか」というとそうではない。究極的には良し悪しの話ではない。好き嫌いの話だ。

響け!ユーフォニアム2のお話は、一期よりも一般的なものではないだと思う。つまり、特殊だ。だから、その特殊さに合えば、一期よりも良いと評価する人も出て来て当然だ。その逆もあり得る。

僕の場合、鎧塚みぞれの気持ちは理解できない。田中あすかや黄前麻美子に対する黄前久美子の気持ちもわからない。だから、感情移入できないし、現実感を感じられない。したがって、お話を楽しめない。特に、最終話なんか「なんでここまであすかに久美子は執着するの?」と思ったし、そうなので「この役員決めのシーンも、秀一のシーンも、追い出し会のシーンもいらなくない?というか2期の秀一はなんのために出て来たの?」と思ってしまい「果てた」という印象が強く残ってしまった。特殊化が悪く出た一例だ。

けれども、それまでの話に比べて軽いという評も見かけたが、僕は、高坂麗奈の気持ちがよくわかる。だから、彼女のお話には共感できたし、一期の彼女の気持ちもわかったが、二期の彼女の気持ちはもっとよくわかるので、彼女がもっと好きになった。一期の彼女は「好きなタイプのアニメキャラ」だったが、二期の彼女は「可愛い女の子」になった。

好きな人にかつて伴侶がいた、ということは、今の自分にとっては実は大した問題ではない。それなのに、そのことを知らなかったことがまるで決定的な問題であるように誤認してしまい、その誤認を誤認だと理解しているはずなのに動揺してしまう。「ヤバいぐらい動揺して」というあの台詞を、「え、今の麗奈に関係ないでしょ」と思う人の気持ちはよくわかる。「奥さんもう、いないんだよ」。その通りだ。

けれども、僕はその動揺がわかる。だから、麗奈の話が一番おもしろかった。繰り返すが、わかるから偉い、わからないから間違っているという問題ではない。そういうものなのだ。

墓石を見に言ったところで何かが変わるわけではない。けれども、自分の向き合わなければいけないつらい現実を少しでも惨めに受け止めないために、あの行動を選ぶその気持ちを想像できるし、静まり返ったホールでプライマコードのように神経が発火し、情動に突き動かされて思いの丈を叫び伝えてしまう、その恐怖を知っている。そして一度初めてしまった戦いの決着を知りたいと、泥沼に足を踏み入れていってしまう衝動もわかっている。だから僕は麗奈が特別に好きだ。

他の観客を置いてきぼりにしていたとしても、それは僕にとって、つまり鎧塚みぞれや田中あすかや黄前麻美子にまつわる黄前久美子のお話に共感した人たちにとっても素晴らしいもので、一期の手堅い文芸との間に、客観的な優劣をつけられるものではない。

優劣をつけられるものではないけれど

一般的な1作目と特殊な2作目、という組み合わせは珍しいものではなく、例えば、機動警察パトレイバー the Movie平成ガメラ三部作、魔法少女まどかマギカのテレビシリーズと叛逆の物語などが該当する。そして、一般的だからといって必ずしも一般的な作品の多数決の評価が、概ね高いとは言えないことが、平成ガメラ三部作からは言えるだろう。また、一般的なお話を再演しつつ、お話の部分は手早く簡単に済ませ、観客が期待している部分を徹底的に描いて評価を獲得した劇場版ガールズ&パンツァーのような作品もある。

では、個人的な想いを置いて、響け!ユーフォニアム2の文芸は欠くところがなかったのか、と訊かれれば、残念ながら「いや、あの四つのストーリィを維持しつつ一般的なドラマを入れる手はあるよ」と僕は言うだろう。心からそう思っているからだ。

とくに、何度か目にした「一つ一つの話がぶつ切り」という評判はやりようがある、と思っている。元々一期がスポ根ものだった、と言う人が、一体何を指してスポ根ものと言っているかわかる気もするので、そこについても、こうすりゃそうなったんじゃない、みたいなのは、わかる。

じゃあそれをどうやったらいいのか、と言う話なのだけれど、まあ実はあんまり書きたくない。それに、「プロの仕事(パターソンジェスチャ)」に「素人(同じく)」があまり大きな口を叩くべきとも思わない。それに、多分作った人たちは、僕が気づかない、何かやりたいことがあってだからそうしたのだと本当に思っている。それが伝わっていないのは、前述の通り諦めるしかない。でも、だからといって、それを無視して外野が「こうすべきだった」と素面で、真面目に、強くいうのも野暮だ。

したがって「生中二杯後」のニュアンスがわからない人や、そういうつもりで読んでいない人はこの先を読むべきではない。本来なら呑みながら話す内容だが、元々友達が少ない上にユーフォニアムを見ている奴はもっと少ないので話し相手がいないのだ。

例えばの話

一期も一つ一つの話はしっかり区切られている。入学と入部、方針決定、滝による指導、サンフェス、葉月の話、葵脱落、あがた祭、オーディション、再オーディション、久美子の話、となっている。それが「ぶつ切りになっている」という印象を受けないのは、「受け入れやすい自然な話の流れ」があるからで、それは誰もが知っているといえる4月から始まる部活の一般的な日程である。部活の日程に乗っているから、話が全体で流れているように感じるのだ。

ところが2期になるとあとは大会を突破していくだけなので練習するだけである。オーディションも終わっている。日程に起伏がない。もう前の手は使えないのだ。ではどうやって大きな話の流れを作るのか。

一つの手は、マルチスレッド作戦、いわゆる群像劇である。それぞれはぶつ切りの話を同時並行させ、切り替えていくことで「小さなぶつ切りの話たくさん」を「大きな一つのお話」に誤認させる方法である。ところが、響け!ユーフォニアムの場合、基本的に黄前久美子の視点で描かなくてはいけないのでこの手法が使えない。

だから、ちょっと変えて、前の問題が解決する前に次の問題を起こして、問題を同時進行させてやればよい。こうすることで「どの問題を先に解決するか」という久美子の悩みが現れて、久美子が強くなりすぎた印象を抑えることができる。

具体的にはどうするかというと、田中を早い段階で部活から退場させればいいのだ。そうなると、音量の問題が早期に出現して中川を昇格させなくてはいけなくなる。

すると、オーディションで落とされた他のメンバが不満を持つことを描写できる。さらに、傘木の復帰をあすかが握る違和感を引き起こすことができる。ここであすかが傘木の復帰を否定することで、自らの復帰を狙っている伏線を張れる。

田中が模試で好成績を納めて、復帰という体勢になると、技術が低下していることを確認され、今度は元の技量がある田中をとるか、今調子を伸ばして来た中川をとるか、という話にできて、久美子の葛藤を引き起こせる。さらに滝としては完全に初期のプランが狂っているし、中川の下克上はオーディション脱落組にさらに不穏な動きを起こさせることができるだろう。あすか派の中世古も自分対あすかの対立に、当然小笠原も思い悩むはずだ。

ここで麗奈を滝の側につかせて、久美子の優柔不断さを責めさせることによって、さらなるドラマを作り出すこともできる。この混乱によりコンクールが楽しいものでなくなるし、久美子自身があすかか中川のどちらかを見捨てなければならなくなるので、傘木の話に説得力が出る。自分がやりたいことを後になって蒸し返すということで中川と麻美子が連立し、あすか自身やあすかへの久美子の思いも温存でき、麗奈の話も影響なく進め、かつ、1期のスポ根と称された性質も実現できるのではないかと思う。

でも、そうはしなかったのが、作り手の選択で、それが尊重されるべきだとも思うのだ。

最後に

僕は、良い作品とは、終わった後いろいろ話せる作品だと思っている。だから、響け!ユーフォニアム2はこんなに書けたので、いい作品だったと思っている。3ヶ月間楽しませてもらった。これからも、作品を見て感じたことを、Twitterにも、ここにも、書いていくつもりだ。もちろん、自分もそういう作品を作っていきたいと思っている。

作画工程のためのCommon Lispによる低脳画像処理

まえがき

アニメを作っている。ものすごくたくさんの絵を描かなければいけないので、いろいろと問題が起きるし、手間も減らしたい。絵の描けない素人が嘘をつくためにアニメを作る でも一部紹介したが、今回は最近の成果を紹介する。

FILMASSEMBLERのページに載せるには、まだ熟れていないので、こちらに書く。

課題3つ

課題その1: 中割の作業見積もりをより正確にしたい

アニメと言われて大抵の人が想像する描き送りのアニメは、ちょっとずつ違った絵をたくさん描かなくてはいけない。もちろん量が多ければ作画時間は伸びるから、締切にも関わってくる。どれぐらいの量でどれぐらいの時間になるかわかると、「これは間に合いそうにないから欠番にしよう」とか「これはちょっと動きを減らしてやれば何時間で終わりそうだ」とかわかって便利だ。

しかし、いろいろ難しいので、とりあえず中割の作業時間の見積もりに挑戦することにした。中割り、といきなり言われても困ると思うので、例を示す。ここに二枚の絵がある。 

f:id:TOYOZUMIKouichi:20161226065528p:plain

f:id:TOYOZUMIKouichi:20161226065602p:plain

片方は目を開けていて、片方は目を閉じている。この二枚を切り替えるだけのアニメートは瞼が一瞬で動いて気色悪いので、間に目が半開きの絵を挿したい。この絵が中割だ。プロがどう呼んでいるかはよく知らない。僕はそう呼んでいる。

f:id:TOYOZUMIKouichi:20161226065613p:plain

この場合は二枚の原画に対して(正確にはこれはすべて動画だが今のところ無視する)、一枚の中割が入っている。だからこの作業時間を1と見積もることにしたとする。

さて、別のカットからも原画を例示する。なお、ものすごく線が荒れているが、それは気にしなくて良い。説明すると長いし、本題ではない。簡単に言うと下手くそだからだ。

f:id:TOYOZUMIKouichi:20161226065548p:plain

f:id:TOYOZUMIKouichi:20161226065545p:plain

この2枚の間にも中割りを1枚入れたい。こんな絵が入る予定だ。

f:id:TOYOZUMIKouichi:20161226065543p:plain

入れる絵は1枚だから作業量は1で、総合の作業時間見積もりは2である。んなバカな話があるか。どう考えたって後者のほうが大変にきまっている。こんなんで正確な作業時間の見積もりなんかできっこないのである。これが改善したい課題その1。

課題その2: 線をより滑らかにしたい

前掲の。絵の描けない素人が嘘をつくためにアニメを作る では彩色工程の効率向上のために、線を2値化するためにMayakaを使ったプログラムによる処理を行った。

が、やはりこの手法、線がはっきりしすぎて気に入らない。まったく絵の印象が変わってしまうのだ。例えば次に示す線で領域を分けたときのことを考える。

f:id:TOYOZUMIKouichi:20161226065534p:plain

線を2値化して色を塗るとこうなる。

f:id:TOYOZUMIKouichi:20161226065536p:plain

 2値化しなければこうだ。 

f:id:TOYOZUMIKouichi:20161226065539p:plain

明らかに後者のほうが元の線の質を保てている。同時に僕の線の品質の悪さも見事に再現しているが、絶対後者の方がいい。

課題その3:塗色効率を向上させたい

前も書いたが、流し込みペイントツールによる塗色はコツがいろいろあり、線を2値化しなければとても面倒で、2値化しても面倒なのだ。次に示すように、順番に気を使って、レイヤの表示非表示を切り替えて正しい順序で行わなければならない。

f:id:TOYOZUMIKouichi:20161226065522g:plain

自動領域分割による3つの課題の改善

まず、課題1を考えたい。2つの例における中割の難易度の違いは、補間すべき2枚の画像の変化が違う、と言える。しかし、変化が非常に大きくても、例えば単純な平面の回転運動であれば、前後どちらかの画像を回転させて作画参考にすればよいわけだし、拡縮処理でも同様である。したがって「中割りの難易度が高い変化の違い」をコンピュータにわからせやすい形に落とし込めれば、より見積もりの精度が高まると言える。

課題2は単純な画像処理の問題だが、課題3が課題2の実行を阻んでいるため、課題3を解決するためにはどうしたらよいかを考える。しかしそれが簡単にはわからないから手作業で塗っていたわけだ。では手作業で塗っているときにどんなことをしているか考える。

まず僕は、1.先行して塗色すべき対象領域を判断する。続いて、そこに2.どのチャネルの塗り分け線を有効化して塗色すべきか判断する。次に、3.塗色に用する色を選択する。最後に、4.どこからバケツツールを発動すべきかを判断する。

この時機械が苦手な「判断」は3回入っている。この判断をなきものにすることで、自動化への道が拓ける。それは課題3を解決に近づけ、ひいては課題2を実現させる。

1.と2.の判断は「どの順番で塗るか」が結果を変えてしまうから起きていることだ。であるならば、「プログラムを書いて順番を固定する」か「順番に関係なく結果を確定する手順を用意する」ことで解決する。3.を機械に判断させようとすると地獄を見るのであきらめる。4.も3.と密接に関わっているので無視する。要は「領域で分けられた部分が求める品質の境界処理で別の色で塗色される」という状態を自動化してやり、「別の色」が何であるかさえ人間が渡すようにすれば、課題2および3は改善されるわけだ。

これにより副産物として「誰かに作業を任せやすくなる」という利点が発生する。塗り間違えはしかたないが、どこにどの色を塗るかさえ正しければいいので、作業が楽になるのだ。ミスもわかりやすいものになる。機械でやる利点の一つは人間の判断領域を局限できる、ということだ。将来役に立つだろう。

課題2と3の解決には「領域で分けられた部分」を機械が認識する必要があるが、これにより課題1も解決に少し向かうのではないかと考えられる。2つの中割の例の変化の違いは「画像中の部分領域の数と面積比の変化の大きさ」と言えるからだ。単純な平面の回転や拡縮処理であれば、領域の数や面積比は大きく変化しない。

一応書いておくと、こんなことプロ用のソフトやどうかするとクリスタでもできるのかもしれないが、自分で書いておくと、あとで便利そうなのでやってみているだけだ。そもそもいらないのかもしれない。まあ、よい。

念の為に書いておくが、目標は解決ではない。改善だ。少しでも楽にしたい。もちろん、解決すればそれに越したことはない。

塗り分けを自動化する

さて、塗り分けを自動化しなければならない。実に面倒である。何か有名なアルゴリズムがあるのかもしれないが、調べるのも面倒だし、どうせわけのわからない数式を並べ立てていて読めない可能性が高い。「微分して」と書いてあったので心して読んだら、単純な四則演算の組み合わせで済んだ、みたいなことが何度もあった。バイキュービック補間をなぜ出力画像基準で説明しないのかとキレた記憶もある。今まで散々苦労してきたので、付き合っている余裕はない。

適当にでっち上げることにしよう。まあ、低脳画像処理なので、バカバカしいほど単純なアルゴリズムを積み重ねていく富豪プログラミングを行いつつ、それで失う時間を単純な最適化で補うことを組み合わせて問題の解決にあたるとしよう。

いきなり巨大な画像を入力に使うと、デバッグに破綻をきたすので、簡単な小さい画像を用意する。

f:id:TOYOZUMIKouichi:20161226065531p:plain

背景は透明で、周囲に最低1ピクセルの空きを用意して、目を描いた。

これの領域を分割するために、まず線の色を表した符号を定義しておく。

(defconstant +l-line+ 0)
(defconstant +r-line+ 1)
(defconstant +g-line+ 2)
(defconstant +b-line+ 3)

これがどう作用するかは、見ていけばわかる。

続いて、愚直な処理を行う関数region-map-from-imageとそれらが利用する型とユーティリティを書こう。構造体にしても良かったのだが、それはまたあとで。

(deftype region-map () "画素がどの領域に所属するかを定めた領域マップ" '(simple-array fixnum (* *)))

(defunsafe make-region-map region-map ((fixnum width height))
  (make-array (list width height) :element-type 'fixnum :initial-element -1))

(defunsafe region-map-from-pixels (region-map fixnum list) ((pixels pixels) (fixnum width height))
  "PIXELSから領域マップを生成し、領域マップ、必要な色数、を多値として返す。 "
  (typed-let (;; 領域マップ
              ((region-map region-map) (make-region-map width height))
              ;; 現在の領域番号
              ((fixnum current-region-number) (1+ +b-line+))
              ;; 線を超えているか判定
              ((boolean over-the-line) nil))
    ;; 色の塗り分けを記録
    (loop for y fixnum from 0 below height
          ;; 列更新によって線を超えていると判断=新領域である(画像右端の領域が左端に続いているとは判断しない)
          do (setq over-the-line t)
          do (loop for x fixnum from 0 below width
                   do (typed-multiple-value-bind ((component-t r g b a)) (pixels-components pixels (offset x y width))
                        ;; 画素成分値束縛
                        (when (and (> a -@) (> @ (min r g b)))
                          ;; 線を超えた時はそれをフラグで保持する
                          (setq over-the-line t))
                        (typed-let1 component-t brightness (rgb->brightness r g b)
                          ;; 線は線を領域マップに登録
                          ;; 線以外の領域は現在の領域番号を領域マップに登録
                          (cond ((and (> r (* @ 0.75)) (> a -@) (> r g) (> r b)) ;; 赤の塗り分け線
                                 (setf (aref region-map x y) +r-line+))
                                ((and (> g (* @ 0.75)) (> a -@) (> g b) (> g r)) ;; 緑の塗り分け線
                                 (setf (aref region-map x y) +g-line+))
                                ((and (> b (* @ 0.75)) (> a -@) (> b g) (> b r)) ;; 青の塗り分け線
                                 (setf (aref region-map x y) +b-line+))
                                ((and (> a -@)
                                      (> @ brightness)) ;; 主線
                                 (setf (aref region-map x y) +l-line+))
                                (t (when over-the-line
                                   ;; 境界線を超えたあとなら領域番号を更新せよ
                                   (setq over-the-line nil)
                                   (setq current-region-number (1+ current-region-number)))
                                 (setf (aref region-map x y) current-region-number)))
                          ))))
    (values region-map current-region-number)))

出力はないので、多値である返り値の一つ目、領域マップと呼ぶことにしようregion-mapダンプする関数dump-region-mapを書く。

(defunsafe dump-region-map boolean ((region-map region-map) ((fixnum width height)))
  (loop for y fixnum from 0 below height
        do (format t "~%")
        do (loop for x fixnum from 0 below width
                 do (format t "~2,D~T" (aref region-map x y))))
  t)

これで結果を次に示すコードで見てみる。

(let1 image (load-image “/path/to/image”)
  (bind-width-and-height image (width height)
    (typed-let1 pixels src-pixels (image-pixels image)
      ;; 画像から領域マップを作成する。
      (typed-multiple-value-bind ((region-map region-map) (fixnum number-of-colors))
          (region-map-from-pixels src-pixels width height)
        (declare (ignore number-of-colors))
        (dump-region-map region-map width height)))))

出力を以下に示す。

 5  5  5  5  5  5  5  5  5  5  5  5  5  5  5  5 
 6  6  6  6  6  6  6  6  6  6  6  6  6  6  6  6 
 7  7  7  7  0  0  0  0  0  8  8  8  8  8  8  8 
 9  9  9  0  0  0  0  0  0  0  0  0 10 10 10 10 
11 11  0  0  0  0 12  1  1  0  0  0  0 13 13 13 
14  0  0  0  0  0 15  1  1  0  0  0  0  0 16 16 
17  0  0  0  0 18  1  1  1  0  0  0  0  0 19 19 
20  0  0  0  0  1  1  1 21  0  0  0  0  0  0 22 
23 23 23  0  0  1  1  1 24  0  0  0  0  0  0 25 
26 26 26  0  0  1  1 27 27  0  0 28 28  0  0 29 
30 30 30  0  0  0 31 31  0  0  0 32 32  0  0 33 
34 34 34  0  0  0  0  0  0  0  0 35 35 35 35 35 
36 36 36 36  0  0  0  0  0  0 37 37 37 37 37 37 
38 38 38 38  0  0  0  0  0 39 39 39 39 39 39 39 
40 40 40 40 40 40 40 40 40 40 40 40 40 40 40 40 
41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 

すこし見づらいので、色付けした結果を示す。

5555555555555555
6666666666666666
7777000008888888
99900000000010101010
1111000012110000131313
14000001511000001616
17000018111000001919
2000001112100000022
232323001112400000025
262626001127270028280029
303030000313100032320033
343434000000003535353535
36363636000000373737373737
383838380000039393939393939
40404040404040404040404040404040
41414141414141414141414141414141

線の部分はきれいに領域が分けられているものの、見事に2値化されている。しかし、この時点では問題ない。線でない部分が、横方向には領域が正しくわけられているが、縦方向にはそうでないことがわかる。

縦方向に領域分割を適正化するために、そこで次に領域色マップと呼ぶ(今名前を考えた)ものをつくる。

(deftype region-color-map () "領域番号と色番号の対応を示す配列" '(simple-array fixnum (*)))
(defunsafe region-color-map-from-region-map list ((region-map region-map) (fixnum number-of-regions))
  "領域マップと領域の数から、各領域に該当する色番号の配列を返します"
  (typed-let (((fixnum width) (array-dimension region-map 0))
              ((fixnum height) (array-dimension region-map 1))
              ((fixnum region-color-map-length) (1+ number-of-regions)))
    (typed-let1 (simple-array fixnum (*)) region-color-map (make-array (list region-color-map-length) :element-type 'fixnum)
      ;; 領域色マップをまずは変化した色数分だけ
      (loop for index fixnum from 0 to number-of-regions do
        (setf (aref region-color-map index) index))
      ;; 隣接する色の参照先を統合
      (loop for y from (- height 2) downto 0 do
        (loop for x from (1- width) downto 0 do
          (typed-let (((fixnum bc) (aref region-map x (1+ y)))
                      ((fixnum cc) (aref region-map x y)))
            (typed-let (((fixnum cc0) (aref region-color-map cc))
                        ((fixnum bc0) (aref region-color-map bc)))
              (when (and (< +b-line+ cc)
                         (< +b-line+ bc)
                         (not (= cc0 bc0)))
                (setq number-of-regions (1+ number-of-regions))
                ;; この画素たちはどちらも線じゃないのに、領域色マップの参照番号は全然違うので一緒になるべき
                (loop for index fixnum from 0 below region-color-map-length
                      do (when (or (= (aref region-color-map index) cc0)
                                   (= (aref region-color-map index) bc0))
                           ;; 参照番号がどちらかに該当する色は全部新色である
                           (setf (aref region-color-map index) number-of-regions)))
                )))))
      region-color-map)))

region-color-map-from-region-mapの返り値をダンプした結果を次に示す。

#(0 1 2 3 4 74 74 74 74 74 74 74 67 74 74 67 74 74 18 74 74 60 74 74 60 74 74
60 74 74 74 60 74 74 74 74 74 74 74 74 74 74) 

これは領域マップのある位置において塗色すべき色番号を返す配列である。これを先ほどの結果に適用して可視化すれば何を意味しているかがわかるはずだ。領域マップを単純に結合していかなかったのは、単に面倒だからだ。

74747474747474747474747474747474
74747474747474747474747474747474
747474740000074747474747474
74747400000000074747474
7474000067110000747474
74000006711000007474
74000018111000007474
7400001116000000074
747474001116000000074
747474001160600074740074
747474000606000074740074
747474000000007474747474
74747474000000747474747474
747474740000074747474747474
74747474747474747474747474747474
74747474747474747474747474747474

これで領域を任意の色で塗り分けられることが明らかになった。この時点で課題1は改善可能と言える。

同じ領域色番号を用いている画素の数を数え上げてやれば画像ごとの領域の数や広さを割り出すことができる。副産物として、線の総延長も「だいたい」わかる。絶対的なものを割り出すのは難しかろうが、画像間で比較の用途に供するなら十分だ。より正確にと思うのなら、領域外縁部を輪郭追跡して行けばよかろう。

仮の色をつくる

色の指定が問題だが、後回しにする。ここでは領域色番号と色相を対応させるテーブルを生成して、当座を凌ぐことにする。

(defunsafe temp-color-list-from-region-color-map list ((region-color-map region-color-map))
  "領域色マップから仮の色相リストを作成して返します。"
  (declare ((simple-array fixnum (*)) region-color-map))
  (typed-let1 list colors '()
    ;; 重複する領域色番号を除去したリストを作成
    (loop for index fixnum from 0 below (array-dimension region-color-map 0)
          for color fixnum = (aref region-color-map index)
          do (unless (position color colors)
               (setq colors (cons color colors))
               ))
    ;; 隣り合う色同士が色相を8度ずつずらすように調整
    (loop for i fixnum from 0 below (length colors)
          for c in colors
          collect (cons c (* 8.0 (mod i 36)))
          )))

なお、色相とあるが、犯罪係数とは関係ない。この色相を用いて、彩度と輝度を最大値で塗色してやれば、とりあえずよかろうという判断だ。

当然45色しかないので、同じ色が偶然隣り合ってしまう可能性は非常に高いが、もしかすると4色で済むかもしれんとかいう話に展開しかねないし、まあ、なんとなく塗り分けられていることがわかればいいので、このまま行こう。結果を次に記す。

((60 . 0.0) (18 . 8.0) (67 . 16.0) (74 . 24.0) (4 . 32.0) (3 . 40.0) (2 . 48.0)
 (1 . 56.0) (0 . 64.0))

使用されていない領域色番号がいくつかあるが、これは塗り分け線のための予約番号である。

領域周辺を処理する

例の説明

さて、いよいよ本丸である。とりあえず簡単な例を元に話を進めよう。

ある入力画像における、座標Yを考える。例では、入力画像から幅11で部分を切り出した。ちょうど中心に一本の縦線がペンで入れられていたので、X方向の画素の並びは下に示すものとなった。なお、白色は透明色である。

x012345678910
入力画像

これをどう塗色していくかを考えていくわけだ。

領域は次に示す状態に分割された。

x012345678910
領域番号555 1 1 1 1 1 666

領域番号5には青を、同じく6には赤を塗色することとしよう。本来なら領域色マップと領域マップは別のものだが、便宜上一緒になってもらうことにした。

x012345678910
領域番号555 1 1 1 1 1 666

こういう、2列目と3列目が極端に色変化するのが2値化した状態なので、本来のペンのタッチを活かせばこうはならないはずである。

基本的な塗色

まずx=2までは愚直に青を塗っていけば良い。x=2まで処理を終えた状態を下に示す。

ポインタ
x012345678910
領域 555 1 1 1 1 1 666
入力画像
出力画像
previous-color
min-alpha

塗色プロセスにおいては、2つの状態管理変数が必要になる。まずprevious-colorだが、これにはx-1において塗色した色が基本的に格納される。現状青くなっているのはそのためだ。min-alphaについては後ほど説明する。

ペン領域への侵入

時間を進めて、x=3の処理を終えた状態を次に示す。

ポインタ
x012345678910
領域 555 1 1 1 1 1 666
入力画像
出力画像
previous-color
min-alpha

何を行ったか説明する。まず、ポインタの向き先がペン領域であることを判断した。つづいて、入力画素を取得し、その不透明度が最大値でなく半透明であることを判定した。これにより、この座標でのprevious-colorの更新は行わないことになった。続いて、previous-colorの画素に、入力画素を合成し、出力画像に書き込んだ。最後にmin-alphaを入力画素の不透明度で上書きした。

これをx=5まで終えた状態を次に示す。

ポインタ
x012345678910
領域 555 1 1 1 1 1 666
入力画像
出力画像
previous-color
min-alpha

ペン領域からの離脱

x=7まで処理を終えた状態を次に示す。

ポインタ
x012345678910
領域 555 1 1 1 1 1 666
入力画像
出力画像
previous-color
min-alpha

どうしてこうなったか説明する。min-blackと入力画素の不透明度を比較して、previous-colorの画素を入力画素に合成するか判断しているのである。こうしないと、向かった先の領域が違う色だったときに面倒なことになる。

順方向処理の完了

1列の処理を終えた状態を次に示す。

ポインタ
x012345678910
領域 555 1 1 1 1 1 666
入力画像
出力画像
previous-color
min-alpha

入力画素の不透明度が0になったので、previous-colorの記録が再開し、min-alphaがリセットされていったのでこのようになる。

逆方向の処理他

さらに、x=10からx=0まで処理を行い、この際は「出力画素と入力画素が一致した場合=愚直に線を出力している場合」のみ処理を適用するという条件を設けることで、望みの出力結果が得られる。

くわえて万全を期すため、Y軸方向への走査も逆転して行う。なお、容易に考えられる例外として「複数の線が不透明度0にならないほどの近距離で隣接している場合」が挙げられるがそんな高密度作画は過剰品質であるのでリテイクである。したがって問題ない。

以下にコードを示す。この関数を画像全体を走査しつつ呼べば良い。

(defunsafe paint-pixel (component-t component-t) ((fixnum x y width)
                                                  (pixels src-pixels dst-pixels)
                                                  (region-map region-map)
                                                  (region-color-map region-color-map)
                                                  (list colors)
                                                  (fixnum previous-color-number alpha-color-number)
                                                  (component-t min-alpha))
  (typed-let1 fixnum color-number (aref region-color-map (aref region-map x y))
    (when (= color-number alpha-color-number)
      ;; 外周色は彩色しない
      (set-pixels-components dst-pixels (offset x y width) -@ -@ -@ -@)
      (return-from paint-pixel (values color-number -@)))
    (typed-let1 fixnum offset (offset x y width)
      (typed-multiple-value-bind ((component-t r-src g-src b-src a-src)) (pixels-components src-pixels (offset x y width))
        (typed-multiple-value-bind ((component-t r-dst g-dst b-dst a-dst)) (pixels-components dst-pixels (offset x y width))
          (cond ((= color-number +l-line+)
                 ;; 主線
                 (when (or (= r-dst g-dst b-dst a-dst -@) ;; 完全に未彩色
                           (and (= r-src r-dst) (= g-src g-dst) (= b-src b-dst) (= a-src a-dst))) ;; 元画像からコピィしてきただけ
                   ;; 未彩色の場合のみ次の処理を実行
                   (if (> a-src min-alpha)
                       ;; より不透明度が下がるのであれば色を伸ばしてペンの実際の色と乗算合成する
                       (if (= previous-color-number alpha-color-number)
                           ;; 前の色が外周色であれば、合成を行わない
                           (set-pixels-components dst-pixels offset r-src g-src b-src a-src)
                           ;; 前の色が外周色以外であれば、合成する
                           (typed-multiple-value-bind ((component-t r-tmp b-tmp g-tmp))
                               (hsb->rgb (cdr (assoc previous-color-number colors)) @ @)
                             (typed-multiple-value-bind ((component-t r-rst b-rst g-rst a-rst))
                                 (c-compose-source-over r-tmp g-tmp b-tmp @ r-src g-src b-src a-src)
                               (set-pixels-components dst-pixels offset r-rst g-rst b-rst a-rst))))
                       (set-pixels-components dst-pixels offset r-src g-src b-src a-src)))
                 (values previous-color-number a-src))
                ((or (= color-number +r-line+) (= color-number +g-line+) (= color-number +b-line+))
                 (set-pixels-components dst-pixels offset -@ -@ -@ -@)
                 ;; 塗り分け線
                 (typed-multiple-value-bind ((component-t r-tmp g-tmp b-tmp))
                     (hsb->rgb (cdr (assoc previous-color-number colors)) @ @)
                   (typed-multiple-value-bind ((component-t r-rst g-rst b-rst a-rst))
                       (if (< a-src min-alpha)
                           ;; より不透明度が上がるのであれば色を伸ばしつつペンの不透明度を適用する。1.5は結果が半透明になることを防ぐ措置。
                           (c-compose-source-over r-dst g-dst b-dst a-dst r-tmp g-tmp b-tmp (* a-src 1.5))
                           ;; より不透明度が下がるのであれば色を伸ばしつつペンの不透明度を反転して適用する。
                           (c-compose-source-over r-dst g-dst b-dst a-dst r-tmp g-tmp b-tmp (* (invert-component a-src) 1.5)))
                     (set-pixels-components dst-pixels offset r-rst g-rst b-rst a-rst)))
                 (values previous-color-number a-src))
                (t
                 ;; ベタ塗り
                 (typed-multiple-value-bind ((component-t r0 g0 b0))
                     (hsb->rgb (cdr (assoc color-number colors)) @ @)
                   (set-pixels-components dst-pixels offset r0 g0 b0 @))
                 (values color-number 0.0))))))))

結果と評価

入力画像を次に示す。

f:id:TOYOZUMIKouichi:20161226065557p:plain

出力画像を次に示す。

f:id:TOYOZUMIKouichi:20161226065525p:plain

肌に色がないのは、外周として認識されているからである。もみあげの塗り分けが消失しているのは「偶然隣り合う色が一致してしまっただけ」である。また、エラーが幾つか確認できるが、概ね「豊住が動画線を引けないのが悪い」ので、改善可能である。些細なノイズなら握り潰すとか、やりかたは色々ある。

参考に、線を2値化して塗色した画像を次に示す。なお、塗り分け線の処理は面倒なのでしていない。

f:id:TOYOZUMIKouichi:20161226065552p:plain

こうして比べると、圧倒的に線の品質が向上したことがわかる。太さが元と変わりなく、また斜めの線も滑らかだ。線を繋いだところが不必要に強調されることもない。

色の指定

さて、勝手に割り当てた色で彩色すると、なかなかの結果が得られることがわかった。しかし、実用に供するためには、色を任意に指定できなくてはならない。しかし、これはそれほど難しい話ではないのだ。新たな入力画像を下に示す。耳を描き忘れているが気にしないように。

f:id:TOYOZUMIKouichi:20161226065513p:plain

まず、この画像から領域色マップを画像として出力する。結果を下に示す。

f:id:TOYOZUMIKouichi:20161226065506p:plain

この画像を元に各領域に彩色を行う。2値化されているので、塗り残しは下に示す画像のように、はっきりと認識できるだろう。実際には塗り分け線と領域色が一致しないようにすべきだが、今はテストなので目を瞑ろう。

f:id:TOYOZUMIKouichi:20161226065518p:plain

塗り終えた画像を下に示す。

f:id:TOYOZUMIKouichi:20161226065516p:plain

あとは、前述の塗色工程において塗る色をこの画像の同じ座標から取得してくれば良い。結果を下に示す。

f:id:TOYOZUMIKouichi:20161226065510p:plain

若干のノイズ、瑕疵は認められるものの、かなり良好な結果を得ていることがわかる。少しの細工を施せば、実用に耐える期待が持てる。

今後について

だいぶいい線行っているので運用でカバーしてしまっても良いのだが、まだ髪のハイライトなどやりたいことがあるのでもう少し続ける予定だ。小さな瑕疵も修正できたらしたい。

いくつかの問題は塗色工程が手続き的な状態依存の処理のため、左上から右下、右上から左下、という順序で塗っていることが原因だ。それらは、8倍の時間を消費し(といってもそれほどかからないし、放っておけばいいのだが)、8つの画像を比較暗合成することで解決する。例として2種類の結果を合成した結果を下に示す。

f:id:TOYOZUMIKouichi:20161226065500p:plain

目立つところとしては、こちらから見て右側の瞳内部の塗り漏れが潰れたことがわかるだろう。

Common LispとMayaka(KOMADORI)について

よく誤解されているが、Common Lisp関数型プログラミング言語ではない。このように入力と出力を単純に関係で表すことの難しいタイプのプログラム、つまり手続き的な処理も手軽に書くことができるし、それと関数型プログラミングの簡潔かつ明快な記述を柔軟に同居させることができる。とはいえ、手続き的な処理、前述の通り状態依存の反復などが入ってくると、見てくれの良いプログラムを書くのが難しくなる傾向にあると評価している。今後はこのあたりも直していけるとよい。

(loop for y fixnum from 0 below height
      do (loop for x fixnum from 0 below width
               do (typed-multiple-value-bind ((pixel-t painted-color) (component-t new-min-alpha))
                                             (paint-pixel x y width src-pixels col-pixels dst-pixels
                                                   region-map region-color-map previous-color alpha-color-number min-alpha)
                                             (setq previous-color painted-color)
                                             (setq min-alpha new-min-alpha))
               )
      do (loop for x fixnum from (1- width) downto 0
               do (typed-multiple-value-bind ((pixel-t painted-color) (component-t new-min-alpha))
                                             (paint-pixel x y width src-pixels col-pixels dst-pixels
                                                   region-map region-color-map previous-color alpha-color-number min-alpha)
                                             (setq previous-color painted-color)
                                             (setq min-alpha new-min-alpha))
               ))

お世辞にもきれいなプログラムとはいえないだろう。xyprevious-colorpainted-colorだけを残して部分適用して、という手も考えられるが、どのみちsetqは残る。なに?再帰だ?むずかしい話はやめてほしい。

なかなか面倒なことをしているように見えるが、それは僕のおつむがあんまりよろしくないからである。多分、頭のいい人ならもっと良い方法を思いつくだろう。とはいえ、文法が一つしかないので、僕でも実用的なプログラムを書けるのがCommon Lispのいいところだ。覚えることが少なくて済む。

僕はこういう画像処理の試行錯誤を行うために、Mayaka(KOMADORI)を作った。壁を殴るようにゴリゴリ書いて、結果を確認して、処理を修正するという反復を高速で繰り返せる環境が欲しかったのだ。Mayakaはなかなか速いので(たまにCより速い)、ちょっとバカっぽいプログラムを書いても、試行錯誤の邪魔をしない。ここに書いたこともさらっと書いているだけで、本当に作るのが大変だった。いろいろ迷って(もっとこうしたほうがいいんじゃないかとか)しまったし。

こんな感じで使える(この映像は演技)。

最近放置していた結果、最新のSBCLではとうとうコンパイルが通らなくなってしまったが、修正するつもり(手元では動いているが、SIMD関連を完全にキャンセルしている)。2月頭には作業時間を取りたい。

宣伝など

作っている自主アニメ「THE NAME OF THE HEROINE」の同人誌をコミケで出すのでよかったらお求めください。新刊は技術的な(とはいえコンピュータプログラミングに関する部分に限られていない)内容が中心。既刊の方がお話とかわかります。お話はとてもおもしろいよ。おもしろくなきゃ作らないから。