チュートリアル24

QuickTimeエフェクト


このチュートリアルではjit.qt.effectオブジェクトの基本的な操作方法について見ていきます。これはAppleが提供しているQuickTimeのエフェクト機能をJitterで使用するためのオブジェクトです。この章ではこのオブジェクトの使用方法と調整の方法を学びます。具体的には、時間可変パラメータと、非時間可変パラメータの違い、そしてJitterマトリックスにいくつかのエフェクトをかける方法に関して学んでいきます。また、ムービーの内部にQuickTimeエフェクトのトラックを作る方法についても学びます。

QuickTimeでは多くの種類のエフェクトを使用することが出来ます。その中には、QuickTimeエフェクトとして知られている、一般的なシステムで使用可能なトランジションフィルタ(ワイプやフェード)や、スタンドアロンフィルタ(レンダー)等が含まれます。QuickTimeエフェクトを使用することで、多くのJitterのトランジションやフィルタと比べて処理は遅くなりますが、Jitterには含まれていない独特のエフェクトを使うことが出来ます。QuickTimeエフェクトとJitterのフィルタの他の相違点は、QuickTimeエフェクトはQuickTimeムービーの中にトラックとして組み込める事です。これはムービーの中にオーディオのトラックと映像のトラックがあるのと同様の事です。

QuickTimeエフェクトのアーキテクチャでは、様々な種類のエフェクト、それらが必要とするパラメータ、そしてパラメータタイプの設定を一つのインターフェースでサポートします。QuickTimeエフェクトは、一つも入力を必要としないエフェクト(炎や雲のような)、1つの入力を使用するエフェクト(ブラーやゲイン)、2つの入力を使用するエフェクト(クロマキーエフェクト等)の全てを同じインターフェースで設定することが出来ます。これだけの事を扱うので、jit.qt.effectオブジェクトはJitterパッケージの中で最も複雑なオブジェクトの中の一つだと言うことができます。しかし心配することはありません。このチュートリアルでは1つずつ順番に学んでいきます。


ダイアログボックスインターフェース

QuickTimeエフェクトを扱う最も手っ取り早い方法はQuickTime標準のダイアログを使用することです。以下のパッチではそれを行っています。

・Jitter Tutorialフォルダからチュートリアルパッチ24jQTEffectsDialogInterface.patを開いて下さい。


QuickTimeエフェクトを使う

・2つのreadメッセージボックスをクリックして、2つのjit.qt.movieオブジェクトにQuickTimeムービーを読み込んでください。

metroオブジェクトについているトグルボックスをクリックして処理をスタートさせてください。2つの小さなjit.pwindowオブジェクトには選択したムービーが再生されるでしょう。大きなjit.pwindowオブジェクトには、左のjit.qt.movieからのムービーが映し出されているはずです。まだQuickTimeエフェクトが選択されていないので、jit.qt.effectオブジェクトが左インレットに入ってきたマトリックスをただ通過させている状態です。

・dialogと書かれたメッセージボックスをクリックしてください。すると標準のQuickTimeエフェクトダイアログボックスが表示されます。使用できるエフェクトを選んで、そのパラメーターの設定をすることが出来ます。下は、QuickTime 5のダイアログボックスの例です。膨張のエフェクトを選択しています


QuickTime5エフェクトの標準的なダイアログボックスインターフェース

(訳注:QuickTime日本語版では以下のようなダイアログボックスになります。
エフェクトメニューの順序等に違いがありますので注意して下さい。 )


QuickTime5エフェクトの標準的なダイアログボックスインターフェース
(日本語版)

・全ての使用可能なQuickTimeエフェクトが左側のスクロールの出来るウィンドウ内に表示されています。人によってこのリストの内容は多少異なるかもしれません。あなたが後からエフェクトを追加していればそれも表示されているはずです。リストから何か項目を選択すると、左下のプレビューウィンドウに選択したエフェクトの例が表示されます。選択したエフェクトの、設定可能なパラメータがウィンドウの右側に表示されます。

