Hatena::ブログ(Diary)

shi3zの長文日記 RSSフィード Twitter

2012-01-24

クォータニオン 09:16

まっすぐな道をひたすら走る。

僕は運転が好きな方で、いつも遠出となるとウキウキ、ワクワクするものだったが、この日はそう楽しい気分でもなかった。

軽快なはずのMスポーツハンドルも、なぜか重く感じられる。

アクティブ・ステアリングの調子が悪いわけじゃない。

気分が乗らないのだ。


15年も前の話だ。

僕は生意気にも、日本のゲーム業界は重大な危機を迎えると直感していた。

その頃はゲームといえば3Dのリアルなグラフィックスが最重要とされていた時代だった。

しかし肝心の3Dに関する知識も教養も、日本の開発者には足りていなかった。

そしてゲーム性という、ゲームにとって最も重要なファクターはむしろ軽視され、進化が止まっていた。

ゲームの論理的構造を解説した教科書は存在すらしていなかったし、企画者向けに書かれた本はどれも根性論かエッセイ集の出来損ないみたいなものしかなかった。


誰も真面目にゲームという現象を捉えず、即物的に消費される単なる消耗品としてゲームが認識されていた。

それは当のゲーム開発者にとってさえ、そうだった。


その裏側で、アメリカではゲーム性の解体とゲーム開発技術の構造的研究が活発に為されるようになっていた。その集大成とも言えるのがCGDC(コンピュータゲーム開発者会議)であり、現在のGDCだ。


シムシティの開発者であるウィル・ライトらが中心となって始めた勉強会だったが、そこで行われている議論の高度さに僕は舌を巻いた。


日本語を使う人に比べて、英語を使う人は10倍は居る。

英語で書かれた論文や本も日本語でかかれたそれよりも圧倒的に多い。


日本では絶対に必要不可欠と言えるような3Dプログラミングに関する知識が明らかに不足していた。

たとえば、クォータニオンだ。


クォータニオンは四元数と呼ばれる数学上の特殊な概念で、1995年の日本には少なくともクォータニオンを解説した書籍はひとつもなかった。大学の図書館で何度検索しても見つからず、結局、秋葉原の書泉ブックタワーで、一万円もする分厚い洋書を買って、そこにほんの2ページばかり載っていただけだった。


それを必死で辞書とにらめっこしながら解読し、ようやく使い方を覚えたのだが、これは一度使ってみると、なぜそれまで使わなかったのかわからなくなるほど重要な概念だった。


当時、日本語で書かれた3Dプログラミングの教科書は、今から考えると笑っちゃうくらいにレベルが低かった。

学生が、あやふやな専門知識で書いた本(そのうち一冊は僕が書いた。今でも申し訳なく思っている)が大半で、正しい知見によって書かれた本は本当に数えるほどしかなかった。


数少ない例外が、東大の西田教授の本だった。しかし大学の授業向けに書かれているためか、僕が本当にやりたいことについては情報が欠落していた。


それまでに僕は大学の図書館や過去の雑誌の記事を含めて、ありとあらゆる3Dプログラミングの本を読んで来たつもりだった。しかし洋書だけは上京するまでは手が出なかった。


3Dプログラミングで最も難しい概念のひとつ、姿勢制御において、クォータニオンほど完璧なやり方はなかったというのに、当時はどの本にも掲載されていなかった。


そして僕が1万円出してやっとの思いで買った洋書、「Computer Graphics:Principles and Practice」にはクォータニオンとともに西田教授の研究が掲載されていて、しかも発行日が僕の誕生日より前だった。

これじゃあ当時、日本語の範囲でどれだけ勉強したとしても、洋書に書かれている20年も前の当然の前提知識が不足しているということになる。僕は日本人に産まれたことに絶望した。



その頃の日本のゲーム開発者たちは、たいした根拠もなく、海外でなにが起きているか見向きもせずに自分たちが世界の王者だと思い込んでいた。

確かにスーパーファミコンまではそうだったのかもしれない。


そういう幻想は確かに心地よいし、なにも英語や数学なんか今更勉強したくもない、という人たちは想像以上に多かった。


