モーショングラフィックスからプログラミングへ――映像作家・橋本麦さんとの対話(前編)

北出栞 + 橋本麦

商業・インディペンデント問わずコンピュータを用いて映像を作ることは一般化し、プラットフォーム上にアップされたそれをユーザーが編集した「MAD動画」や「切り抜き動画」もまたプラットフォーム上にアップされる。ソーシャルメディア上では後者のほうが有名になってしまったりして、「作品」を「鑑賞」するという行為が脱中心化された=かつてのそれが制度的なものだったと暴かれた現代において、批評にも新しい形が求められている。

そんな問題意識から筆者が興味を持ったのが、ソフトウェア・スタディーズという分野だった。たとえば「カット&ペースト」や「デリート」など、あらゆるエディタに共通する機能に注目しつつ、実際に完成した作品との関係を分析するというものだが、それらの機能を実現する背後で動いているのは数理科学的なプログラムなわけで、しかしプログラミングというものに挫折した個人的な経験から、自分にはこの分野を掘り下げる資格はないのではとコンプレックスを感じていた。

そこで話してみたいと思ったのが橋本麦さんだった。いつその仕事を認識したか正確には覚えていないのだが、具体的な作品よりも先にインタビューでの発言などで認識した気がする。既製のソフトウェアを扱う映像作家としてキャリアをスタートしたもののそこには飽き足らず、プログラミングを習得し今ではソフトウェアから自作するアプローチを取っている、というキャリアに尊敬の念を覚えたのだ。

今回、SNSでつながったのをきっかけにコンタクトをとり、作業場にお邪魔して3時間ほど話し込んだ際の音声から再構成した対話をお届けする。本記事と同時にアップする後編と合わせてお楽しみいただきたい。

モーション・グラフィックスの衝撃

北出

元々はシンプルにカメラを回して映像を撮っていたんですよね。

橋本麦

そうですね。中学生くらいのときから映像作品を作り始めたんですが、最初はminiDVで撮ったものをPCに取り込んで、(Adobe) Premiereでモンタージュするくらいの感じでした。大森時生さんがやってるモキュメンタリー的な映像を作って、放送部の甲子園のような大会に出るみたいな地味な活動をしてましたね。モーションデザインとかインタラクティブ作品に領域が広がっていくのは、そこから結構後になってからです。

北出

Premiereをいじっている内に「これで何かもっといろいろできそうだぞ」みたいな感覚が生まれたのか、それとも先に何かカルチャーで衝撃を受けたものがあって、こういうことをやってみたい、という感じだったんでしょうか?

橋本麦

完全に後者ですね。世代的には好き嫌いが分かれると思うんですけど、中高生のときにラーメンズが流行ってて。小林賢太郎が当時時代の風雲児だった、teevee graphicsというモーショングラフィックスのスタジオを率いていた小島淳二さんという映像作家と一緒に『VIDEO VICTIM』って映像コント集を出したんです。架空の航空会社の機内ビデオの中でありえないことをしてネタにするとか、架空の日本の文化紹介ガイドブックビデオみたいなものを作って、海外の人が思う曲解した日本像を日本の文化として開き直って紹介するみたいなもので。

あと、当時はテレビ朝日のCIを、Underworldの音楽を通じて知ったtomatoが作ったのも話題になっていて。モーショングラフィックスというジャンルがあって、時にはお笑いの人とタッグを組んだり、時には映画を作ったり、時にはCMを作ったり、いろんな分野を横断しながら活動している人たちがいるんだというのを先に文化として知って、それを作るにはどうしたらいいかを後追いで知っていった感じです。

テレビ朝日 地上デジタル放送「オープニング/クロージング」

プログラミングの入口となった、実験映像の世界

北出

そこから、プログラミングにはどうして手を伸ばしたんでしょう。

橋本麦

モーショングラフィックスに出会って、しばらくは普通にAfter Effectsをいじくり回してるだけでめっちゃ楽しいみたいな時代が続いたんですけど、やっぱりだんだん飽きてくるんですよね。競技化された動きの中で、いかにそれを順列組み合わせして、精度高くいろんなコンボを決めていくかみたいな世界に、自分がやってることが閉じこもっているように思えてしまった瞬間があって。

