https://www.image-line.com/support/FLHelp/html/plugins/ZGameEditor%20Visualizer.htmの訳と補足。


訳者注:日本語としてわかりやすいことを優先して「結構大きい単位で豪快に意訳している」とか「説明の順序を入れ替えている」場合があります。また、このページでは個人的に調べたメモを大量に追記してますが、追記事項は原則的に「訳注:」とか明記してわかるようにしています。たまに書き忘れていたりすることもあるかも知れません。


ビジュアルエフェクト


ZGameEditor Visualizer

「ZGameEditor Visualizer」はビジュアル・エフェクトプラグインです。
「ZGameEditor Visualizer」はリアルタイムで再生するほか、レンダリング結果を動画ファイルとして出力することができます。
ビデオチュートリアルはこちら

Main▽Add content▽Settings▽Debug▽log
レイヤー AレイヤーBレイヤーC...(+)Wizard
レイヤーAの
エフェクト
レイヤーBの
エフェクト
レイヤーCの
エフェクト
Export Video
>[※]<
~省略~



~省略~

「ZGameEditor Visualizer」は、フリーのオープンソース開発環境である「ZGameEditor(公式サイト)」を元に作られています。
「ZGameEditor」を使うと、FL Studioの「ZGameEditor Visualizer」用のビジュアライズオブジェクトを新たに作成することもできます。

(訳注:「新たにビジュアライズオブジェクトを作成する」ためには、いわゆるコーディングは必須ではないですが「GLSL言語」の基礎知識があるのが望ましいです)
(かなりくどい訳注:原文中、"visualization objects for the plugin"を「「ZGameEditor Visualizer」用のビジュアライズオブジェクト」とか訳して(?)いますが、「ビジュアライズオブジェクト」という表現は用語としては流動的かも知れません。ここでは「ZGameEditor Visualizer上で使う、絵が出るプラグイン」といった意味で使っている言葉かと思いますが、ZGameEditor Visualizerの文脈では単に「effect」と表現されることが多いです。FL Studioのユーザーの文脈で「effect」というと、「MIDI信号を入力として動作するGenerator」に対して、「音声信号を入力として動作するのがeffect」という意味で定着していると思うので、「ここでは」ややこしくなるからかぶるのを避けているんだと思います。といいつつこのマニュアルや画面上でもしばしば「effect」という呼び名が使われています)

「ZGameEditor Visualizer」を使う

(訳注:このドキュメントは「チュートリアルではない」ので、あんまり「使い方」については書かれていません)

「ZGameEditor Visualizer」では、専用のビジュアルオブジェクトを並べていくことで映像を作成します。
(訳注:「メイン画面上に、縦長のカードを並べる」イメージです)

ビジュアルオブジェクトを置く各スロットは「レイヤー」と呼ばれます。
レイヤーは、最大で50層利用できます。
(訳注:ちなみに、FL12.2以前は3層固定、FL12.5あたりでは25層だったようです。レイヤー(layer)は地層とかの「層」に当たる単語です。「ちょっと高級なグラフィック関係のソフトの用語」として日本語で定着してるので、ぐぐったら図解説明や解説動画が見つかると思います)

レイヤーの階層は、画面左が下(背景)、画面右が上(前景)となっています。エフェクトを作成する際は、通常は背景から順番に作成して行くのがよいでしょう。

各レイヤーは「他のレイヤーの出力結果」を利用することができます。あるレイヤーが他のレイヤーの出力結果を利用する場合、右にあるレイヤーが左にあるレイヤーの出力を入力として参照します。
レイヤーの順序は、各レイヤー画面の右上にあるメニューから変更できます。

各レイヤーで選択する「オブジェクト」は、それぞれが独自のコントロールを持っています。

  • 各コントロール(訳注:多くはスライダで表現されている)は、他のFL Studioのプラグインと同様にオートメーションすることができます。
  • いくつかのオブジェクトではMIDI入力も利用できます。
  • 多くのビジュアルオブジェクトは入力されたオーディオに対して反応します。

(「Mainタブ」右端にあるパネル)

Wizardボタン「ウィザード」画面を開きます。
「テンプレートの選択」、「Song titleとAuthorの入力」(と、必要があれば「背景画像の指定」)をするだけで、そのままビデオファイルとして書き出すことができます。

