セガ式 基礎線形代数講座
山中勇毅
日本評論社
もう1冊数学。こちらはもう完全にネタであって、もちろん完読なんぞしていない。タイトルに釣られて買ってしまったのである(爆)。
僕は文系なので、高校卒業以来はろくに数学も数式も縁がなかったのだが、大学生の講義カリキュラムでコンピュータグラフィックの原理みたいなものをC言語を使って書く機会があった。もちろんマニュアルもアンチョコも用意されていて、それと首っ引きで数式や数字を打ち込むだけなのだが、ポチポチと書いていったC言語のプログラムをいざ実行させると、ディスプレイ上に黒いウィンドウが開いてそこにドット絵が描画されるのが面白かった。
そのときにプログラムに打ち込んでいたのが、実は行列や三角関数なのだった。
まずは、モノリスみたいな物体をディスプレイ上に描く。これはモノリスを二次元ディスプレーで描くのにドットに色をつけて座標軸上に配置する、ということを意味する。それから光源の位置を決める。光源に向いている側は明るくなるし、光源から回り込む面は色が暗くなる。その色合いのグラデーションを計算するにはドットの位置と光源の位置の座標を使う。そして今度はそのモノリスを45度回転するとか、光源とモノリスの間にもう一つ球体を描くとか、球体にモノリスの影を投射するとか、オプションをひとつずつ増やすたびに、実は行列と三角関数でドットの位置と色を再計算していくのである。
計算そのものはコンピュータがやってくれるのだが、自分が書いたプログラムのロジックが正しいかどうかは描画されるまでわからない。何かが間違っていると、その部分だけ色が出ずに真っ黒になったり、色はついてもグラデーションにならずにのっぺりになったりした。
なるほどCGというのはこういう原理なのだなということを学んだ貴重な体験であった。1990年代の話である。
現在、当たり前に目にするCGは、アニメでもゲームでも映画でももはやお馴染みすぎて、後ろで動いているはずの驚異的な計算のことは忘れがちだ。昔のアニメは、背景が固定されていて人物だけがセル画の上に手書きされ、それがパラパラ漫画の要領で動いていた(いわゆるセルアニメ)。しかし背景をCGで描けるようになると、これまでは禁じ手だった「背景を動かす」ことができるようになった。聞くところによると、1991年のディズニーアニメ映画「美女と野獣」の舞踏会のシーン、メジャーな商業映画ではあれが本格的にCGで背景が動いた最初の例だそうである。「美女と野獣」もそのシーンまでは通常のアニメと同様に、背景は固定されていて人物だけが動くセルアニメーションだったが、この舞踏会の場面になると、ベルと野獣が手を取り合って画面の中央に位置し、舞踏会会場となる大広間の背景が回転する。屈指の名シーンだ。
先ごろ地上波で再放送されたのを観ていた。
幾何面の座標や行列の回転や三角関数がわんさかでてくる本書を眺めながらひたすら思い出したのはアニメ版「美女と野獣」の舞踏会のシーンだった。アラン・メンケンの名曲に乗せてダイナミックに回転する黄金のアーチやカーテンには、ひとつひとつのドットに対して行列と三角関数の猛烈な計算が行われていたんだよなーと変なところに感慨した。