そのときに興味が向いたのが実験映像だったんです。実験映像って、時代を経ても面白いものがたくさんある。ノーマン・マクラーレンやオスカー・フィッシンガーから、ソール・バスとジョン・ホイットニーによる『めまい』(1958)のタイトルシークエンス、カイル・クーパーによる『セブン』(1995)のタイトルシークエンスとか。クオリティや「っぽさ」みたいなものを追い求めていくモーショングラフィックスの世界に比べて、すごく豊穣な世界に映ったんです。

Vertigo (1958) title sequence

Se7en (1995) title sequence

それもあって、自分の中で一回プロっぽさとか、クオリティみたいなものへのこだわりを捨てて、もう少し何かクオリティじゃないところで、実験性で作ったほうが自分が飽きずに楽しめるんじゃないかと思って。それで作ったのがGoogleストリートビューを使ったgroup_inou「EYE」のミュージックビデオでした。

group_inou / EYE

ちなみに彼らの2023年の復活タイミングでは「HAPPENING」という楽曲のWebアプリを作りました。ウェブトゥーンみたいに縦にスクロールしていくとフキダシに書かれた歌詞が光って音が流れるようになっていて、上下にスクラッチすることでDJみたいに演奏もできるというものです。

北出

映像作家としての実験性を追い求めるために、プログラミングを勉強しようという発想に行き着くのは、門外漢の自分としては飛躍を感じるんです。

橋本麦

インタラクティブ・ミュージックビデオみたいな名前で、割と昔からジャンルとしてはあったんです。HTML5が出て、Flashがなくても普通のHTMLの中でインタラクティブ表現ってできるんだよというのを喧伝するために、Googleみたいなベンダーがお金を出して、OK GoとかArcade Fireにミュージックビデオをインタラクティブな形で作らせたりしていて。

OK Go – All Is Not Lost – The Trailer (with subtitles)

The Wilderness Downtown: Behind the Scenes

プログラミングと計算資源

北出

なるほど。しかし、それにしても映像自体をプログラミングで作るのと、それをWeb上で動かすのとでは、要求されるスキルが違うようなイメージがあります。

橋本麦

確かに昔はグラフィックプログラミングをやるには処理速度の速い言語を使わなくちゃいけなかったんです。JavaをベースにしたProcessingや、C++を使ってより高速化したopenFrameworksとか。

でも最近は計算資源を必要とするリッチなメディア表現が、JavaScriptのような比較的遅い言語でも成立するようになってきた。Webやインタラクティブコンテンツを作るスキルと、映像とかCGで必要とされるスキルとが近づいてきたんです。

ネイティブアプリとしてインストールできるんだけど、実態はGoogle Chromeの内側の部分がネイティブっぽいウィンドウに囲まれてるだけみたいなアプリも結構ある。DiscordとかSlackはまさにそうです。

北出

今出てきた、「計算資源」ってどういう意味ですか?

橋本麦

コンピューターがCPUをぶん回して何かを計算するのに費やす、時間やメモリ量のような物量を指す言葉です。

CPUの性能が今より低かった往年のプログラマーは、いかにして限りある計算資源を効率的に使いながら、見た感じリッチに見えるようにしていくかという工夫の繰り返しをしていたんです。『星のカービィ』のキャラの後ろ半分が同じグラフィックでできていて、ピクセルが節約されてるみたいな。

でもここ20年くらいでCPUの性能が上がってきたので、そういう風にコンピュータのことを慮って、なるだけ負荷のないようにプログラムの書き方を工夫してあげるんじゃなくて、それを読むプログラマー側にとって、半年とか1年たった後に読み返したとしてもわかりやすいように、計算資源としては非効率なことをしてでも、人間がアルゴリズムの流れを把握しやすいコードを書いていこうねっていう考え方の変化が起きた。

僕みたいなプログラミング的な出自のない人間が独学でやったとしても、それなりに仕事で使える道具をプログラミングによって自作することができるようになったのも、そういう変化があってこそなんです。

