Art of Illusion でのスクリプト作成

Copyright 2002, 2004, 2008 by Peter Eastman

最終更新: 2008/5/4
更新時の対象: ver. 2.6
初版発行: 2002/11/24
初版の対象: ver 1.3

もくじ

  1. 概要
  2. 簡単なスクリプト形状
  3. アニメーション形状
  4. テクスチャ形状
  5. スクリプト形状 上級編
  6. Object3D と ObjectInfo
  7. ツールスクリプト
  8. 起動スクリプト

1. 概要

スクリプト記述は、Art of Illusion で最も強力な機能の1つです。Beanshell スクリプト言語で、Art of Illusion を構成するクラスやオブジェクトを直接、制御・変更するスクリプトを記述できます。記述できるスクリプトは3つのクラスに分けられます。

スクリプト形状: シーンに含まれているオブジェクトで、そのオブジェクトのジオメトリやその他のプロパティは、スクリプトによる手続きで作成されます。オブジェクトの多くのタイプでは、オブジェクトを手作業で作り出すよりも、形状を作成するスクリプトを書くほうがはるかに簡単です。 フラクタルな形状はその良い例です。繰り返しの多いオブジェクトもそうです(芝生の大地、雪が降っている雲など)。さらに、スクリプト記述で "知性" を直接、オブジェクトに持たせられます。これで、オブジェクト自体をリアルにアニメーション化できます。

ツールスクリプト: 特定の関数の計算で実行するスクリプトです。特定の仕事や複雑な仕事を行う、とても簡単なスクリプトをオンザフライで(つまり AoI の再起動なしで)書けます。これは Art of Illusion にコマンドとして追加できます。

起動スクリプト: Art of Illusion の起動時に毎回、自動で実行されます。これで、環境設定ウインドウでの設定よりはるかに複雑なことを AoI に設定できます。また、新規の機能をプログラムに追加して、Plugin として動作するスクリプトを記述できます。

このチュートリアルでは、これらすべてのタイプのスクリプトの多くの例を後述します。

Beanshell スクリプト言語 は"interpreted Java" として設計されています。このシンタックス(構文)は直接 Java を元にしていて、Java プログラミングの経験があれば、Beanshell スクリプトはほぼ即座に書き始められます。しかし注意すべき点がいくつかあります。Beanshell はスクリプト言語として、この言語にいくつもの特徴を追加してより便利にしています。ダイナミックタイピングやメソッドクロージャがそれです。さらに、Java には generics のような、Beanshell でサポートしていない機能がいくつかあります。

Beanshell 言語のすべての書類は www.beanshell.org(英語サイト)にあります(Art of Illusion の Beanshell は 2.0)。また、Java プログラミングの経験がなければ、Sun の The Java Tutorial(英語サイト)を見てみるのもいいでしょう。このチュートリアル全部を行う必要はありませんが、はじめのほうのセクションを読むと、この言語の構文や、オブジェクト指向プログラムの基礎を学べます。(訳注: Java は現在、Oracle 社が運営しています。上記の "The Java Tutorial" をクリックすると、Oracle 版の Java チュートリアルサイトに転送されます。Sun だった頃とたぶん同じ感じかと思います)

Art of Illusion は Buoy ユーザインターフェイスツールキットを使用しています。ユーザインターフェイスに現れるスクリプトをたくさん書く場合、Buoy を学んだほうがいいでしょう。これは必要というわけではありません。代わりに Swing や AWT を使うこともできます。しかし Buoy はより優れていて、Art of Illusion 内に構築する多くのユーザインターフェイスクラスで有利となります。

解説を進める前に、いくつか注意点があります。スクリプト記述を始める前に、以下のことに気をつけてください。

まず、スクリプト記述は すべて文書化はしません。これで Art of Illusion を構成するクラスやオブジェクトに直接アクセスできます。またそれらの多くでは、ソースコード自体を越えている文書は使用できません。このチュートリアルでは、ユーザがやりたくなりそうなことの多くの方法をお教えしようと思いますが、ここでの説明の範囲を少しでも越えると、そこからはご自身でやるしかありません。

次に、スクリプト記述は 条件で変化します。もう一度。スクリプト記述でこのプログラムのクラスとデータ構造に直接アクセスでき、それらは時間で変化 しようとします。特にコードの部分部分をスクリプトで使うようなときなど、互換性が壊れそうなときは、私はできる限り変化を避けるようにします。それでも、Art of Illusion のあるバージョンのために書かれたスクリプトはどれも、今後のバージョンで正しく動作させるための変更をすることになるかもしれない、と思っておく必要があります。

最後に、スクリプト記述は 危険です。無限ループや、プログラムをフリーズさせたりするスクリプトを簡単に書けてしまいます。あるいは、シーンの内部表現を改悪するスクリプトも書け、これでプログラムがクラッシュしたりもします。これに対する防護方法は今まで私は作っていません。これをすると、スクリプトのパワーがどうしても限定されてしまうからです。スクリプト記述は、大幅なパワーと自在性を求めるユーザのためのものです。安全で予測可能な環境をお求めならば、通常のモデリングツールのみをお使いになったほうがいいかと思います。

え? まだ全然怖くない? よろしい。スクリプト記述はまさに驚くほど強力なツールで、これから見ていくように、基本的なスクリプトの記述は本当にとても簡単です。スクリプト記述で何ができるかを見てしまうと、これなしでは済まなくなりますよ。

次: 簡単なスクリプト形状