・何種類かのエフェクトを選択して、そのパラメータの設定を試してみてください。エフェクトを選択して、パラメータを設定し、OKボタンをクリックすると、パッチに変化が起こります。再びdialogメッセージボックスをクリックして他のエフェクトを選択してください。jit.qt.movieオブジェクトには、2つのマトリクス入力を使用するエフェクト、1つしか使用しないエフェクト、タイミング以外の用途で入力を使用しないエフェクトがあることに注意してください。

・いくつかのエフェクトでは1つのパラメータに対して2つの設定値があることに気づくでしょう。例えば、上にあるような膨張のエフェクトでは、3つのパラメータはどれも2つの設定値を持っています。これは時間可変パラメータと呼ばれます。何故ならこのエフェクトは、設定した2つの値の間をパラメータの値が滑らかに変化するエフェクトだからです。パッチ内のjit.qt.effectオブジェクトにstepsアトリビュートで値が60と書き込まれているのを見て取る事が出来るでしょう。これは、全ての可変可能なパラメーターが60ステップ(60回マトリックスを受信する)で変化し終えるという事を示しています。時間可変のパラメーターについては、このチュートリアルの後の方でより詳しく説明します。

・QuickTimeエフェクトダイアログボックスについて十分に操作したら、トグルボックスをクリックして処理を止めてください。


Maxへ

QuickTimeエフェクトダイアログボックスで見た全てのエフェクトとそのオプションは、Jitterからも操作することが出来ます。ここからはやや複雑な話になるので、丁寧に説明していきます。先ほどのパッチを操作していると、各エフェクトによって、設定できるパラメータの数やパラメーターのタイプが異なる事に気づくでしょう。例えばブラーエフェクトと、雲のエフェクトを比較してみましょう。ブラーフィルタエフェクトはリストを選択する形での1つのパラメータしかありませんが、雲のレンダーエフェクトには3つのパラメータがあります。そのうち2つはRGBカラーを選択するもので、3つ目は回転の度数を表すパラメーターが実数で設定されます。各エフェクトをコントロールするにはいくつのパラメータが必要で、どんな種類のデータを送れば良いのか、どのようにして知れば良いでしょう?

JitterからQuickTimeエフェクトを使用したい時に、いつでも使えるようなパッチを作りました。このパッチはJitterから操作をすると、全ての必要な情報を素早くリストアップする事で全てのQuickTimeエフェクトの情報を扱います。ここではMaxパッチ上に、それらの情報を簡単に扱えるようなインターフェイスを作ってあります。これは誰でも使えて、それぞれの目的に合わせて使うことのできるものです。あなたが自分で、同様の、より快適なパッチを作るまでは、このパッチは気兼ねなく自分のパッチに組み入れて使用してください。このパッチがあれば、あなたの苦労とフラストレーションは必ず軽減されるでしょう。

Jitterと共にインストールされるjitter-examplesフォルダーの中にjit.qtfx.helpersというフォルダがあります。そこには、フルセットのQuickTimeエフェクトのヘルパーパッチが入っています。そこにあるそれぞれのパッチは独立して一つ一つのQuickTimeエフェクトの機能を説明しています。パッチは全てのエフェクトに対するものを用意してあります。これらのパッチは全て普通のオブジェクトのように使用することが出来ます。QuickTimeエフェクトは機能が豊富である反面、扱いが複雑になっています。しかしこれらを使用することで使いやすくなるでしょう。


リストアップしてエフェクトを読み込む

jit.qt.effectで使用可能なエフェクトのリストを作るために、ここではgeteffectlistメッセージを使用しています。このメッセージを受信するとjit.qt.effectは右アウトレットから連続したメッセージを送信します。一つ一つのメッセージは使用可能な各エフェクトに関するものです。それぞれのメッセージのフォーマットは、effectlist [index] [name] [code]で、indexは0から始まるインデックス番号を、nameはエフェクトの名称、codeは4文字のコードで、エフェクトを表しています。

・Jitter Tutorialフォルダからチュートリアルパッチ24jQTEfectsMaxInterface.patを開いてください。(訳注:このままのパッチでは文字化けしてしまうので、画面中央にある2つのubumenuとメッセージボックス、さらに下の方の大きいtexteditオブジェクトを選択して、Fontメニューから日本語のフォント(例えばOSAKA)を設定してください。しかし、これらのオブジェクトは完全に日本語に対応していないので文字化けしてしまうことがあります。)