とはいえ、これに危機感を感じた人が日本にもいないわけではなかった。

とりわけ当時、CESAの事務局にいた緒方泰治と、Microsoftのテクニカルエヴァンジェリストだった森栄樹はそうだった。


CESAは日本の代表的なゲームメーカーらが集まって作る団体だ。

いわば日本のゲームメーカーの社長同士の集まる連絡会であり、社交界を代表していると言える。

東京ゲームショウなどのイベントを仕切るのもCESAの役割だ。


緒方泰治は理事の反対をうまくかわしながら、日本版GDCを立ち上げる構想を持っていた。

当時のゲーム会社の社長はおしなべて了見が狭く、「なぜうちの企業機密を商売敵と共有しなければならないのか」と強く反発する社長も少なくなかった。


反対に「日本はこのままでは沈没していく」と考える経営者も少なからず居た。

彼らの陰ひなたの支援を受けながら、どうにかこうにか、東京ゲームショウに併催するという形で、CESA GAME DEVELOPERS CONFERENCE、通称CEDECが立ち上がった。


僕は最初のCEDECのプログラム企画の約半分ほどを担当し、1/3のセッションについては丸一日司会を勤めた。

なぜならCESA事務局にはゲーム開発の経験者は存在せず(緒方はゲーム関係の出版社の営業出身だった)、CEDECの企画を担当する非公認組織CEDEC SWATには当初現役のプログラマーが居なかった。


それからしばらくして、ドリキャスバーチャファイター3の開発者である(株)元気の砂塚開発部長(当時)や、Microsoftの新しいテクニカルエヴァンジェリストとなった川西裕幸が加わり、ようやくエンジニア向け企画を立てる仕事から僕は開放された。


当時の僕は、3D技術に関してはアメリカに追いつくのは不可能か、ほとんど不可能という結論を出しており(その見解は今でもあまり変わっていない)、自力でエンジンを作るよりもミドルウェアを効果的に利用して、「奇麗な画面のゲーム」ではなく、本質的に「面白いゲーム」を作るための方法を模索すべきだ、という持論を持っていた。


僕にとって「面白いゲーム」を見つけ出す鍵となるのは、携帯電話だった。

なにしろ当時の携帯電話というのは、ほとんど文字しか出せなかったし、リアルタイムな反応をさせるためのJavaすら搭載されていなかった。

そのうえで面白いゲームを開発することができれば、その知見は必ずやコンシューマゲームにも応用できると考えていた。


本家GDCにはゲーム設計(デザイン)に関するセッションやラウンドテーブルが充実していて、科学的な分析が行われているのに日本ではそのあたりの議論がまともに為されていなかった。


だから僕はCEDECでゲーム設計(デザイン)のセッションを入れたがったし、次なる世代の中心的存在として携帯電話ゲームのセッションを増やして行くべきだと主張した。西暦2000年のことだ。


この主張に真っ向から反対したのがMicrosoftの川西裕幸だった。

彼は生粋の3Dプログラマーだった。

Microsoftのエヴァンジェリストなのに、対抗勢力であるOpenGLを信奉しているという変わり者だ。

これがMicrosoftという会社の善くも悪くも懐の広いところである。


彼とは完璧に意見があわなかった。ふたまわりも年が離れていたのもあるが、根本的にはある種の同族嫌悪だった。

僕も3Dプログラマーとして三角形に命を賭けた時代があった。けど僕は3Dを棄て、よりピュアなゲーム性を追求するために、携帯電話の世界へ行った。僕に言わせれば、彼はゲームに対してなんの愛着も持っていない。ゲームは彼にとって3Dプログラミングで飯を食うための手段でしかなかった。少なくとも僕にはそう思えた。


毎年、CEDECが終わった後に次のCEDECではなにを中心に据えるべきか、という話になる度に衝突した。



 「最新の3Dプログラミングなんか教えても無駄だ」



あるとき、僕はこう主張したことがある。

暴論だった。



 「最新の3Dプログラミングの話題は、基本的な知識がない人には難しすぎ、知識がある人にとっては古すぎる。ただのエンターテインメントだ」



事実、そうだと思っていた。