北出

いくらCPUの処理速度が上がり続けているとはいえ、プログラムって上から下に一個一個処理されていくものじゃないですか。先に大きなビジョンがあって、みたいなイメージ先行型の人間には、すごく習得が難しい印象があるんですよね。

橋本麦

それもプログラミングとか、広い意味での数理科学的なものへのありがちな誤解だと思ってて。アルゴリズミックな思考と、イメージによる思考って結びついてると思うんです。イメージとかも結局、個々のディテールには着目しないで、全体的な記号の集まりが作り出す連関みたいなものを抽象的に捉えるようなものだったりするじゃないですか。

似たようなことってアルゴリズムにもあって。よく数学というのは、異なった対象を同じものだとみなすための学問なんだみたいな言い方をしますよね。たとえばリンゴが2つある状態と、2mの長さがある状態を、2という抽象概念によって等しいものとしてみなすみたいな。そういう感じで、個別的な事象に注目しすぎないで、一回その枷を外してあげた状態で、世の中で起きているいろんな構造の中に潜む共通性を、ふんわりと捉えるための柔らかい糊として数理科学ってのがある気がしていて。プログラミングも僕の中ではその延長なんです。

プログラミングっていわゆる左脳的な思考で全てを記号によって分節して、その組み合わせによって、世の中を非人間的に記述するためのスキルだと捉えられがちなんだけど、自分の感覚としては逆というか。『マトリックス』のネオがイメージするバイナリのコードが世界を作ってる感じじゃないですけど、世界中の物質とか概念の背後にある共通化した構造というものが幻視できるような、ビジュアルな体験でもあると思うんです。

フィードバックと再帰

北出

過去のブログを読ませてもらった中に、「フィードバックと再帰の違いが重要なんだ」みたいな話があったと思うんですが、今の話とも関わっていそうだなと思いました。詳しく教えてもらえますか。

橋本麦

たとえば階乗ってあるじゃないですか。5の階乗は 5! = 1×2×3×4×5、みたいな。これをどうアルゴリズミックに記述するかって方法には二通りあって、それがフィードバックと再帰の違いです。

まず、ある操作の結果を次の操作の入力にしながら繰り返すのがフィードバックです。階乗でいえば、まず1から始めて、それに×2という操作をして2を得て、それに×3をして6を得て、というように、1つずつ数え上げながら×5になるまで掛け算し続ける。

一方の再帰ですが、高校の数学で漸化式って習ったと思います。数列のある項は、その一つ前の項に何かを掛けた数ですという風に。階乗も同じくn! = (n – 1)! × nのように表現できるわけですが、そこには「階乗を定義するために階乗を自己参照する」という、フィードバックとは違う質の循環構造が備わっている。これが再帰です。

北出

PHPというプログラミング言語の名前が「PHP: Hypertext Preprocessor(PHPはHypertext Processerの略である)」という文章の頭文字の略だって話を聞いたことがあるんですが、その感じですかね。

橋本麦

そうですね。プログラマーって多分再帰が好きなんですよ。定義が自己参照を含んでいると、記述がシンプルになることが多いんです。ループって考え方をすると、要は全体を見通さなくちゃいけなくなる。「5の階乗は1×2×3×4×5ですよ」という風に、計算の全体像を俯瞰する必要がある。だけど、「5の階乗はそれから1引いた4の階乗に5を掛けたものなんだよ」という風に、階乗の定義の中に自分自身を含ませてしまえば、全体に注目する必要はなく、瞬間ごとに自分が与えられたミクロな役割をこなしていくだけで、そこから全体的な答えが創発してくる。そういう考え方がエレガントとされるという文化があるような気がしています。

北出

それはさっき話してくださった計算資源の節約にもなるんですか。

橋本麦

そこはプログラミング言語の仕様にもよりますね。ただ、人にとっては読みやすくなると思います。直感的に「自分自身によって自分自身を定義づける」という構造に対してエレガントさを感じる人たちなんでしょうね、プログラマーは。

北出

再帰が「エレガント」、つまり美意識につながるという感覚は、個人的にはピンとこないのですが……。