・今はまだjit.qt.movieオブジェクトには触れないでください。パッチの他の部分から見ていくことにします。

・geteffectlistと書かれたメッセージボックスをクリックしてください。このパッチではrouteオブジェクトを用いてeffectlistから始まるリストを選り分けています。その後、sprintfオブジェクトでメッセージのフォーマットが作られ、メッセージはubumenuのメニューに追加されていきます。

ubumenuをクリックして使用可能なエフェクトのリストを見てください。このリストにはQuickTimeエフェクトダイアログボックスの左側にあった項目と同じ物が表示されているはずです。

jit.qt.effectにエフェクトを読み込むには、loadeffectメッセージを使用します。loadeffectメッセージは一つのアーギュメントをとります。それは使用したいエフェクトのインデックス番号か、4文字のコードです。この例ではloadeffect $1メッセージとエフェクトのインデックス番号を使ってjit.qt.effectにエフェクトを読み込んでいます(ubumenuのインデックス番号とjit.qt.effectオブジェクトのエフェクトを示す番号は同じになります)。

これでエフェクトを読み込む事が出来ました。次にエフェクトのパラメータをリストアップし、設定をしていきましょう。

パラメーターのタイプ

次に進む前にQuickTimeエフェクトで使用される様々なパラメーターを見てみましょう。jit.qt.effectオブジェクトが使用可能なパラメーターを送信するときに送信されるデータには、各パラメーターのタイプとその使える値の制限に関する情報が含まれています。パラメーターの値を設定するにはこれらの情報が必要になります。

タイプ

・long:(ロング整数型)整数の値です。

・fixed:(固定小数点型)小数点のつく値です。普通は0.から1.0までの間です。

・double:(倍精度小数点型)小数点のつく値です。

・rgb:(RGBカラー)0から255までの3つの整数で、RGBカラーを表しています。

・bool:(ブーリアン)整数の値で、0もしくは1です。

・enum:(項目リスト)整数のインデックスのリストで、それぞれインデックス番号は特定の項目に関連しています(インデックスは必ずしも連続している必要はありません)。

・imag:(イメージ)このタイプは今のところMaxでは対応していません(このイメージのパラメーターはダイアログボックスから設定することが出来ます)。

パラメーターをリストアップする

選択したエフェクトで設定できるパラメーターのリストを作るために、getparamlistメッセージを使用しています。このメッセージを使用すると、jit.qt.effectオブジェクトの右アウトレットからメッセージが連続的に送信されます。個々のメッセージの内容は設定可能な各パラメーターに関するものとヘッダーメッセージです。

まず、ヘッダーメッセージが最初に送信されます。このメッセージのフォーマットは、paramhead [name] [code] [params] [sources]となっています。nameはエフェクトの名称です。codeは4文字のコード、paramsはそのエフェクトで設定できるパラメーターの数、そしてsourcesはそのエフェクトが使用する入力ソースの数を表しています。

QuickTimeエフェクトの中には3つのソース入力が出来る物もありますが、jit.qt.effectオブジェクトでは2つの入力ソースまでしか使用することが出来ません。

ヘッダーメッセージが送信された後、パラメーターメッセージが連続で送信されます。それぞれのメッセージのフォーマットはparamlist [index] [name] [code] [tween] [type] [variable]です。indexは0から始まるインデックス番号、nameはパラメーターの名称、codeはパラメーターを表す4文字のコード、tweenは時間可変性を示す整数の値(0=常に変化、1=不変、2=設定可能)です。typeはパラメーターのタイプ(上に書かれているリスト参照)を示します。variableはオプションのアーギュメントで、パラメーター毎の取り得る値を表しています。

表記方法は以下です(実際は項目とアーギュメントという形で記入します。例fixed 0. 1.):

・long:[最小値(オプション・整数)] [最大値(オプション・整数)]

・fixed:[最小値(オプション・実数)] [最大値(オプション・実数)]