(ちょっとおせっかいな訳注:やってみればすぐわかりますが、これは「最初の画面でYesボタンを押した瞬間にプリセットのロードをする」=「ZGEVizの設定を丸ごと上書きする」機能です。白紙の状態で使うのはいいのですが、個人的には「プラグイン画面のUIのその位置にボタン常設してたらダメだろう」とか思います)
(かなりおせっかいな訳注:「ウィザード」というのは「設定をしたいけどいっぱいありすぎてどこから手をつけていいかわからない場合に用意される類のもので、画面遷移しながらこれを設定、次にこれを設定、という手順を示してくれて、言われたとおりに操作していると最低限の設定が完了する!というアシスタントプログラム」の総称です。などと「ウィザード」という用語(特に英語でWizardと書かれたボタン)を見る機会が少ない人もいると思ったので書いてみましたが、WindowsやMacのソフトのインストーラはだいたいウィザードとして実装されてるので、使ったことはあると思います。FL Studioにも「Setup Wizard」があります( https://www.image-line.com/support/flstudio_online_manual/html/app_wiz1.htm )が、もしかしたら「手動かよ!」とツッコミを入れるとこかも知れません。
Export to videoボタン「Video Export settings画面」を開きます。
出力する動画ファイルの設定を行ないます。通常は「Presetドロップリスト」にあるプリセットを選ぶことをお勧めします。
[]
Holdボタン
映像のレンダリングを停止します。エラー発生時に自動で押される場合もあります。
Window modeドロップリスト映像のディスプレイモードです。
Attached:ZGameEditor Visualizerプラグイン画面に埋め込まれます。
Detached:フロート状態にしてFL Studioのウィンドウから独立させ、最前面に表示します。
Wallpaper:FL Studioの背景壁紙として表示します。
Max rate最大フレームレートを設定します。Youtube等、多くのビデオ共有サービスでは、30Hz、60Hz程度のフレームレートを使用しています。
Aspect ratio映像の縦横比です。
16:9が一般的です。4:3(=16:12)は、古い規格の、テレビ放送等で使われていた縦横比です。
Rotateツマミ映像の最終出力を回転します。
Zoomスライダ映像の最終出力をズームします。

動画ファイルを出力する手順

  1. メインタブの「Export Videoボタン」を押して「Video export settingsダイアログ」を開きます。出力先ファイルを設定します。
  2. PresetドロップリストでYouTube HD (1080p)YouTube 4K (2160p)を選択します。
    注意:4kビデオファイルは、1080pビデオファイルと比較しておよそ4倍のファイルサイズになります。これらのプリセットでは、H.264 MP4 CODEC(日本語)を使用しています。
    (訳注:FL20の画面上の選択肢とマニュアルの記述は違っているようです。たぶん「YouTubeナントカ」を選んだら無難、ということと思いますが、どれが適切かはネットやコンピュータ性能の動向に左右される、数ヶ月単位で変化する類の話とも思います)
  3. 出力する映像が細かいディテールを多く含んでいたり、動きが速い場合は、「Advanced export settings」で「Frames per second」を60にすると良いでしょう。
    注意:60fpsビデオファイルは、30fpsの場合と比較して、およそ2倍のファイルサイズとなります。
  4. ZGameEditor Visualizerが、FL Studioの「Master Mixer track」にロードされていることを確認してください。音声は、「Mixerチャンネルの音声」に加えて、「ZGameEditor Visualizerがロードされているエフェクトスロット」のものが利用されます。マスタリング用エフェクトを設定している場合は、それがZGameEditor Visualizerよりも「前」に置いてある必要があります。
  5. 「OKボタン」を押すとFL StudioのExportダイアログが表示されます。

レイヤー画面(「Mainタブ」左半分にあるパネル)

レイヤ画面上部(◎A <> ヽΨ Λ日 ▼)
◎A, B, C...レイヤのON/OFFスイッチとレイヤのタイトル名です。レイヤは最大50個定義することができます。レイヤ名は、後述の「Layer menu」から変更することができます。
Effect presetアイコン
< >
定義済みのエフェクトリストを前後して、エフェクトを選択します
Color selectorアイコン
ヽΨ
選択中のエフェクトが「Hue, Saturation, Color」といった色設定用コントロールを持っていた場合、ここから専用のダイアログで色の選択ができます。
Move layerアイコン
Λ日
このアイコンをクリック&ホールドしてドラッグすると、レイヤーの順序を移動することができます。
Layer menu:
Insert layerコマンドこのレイヤの左に、新たなレイヤを追加します。
Clone layerコマンドこのレイヤの右に、このレイヤの複製を追加します。
Move layer left/rightコマンドレイヤの順序を移動します。……というコマンドも用意してありますが、前述の「Move layerアイコン」をドラッグ&ドロップする方が簡単かも知れません。
Rename layerコマンドこのレイヤのレイヤ名を変更します。各レイヤには、デフォルトではA、B、Cといった名前が付けられますが、これを好きな名前に変更できます。
Collapse layerコマンドこのレイヤのレイヤ画面の表示幅を縮小します。大規模なプロジェクトで有効です。元に戻すには、縮小したレイヤをクリックしてください。
レイヤ画面中部
Audio Source
AUDIO SRC
ミキサートラックを選択します。SendToされるトラックか、サイドチェインされる対象のトラックを選択します。
Image Source
IMAGE SRC
レイヤーで利用する画像を選択します。利用する画像は、「Add content > Imageタブ」画面で画像ファイルをあらかじめ選択しておきます。ビットマップイメージのほか、ビデオファイル、WebCamの出力が利用できます。
Mesh
MESH
3Dメッシュ(立体を表すモデルデータ)を選択します。利用するメッシュは、「Add Content > Meshesタブ」であらかじめ選択しておきます。
To Buffer
◎TO BUFFER
ONにすると、「このレイヤが出力する映像」を「image buffer」に送ります。
(訳注:「そのレイヤの出力を画面に描画するのをやめて、表示されないウラ画面にこっそり描画しておいて、あとで使い方を考える」といった話です。概念の範囲が微妙に違いますが慣用表現として「フレームバッファ」とか言うとぴんとくる人もいるかもしれません)。

より正確に言えば、image bufferに送られるのは「このレイヤを始点として、左へひとつずつレイヤを遡っていき、To Bufferされているレイヤがあったらその右のレイヤまで」の「一連のレイヤが出力する映像」、です。
(訳注:この「一連のレイヤ」の区切りは、(FL Studio 20以降では)区切りごとに赤と緑に色分けされて表示されます。「緑色や赤色のレイヤはそれぞれ一塊、その映像はバッファに送られる」、「色つきでないレイヤのIMAGE SRCでそのバッファを指定して利用しない限り、色つきレイヤの映像は画面に出力されない」ということになります。くどいでしょうか。)

このimage bufferは、他のレイヤの「IMAGE SRCドロップリスト」から選択して、そのレイヤの入力として使うことができます。
To Bufferを指定したレイヤの次のレイヤ、つまり右にあるレイヤは、clean slateから新たに描画されることになります。
(訳注:言い換えれば、一番左のレイヤと同じく、画面クリアの状態から描画開始する)
こうした手順を必要なだけ繰り返し、最終的な映像を作り出すことができます。

(訳注:バッファの話は、「image bufferの中身がUIで視覚化されない」とこがわかりにくいかと思います。buffer入門には「Image effects」カテゴリにある「FourImages」エフェクトがおすすめです。「FourImages」は、ZGEVizのbufferの中身を並べて表示するエフェクトです。「レイヤを3つ用意して、レイヤAにElectric、レイヤBにLavaを設定してそれぞれToBufferする。CにFourImagesを設定して、IMAGE SRCにレイヤAを指定」みたいな使い方から始めて、レイヤの数や順序、操作手順を変えて徐々に複雑にして、何が起こっているか(そして現行バージョンでは何をすると動作不安定になるか…)を観察する、というのは学習に効果的と思います。より高度な「image bufferをヘビーに使ってかっこいい結果を得る」タイプのエフェクトとしては「BufferBlender」があります。扱いがむずかしいエフェクトかと思いますが、フォーラムで解説されている https://forum.image-line.com/viewtopic.php?t=160974 ので参考になるかも知れません)
レイヤ画面中部
[Effect Selector]レイヤーで利用するエフェクトを選択します(訳注:画面上ではAUDIO SRCのさらに上にあるドロップリスト)。標準添付のエフェクトのほか、独自のものを作成して利用することも可能です。独自オブジェクトを作成する場合は「ZGameEditorを使って新たなオブジェクトを追加する」を参照してください。
エフェクトのカテゴリ(前景寄り/背景寄り/加工/なんとも)
Background(5)主に背景として利用するために作られたエフェクトです。
Blend(2)他のレイヤーをブレンド(混ぜ合わせ)して利用するタイプのエフェクトです。
Canvas effects(16)背景キャンバス用に作られた、動くテクスチャです。
Feedback(8)入力されたビデオやイメージを加工してフィードバックするスタイルのエフェクトです。
Hardware(1)「DMX lighting control」です。これは外部機器の「DMXコントローラ」を制御するためのエフェクトです。利用するDMXコントローラは、「Settings > Enable DMX output」であらかじめ設定しておきます。
Image effects(11)入力されたイメージを利用するタイプのエフェクトです。イメージは、ビットマップやビデオファイルのほか、Webカメラのリアルタイム入力が利用できます。
Internal controllers(2)
Midi(3)(訳注:マニュアルに記述がないようですが、「音声」の替わりに「MIDI入力」を扱うタイプの視覚エフェクトです。利用するにはZGameEditor VisualizerのSettingsタブなどで手動で設定する必要があります)
Misc(5)「その他」のエフェクトです。
Object Arrays(11)多数の3Dオブジェクトを表示するエフェクトです。
Particles(7)パーティクルを扱うエフェクトです。
Peak effects(11)音声のピーク入力に反応するタイプのエフェクトです
Physics(4)「重力」や「衝突」といった、物理シミュレーション的な動きを扱うエフェクトです。
Postprocess(22)「ポストプロセス」です。「左側にある他のレイヤーの出力を利用して加工する」タイプのエフェクトです。「このエフェクトが利用するレイヤー」の指定は、利用されるレイヤー側であらかじめバッファにSend(TO BUFFERトグルをON)、そのバッファをImage Srcで選択、という手順で行います。
Scenes(7)「3Dシーン」型のエフェクトです。リアルタイムにレンダリングされるシーンであり、さまざまなコントロールが行えます。
Terrain(2)「3Dテレイン」型のエフェクトです。
Text(3)「テキスト」型のエフェクトです。テキストは「Add Content > Text」、「Add Content > HTML」であらかじめ指定しておきます。テキストの一行一行は、各レイヤーで個々に扱うことができます。詳細は「Add Content > Text」、「Add Content > HTML」の説明を参照してください。
Tunnel(3)「トンネル」型のエフェクトです。

(訳者注:各エフェクトについては、「ZGameEditor Visualizerのエフェクト」ページにちょっとまとめてます(一部)。)

ヒント

  • ほとんどのスライダやノブで「右クリック」メニューからオートメーションクリップやイベントの編集を行うことができます(訳注:FL Studioの他のプラグインと同様です)。
  • ユーザーが指定したイメージやメッシュ(3Dモデル)を入力として利用できるエフェクトは多いです。
  • 何から手をつけていいかわからないときは、エフェクトカテゴリメニュー(訳注:「レイヤー画面」でなく「プラグイン画面」右上の〈 〉を右クリック等)から「Randomize」を利用してみましょう。「ちょっと手を入れてみよう、と思える面白げなエフェクト」が画面上に出てくることもあるでしょう。

(訳注:「Randomize」の仕様はバージョンごとで変わったりもしているようで面白げなエフェクトが出てくることはたしかにありますが、FL20時点では期待しないほうが良いでしょう。'Randomize'は本当に「エフェクトをランダムに選んで」、「パラメータをテキトウにセットする」という動作をしているようで、仕組み上「一瞬で消える」とか「画面上に見えるところには何も出ない」とか、それこそ「何から手をつけていいかわからない」なんてこともよくあるようです(「一番左にPostprocessを置いたり」とか「一番右に不透明のSolidColorを置いたり」ということもままあります)。
「リセットマラソンが大好き」という人でないなら、まずは「Randomize」じゃなくその上に並んでいる「普通のプリセット」を一通り試してみるのをお勧めします。「プラグイン画面右上の〈 〉で表示されるプリセット」は「エフェクトのプリセット」じゃなく「エフェクトの組み合わせのプリセット」であり、「見栄えがするように人間が調整した完成品」なので、まずはその辺から選んで「鑑賞する」、「気に入るのを探す」、「ちょっと手を入れてみる」、「なぜそう動くのか考えてみる」とかするのがいいんじゃないかと思います)

「Add Content」タブ

この画面では、画像、HTML、テキスト、メッシュ(3Dモデル)、ビデオなどといったカスタム素材を指定できます。ここで指定した各種素材は、各エフェクトの画面上部にあるIMAGE SRC、MESH SRCといったドロップリストで選択して利用します。

Imagesビットマップ画像です。
ほとんどの画像フォーマットがサポートされています。ここで設定した画像をエフェクトで利用する際は、利用するエフェクト画面のIMAGE SRCドロップリストで指定します(画像を指定できないエフェクトもあります)。
Add pictures等のボタンを押すとファイル選択ダイアログが開きます。追加されたファイルは画面下のリストに表示されます。
Add pictures:画像ファイルを選択します。多くの画像フォーマットに対応しています。
Add videos:動画ファイルを選択します。動作中のPCで扱えるCODEC(訳注:ビデオファイルの内部形式)であればほとんどのフォーマットを扱えるはずです。
Add WebCam:ウェブカメラを選択します。複数選択することもできます。OSがサポートするWebカメラであれば利用可能です。
Add FL Window:PlaylistやMixerなど、FL Studioのウィンドウが選択できます(訳注:(FL 20.0.2では)使おうとすれば気がつくと思いますが、「見切り発車の実験的実装なので公式フォーラムでバグレポートしてね(This feature is highly EXPERIMENTAL. Please report any issues on Image-line forums.)」、「縦横倍率設定できるけどExport時にしか反映されないよ(The width/height settings is used during export. .)」、「対象のWindowは開いてないと画面にでてこないよ(With realtime preview it will show the current resolution of the captured window. The captured window must be visible in FL to let the Visualizer capture it)」といった注意事項が設定画面に書かれています。実際、問題はあるようです。余談ですが個人的には「Lantern」で使うのがお気に入りです)。
Remove:下のリストで選択中の画像や動画などをリストから削除します。
HTMLHTMLに似たコードを記述してをテキストフォーマットとして利用します。「Text > TextTrueType」エフェクトで利用されます。コードの仕様については、このタブ画面の右にあるヘルプに使用例があるので参照してください。またチュートリアルビデオ「FL Studio Guru|ZGameEditor Visualizer Text & Lyrics」があるので、そちらも参考にしてください(訳注:英語ですが「"FL Studio Guru"らしい、気合の入った見て楽しいビデオかと思います)。
Textテキストです。「Text > TextTrueType」、「Text > MeshText」、「Text > TextDraw」の各エフェクトで利用されます。各エフェクトの「Text Line」スライダで指定した行が1行ずつ利用されます。(訳注:「TextTrueTypeで日本語を使うにはFL12.4以降推奨」、「MeshTextとTextDrawでは日本語はどうやっても使えない」です。「ZGameEditor Visualizerのエフェクト」ページのTextカテゴリも参照)
Meshesメッシュ(3Dモデル)を指定します。「.3dsフォーマット」の3Dメッシュが指定できます。いくつかのエフェクトで利用できます。(訳注:.3dsはAutodesk社のソフトの標準フォーマットです。ニンテンドー3DSとは関係ないです。.3dsフォーマットは対応する3Dソフトが多い=ほかの3Dフォーマットでも、どうにかして.3dsファイルには変換する方法があると考えてよいと思います)
Video cue pointsビデオの再生開始位置となるキューポイントを、秒単位(小数指定可)で、70個まで指定できます。(訳注:当然ですが'Video cue points'はビデオを利用するエフェクトでないと意味がありません)。ビデオの利用は「'Image Effects > Image'」エフェクトでIMAGE SRCドロップリストで指定するのが一番簡単でしょう。

セットアップ:SettingタブでMIDI INポートをMIDI Outポートと合わせる(MIDIチャンネルも合わせる)。
キューポイントのトリガ:MIDI Outチャンネルで演奏されたMIDIノートが、設定したcue pointからの再生のトリガとなる。Cue-pointはリストの1行目をC5として、以下自動で設定される。
特殊な指定:キューポイントのリストでは、秒指定の替わりに「play」、「stop」という記述もできる。

HTML(「Text > TextTrueType」エフェクト)の使い方補足:

  • コード例
    <p align="center">[textline]</p>
  • 使い方:上のソースコードをHTMLタブで入力します。Main画面で「Text > TrueTypeText」エフェクトを選択します。「SingleLineMode」をオンにします。「Text Line」コントロールをオートメーションなどで操作します。上のソースコードは最低限のものです。必要に応じて、太字、イタリック、テキストサイズなどHTMLの記述で装飾してください(訳注:「HTML的な」専用の記法です。入力フィールドの右側のヘルプを参考にしてください。CSSとかはたぶん使えません)。

「Settings」タブ

MIDI portエフェクトのいくつかは、MIDI入力やコントロールを利用します。ここでは、ZGameEditor共通で利用するMIDIポートを0から255の値で指定します。「...」を指定するとMIDIポートを利用しません。
MIDI OutとZGameEditorのポートは同じ値としてください。
MIDIチャンネルについて:MIDIを利用するレイヤーが複数ある場合、「MIDIを利用する最初のレイヤーから16番目のレイヤーまで」に対して、「MIDIチャンネルの1から16番」が自動的に割り当てられます。
MIDIチャンネルの振り分けは、FL Studioの「ピアノロール」の機能である「MIDI Note colors」や、「MIDI Outプラグイン」の設定で適切に設定する必要があります。
AntialiasONにすると、Open GLの4xオーバーサンプリングを利用してグラフィックを滑らかにしようとします

訳者補足:
also for rendertarget:内部で使用するフレームバッファについてもオーバーサンプリングを行います。メモリ使用量が増加し、GPUに拠っては処理できない可能性があります。

(訳注:PCのグラフィックボード(とOSの設定)次第と思われます。ONにして良くなるならONにすると良いでしょう。「Anti-alias(アンチエイリアス)」とは「ビットマップ画像を拡大するとギザギザになるのを、中間色を駆使してどうにか見栄えよくする」といった意味で、CG方面でよく使われまる用語です。DTM方面でも似たような意味で使われてた気がします)
Stereoscopic3D系エフェクトでの立体視(平行法)モードのオン/オフです。複数イメージの合成の際に奥行きを与えます。

訳者補足:
none:立体視非対応の、元の映像が出力されます。
Side by side full:左右の眼のための画像を、横に2つ並べて出力します。1280x720の映像なら2560x720で出力されます。
(補足の補足:ファイルへの出力時限定であり、リアルタイムモニタはSide by side halfモードで出力されるようです)
Side by side half:Side by side fullと同様ですが、全体の幅を半分にします。

(訳注:仕様がまだ謎なんですが、どうも「レイヤとレイヤの間に奥行きを設定する」という挙動をしているようです。確かに立体視できそうな雰囲気はあるんですが、一方で、私の理解する範囲では「ZGameEditor VisualizerはそもそもDepthをそんなシビアに扱ってない」ので「ユーザーが期待する結果が得られているか」は、まだちょっと疑問があります。多くのエフェクトは最初から「板ポリに!generative art!なtexture!」という作りになっているはずですし「レイヤ間でやり取りされるフレームバッファはcolor bufferのみでdepth bufferはない」と思うので、その理解が正しければ、これは「各レイヤはどうやっても平面」+「その平面同士に間隔がある」という仕組みであり、その辺を意識して利用しないと「立体的に見えるはずの部分が平面的に」見えたり、うっかりすると「手前にあると期待するものが奥に」あったり、結構脳に負担がかかることになるような気がします)
Enable DMX outputZGameEditorから「DMXデバイス」ハードウェアを利用するための設定です。DMXとはMIDI機器の一種で、照明機器の制御を行うための機械です。おもしろい機械で驚くほど安いのでeBayをのぞいてみると良いでしょう(訳注:と、マニュアルには書いてあります。「eBay」はアメリカの汎用通販サイトで日本から利用するのは根性が要るかもしれません。あんまりどこにでも売ってる機械ではないようですが「DMXコントローラ」で検索すると国内でも販売店が見つかると思います)。
Spectrogram band count「周波数スペクトル」型エフェクトでのバンド数を指定します(訳注:FL Studioユーザーなら言葉になじみがなくてもWave CandyプラグインとかEQUOイコライザプラグインとかで見たことはあると思います。「EQUOの縦棒の数」と思えばだいたい合ってるはずです)。バンド数を増やすとかっこいいですがCPU負荷は高くなります。
Internal FFT precision音声信号処理の際の、内部的なバンド数を指定します。値を大きくすると正確さが増す一方、処理の遅延の原因となります(訳注:FFTはFast Fourier Transform=高速フーリエ変換。音声信号とかをデジタル処理するときによく使う計算法。らしいです。上の"Spectrogram band count"の「中の人」と考えればだいたい合ってると思います)
Reset defaults設定をいじりすぎてわけがわからなくなった時に押してみましょう。あなたの混乱は治ります。多分。
Internal Controllers(訳注:FL12.4以降で実装されたようです)
オンにするとプラグインの映像出力がフレーム単位で解析され、内部的に、「Red(赤)」、「Green(緑)」、「Blue(青)」、「Luminance(明度)」4つのコントロールソースが生成されます。
(訳注:オンにしなくてもコントロールソースの参照自体はできるようですが、値は変化しません)。

例として、「全面が赤いビデオ出力」であれば「Red=1, Green=0, Blue=0, Luminance=0.2(概算)」となります。
各値は、以下の2つのモディファイアで調整可能です。
Base:元の値のオフセットを設定します。
Volume:元の値の倍率を設定します。
(訳注:仕組み的には「リアルタイムで変化する0から1の数字を出力する」というものであって、使い方は他のFL StudioのInternal Controller(Fruity Keyboard Controllerとか)と大差ないので、そちらのチュートリアルとかが参考になるかなと思います)

(訳注:で、これを「何に使うのか」というか「どういう時使いたくなるか」というあたりは、まだよくわかりません。さしあたって「画面の色とライトを同期させる(画面が赤いときは部屋が赤くなる)」とかいう仕組みを作ることはできるかなと思います)

(訳注:これらのinternal controllerは、ZGameEditor Visualizerプラグインの外からも使えるので「映像を合わせるのでなく映像に音を合わせる」ことができる、つまりさらに踏み込んで「WebCam入力の赤要素で音を変化させる」とか「カメラの前を人が通るとチャイムが鳴る」とかいうこともやろうと思えば多分できます。まあ、いずれにせよ「どういう時使いたくなるか」はまだよくわかりません。)

「エフェクト」をコントロールする

エフェクトを「コントロールする方法」は3種類あります。「各エフェクトがコントロールに対してどういう反応をするか」については、各エフェクトのデザイン次第です。
(訳注:「各エフェクトが、どのコントロールに対して、どういう反応をするか」については本当に色々で、「音には反応しない」、「テンポには反応する」、「スライダ以外にはまったく反応しない」、「反応の度合いを調整できる」とか、かなりの幅があります。「実際に触ってみてね」ということと思います。「ビジュアルエフェクト」なので言うまでもないかも知れませんが「他のレイヤの映像や映像のバッファの影響も受ける」ので、それらも入力(=コントロール)と考えることもできるかもしれません)。

「音声データ」によるコントロールオブジェクトの多くはオーディオ入力に反応するパラメータを持っています。低音、中音、高音それぞれの周波数に対して、それぞれ違った視覚的反応をするようにデザインされているものも多いです。
ヒント:「エフェクトに影響を与えるミキサートラックを、一旦Fruity Peak Controllerプラグインにリンクする」、「ピアノロールやパターンクリップをFruity Envelope Controllerプラグインにリンクする」など、他の制御用プラグインを経由することで、パラメータやスライダを狙い通りにコントロールすることが可能です。
(訳注:Fruity Peak ControllerプラグインでZGameEditorを操作する手順やメリットなどについてはYoutubeの(Image-Line公式でない)動画「How to master the ZGameEditor Visualizer 2 in FL Studio 12 - Tom Solid explains」で詳しく解説されています)
DAWの「オートメーション機能」によるコントロール操作したいスライダなどで右クリックメニューから「Edit events」、「Create automation clip」、「Link to controller」といったコマンドを使えば、FL Studioのおなじみの機能を使ってビジュアルを制御することができます。
「MIDI Input」によるコントロール1)プロジェクトにMIDI Outチャンネルをロードする。
2)MIDI Outのポート番号とZGameEditor VisualizerのMIDI inputポートの番号を合わせる。
3)以上の手順で、MIDI OutチャンネルのMIDIノートやコントロールデータからZGameEditor Visualizerのコントロールパラメータが制御できます。

