ZgeViz: effect development documentation(original Postby VilleK » Fri Jul 02, 2010 11:22 am)の翻訳。
ZgeViz用のエフェクトを開発する第一歩は最新版の「ZGameEditor開発環境」をダウンロードすることです。
「ZGameEditor」開発環境にまだ慣れていないなら、「Kjellsのビデオチュートリアル」と「ドキュメント」に目を通しておくことを強くお勧めします。
(訳注:ビデオはImage-lineのZgeVizのマニュアルにあるビデオリストと同じもののようです。ドキュメントの方はReferenceまで入れるとボリュームがとんでもないので「目を通しておく」レベルの段階では「General Info」と「Getting started」の最初のチュートリアルあたりまでで良いと思います)
(訳注:この手順のやり方の検証はしていませんが、「最新版のZGameEditor開発環境」であるZGameEditor4.0betaには「File > New Project > Visualizer FgBg Effect」とかいうコマンドがあるので、それを使えばこの手順は必要なさそうです)
ZGameEditorで新規プロジェクトを作成したら、プロジェクトツリーに以下のコードをコピー&ペーストしてください。
ZZDC<?xml version="1.0" encoding="iso-8859-1" ?>
<Group>
<Children>
<DefineArray Name="SpecBandArray" SizeDim1="32"/>
<DefineArray Name="AudioArray" SizeDim1="32"/>
<DefineVariable Name="SongPositionInBeats"/>
<DefineArray Name="Parameters" SizeDim1="32"/>
<DefineConstant Name="ParamHelpConst" Type="2"/>
</Children>
</Group>
これらの要素が定義されていると、FL Studio上のZgeVizが、FL Studioから流れてくるデータを受け取ることができるようになります。
変数の意味は以下のとおりです。
| SpecBandArray | この配列には「周波数帯毎の音量のデータ」が入ります。 このデータは-1から+1の範囲の値を取ります。 配列のサイズは、デフォルトでは32となっています。 配列のサイズの値は、エフェクトがロードされたあとに、ZgeViz側の設定(ZgeVizの「settings」画面で設定されます)で上書きされる場合があります。エフェクト開発者は、このことを意識しておくべきでしょう。 |
| AudioArray | この配列には「演奏中の音声のPCMデータ」が入ります。 このデータは-1から+1の範囲の値を取ります。 配列のサイズは「不定」であり、実行時に決定されます。 |
| SongPositionInBeats | この変数は「演奏位置」をビート単位で表します。 音楽のテンポと同期するために利用できるので、「ビートの小数部を利用してカメラのZ座標を動かすことで画面全体が拍動する」といった使い方が考えられます。 |
| Parameters | この配列には「ZgeVizの画面に並ぶコントロール(スライダ等)の現在の値」が入ります。 このデータは0から1の値を取ります。 「コントロール」を、いくつ、どのような目的で使うのか、あるいは全く使わないのか、については、開発者が好きなように決めることができます。 |
| ParamHelpConst | この文字列変数は「このエフェクトが持つコントロール(スライダ等)類の名前」の定義に使用します。 たとえば、「形(shape)」と「色(color)」を調整するスライダを使うエフェクトを開発している場合、この文字列変数は「Shape」、「Color」(改行記号Carrige returnで分かち書き)と定義すれば良いでしょう。各行がZgeVizの画面上ではスライダのラベルとして利用されます。 |
エフェクトの定義が完了して.zgeprojファイルが完成したら、FL Studioのプラグインディレクトリにある「ZgeViz\Foreground\」ディレクトリにコピーします。便宜上Foreground、Backgroundという2つのフォルダがありますが、ZgeVizは両方のフォルダのエフェクトを対等に扱って両方からロードします。.zgeprojファイルを更新した場合、ZgeVizの「Reload」ボタンを押せばエフェクトがリロードされます。
「Clear」というフォルダに配置されたエフェクトは、他の2つのフォルダのエフェクトよりも先にロードされます。「フィードバック」型のエフェクトを開発する場合にはこれを選ぶと良いでしょう。
(訳注:フォルダがFgAndBgにまとめられていたりその下にカテゴリが作られてたり、ロード順が単純に画面上で「左から右へ」になっていたりと、細かい仕様はZgeViz2で変わってるようですが、このへんは「見ればわかる」、「やってみればわかる」と思います)
MIDIについては「MIDI-input」スレッドを参照。
エフェクトで「VideoTextureBitmap」という名前の「bitmapコンポーネント」を定義してある場合、そこには「選択中のビデオ、またはWebCamの入力」が入ります。ZgeVizとともに配布されているエフェクトの中で「Video...」で始まる名前のものはこれを利用しているので、参考にしてください。
エフェクトで「UserTextArray」という名前の「DefineArrayコンポーネント」が定義してある場合、ZgeVizの「custom content」画面(多分ZgeViz2では「Add Content > Text」画面に相当する)でユーザーが入力したテキストを利用することができます。
エフェクトで「ZApplication-component」の「commentプロパティ」に書かれたテキストは、ZgeVizでエフェクトのヘルプ画面として表示されます。ZgeVizでヘルプを表示するには、ZgeViz画面上で右クリックメニューから「Show help for this effect」コマンドを実行します(訳注:ZgeViz2の場合、ヘルプが定義されているエフェクトではエフェクト画面上部に「?」ボタンが現れるのでこれも使用できます)。
【ZGameEditorビジュアライザの資料】