・double:[最小値(オプション・実数)] [最大値(オプション・実数)]

・rgb:rgbレンジ(これはRGBの値は0-255であることを示す、ただのメモ代わりです。)

・bool:無し

・enum:[インデックス番号(整数)] [値(整数/シンボル)]...(この2つの組が値の数だけ繰り返されます)

・text:[最大文字数(オプション・整数)] [最大の行数(オプション・整数)]

・imag:無し


実際に

・このパッチでは、ubumenuからエフェクトを選択すると、bangが自動的にgetparamlistメッセージボックスに送信されるようになっています。サブパッチャーp interpretに含まれているアルゴリズムは、自動的に、今説明してきた情報を取り出して読みやすいフォーマットにします(どのようなアルゴリズムか見たい場合はpatcherオブジェクトをダブルクリックしてみてください)。

・パッチの上の図の部分を見てください。p interpretパッチャーの3つのアウトレットは3つのオブジェクト、メッセージボックス、ubumenutexteditオブジェクトに繋がっています。メッセージボックスに表示されているのは、paramheadに続くメッセージの内容をフォーマットし直したものです。ubumenuにはparamlistに続いたメッセージの内容をフォーマットし直したものが入っています。texteditオブジェクトには補助的なデータが表示されます。上の図では、ブラーエフェクトに関する情報が表示されています。ここで、このエフェクトの名称は'ブラー'であり、このエフェクトを表す4文字のコードは'blur'で、一つのパラメーターと一つのソースを持つことを知ることが出来ます。パラメーター0(p[0])、つまり最初のパラメーターは'ブラーの度合い'を表し、4文字のコード'ksiz'で表されます。このパラメーターは項目リストの形式であり、時間可変は出来ません。texteditオブジェクトには、インデックス番号と実際の値の対応が表示されています。

・左側のubumenuから、いくつか他のエフェクトを選択して、情報の表示がどのように変わるかを見てください。右側のubumenuからいくつかのパラメーターを選択してみて、それぞれのパラメーターがどのように表示されているかの感覚を覚えてください。パラメーターを変更する

・2つのjit.qt.movieオブジェクトにムービーを読み込むために、readメッセージボックスをクリックしてください。その後にmetroについたトグルボックスをオンにしてパッチの処理を開始してください。

・左側のubumenuで、'放射状'と呼ばれるトランジションエフェクトを選択してください(私達の環境でのインデックス番号は29番です)。

・パラメーターの表示を見ると、'放射状'は7つのパラメーターと2つのソースを持つことが分かります。 jit.pwindowには、左インレットに受信されるムービーだけが表示されているはずです。
・このエフェクトの最初のパラメーターは'比率'と呼ばれるものです。これは固定小数点のパラメーターで、 texteditオブジェクトに表示されている内容によると(注意:このtexteditオブジェクトの内容は表示されていない可能性があります。これは、QuickTimeからのメッセージフォーマットの一部が抜けている場合があるためです。)、最小値は0.そして最大値は1.です。

・この例のパッチで、上のスクリーンショットに現れている部分を探してください。これはパッチの右上の部分です。これがこのパッチのパラメーターエディタです。青いナンバーボックスはパラメーター番号を表します。黄色いナンバーボックスを使ってパラメーターに値を設定することが出来ます。黄色いナンバーボックスに値を入れると、それがpakオブジェクトに入り、paramメッセージがjit.qt.qffectに送信されます。

このパッチでは、青いナンバーボックスを変更すると、表示されているパラメーター情報も自動的に切り替わるようになっています。この為に、ナンバーボックスが変更された時にjit.qt.effectにgetparamメッセージを送信して、最新の情報を更新しています。

・では、最初のパラメーターを設定してみましょう。青いナンバーボックスが0にセットされている事を確認してください。そして1番目の黄色いナンバーボックスの値を0.から1.の間の値に設定してください。jit.pwindowに表示されている画像が設定したように変化するはずです。上の右側のスクリーンショットはその例です。