橋本麦

たとえば、機械と人間の違いって再帰構造の有無だと思っていて。原動機においては、代謝するエンジンという鋼でできた存在と代謝されるもの、エネルギー源としてのガソリンが完全に分離していますよね。だけど人間とか生き物って、食ったものを燃やすことによってその食うという動作を行うわけです。糖分は燃やされ、タンパク質やアミノ酸は身体そのものの一部になる。逆に何も食わない飢餓状態だと自分自身の筋肉とかタンパク質を燃やして自分自身を動かし続けたりする。

そこには代謝するものと代謝されるものの区別が厳密にはなくて、散逸構造としての生命というものがある。食うものと食われるもの、主体と客体がないまぜになった状態で、自分自身のエネルギー源として自分自身を自己消化し続ける。意識もそうですよね。僕らは何かについて考えると同時に、考える自分という存在についても考えている。そこには本質的に再帰という構造が含まれているんだみたいなことを、『ゲーデル、エッシャー、バッハ』のダグラス・R・ホフスタッターは言っているわけです。

プログラマーが再帰という構造によって何かを記述することが好きなのって、再帰というものが秘めている生命性というか、複雑さというものに直感的に惹かれる部分があるんじゃないかと思っています。人工知能の分野でも、知性の模倣をするためには、自己再帰性というものがその実装に使われるプログラミング言語に備わっていなくちゃいけないんだという考え方があったような気がしていて。

往年の人工知能研究で使われていたLispという言語があります。普通はプログラミング言語によって処理できるのって、エクセルの関数を見てもわかる通り、数値や文字列のようなデータだったりするんですが、Lispにはマクロという、プログラムの操作の対象をプログラム自身に向けることができる面白い機能があるんです。そういったある種の再帰性をもったシステムじゃないと、人間の知性みたいな複雑なものというのは構築することができないんだというドグマがある時期の人工知能研究にはあったんじゃないかって想像しています。

北出

なるほど。

橋本麦

最近のGPTモデルの登場は、その神話を崩すものだったんですよね。再帰どころかフィードバックすらせずに、何億次元ものパラメータからなる巨大な行列をフィードフォワードし続けて、並列的にぶん回したほうがはるかに知性的なものが芽生えてしまった。完全に質より量の世界で、僕みたいな人のある種の再帰性への信仰が裏切られてしまった事件だったような気がします。

とはいえ、あらゆるものは再帰的な存在なんだ、自己参照やフィードバックのない、主体と客体が綺麗に分離された構造のほうがむしろ特殊なんだって直観が得られるのは、相変わらずプログラミングがもたらす良い効用なのかなと思いますね。

北出

自分はどちらかというと、非生命的なもの・無機的なものに美しさを感じる性質なんですよね。再帰の「エレガント」さがわからないことには、逆の意味で納得です。

「道具から作る」の来歴

北出

ところで、今の話はご自身が取り組まれている「道具から作る」という話とも繋がっているように思います。そもそも「道具から作る」という発想はどこ由来なんですか?

橋本麦

モーショングラフィックスに憧れたのと同じぐらい、佐藤雅彦的なるものに憧れていたんです。SFCの佐藤研究室に行きたかったんですけど、僕が大学受験する頃には終わって、藝大の映像研究科のほうに移ったんです。だからそこに行くためにどういう風に学歴を進めていったら藝大の院試に受かるだろうって考えた結果、ムサビに入って。結局中退したんで意味なかったんですけど(笑)。

佐藤さんの仕事のキーワードである「作り方を作る」って、その言葉自体が再帰的ですよね。彼は数学や教育について学んで、電通の倉庫でCMのアーカイブを死ぬほど見まくった人生を通して、いわば「『作り方を作る』を作った」わけです。直接教えを請うたわけではないただのファンとしては、佐藤さん流の「作り方を作る」をトレースするだけではモノマネにしかならないから、彼とは違う角度から「作り方を作る」を作らないとって思った。そこで僕はモーショングラフィックスやCGなどの手を動かす技術を持っている以上、「作り方を作る」をプランニングという形ではなくて、実装する過程において実践したいなと。それでソフトウェアとか道具立てに興味が向いていったんです。

