コンパイラとCG技術

2021年1月25日 (月) 投稿者: メディア技術コース

メディア学部にはCG制作に興味のある学生が多いです。一方でプログラミングが前提となるCG技術(各種アルゴリズムなどの原理)に興味のある人は相対的に少数です。CG制作では、ツール(MayaやMaxやBlender)の使い方を知っていれば、技術の原理を知らなくても仕事はこなせてしまいます。

結論を先に言うと、今日の話は、原理まで知っている方が制作でより良い仕事ができるという内容です。

先日「メディア特別講義I」でシリコンスタジオ社の開発部長の辻俊晶さんが講義をされました。受講生からは「大学時代に学んでおいてよかったと思うことは何ですか?」という質問がありました。辻さんはゲーム黎明期の頃からゲームプログラミングを長年究められた生粋のプログラマーです。

辻さんの回答は「コンパイラ」でした。コンパイラは、プログラミング言語を使って書かれた「ソースプログラム」の文字データを、コンピュータが直接実行できる形式(Windowsでいうと.exeファイル)に変換するプログラムです。

本格的な情報工学の学科であれば、一通り理論学習と簡単な言語を想定したコンパイラのプログラム試作を行います。コンパイラは「プログラムを処理するプログラム」という興味深いソフトであり、重要かつ基本的な計算機科学の一分野です。

辻さんによれば、就職してゲームプログラマーになってから直接コンパイラを作ることはなかったし、仮にコンパイラの原理を知らなくてもプログラムは書けることは確かです。しかし、自分が書いたプログラムをコンパイラがどう解釈し処理するのかを知っておくことで、普通のプログラマーに比べて明らかに良いプログラムを書くことができる、ということでした。

この事実を抽象化すると、自分の仕事の成果がどう処理されるか理解し実際にその処理も経験することでより良い成果が出せる、となります。さらにそれを別分野に具体化すると、CG制作者はCGアルゴリズムがどのような処理をするか理解し、プログラムを書く経験もすることで、より優れたCG作品を制作することができる、ということになります。

CG制作に限らず、先端技術を利用するほかのメディア制作分野も同様と思います。学生のうちに技術の原理を知りプログラム等の体験もすることは、制作の道に進んでもきっと将来プラスになるはずです。

メディア学部 柿本 正憲

AltStyle によって変換されたページ (->オリジナル) /