・パラメーター番号を1にしてください。パラメーター情報を見ると、パラメーター1は、ワイプタイプを設定するための項目リストだと言うことが分かります。texteditオブジェクトをスクロールする事で選択できるタイプのリストを全て見ることが出来ます。一番左の黄色いナンバーボックスを操作していくつかのタイプを試してみてください。また、パラメーター番号を0にする事でいつでもそのエフェクトの係り具合を調整する事が出来ます。

・それでは少し飛ばしてパラメーターの4番と5番にいきましょう(パラメーターの2番と3番は縦と横の繰り返しの値を決めています。試してみてください)。4番のパラメーターを変更して(ボーダーの幅を調節するもので、0から20までの固定小数点の値をとります)、ボーダーがワイプの端に見えるように設定してください。そしてパラメーターを5番にしてください。このパラメーターではボーダーの色をRGBで設定します。黄色いナンバーボックス全てを使用してパラメーターを0 255 0に設定してください。下の写真の様に、ボーダーの色が明るい緑になるはずです。

・最後に、パラメーター6番(ソフトエッジに関するパラメーターです)を変更してください。パラメーター6番はブーリーンの値を取ります(ダイアログボックスのチェックボックスに相当します)。このパラメータを1(オン)に設定すると、ボーダーにアンチエイリアスがかかります。

・これでjit.qt.effectを操作して全ての主なパラメーターのタイプを設定する事ができました。


時間で変化する

他のJitterオブジェクトの様に、jit.qt.effectのパラメーターをメッセージを使うことで設定することが出来ます。さらに、QuickTimeエフェクトに組み込まれている、2つのパラメーター間を自動的に滑らかに変化させる機能(時間可変の機能)を利用することが出来ます。このチュートリアルの始めに見たように、この、時間可変のパラメーターを使用することはとても簡単です。それではこのパラメーターをMaxからコントロールしてみましょう。

時間可変のパラメーターは指定したステップ数で、初期値から最終値に変化する事を思い出してください。パッチからそれらの値を設定する事は、今までに用いて来た方法とは少し異なります。paramメッセージを使用してパラメーターを設定するのではなくて、param_aとparam_bという2つのメッセージを使用します。それぞれ、初期値と最終値を示しています。

・パッチ内で、上のスクリーンショットと同じ部分を探してください。

・左側のubumenuから'雲'のエフェクトを選択してください。パラメーター情報を見ると、'雲'のエフェクトは3つのパラメーターを持ちソースを必要としないことが分かるはずです。少しの間、色々なパラメーターを見てみてください。全てのパラメーターの表示に、'tween-optional'と書かれている事が分かるはずです。これは、必要であれば時間可変の設定が出来るという事を表しています。

・それでは初期値を設定してみましょう。青いubumenuオブジェクトをクリックして、param_aを選択してください。すると、pakオブジェクトの最初のシンボルがparam_aに設定されます。そして、パラメーターの値を変えると、jit.qt.effectオブジェクトにparam_aメッセージとして送信されます。

・'雲'のエフェクトの最初のパラメーター、パラメーター0番は雲の色をRGBで指定する物です。では赤くしてみましょう。黄色いナンバーボックスを操作して、このパラメーターの値を255 0 0に設定してください。

・パラメーター1番は背景の色をRGBで指定します。黒にするにはどうすればよいでしょう?パラメーターの値を0 0 0に設定してください。

・パラメーター2番は雲の回転を設定します。この例では完全に回転するようにしてみましょう。パラメーターの値を0に設定してください。

ubumenuオブジェクトを再度クリックして、param_bを選択し、最終値を設定しましょう。

・雲の色を青(0 0 255)に設定してください。背景の色を黄色(255 255 0)に設定してください。そして回転の値を360に設定してください。

・実際にパラメーターが変化するのを見るために、steps $1と書かれたメッセージボックスの上のナンバーボックスを操作してください。それでは空の変化を見てみてください。


パラメーターファイルの保存と読み込み

