タイトルLightWave 3Dの分散レンダリングシステムをCocoaで独自開発したディ・ストームの開発者に話を聞く(1)カテゴリー開発情報, Mac OS X
作成日2001/7/23 14:13:52作成者新居雅行
3DソフトのLightWave 3Dの日本総販売元であるディ・ストームでの、Mac OS X対応への取り組みについて、同社の開発部の阿部慎一さんに話を伺った。その内容をもとに、Mac OS X対応に関する事例を紹介したい。
LightWave 3Dは古くはAmigaプラットフォームでのCGやアニメーションソフトとして有名で、その後Windows、そしてMac OSへの対応を行った。古くからあるソフトだが、Mac OSへの進出は比較的最近であるだけに、Macユーザにとってはある意味ではなじみが薄いかも知れない。最近はCGやアニメでもどんなツールが使われているかことさら取り立てることは少なくなってきているが、テレビ番組やコマーシャルなどでも、LightWave 3D特有の生成画像が見られるなど、映像現場ではけっこう使われているそうだ。また、価格的なバランスからもアマチュアのクリエイタも使っている。このLightWave 3DはVer.6.0で大きくアーキテクチャを変更し、今後長期間の利用に耐えるアーキテクチャとなっている。また、OpenGLへの積極対応も行っている。現在はVer.6.5系列となっている。モデリング、そしてレンダリングを行うソフトは、Carbon化を完全に行い、Mac OS Xでのネイティブアプリケーションとして出荷可能となった。2001年7月26日より、期間限定特別価格として168,000円で販売するなど、「Mac OS Xでの代表的なCGソフト」を目指したプロモーションも開始される。しかし、今回の話の主役は、これらLightWave 3Dでの中心的なアプリケーションではない。

LightWave 3Dはこれまでも、ネットワークにつながった複数のマシンを利用しての分散レンダリングを「Screamernet」という機能で実現していた。Mac OS 9やWindowsでも可能なのであるが、ファイル共有機能をベースにしており、各マシンのレンダリングエンジンへの指示やあるいはレンダリング結果のグラフィックスはファイルでのやりとりを行う。そのため、ネットワーク管理やシステム管理をきちんとしないといけないなど、サポート面でも手間のかかるものでもあった。
一方、阿部さんは日常の開発などの業務を行いながらも、Cocoaには興味を持っていた。以前から、NeXTの環境にも興味は持っていたものの実際に何かを開発するにはいたらなかったが、Mac OS Xが発売され開発ツールもあることから、なにかできないかという感じでチェックを入れていたそうだ。そして、見つけたのが「分散オブジェクト」の機能である。分散オブジェクトについての立ち入った説明はかなり長くなるので、ごく肝になる部分を説明すると、他のパソコンで動いているプログラムを、あたかも自分のパソコンの中にあるのと同じようにつかえる技術である。この分散オブジェクトの機能はCocoaに最初から含まれている。ところが、目をつけたのはいいのだが、なかなか情報はない。「専門のメーリングリストに少しのヒントを見つけ、いくつかのサンプルプログラムであたりをつけていきました。最初、自宅で簡単なチャットアプリケーションを作って試したところ、思ったより簡単にアプリケーションができることに気がついたのです」と話す。そこで手掛けたのがLightWave 3Dの分散レンダリングをコントロールするシステムである。
実際にレンダリングを行うエンジンについては既存のものがある。そこで、全体を統括管理するアプリケーションと、レンダリングを行うクライアント側のアプリケーションをCocoaアプリケーションとして用意した。クライアント側では、すでに稼動しているレンダリングエンジンをコントロールするのである。そして、レンダリングの指示をサーバからクライアントに送り、レンダリング結果をサーバに戻すという一連のネットワーク処理を、分散オブジェクトをベースに行ったのである。
こうした一連のシステムを、なんと1週間で仕上げたというのである。もちろん、阿部さんの力量もあるわけだが、分散オブジェクトという仕組みのシンプルさもある。ネットワークの処理を行うプログラムとなると、プロトコルの逐一をプログラミングすると非常に開発に労力がかかる。たとえば、Open Transportで同じことを実現しようとすると、多大な開発期間が必要になるだろう。しかしながら、分散オブジェクトを使えば、ネットワークの複雑なプロトコル処理は、プログラマはほとんど意識しなくてもいいのである。別のマシンに接続して、そこにあるオブジェクトのメソッドを呼び出せばいいわけだ。こうした仕組みに着目したからこそ、短期間での完成を見ているということになる。また、1週間とは言っても、実際には資料をさがしたりサンプルを調べたりと言ったことが中心で、それほど長時間に渡ってプログラムをしていたわけでもなかったそうだ。
関連リンクディ・ストーム