アメリカで発売される著名なリアルタイム3D解説書である「GPU Gems」は、かなり頑張っても翻訳された本がでるのに1年のタイムラグがあった。

真面目にやるつもりがあるなら英語の原著をそのまま読まなければ間に合わない。

それにしても、遅すぎるのだった。原著を書いた連中は、さらにたっぷり一年は進んでいるだろう。本を書くほど余裕があったのだから。

そういうのはSIGGRAPH*1の論文集が読めるレベルの人がやればいいのであり、そういうレベルの人は日本のゲーム業界に数えるほどしかいなかった。


一方、川西裕幸はこう言う。



 「電話なんかゲームの堕落だ。あんなアルバイトみたいな小遣い稼ぎの話をしてどうなる。ゲームの本流はあくまで3Dグラフィックスだ」



確かに当時の携帯電話ゲームは今ほど儲かっていなかった。

ずっとこんな感じで、常にCEDEC SWATの会議は、川西裕幸と僕の対立構造というのが産まれるようになっていた。


それから僕が渡米することになって、CEDEC SWATを引退した。

川西裕幸は煙たいのがいなくなってせいせいしたのか、まるで水を得た魚のようになって、無邪気に3D関連のセッションをドカンと増やした。


それからも、ときどき、いろんなイベントで川西裕幸と会う度にお互い憎まれ口を叩き合うのだった。

とはいえ、その僕でさえも川西裕幸の果たした業界への貢献を無視するわけにはいかなかった。

彼はゲーム開発の基礎的なアルゴリズムを解説した非常に重要な書籍である、「Game Programming Gems」の翻訳を始め、いくつか日本のゲーム開発者にとって非常に重要な指針となる本の翻訳や、翻訳の指導を担当した。数学や物理の本も数多く監修していた。そのなかには、もちろんクォータニオンへの言及があった。御陰で日本にはクォータニオンを含めて、欧米と知識水準において差がでない程度に参考書が揃って来た。


東大在学中に早くも天才的なプログラマーとして知られていた狩野智英を抜擢し、世界中の展示会につれていった。そして彼を技術書の翻訳者として鍛え上げ、狩野にも重要な訳本を何冊か任せた。


彼ら二人によって書かれた訳本は、全て僕の本棚にある。

献本なんてしおらしいことを彼らは絶対にしない。

しかし買わずにはいれないのである。それくらい、本当に必要な本を必要なだけ、訳した。この仕事は率直に言って日本のゲーム業界にとってCEDECそのものもよりも遥かに大きな貢献をしていると思う。



それから幾年露。

去年のCEDECは、まるで冗談のようにどこもかしこも携帯電話ゲームのセッションで持ち切りだった。

帰りがけ、元気を退職した砂塚佳成と、ゼビウスドルアーガの開発者として知られる、遠藤雅伸にばったり出くわした。

ふたりはしきりに「こんなにアウェイ感のあるCEDECは初めてだ」と漏らした。


しかし明らかに、時代はモバイル・ソーシャル・ゲームへと動いている。

僕は西暦2000年のCEDECの講演で、いずれゲームはサーバ上に構築されるライトユーザー向けのブラウザゲームが主流になり、広告と都度課金モデルによって運営されるようになるだろうと予言したが、まさにそのようになった。


もっとも、ソーシャルという要素までは予想できなかったので、完全に予言通りとは行かなかったが、少なくともモバイルがメインストリームになる、という予想は外れていなかった。


これはさぞかし川西裕幸は悔しがっているだろうと思って会場で探してみたが、残念ながら姿が見えなかった。

3Dの話なんかしてる人はもう殆どいない。

それがゲーム開発者にとって楽しいかどうかはともかくとして。


いまの多少なりとも違和感のある状況というのは、ゲームが新たな段階へと脱皮し、生まれ変わるために必要な儀式なのだ、と思う。

モバイル・ソーシャル・ゲームも、当初の「なんでこんなにウケてるの?」という状況から、二年経過して、「ここを直したらもっとウケる」と確信を持って行動できるレベルにまで進化している。

この傾向は今後どんどん加速していき、おそらく現在のPlayStation3などで提供されるようなゲーム体験をも上回るものになっていくだろう。