QuickTimeエフェクトは、.qfxというタイプのファイルを使用して、エフェクトのパラメーターの保存と読み込みをすることが出来ます。この.qfxファイルを使用することで、パラメーターの設定をバックアップして後で必要なときに読み出して使用することや、他のパッチでこの設定を使用することが出来ます(別のアプリケーションで使用することも出来ます。.qfxファイルはQuickTimeエフェクトを使用するプログラムで読み込むことが出来る標準的なファイルタイプです)。Jitterではこの.qfxファイルを、jit.qt.movieオブジェクトにQuickTimeエフェクトのトラックを作成するためにも使用します。

・下のスクリーンショットに示された部分を探してください。パッチの右下のあたりです。 あなたはきっと今、'雲'のエフェクトに設定した値を保存したいと考えているでしょう。それではディスクに保存してみましょう。

・qfx_writeメッセージボックスをクリックしてください。ダイアログボックスが現れるので、ファイル名を入力し、「保存」ボタンをクリックしてパラメーターの設定をディスクに保存してください。qfx_writeメッセージは、アーギュメントでファイル名を指定して、ダイアログボックスを表示しないようにすることも出来ます。

・qfx_readメッセージを使用することで.qfxファイルを読み込むことが出来ます。qfx_read luv.qfxメッセージボックスをクリックしてください。パッチで、2つのムービーが再生されていることと、stepsアトリビュートが0以上の値に設定されていることを確認してください。これは私達からあなたへのプレゼントです。何故なら私達はあなたをとても愛しているからです。

QuickTimeエフェクトダイアログボックスを使用してエフェクトのパラメーターを設定している時には、ダイアログボックスの左下にある、ロードボタンと保存ボタンが、それぞれqfx_readとqfx_writeメッセージの機能に相当します。


QuickTimeムービーの中にQuickTimeエフェクトを使用する

QuickTimeエフェクトはムービーの中に特別なトラックを作り、そこに入れて使用する事が出来ます。QuickTimeエフェクトのトラックは既にある映像のトラックをソース(適応可能であれば)として使用し、再生中にリアルタイムでエフェクトの処理を行います。

jit.qt.movieオブジェクトでは、既にある映像のトラックにエフェクトのトラックを加える際に、.qfxファイルを使用してエフェクトやパラメーターの設定をしています。

・Jitter Tutorialフォルダからチュートリアルパッチ24jQTEffectMovieTracks.patを開いてください。

metroオブジェクトについたトグルボックスをオンにして、パッチの処理を開始してください。

・read track1.movと書かれたメッセージボックスをクリックして、サンプルムービーを読み込んでください。

・このムービーにいくつのトラックが含まれているのか知るために、gettrackinfoと書かれたメッセージボックスをクリックしてください。このメッセージを受信するとjit.qt.movieオブジェクトは右アウトレットから一つ以上のメッセージを出力します。そのメッセージは、シンボルtrackinfoで始まり、その後に数個のアーギュメントが続きます。メッセージのフォーマットは、trackinfo [track index] [track name] [track type] [track enabled] [track layer]です。

送信されたメッセージを少し見てみましょう。trackinfo 1 'unnamed video'video 1 0. と表示されています。ここには一つしかメッセージがないので、このtrack1.movというムービーは、インデックス1番に1つのトラックを含んでいる事がわかります。そしてそのトラックは名前を持たない映像のトラックで利用可能であり、0番のレイヤーにあることも分かります。

QuickTimeのレイヤーは-32768番から32768番まであります。番号の小さいレイヤーのトラックが番号の大きいレイヤーのトラックよりも前に表示されます。もし2つのトラックが同じレイヤーに存在したら、インデックス番号の大きいトラックが前に表示されます。新しいトラックを作成すると、QuickTimeはそのトラックを0番のレイヤーに配置します。

track2.movのトラックの構成を知りたい時には、gettrackinfo track2.movメッセージをjit.qt.movie オブジェクトに送信する事で知ることが出来ます。トラックに関する情報を知るためのコマンド(gettrack で始まるメッセージです)は、様々なソース(ディスク上のファイルでもURLでも、RAM上のデータでも可能です)を一つ目のアーギュメントとして使用することが出来ます。