北出

「プランニング」と「実装」の違いについて、もう少し詳しく聞いていいですか。

橋本麦

佐藤さんは、たとえば「バザールでござーる」のように耳に残る言葉というのは、ABA’B’みたいな、繰り返し構造と変化、反復と差異からなるってことを独学で編み出したわけですよね。これがまさにプランニングで、自分自身に課す、意識して従うべきルールを設計したわけです。

一方で、そういったルールを考えるための言語そのものから考えることもできるんじゃないかと思うんです。たとえば毛筆で何か書くときと、硬筆で何か書くときって、書こうとするストロークの質感が行書的に書くのか、楷書的に書くのかというのが意識せずに変わるじゃないですか。それは道具というものが無意識に課してくるアフォーダンスだと思うわけですが、そういう感じで、あまり普通の道具では得られないようなアフォーダンスを課してくれるような環境を自分のためにこしらえてあげて、その中に自分を没入させてあげられないかと。

つまり、意識するためのルールを作るんじゃなくて、意識されない透明な環境を自分のために自作する。それが実装、「道具を作る」ということの根源にある気がするんです。

北出

デザイン的な作業を自分で始めようとすると、先行ユーザーがまとめたTIPS集みたいなページを参照せざるを得ないのが実情ですが、イメージする機能についての記事を見つけるのが難しくて、大抵そこで萎えてしまうんですよね。今おっしゃられた話というのは、この「萎え感」が生まれるプロセスとは対極なものに思えます。

橋本麦

「プロのデザイナーも知らないIllustratorの機能10選」みたいなやつですよね。膨大な機能すべてをコックピットみたいに並置してしまうとユーザーは混乱してしまうから、奥まったところに気を利かせて隠しておきましょうね、とAdobeが恣意的に設計したことでしかないのに、それをあたかも自然の中から宝物を発見したかのように、こんな機能を見つけたって喧伝していては本末転倒ですよね。

北出

そういうマニュアルを手に取って、でもなんか違うぞ、Adobeに使わされてるだけだぞって思った人が、ご自身のような発想に目覚めるように啓蒙したいって気持ちがある?

橋本麦

経済的には目覚めないほうが絶対いいと思います(笑)。僕はたまたま14歳ぐらいでデザインツールを触り始めましたけど、普通は20歳ぐらいで、大学の半ばとかで触り始めるわけじゃないですか。よく言われる話で、1万時間が与えられたら人は一芸に秀でることができるみたいな話がありますけど、3万時間ぐらいやったらさすがにその領域は飽きるでしょうという第二の分水嶺があると思っていて。大体それは12年くらいに相当すると思うんですけど、そのくらいでちょうどAdobeが張る探索空間の中で山登りするのに飽きが来る時期と、自分自身の職業的な地位が変化する時期が重なるんじゃないかと。その変化は素直に受け入れたほうがいいと思うんですよね。道具をうまく使う代わりに、人間をうまくディレクションすることに職能を振ったほうが、単純にやれることの規模も大きくなるし。

それでもプログラミングの世界で、マネージャーになりたくない、自分はいつまでもプログラマーとしてコードを書き続けたいんだみたいな人、まつもとゆきひろさんとか、Linuxを開発したリーナス・トーバルズのようなハッカーがいるのは、やっぱりプログラミングというものが持っている深遠さが、Adobe製品を使いこなすのとは違って10年やそこらじゃ飽きられないぐらい深いものだということなんですよね。たとえば、C++言語(のコンパイラ)がどのように開発されているかというと、今あるC++言語を用いて、新しいC++言語を実装しているんです。

英語で「pulling oneself up by one’s bootstraps」という表現があって、「ブーツのかかとについているストラップを引っ張り上げてジャンプする」みたいな、矛盾した事態についての表現なんですが、プログラミングにはそういう矛盾したことができるんですよね。自分自身を使って自分を自己改変し続けられる、そういう性質を持っているからこそ、プログラマーは「3万時間の壁」を際限なく先延ばしし続けられると思うんです。