結局、人が集まるところには金が集まり、金の力はさらにものごとを進化させていくのである。

10年前に僕はゲーム性を進化させるためには3Dを休まなければならないと思ったが、今はその目に見えない「ゲーム性」が日に日に進化している時代なのだ。


こんなときこそ、逆に2Dや3Dのゲームがもっていた、シンプルな操作性の面白さなんかを追求すべきだと思った。天邪鬼なのだ。


それでenchant.jsなんてものに力を入れて、2Dゲームの作り方を極限までシンプルに現代風に作り替えている。古くからの開発者にはまだとっつきにくいらしい(島国大和さんが苦戦してるらしい。まあ彼はJavaとJavaScriptの区別をつけるところから出直すべきだと思うが)けど、少なくとも僕の目線では恐ろしくうまくいってるように見える。


それまでのゲーム開発とは全く異なるロジックでゲームを開発できる。

昔ならセンパイ*2に「バカヤロー」と頭を殴られてしまうようないい加減なコードでもちゃんと動くゲームが作れる。そういう時代になった。


それからずっと3Dにすることを考えていて、ようやくWebGLに対応したgl.enchant.jsというのが出来た。

2Dゲーム並の手軽さで3Dゲームが開発できるという、中学時代の僕が見たら鼻血出過ぎて失神しちゃいそうなくらいのライブラリだ。


WebGLは最新のヴァーテックス・シェーダーとピクセル・シェーダーが使える。

つまりPlayStation3やXbox360と同等の水準でブラウザ上の3Dグラフィックスを表現することができる。

しかもなんと、AndroidiPhoneでも動作する(まーちょっと細工は必要だが)


僕も昔採った杵柄で、久しぶりにピクセルシェーダーでも書いて川西裕幸に自慢しにいこうかな。それで「ほら、あんたの嫌いな電話ゲームでも完璧なシェーダーが動いてるぜ」って嫌がらせしてやろう。


そんなふうに思っていた矢先だった。


川西裕幸が逝った。

交通事故だったそうだ。


通夜はさっぱりしたもので、坊主もいなけりゃ線香もなし。

ただ献花をするだけだった。実に彼らしい。質素な式だった。


宇都宮でやっているとは思えないほど多くの人が来ていてちょっと驚いた。

しくしくやってる男たちに囲まれて、僕はじっと座って考えていた。


僕は川西裕幸に色んなことを教わった。

衝突も多かったが、偉大な男だった。

彼なりにゲーム業界に貢献したいと本気で思っていただろうし、だからこそ衝突を繰り返した。

男は本気で殴り合った相手としか、結局は解り合えない。


それで僕は、このさっぱりとした式で彼が望んでいることはなんだろう、と思った。

それから献花を済ませると、僕は席には戻らず、そのままクルマを運転して東京に戻った。


道中も涙は出なかった。僕はこういうのが何週間か経ってからポロっとくるタイプなのだ。

会社に戻って、プログラムを書いた。


朝になるとgl.enchant.jsの開発者、高橋諒君がやってきて(奇しくも川西裕幸の息子さんと同じ名前で同じ年齢だった)、今日も目をきらきらさせながら「次はどんな機能を付けますか?」と聞いて来た。


僕は


 「そうだな。じゃクォータニオンをサポートさせようか。あれがあるといろいろ便利だしねえ」


と言った。

すると高橋君はちょっと恥ずかしそうにして


 「クォータニオンですか。僕、あれちょっと難しくて・・・」


僕は微笑んで本棚に立った。

一冊の分厚い本を手にとり、高橋君に開いてみせた。


 「ほら、この本を呼んでごらん。実にわかりやすく解説してあるよ」


 「本当だ。やってみます」


僕はキラキラした目でその本のページをめくる少年を見つめて、それから窓際に立った。

眼下には見慣れた秋葉原の町並み。


それから雪が降って来た。




後日談:wise9 › gl.enchant.jsがクォータニオンに対応した0.3βにバージョンアップ!

*1:米コンピュータ学会コンピュータグラフィックス分科会

*2:そう。たとえば天外魔境の開発者、岩崎啓眞