・copy track2.mov track 1 track -1と書かれたメッセージボックスをクリックしてください。このメッセージをjit.qt.movieオブジェクトが受信すると、track2.movを探してきて、その最初のトラック(偶然、私達はこのトラックが映像のトラックであることを知っています)を、現在jit.qt.movieオブジェクトに読み込まれているムービーに新しいトラックとしてコピーします(-1は新しくトラックを作る事を表しています)。新しく作成されたトラックは今まであったトラック(今回の場合は0番のレイヤーにありました)と同じレイヤー上に作られるので、新しいトラックが前に表示されます。

・gettrackinfoのメッセージボックスをもう一度クリックしてください。Maxウィンドウに2つのメッセージが表示されるはずです。これは、今このムービーが2つのトラックを含んでいることを示しています。
print: trackinfo 1 'unnamed video' video 1 0
print: trackinfo 2 'unnamed video' video 1 0

・それではluv.qfxをエフェクトトラックとしてこのムービーに組み込んでみましょう。addfxtrack dialog 0 0 1 2メッセージを見てください。

このメッセージをjit.qt.movieに送信すると、ファイルダイアログボックスが表示されます。このダイアログボックスで、エフェクトトラックとしてインポートする.qfxファイルを選択することが出来ます(メッセージのdialogの部分に、代わりにファイル名を書き入れる事で、指定したファイルを読み込ませる事が出来ます)。メッセージのフォーマットはaddfxtrack [filename] [offset] [duration] [source track A] [source track B]となっています。offsetは、ムービーの中でのエフェクトのスタートポイントを指定しています。durationはエフェクトのかかる長さを指定しています(QuickTimeで使われる時間の値で指定します)。source track Aとsource track Bは、ソースとなるトラックをインデックス番号で指定します。

デュレーションアーギュメントに0を指定すると、エフェクトのかかる時間がそのエフェクトで指定できる最大の長さに設定されます。この長さは、ソースを必要としないエフェクトでは、ムービーの長さになります(オフセットの値は引きます)。1つのソースを使用するエフェクトでは、そのソースとなるトラックの長さになります(オフセットの値は引きます)。2つのソースを使用するエフェクトでは、2つのソースのうち、短い方のトラックの長さになります(offsetの値は引きます)。

・addfxtrack dialog 0 0 1 2と書かれたメッセージボックスをクリックしてください。luv.qfxを探して選択し、「開く」ボタンをクリックしてください。

・luv.qfxのエフェクトが2つのムービーに適応されて、表示されているはずです。

・最後にもう一度、gettrackinfoメッセージボックスをクリックしてください。Maxウィンドウには以下のように表示されるはずです。

print: trackinfo 1 'unnamed video' video 1 0
print: trackinfo 2 'unnamed video' video 1 0
print: trackinfo 3 ___effect_src2 video 1 0
print: trackinfo 4 ___effect_src1 video 1 0
print: trackinfo 5 ___effect_track video 1 -32768

明らかに、このムービーには新しいトラックが追加されていますね。ムービーに1つのエフェクトトラックを追加すると、1つから3つのトラックが新たに追加されます。一つのトラックはエフェクトそのもののトラック(___effect_trackのトラックです)、その他のトラックは各ソースの為のトラック(___effect_src1 と___effect_src2のトラックです)です。

これらのトラックの名前は変更しない方が良いでしょう。jit.qt.movieオブジェクトは次に見るdeletefxtrackメッセージを受信すると、トラック名を見て処理を行うからです。

・deletefxtrackメッセージを使用して、ムービーのエフェクトトラックを削除する事が出来ます。deletefxtrackメッセージボックスをクリックしてください。これで、上記の名前のエフェクトトラックが全て削除されます。


まとめ

jit.qt.effectオブジェクトは、AppleのQuickTimeエフェクトアーキテクチャをJitterで使用可能にします。QuickTime標準のダイアログボックスを使用することでQuickTimeエフェクトに関する全ての設定を行う事が出来ます。jit.qt.effectオブジェクトは時間可変のパラメーターを設定することも出来ます。そして.qfxフォーマットのファイルをインポート/エクスポートする事も出来ます。jit.qt.movieオブジェクトを使用すると.qfxファイルを使用して、QuickTimeムービーにエフェクトトラックを作る事が出来ます。