見出し画像

[#6] 制約の中から得られるもの

初出: MacPower 2000年 12月号

今月はFlashを取り上げよう。あの米マクロメディア社のアニメーション作成ツール「Macromedia Flash」(以下、Flash)だ。実はいま、Flashを使ったプログラミングにハマっている。この時期にそんなこと言ったら、10月に発売された「Flash 5」のことだと思うだろう。さにあらず。1つ前の、「Flash 4」の話なのだ(笑)。先月のような堅い話ではないので、気楽に読んでほしい。

Flashは独特なツールだ。異様なソフトと言ってもいいだろう。ペイントソフトなのかドローソフトなのかはっきりせず、最初に出会ったときには異質な感じを受けた。第一印象はそういう意味でとても強烈だった。でも、オレは拒絶した。プログラミング環境もないアニメーションソフトには興味ないぜ。そう思ったことを覚えている。

オレは当時、友人の前田邦宏君 [*1]と一緒にWeb上で作品などを発表していた。その一部としてJavaを使ったものも制作中だった。Javaで作るのは結構面倒で、デザイナ一の要求をすぐに反映できない。何かほかに手はないかなあと思っていた。そんな矢先に、「マクロメディア社がFlashをサーバー上からいじれるようにしている」という二ユースを聞く。これは、その後「Macromedia Generator」として登場することになる製品だった。詳しい話を聞くと、Flashで作成したWebサイトのテキストを入れ替えられる程度のものだという。それじゃつまらん。オレとFlashの最初の関係は終わったのだった。

そんな状況が変わったのは、Flash 4が登場した昨年ぐらいだったかな? 変数も使えていっぱしのプログラミングもできるというので、「どれどれ?」と知り合いにその機能を見せてもらった・・・・・。確かに、if文やループもあって変数も使える。だけど、自由に編集できるプログラミング環境ではない。プログラムを1行ずつダイアログで入力していく、とても面倒なものだったのだ。こんなものでプログラミングできるかい! オレとFlashの距離はまた遠ざかってしまった。

なのに、今年の9月に突然火が点いた。きっかけは中村勇吾さん[*2]のプレゼンだ。彼は、今年の夏に米国・ニューヨークで行われた「Flash Forward 2000」というイベントに日本から招かれた唯一のスピーカー。結構すごい人なのだ。この中村勇吾さん、理系なんだなあと思う。物理学や数学が支配している自然界の事象を再現する手段として、Flashを利用しているのだ。彼の言葉を借りると、Flashで「場」を作りその上で起こるリアクションを楽しむということになる。

プログラマーが好きなことの1つに、シミュレーションというものがある。プログラマーというものは、現実世界で起こる物事をコンピューターの中でシミュレートすることが好きなのだ。その究極が、自然界の物理法則シミュレーションの作成。こういった願望を持ったプログラマーは結構多いと思う。画面の中をボールが動くスクリーンセーバーを作ったり、リアルな3DのCGに魅せられるのもその表れだ。

かくいうオレがずうっと持っている構想は、やっぱり物理法則の実験場を開設すること(笑)。ポールを投げて壁に跳ね返ったり、重力の影響で放物線を描いたり。はたまた、パネがあったらどうなるか。なんて実験ができるソフトを作りたいと常々思っている。でも、なかなか機会がない。たとえ作ったとしたところで、こういうアプリケーションの宿命なのか、ほとんど商売にならない。成功しているのは「Mathematica(*3)」ぐらいかな。

中村勇吾さんはそういうものを断片的ながらFlashでさらっと作成している。面白いから作ってみましたというより、作ったら面白かったといった具合にフットワークが軽い。

オレは影響されやすいので、さっそく取りかかってみた。でも実際に作る側になってみると、やはりFlashのプログラミング機能の少なさに仰天。一般的なプログラミング環境に当然のごとく用意されている三角関数さえないのだ。こんな環境でよくあんな作品が作れるなぁと内心焦った。ひょっとしてオしにはできないんじゃないか。

で、いろいろやっているうちに割り切らないといけないなと思った。完璧なものは無理なのだ。Flashで本物の実験をするわけではない。要は、リアルに見せるために必要な計算にすぎないのだ。そう考えるといろいろとアイデアがわいてくる。タンジェントは適当な計算で近似値を得られた。オブジェクト指向的に使ってみたりもした。いままで当たり前に実現できていたことを自分で工夫して生み出す。それが楽しいと思えるようになってきたのだ。

極め付きはサインとコサインを計算する方法だ。いままでのプログラミングの頭だったら、たぶん360度までの対応表をプログラム中に持たせてそれを調べる方法を採っただろう。しかし考えてみると、Flashはアニメーションツールだ。何かを円に沿って動かすことができる。そうやって動かしたものの位置からサインとコサインを割り出せることに気がついたのだ。まるっきり逆転の発想だ。

何か制限があるとき。その場合の対処の仕方は、真っ向から拒絶してしまうか、何とかして解決策を見つけようとするかのどちらかだ。でも、ものを作る人は、できないことをできないと言ってはならない。もちろん本当に不可能なこともあるが、努力するという気構えは必要だ。実現できるチャンスを逃してはならないのだ。

そうした初心ともいうべき気分を味わえただけでも、今回のFlashとの出会いは大きな収穫だった。初心忘るべからずなのである。あ、そうそう。Flash 5は例に出した基本的な関数をすべて用意しています。興味を持った人はそちらで始めましょう(笑)。

バスケ
Mac関連ソフトのデベロッパーで、シエスタウェア代表取締役。いやぁ、またまた今月もAppleScriptの話じゃありませんでした。世の中には興味あるものがいろいろとあふれているからねえ。来月号の話題は Objective-CとCocoaの楽しさになりそうだし。すまんです。

[*1] 前田邦宏君Webサイトは http://www.unique-ld.co.jp/
[*2] 中村勇吾さんWebサイトは http://www.yugop.com/
[*3] Mathematica―米ウルフラムリサーチ社( http://www.wolfram.com/ )の科学・技術計算ソフト。

編集・三村晋一


この記事が気に入ったらサポートをしてみませんか?