「ZGameEditor」を使って新たなオブジェクトを追加する

新たなオブジェクトを追加するには、

  • 「FL Studioのインストールディレクトリ("C::\Program Files (x86)\Image-Line\FL Studio"等)」の下の
  • 「Plugins\Fruity\Effects\」の下に
  • 「ZgeViz\FgAndBg」というディレクトリ(訳注:私のFL12.3環境では「"ZGameEditor Visualizer\FgAndBg"」となっています)

があるので、そこに自作の「*.zgeproj」ファイルをコピーします(訳注:例えば、ZGameEditor Visualizerに標準でついてくる「8x8x8_Eggsオブジェクト」は「01. 8x8x8_Eggs.zgeproj」というテキストファイル(=XMLファイル=ZGameEditorのプロジェクトの保存形式)で定義されています。こういうファイルを自作して、上記ディレクトリに置くと利用できるようになる…はずですがまだ試していません)(訳注:FL12.3では、"ZGameEditor Visualizer\FgAndBg"じゃなく"ZGameEditor Visualizer\Effects\"にカテゴリごとのディレクトリを作ってそこに置くのが正解のような気もします)。

新たなオブジェクトを作るには、「オープンソースソフトのZGameEditor」を(訳注:くどいようですが「ZGameEditor Visualizer」プラグインとは別の「ZGameEditor開発環境」のことです)ダウンロード、インストールする必要があります。ZGameEditorは公式サイトからダウンロードできます。

インストールができたら、以下のビデオチュートリアルを視聴してZGameEditorの使い方を学習するとよいでしょう:

(訳注:ビデオは操作をなぞるもので丁寧且つボイスなしなので英語の問題はなかったりします。具体的に手を動かす参考になる一方で、概念的な説明は全くないので、「開発環境」一般の予備知識がないなら「テキストの方のチュートリアル」も目を通した方が良いような気がします)

ビデオタイトル概要(訳者コメント)
準備
01 - Getting Startedはじめに
公式サイトの見つけ方、ダウンロード、インストール、起動、までのガイド(サイトは2016/09時点ではレイアウトが変わってるようですが)。
基本操作:(おおむね公式サイトのTutorial1に相当)
02 - Designer LayoutZGameEditorの画面レイアウトとその基本操作
 ごく一般的なUIです。
03 - Project Treeプロジェクトの構造。
プロジェクトはツリー構造で表現されています。画像リソースの識別子の宣言とかコードで書いちゃいそうな要素も全部ツリー構造で表示されるのは特徴かも知れません。よく知りませんが。
ビデオはアプリ制作時の基本操作の紹介にもなっています。
04 - Real-Time Previewリアルタイムプリビュー
完成時のイメージや各種プログラム要素を開発環境の中でで表示する機能の紹介。開発時には頻繁に使う機能で、ほかのチュートリアルでも何度も使われているようです。
05 - Component Propertiesプロパティ」の扱い。
UIからのプロパティ設定操作。またコードを記述してアニメーションする操作例。
プロパティって何?という人はとりあえず「画面に『絵』を表示するときにそれが画面上の『どこ』に『どんな大きさで』表示するかを『数字で表現する』もの。それが『絵』のプロパティ」とか思っておくと遠くないはずです。その応用で、「どんな絵か」とかに名前を付けてプロパティでその名前を指定したりとか「どんな風に表示するか」とかいうのをプログラミングしてそれに名前を付けておいて、プロパティで指定することで「そんな風」に表示されたりとかいう場面がチュートリアルビデオでしばしば出てきているようです。プロパティという言葉はコンピュータ言語一般で(特にオブジェクト指向言語で?)わりとよく使われる言葉です。Windowsでファイルを右クリックするとメニューの一番下に出てきたりするかも知れません。
06 - Build Executable単純なアニメーションをするアプリの定義、プロジェクトの保存(2:06-)、開発環境内でのテスト実行と停止(2:19-)、
ビルド&ラン=開発環境がなくても起動できる.exeファイルを生成して実行(2:28-)してみるというビデオです。
「ビルド&ラン」のとこはFLの文脈だとFLが内部処理で自動でやってるはずなので別にここでやらなくてもいいと言うこともできるのかも知れませんが、エフェクトを自分で開発している段階では何度もテスト実行をする機会はあると思うのでしっかり確認しておいてもバチは当たらないと思います。
本題は「実行」のところだけなわけですが、そこまでに相当「応用的なこと」をやっているように思います。ビデオ01から順番に見てきただけでは全部理解できるものでもないと思うので、あんまり深く考えずビデオを止めながら実際手を動かして流れをなぞってみて、ほかのビデオを見たりしばらくしてからもう一度戻って来て、いろいろ発見したり手際のよさに感心したり自分でもできるようになってることに感動したりするとよいのかも知れません。
入力とか出力とか
07 - Texture Mappingテクスチャマッピングの扱い方。
プロジェクトへのビットマップテクスチャの追加(0:09-1:16)、プロジェクトへのメッシュ(注:3Dモデルです。3Dソフトでは割と一般的に使う用語のようです)の追加と簡単な設定(1:16-1:50)、プロジェクトへのモデルの追加、モデルとさっき登録したメッシュやテクスチャとの関連付けとテクスチャのための各種プロパティの紹介(1:51-4:05)
08 - Bitmap Font文字を表示する
ここでは文字が描かれたビットマップファイルを加工して文字として表示しています(ちゃんと見ないとわかりませんがもしかしたらOS上でいう文字を表示する機能は「ない」のかも知れません。だとすると日本語を扱ったりするのはこの方法を使って強引なことをやるしかなかったり。想像ですが)。
プロジェクトにビットマップテクスチャの追加(0:08-0:48)、プロジェクトに「フォント(注:OSのフォントと関係なく「文字が並んだビットマップを1文字ずつ切り出してフォントっぽく扱う機能」のようです。Fluity Danceプラグインと似てるかも)」を追加(0:49-1:07)、プロジェクトに、さっき作った「フォント」を扱うためのマテリアルを追加(1:07-)、
「リアルタイムプリビュー」を常に行うように設定(1:32-1:39)
レンダリングに使うマテリアルをOnRenderイベントで宣言、テキストを画面表示するためにRenderTextを追加して文字列を設定(1:39-2:04)
RenderTextコンポーネントの各種プロパティ調整の操作例(2:04-2:29)。
 注:このビデオではDina.bmpだかいう128x128のファイルを使ってるんですがこれがどこかで調達できるかは不明。入手のアテがない場合でも、Windowsのペイント(ペイントブラシ)でもGimpでも、ドット単位で絵が描けるソフトを使える人を調達してこの動画を見せればあとは人徳かお金で何とかなるかもと思います。
09 - Keyboard Inputキーボード入力の扱い方
注:ちゃんと見てませんが、これはZGameEditorで「ゲームを作る場合」に超重要な機能で、「FL Studioの文脈で使う場合」は関係ないかも知れません。「BitPadZ」みたいな、自身に編集機能があるような特殊なエフェクトでは需要もあるのかも知れません。
10 - Play Soundサウンドの再生
オーディオエディタ
 注:「自体をシンセサイザーとする」機能のようです。これもZGameEditorとしては重要(というかおもしろい)機能と思われますが、「音声出力はしないはず」のFL Studioの「ビジュアル」オブジェクトを作る上では、縁がない機能かも知れません。ちゃんと見てませんが。
11 - Audio Editor
12 - Import 3DS3DSファイルをインポートする
ビデオを見ると一目瞭然ですが「3Dモデルを読み込んで表示する」という話題です。ビデオではさしあたって"Plane.3DS"という飛行機の3Dモデルデータを使っているのですが入手方法とか「とりあえず使ってみるためのデータ」がどこかにあるかは不明です(ちなみに"Plugins/Fruity/Effects/ZGameEditor Visualizer/Content/Meshes/"にある"Plane.3ds"は「飛行機のプレーン」じゃなく「平面のプレーン」のモデル) 。「とりあえず何でもいいから3DSデータが欲しい」という場合は、"Plugins/Fruity/Effects/ZGameEditor Visualizer/Content/Meshes/"にある"Monkey.3ds"あたりを使うと良いかもしれません。「実用上は位置やスケール合わせ(ビデオで3DSやビットマップの読み込みの時に、データに合わせていろいろ調整しているところ)」とかそれほど簡単でもない問題もあると思います。「MMDデータを踊らせる」とかいう話になるとまだ何段階かハードルがあるような気がしますが、2016/08頃から、「Adobe Fuse+mixamo」で製作したモデルを躍らせる「Mixa-Dance」というエフェクトがImage-lineの公式フォーラムで配布されています。mixamoはボーン付けとアニメーション付けに特化したWebサービスで、べつにAdobe Fuse以外で作ったモデルを与えることもできるようです。実際「mixamoとblenderの連携」なんてページもmixamo公式にあったりするようです。
プログラミング
13 - Writing Expressions「式」の記述
いわゆる「プログラミング」、あるいは「コーディング」の話題です。ちなみに言語が何かということについては公式サイトをざっと見る限り「Cみたいなスクリプト言語」という以上の説明はないようです(コンポーネント名としての"ZExpression"というのが便宜上「言語の名前」になってるような気もします)。ビデオの内容は「Unityとか扱える人」ならカンで理解できると思うので、そういう人を確保できると基礎知識の習得のショートカットができるかも知れません。「ZGameEditorのソースコードエディタ」の補完機能はそこらのWeb開発環境よりしっかりしてる(というより開発環境や言語が理論上補完可能な仕様になっている)印象なので、言語を知らなくても書いていけるようになってるように思います。使い込んでませんが。
14 - Create Model「モデル」の作成
ここでいうモデルはZGameEditorでのプログラム単位としてのモデル…ということのような気がしますがまだよくわかってません。本質的に理解するにはたぶん「OpenGLプログラミングでのデータ構造」とかの知識が必要なような気もします。
ビデオは「総合的、応用的な話題」のようで、すごくいろいろやってます。見た目上「マウス操作」が多いですが、やっていることは「変数の宣言」とか「フラグの定義」とか「イベントの定義」とかいった、ガチガチの「プログラミング、コーディング」がほとんどのようです。
15 - Spawning Clones「Spawn」する
すいません。まだよくわかってないです。が、この機能はZGameEditorVisualizerのエフェクトで多用されているので要チェックです。たぶん、「Java屋から言うとmodelをクラス宣言としてインスタンスを作る」、「Unity屋から言うとプレハブのインスタンス化」みたいなことをやってて、同じモデルで座標だけ異なるものを、このビデオでは4つ作ってるんだと思います。
とか説明してわかるような人なら説明しなくてもわかるような気もするのでよくわかってないなりにもうちょっと噛み砕くと、「画面に4つ、絵を表示させたい」場合に「プロジェクトツリーに絵を4つ定義してそれぞれ表示する」のでなく「絵をひとつ定義して「それと似たもの」を4つ表示させる」という方法の話です。たぶん。
16 - Collision Detection衝突判定
すいません。あんまり詳しく見てないんですが「衝突判定」です。画面上(というか3D空間上)に描かれてるものがぶつかった時の処理です。シューティングゲームとかで「自機が、敵機とぶつかると、爆発する」とかいう話で、この動画では「Cursorというのが自機でマウスカーソルについて動くという仕組みを定義」、「Sphereというのが敵機で、縦横比16x9の画面上のランダムな場所出現する仕組みを定義」、「敵機が何かとぶつかったらもっともらしく吹っ飛ぶ仕組みを定義」したあと、「自機と敵機はぶつかるけど敵機と自機はぶつからないと定義」、「自機を1つ敵機を8つ出現させる」、ということをこの手順でやってるようです。とか言ってこれも読んで意味がわかる人は読まなくても意味がわかるような気もしますが。
実際のところZGameEditor Visualizerのビジュアルエフェクトに必要かと言えば「必須ではない」と思いますが、使えば面白いエフェクトになることはあるかと思います。……とかいいつつFL Studio添付のビジュアルエフェクトの中で衝突判定していそうなもの(Phisicsカテゴリのいくつか)を見てみたんですが、衝突判定にはこの機能じゃなくZgeBulletというライブラリを使ってるような気もします。よくわかりませんが。
リリース
17 - Compress Build.exeファイルの圧縮
簡単なアニメーションを表示するアプリケーションを定義(0:00-)した後、実行してエラーがないことを確認する(1:25-)ところまでは、ビデオ「6 - Build Executable」と同様ですが、そのあと.exeファイルのサイズが44kbytesであることを確認した後、圧縮してサイズが29kbytesまで小さくなっているのを確認している(1:52-)ようです。
ちなみに文字通りに圧縮しているようで、公式サイトのチュートリアルに「UPXに感謝を」とか書いてある通り、コマンドラインツールのUPXを使っているようで、ビデオでも「黒い画面」が一瞬表示されています。アプリケーションやスクリーンセイバーを作って「再配布」する時にはこちらの手順を踏むとよいのでしょう。

それはそれとして、FL Studioの「ZGameEditor Visualizer」では、プロジェクトファイルから自前で実行形式にしていると思われるので、この手順が必要になることはないと思います。要は「FL Studioユーザーには関係ないビデオ」と考えてよいと思います。

訳者注:ZGameEditor(Visualizerじゃなく開発環境の方)のバージョン
FL12.3のZGameEditor Visualizer2のエフェクトは、ZGameEditor3.0(2016/09/21現在の「ベータでない最新安定版」)では編集できないものがあるようです。ざっと見た感じ、zgeprojファイルのタイムスタンプが2014年以降のものZGameEditor4.0betaで開く必要がある、ということのようででした。ZGameEditorのダウンロードページには「It is recommended that you use the latest beta version.」と書いてあるので、ZGameEditorについてはベータという表現に対して変に気を使わず「言われた通り最新ベータを使う」のがよさそうです。

(おまけの訳注:開発に関しては、上記ビデオ以上に「簡単な」チュートリアルはない(というよりZgeViz4の現行の開発リソースを使う限りこれ以上簡単に説明するのが理論上でも不可能)と思ってた方がよいかも知れません。「入り口」としては「ZgeViz用エフェクト開発の手引き(原文はZgeViz: effect development documentation)」があります。とはいえ実際のところ「既存のエフェクトの.zgeprojファイル」を「開発環境にロードして」、「動かして」、「目で読んで」、「流用、改造する」のが「最短の方法」かなと思います)

クレジット

Pluginクレジット: Ville Krumlinde (ZGameEditor Visualizer), Tsviatko Jongov (Video encoder), JPH Wacheski (scripts) Steven Magyar (development testing).


トップ差分 バックアップ リロード  一覧 単語検索 最終更新 ヘルプ最終更新のRSS
Last-modified: 2018-06-08 (金) 03:32:44 (2167d)