ZgeViz: effect development documentation(original Postby VilleK » Fri Jul 02, 2010 11:22 am)」

の翻訳。まだやってみてないのでいろいろ間違いとかUpdatedでない部分がいっぱいあると思います。

ZgeViz用エフェクト開発の手引き

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から流れてくるデータを受け取ることができるようになります。

ZgeViz用プロジェクトで使用される変数

変数の意味は以下のとおりです。

コンポーネントの型変数名説明
DefineArraySpecBandArrayこの配列には「周波数帯毎の音量のデータ」が入ります。
このデータは-1から+1の範囲の値を取ります。
配列のサイズは、デフォルトでは32となっています。
配列のサイズの値は、エフェクトがロードされたあとに、ZgeViz側の設定(ZgeVizの「settings」画面で設定されます)で上書きされる場合があります。エフェクト開発者は、このことを意識しておくべきでしょう。
DefineArrayAudioArrayこの配列には「演奏中の音声のPCMデータ」が入ります。
このデータは-1から+1の範囲の値を取ります。
配列のサイズは「不定」であり、実行時に決定されます。
DefineVariableSongPositionInBeatsこの変数は「演奏位置」をビート単位で表します。
音楽のテンポと同期するために利用できるので、「ビートの小数部を利用してカメラのZ座標を動かすことで画面全体が拍動する」といった使い方が考えられます。
DefineArrayParametersこの配列には「ZgeVizの画面に並ぶコントロール(スライダ等)の現在の値」が入ります。
このデータは0から1の値を取ります。
「コントロール」を、いくつ、どのような目的で使うのか、あるいは全く使わないのか、については、開発者が好きなように決めることができます。
DefineConstantParamHelpConstこの文字列変数は「このエフェクトが持つコントロール(スライダ等)類の名前」の定義に使用します。
たとえば、「形(shape)」と「色(color)」を調整するスライダを使うエフェクトを開発している場合、この文字列変数は「Shape」、「Color」(改行記号Carrige returnで分かち書き)と定義すれば良いでしょう。各行がZgeVizの画面上ではスライダのラベルとして利用されます。

(訳注:「File > New Project > Visualizer FgBg Effect」で生成したプロジェクトにはほかにも「いろいろ定義されていたり」、「使い方のヒントが書かれていたり」、「フォーラムに情報があったり」したような気もしますが、まだ読んでないので知りません)

訳注:開発

実際の開発の部分についてはこのドキュメントでは扱っていません。
ZGameEditorのチュートリアルで実際に「一通り手を動かしてみた」あとであれば、

というあたりまでは多分できるようになってるはずなので、そこから手を付けるのが良いと思います。

ちなみに「超かっこいいエフェクト群」は往々にして「GLSL」の技術を使っているんですが、それは一朝一夕に手を付けられるものでもないです。Web上で「WebGLのチュートリアル」とか「Shadertoyで遊ぶチュートリアル」とかを探せば手を付けられる(あるいは時間がかかりそうと理解できる)ようになるんじゃないかと思います。

完成したエフェクトの配布

エフェクトの定義が完了して.zgeprojファイルが完成したら、FL Studioのプラグインディレクトリにある「ZgeViz\Foreground\」ディレクトリにコピーします。便宜上Foreground、Backgroundという2つのフォルダがありますが、ZgeVizは両方のフォルダのエフェクトを対等に扱って両方からロードします。.zgeprojファイルを更新した場合、ZgeVizの「Reload」ボタンを押せばエフェクトがリロードされます。
「Clear」というフォルダに配置されたエフェクトは、他の2つのフォルダのエフェクトよりも先にロードされます。「フィードバック」型のエフェクトを開発する場合にはこれを選ぶと良いでしょう。
(訳注:フォルダがFgAndBgにまとめられていたりその下にカテゴリが作られてたり、ロード順が単純に画面上で「左から右へ」になっていたりと、細かい仕様はZgeViz2で変わってるようですが、このへんは「見ればわかる」、「やってみればわかる」と思います)

エフェクトでのMIDIの扱い

MIDIについては「MIDI-input」スレッドを参照。

エフェクトでのVideo texturesの扱い

エフェクトで「VideoTextureBitmap」という名前の「bitmapコンポーネント」を定義してある場合、そこには「選択中のビデオ、またはWebCamの入力」が入ります。ZgeVizとともに配布されているエフェクトの中で「Video...」で始まる名前のものはこれを利用しているので、参考にしてください。
(訳注:この辺のは上の表に統合したらわかりやすそうな気もしています。ZgeViz1でVideo...だったエフェクトはZgeViz2で軒並みImage...と名称変更されてたような気もします。未確認ですが)

エフェクトでのUserTextArrayの扱い

エフェクトで「UserTextArray」という名前の「DefineArrayコンポーネント」が定義してある場合、ZgeVizの「custom content」画面(多分ZgeViz2では「Add Content > Text」画面に相当する)でユーザーが入力したテキストを利用することができます。
(訳注:この辺のは上の表に統合したらわかりやすそうな気もしています)

エフェクトでのEffect helpの定義

エフェクトで「ZApplicationコンポーネント」の「commentプロパティ」に書かれたテキストは、ZgeVizでエフェクトのヘルプ画面として表示されます。ZgeVizでヘルプを表示するには、ZgeViz画面上で右クリックメニューから「Show help for this effect」コマンドを実行します(訳注:ZgeViz2の場合、ヘルプが定義されているエフェクトではエフェクト画面上部に「?」ボタンが現れるのでこれも使用できます)。

関連項目

【ZGameEditorビジュアライザの資料】


トップ 一覧 単語検索 最終更新 ヘルプ最終更新のRSS