ZOLA_Unison、観察してみました

ZOLA_Unisonって? -型破りなライブラリをさらに一押し-

つい先日販売開始されたVOCALOID3の新ライブラリ(群)、ヤマハさんの「ZOLA PROJECT」。ボカロでは比較的珍しい男性の声、しかも3人分の歌声ライブラリが収録されていることでも注目されました。が、個人的にもうひとつ気になって仕方がなかったのが、ユニゾンやコーラスをさらにカンタンに実現できるという、同梱のJob Plugin「ZOLA_Unison」です。

実際に効果を聞いてみましょう。ここでは3ライブラリを同じ音程で歌わせており、上が「ZOLA_Unison」を適用する前の歌声、下が適用後の音声です。

  • ZOLA_Unison 適用前 Download
  • ZOLA_Unison 適用後 Download (Type: Unison)

適用前は3人の歌声がゴッチャになり、極端な話、まるでまったく別の一人(1ライブラリ)が歌っているようにも聞こえますが、適用後は3人の歌声がキチンとバラバラに、個性を持って聞こえてくるかと思います。もともと複数人で歌わせることを前提に作られたライブラリだけに、さらに手軽にユニゾンやコーラスを即戦力レベルへ持っていける、強力な後押しツールといえるでしょう。

今回は「ZOLA_Unison」について、どんな機能が搭載されているかを見て行き、適用結果から見て取れる処理の中身に触れながら、オススメの使い方まで紹介したいと思います。さらに蛇足として(笑)、以前自分が作成した、機能的に「ZOLA_Unison」に近い「Humanizer」についても触れていきます。

インターフェイスから眺める機能 -シンプルな選択肢と調整可能なパラメータ設定-

それではまず、ZOLA_Unisonの機能を調べるため、立ち上げたときのインターフェイスを上から見ていきましょう。

製品マニュアルでは2ページに渡り使い方が解説されていますが、ここではその表記にのっとり、一番上の選択式のリストを【Type】、それより下の6つのチェックボックスを【Parameter】と呼びます。

【Type】

Solo/Unison/Chorusの3つから1つを選択します。収録された3ライブラリをどう使いたいかに応じて選ぶかたちですね。
Soloは1ライブラリだけ使い、(ユニゾンさせたりコーラスさせたりせずに)ソロで歌わせる場合に適用してあげると、人間らしい「ズレ」を与えてくれます。
Unisonは、複数のライブラリでユニゾンさせる(同じ音程で声を重ねる)場合に適用することで、声がダンゴにならないよう、分離を改良することができます。(マニュアル上「2人」となってますが、3ライブラリ使う場合でも効果は得られるはず。)
最後のChorusは、異なる音程で複数ライブラリをハモらせる場合に使用します。得られるメリットは上記Unisonと同じく、音の分離がよくなることです。
UnisonとChorusはどちらも複数ライブラリを利用するときに適用する点で共通しますが、後述の通り内部の処理が異なるため、重ねる音が同じ音程か、異なる音程か・・でUnisonとChorusはキチンと使い分けたほうがよいでしょう。

なお、UnisonとChorusは、複数人の全員分のデータに適用する必要はありません。要は各データのあいだにバリエーションを持たせることが目的なので、基準となる1データ(メインパートのデータ)には適用せずそのままにし、重なる別のデータに対してのみプラグインを適用すればOKです。

【Parameter】

ここでは、6つ並んでいるチェックボックスでON/OFFをそれぞれ設定することで、VOCALOIDの様々なパラメータに対し、このプラグインで変更してよいかどうかを選ぶことができます。
上から順に、

  • Timing
  • Pitch Bend
  • Velocity
  • Bend Depth & Length
  • Decay
  • Delete Vibrato

と並んでいます。このあと何度か触れますが、実はこれらのうち一番上の「Timing」と2番目の「Pitch Bend」は、入力済みのデータに対し、場合によってはクリティカルな影響を与える(それまでにつぎこんだ調声の手間が無駄になってしまう)恐れがあるので、適用には慎重な判断が必要です。【2013/7/3追記:またその他のパラメータについても、オンにすることで、イメージと異なるかたちで変化が起きる可能性があり、具体的に何が起こるか・・特に、適用前のデータがある程度保持されるか否かを、事前に把握しておくと安全です。一つ一つ見ていきましょう。

Timing
発音タイミングをずらすかどうか。エディタ上の見え方で言えば、チェックを入れると、ノートを示す緑の長方形の左辺と右辺がずれることになります。(マニュアル上では「発音するタイミング」が変化するとありますが、場合により終了のタイミングも変化します。)注意が必要なのは、これをオンにして発音タイミングが変わっても、他のパラメータは影響されずにそのまま保持されるという点です。例えば、エディタの下のほうにグラフとして表示されるDYN(ダイナミクス)やPIT(ピッチベンド)といった、ノートのタイミングに依存しないパラメータは変化しません。このため、例えば音の微妙な強弱やシャクリの再現など、すでに手動でノートの発音タイミングに合わせて他のパラメータをシビアに調整してあった場合、プラグイン適用により発音タイミングがずれニュアンスが変わる可能性があります。ノートの途中でピッチベンドの値が飛んだりするとかなり目立つため、場合によっては調声をもう一度やり直す必要が出てくるかもしれません。
Pitch Bend
ピッチ(PIT:時間軸上での音程変化)をずらすかどうか。すでに対象範囲にPITのデータが入力済みの場合、適用時に「上書きするかどうか」を訊かれます。このとき、「はい」を選ぶと、入力済みのデータは白紙に戻った状態で、新たに揺らぎ用のデータが上書きされます。逆に「いいえ」を選ぶと、PITのデータは変更されず、ほかのパラメータに対して処理が行われます(つまりこのチェックボックスをOFFにしたときと同じ挙動)。上記Timingとは事情が異なりますが、こちらも「すでに行った調声が無駄になってしまう」というリスクがあります。適用前には警告が出るわけですが、それでもチェックボックスをONにする前には、一度立ち止まって確認するのが無難です。
Velocity
子音の長さを調整するベロシティのパラメータをずらすかどうか。VOCALOID2から3に変わって、ずいぶん効きがよくなったパラメータですよね。これは時間軸ではなくノートごとに設定されるパラメータなので、上記「Timing」がオンでノートがずれてもそれに追従してくれます。【2013/7/3追記:適用後は、元の値にプラスマイナス15?ほどの範囲で加算されるようです。
Bend Depth & Length
ノート内のピッチ変化の量と長さのパラメータをずらすかどうか。ノートごとに設定されるパラメータなので、「Timing」でノートがずれても問題ありません。【2013/7/3追記:適用後は、Soloならおよそ0-20(Depth)と0-10(Length)、Unisonならおよそ0-10(Depth)と0-20(Length)、Chorusなら0-15(Depth)と0-5(Length)の間のランダムな値で上書きされるようです。
Decay
ノートの末尾で減衰するタイミングを調整するパラメータをずらすかどうか。個人的には、分離感をよくするというよりは、歌い方のバリエーションを与えるという意味合いが強い気がします。これもノートごとに持つパラメータ。【2013/7/3追記:適用後は、およそ50-100の間のランダムな値で上書きされるようです。
Delete Vibrato
この項目は、ほかのものと少し性質が異なります。通常ソロの入力では、ノートごとにビブラートをかけるかどうかを決めていくわけですが、このチェックボックスをONにしてプラグインを適用すると、どのノートも一括してビブラートを無効にしてくれます。(正確には、ビブラートタイプが全て「Non Vibrato」に設定されるため、結果的にビブラートが消えるというメカニズム。)

このように、それぞれのパラメータのチェックボックスをONにすることで、異なる効果がデータに加わります。デフォルトではTimingとPitch BendがONになっていますが、後述のオススメの使い方などを参考に、いろいろな組み合わせを試してみるとよいと思います。

中身をオモテから探る -Solo/Unison/Chorusでかなり異なる処理内容-

さて、ここまではインターフェイスから機能をチェックしてきましたが、効果があることは確かとはいえ、気になるのは、実際にどんな処理をしているのか。ここでは、具体的にTimingとPitch Bendについて処理の結果を見比べながら、その内容を探ってみます。

Timing -Typeの選択がきっちり作用-

上の図は、同じデータのパートに対して、「ZOLA_Unison」の【Type】でSolo/Unison/Chorusを選択・実行し、上から順に並べたものです。結果がわかりやすいように、拍には青ライン、それぞれのノートの発音位置(長方形の左辺)には赤ラインを加えました。
SoloとChorusは、基本的にもとの時間より前にも後ろにもずれるようです。各ノートのはじめの開始位置に対して、プラスマイナスに一定の幅のランダムな値を加えていくイメージでしょうか。ただし、UnisonはSoloよりもその幅がかなり大きめです。これは、ユニゾン自体がボカロにとって多声感を出しにくい環境であるため、かなり強めに処理を加えているものと考えられます。逆にSoloの場合に適用される少量のずれは、あくまで隠し味的な位置づけなのでしょう。
一方、Unisonはというと、どのノートも元の開始位置より右(あと)にずれました。数パターン試しましたが例外はなく、内部的にこれが仕様のようです。Unisonの本動作については理由がちょっと分かりません(個人的には音が手前に出るケースがあってもいい気がします)が、【Type】の3パターンに対して、個別に調整されていることはたしかです。本プラグイン適用時には、名前が示すその利用シーンに当てはまるものを選ぶのがよさそうです。

Pitch Bend -Unisonで顕著に見られるズレ-

今度は、同じデータにSolo/Unison/ChorusをかけたときのPitch Bendを見てみましょう。どれも薄めにかかっているため、この図では「波」のかたちがよく見えませんが、3つのケースの振れ幅は結構違いますね。幅の大きさは

Unison >> Chorus > Solo

となっているように見えます。(もしかしたらChorusとSoloは同じかも?)やはり目立つのがUnison。Timingでも特徴が出ていましたが、多声感への対処の意味合いが強いと思われます。

では、ズレの「波」のかたちは三者間で違いがあるのでしょうか?今度は下図を見てみてください。

これは、それぞれのケースでできたPitch Bendの振れ幅を、限界いっぱいまで拡張したPitch Bendの図です。(拙作ジョブプラグインの中で一番マニアックな「Strength Converter」によるもの。)

・・Solo/Unison/Chorusのどの場合も、大きな特徴の違いはなさそうですね。ノートとはほぼ無関係にピッチの波を与えるスタイルのようです。一定タイミングごとに「山」や「谷」にあたる地点とランダムな値を与え、その間をつなぐ直線を描いていくイメージでしょうか。これなら、適用によるピッチの不自然さを抑えながら、ピッチ修正ツールへの耐性もありそうです(単純にノートだけで上げ下げすると、ピッチ修正で結局揃ってしまう)。

オススメの使い方 -注意点だけ気をつければ定番ツールに-

ZOLA_Unison」の最大の特徴は、やはりそのシンプルさ。お一人様ならSolo、同じ音程で声を重ねたければUnison、違う音程ならChorus。あとは、どれだけズレを加えたいかは、変更したいパラメータのON/OFFで調整する、という考え方ですね。
Soloを使う場合は、他の声と混ぜたときの多声感を気にしなくてよいので、すでに入力済み(調声済み)のパラメータは、チェックボックスをONにする必要は少ないかもしれません。逆にUnisonとChorusを使い多声感を出すことが目的の場合は、【Parameter】の並びの上部からONにしながら効果を確かめ、必要に応じてアンドゥ・再実行を繰り返して、ベストの結果を探るのがよいと思います。
ただし、すでに何度も触れたとおり、Timingがオンの場合は入力済みのノート非依存のパラメータとの乖離が生じてしまい、Pitch Bendでは入力済みのPitch Bend情報がすべて上書きされてしまいます。【2013/7/3追記:また、Bend Depth & LengthとDecayについても、適用すると、元の値を参照せず、一定範囲のランダムな値で上書きされるようです。特に、すでに調声したあとのデータに本プラグインを適用する際は、どのパラメータが変化し、どこに影響が出るかを意識して使用するのが安全です。
上記の注意点だけ意識しておけば、ZOLA PROJECTライブラリを使うときには必携のツールになるでしょうし、他のライブラリに対しても試してみる価値は十分ありそうです。


蛇足:ジョブプラグイン「Humanizer」について -コーラス用ツールの、もうひとつの選択肢-

実はちょうど1年前、「Humanizer」という名前で自作のJob Pluginを公開しました。

(現在も、VOCALOID STOREさんならびにサークル「遊楽団」サイトで配布中です。遊楽団サイトでは、この記事の執筆中にバグを修正した最新版1.0.0.2をダウンロードできます。)

「単純なデータコピーだとボカロのコーラスは響かせにくいし、直すのが面倒・・」という実感から生み出されたものでしたが、「ZOLA_Unison」を発表資料で見た瞬間ビビッと来ました。発売前から「ZOLA_Unison」に興味津々、ついに手元にあの3人組とプラグインが届いたので、早速いろいろと検証したわけです。

ちなみに、先ほど「ZOLA_Unison」で紹介したデモに、「Humanizer」をかけた音源がこれです。一つ目が、後述するスキルレベルを「上級」にしたもの、二つ目が「標準」にしたものです。

  • Humanizer 適用後(上級) Download
  • Humanizer 適用後(標準) Download

・・意外と、こちらもそれらしく聴こえませんか?(笑)

検証の結果、「ZOLA_Unison」と「Humanizer」の間で同じところ、異なるところがイロイロ見えて、非常に面白かったです。ここまでは「ZOLA_Unison」にフォーカスを当ててきましたが、ここからは蛇足として(笑)、「ZOLA_Unison」から見た「Humanizer」を解説しつつ、最後に「ZOLA_Unison」と「Humanizer」の使い分け方を紹介したいと思います。

「Humanizer」の機能

「Humanizer」のインターフェイスは下図のとおり。各項目の詳細説明はここだと長くなってしまいますし、プラグイン本体と一緒に配布しているドキュメントに詳細を記載しているので割愛しますね。(解説やデモは、公開時に作った動画によくまとまってますので、よければぜひご参照ください)


こちらでも、最初にタイプを選び、下で細部を調整する点は変わりません。機能の選択肢としてもかなり似通った構成になっています。

歌唱タイプの選択肢は下記の通り。

  • ポップコーラス
  • 合唱
  • ゴスペル
  • 読経
  • 子ども
  • 重ね録り
  • ヒューマナイズ

数は多いですが、「ZOLA_Unison」視点で見てみると・・

  • ZOLA_Unison」のSolo ->「Humanizer」のヒューマナイズ
  • ZOLA_Unison」のUnison ->「Humanizer」の重ね録り
  • ZOLA_Unison」のChorus ->「Humanizer」のポップコーラス/合唱/ゴスペル/読経/子ども

といった対応関係で、「ZOLA_Unison」のTypeとほぼ同じ目的の選択項目があります。
重ね録りはもともと単一ライブラリのユニゾンを想定しているので「ZOLA_Unison」のUnisonとは少し異なりますが、異なるライブラリに使用しても問題ありません。また、ポップスコーラス/合唱/ゴスペル/読経/子どもは、「ZOLA_Unison」のChorusがさらにジャンル分けされたもの、と考えると分かりやすいです。

また、最下部の「ビブラートをオフにする」チェックボックスは、「ZOLA_Unison」の「Delete Vibrato」と全く同じです。(ビブラートタイプを「Non Vibrato」に変換する処理も同じ。)コーラスは、ジャンルによるもののビブラートをしない場合が多いため、やっぱりあったほうがいい機能なんですよね。いちいち手動でコーラスパートの全ノートからビブラートをはずすのは面倒なので。。

一方スキルレベルは、選択肢自体が「ZOLA_Unison」にない、全く異なる機能です。上で選んだ歌唱タイプについて、どれくらいの量をもとのデータに対してかけるかを、この「スキルレベル」で選びます。初心者を選ぶと、たっぷりデータが揺らぐ分、どうしても下手っぴに聞こえます(笑)。逆に熟練レベルだとあまりデータが大きく動かず、正確に近いピッチやタイミングで歌いますが、うまく分離感が得られない場合が出てきます。

この通り、「Humanizer」にはデータを揺らす「量」を選ぶ選択肢はあるものの、逆に「ZOOLA_Unison」にある「パラメータのタイプ」を選ぶチェックボックスが存在せず固定です。「ZOLA_Unison」の【Parameter】に合わせて書いてみると・・

  • Timing -> ON固定
  • Pitch Bend -> ON固定
  • Velocity -> OFF固定
  • Bend Depth & Length -> OFF固定
  • Decay -> ON固定(「ビブラートをオフにする」ON時はOFF固定)
  • Delete Vibrato -> 任意(「ビブラートをオフにする」で設定)

というチェックボックス選択をした場合と同じような動作をします。

もっとも、「どのパラメータが揺れるか」という点が同じになったとしても、「どう揺れるか」というルールは全く違うはずです。例えばピッチベンドでは、「Humanizer」は「音がずれる→それに気付く→修正する→さらに揺れる」といったステージを想定して揺らしたり、さらに別の周期を足す・・といった処理を加えています。「ZOLA_Unison」の中の処理をうかがい知ることはできませんが、上記の検証で見たピッチベンドの波を見る限り、異なる実装になってるいことは確かです。

Timingの制約を受けない「Humanizer」

さて、ここまで注意深く読まれてきた方は、上の「Timing」と「Pitch Bend」がどちらもON固定となっているのを見て恐怖を感じるかもしれません。そう、ノートのタイミングがずれると、他のパラメータ(PITなど、ノート依存ではないパラメータ)の動きと同期しなくなり、入力済みの調声がおかしくなってしまう・・ということを、「ZOLA_Unison」の【Parameter】で説明しました。つまり、「Humanizer」は常に調声がおかしくなってしまうということ・・?

結論から言うと、そんなことはありません。実は、ずれたノートのタイミングに応じて、PITやDYNなどの非ノート依存のパラメータもすべて追従する仕組みになっているため、タイミングのずれの有無や、どれだけずれたかを意識する必要はありません。このあたりは、以前作成した、ボカロデータをスウィングさせるジョブプラグイン「Swing and Shuffle」(動画)で得られた知見を流用しています。

分かりやすいように、直線状にパラメータを描いてから「Humanizer」をかけてみました。タイミングが揺れてノートの始まりと終わりが元からずれても、パラメータもそれに応じて移動・変形しています。

ZOLA_Unison」と「Humanizer」との使い分け

同じ目的を内包する「ZOLA_Unison」と「Humanizer」。二つの選択肢があるとき、どのように使い分ければよいでしょうか。両者がカバーする範囲において「どちらがいい結果になるの?」というシンプルな質問に対しては・・明確な答えが出せません。ただ、今までの経験から、どちらの場合でも「ボーカロイドで消えがちな多声感を取り戻す」という目的に対しては、一定の効果を出すことが可能だと思います。(この記事のデモデータをぜひチェックしてみてください。)
「Humanizer」が得意とすることのひとつは、ノートのタイミングが揺れた場合でも、非ノート依存のパラメータを追従させる点です。このため、基本的に「ZOLA_Unison」よりも元のデータ(調声済みのものも含め)を活かしやすいでしょう。またスキルレベルを変更することで、ほんの少しだけ揺らしたり、逆に思いっきり(下手に聞こえるくらい)揺らしたりすることを選択できます。コーラス関連のタイプについても、「ポップコーラス/合唱/読経/子ども」と幅があります。
ただし、「ZOLA_Unison」と違い、適用するパラメータのON/OFFを設定することはできません。このため、上記の「Humanizer」が変更するパラメータについては、その変更具合をプラグインにお任せするかたちになります。また、歌唱タイプとスキルレベルの幅が逆にわずらわしく思える場面もあると思います。(一応スキルレベルは「標準」がデフォルトでオススメなのですが、いろいろ試して最適解を見つけようとするとそれなりに大変。)

ということで、使い分け方ですが。ZOLA PROJECTに最適化されているということもあり、ZOLA PROJECTでコーラスを組む場合は、「ZOLA_Unison」が第一候補でしょう。さらに、シンプルな使い勝手ですので、他のライブラリに対しても、(TimingとPitch Bend【2013/7/3追記:、Bend Depth & LengthとDecayのリスクを理解したうえで)特に調声をあまり加えていない段階で試してみるといいと思います。一方、強めに「揺らぎ」を与えたい場合や、ガチガチに調声済みの場合は、「Humanizer」が威力を発揮できるケースです。歌唱タイプとスキルレベルの組み合わせをいくつか試すと、ちょうどよい理想形が見つかるかもしれません。
その他、多くの場合は、「ZOLA_Unison」「Humanizer」とも適用が可能です。ここから先は、慣れや好き好みだったり、試した結果などを判断材料に、自由に選んでいただいて構わないと思います。

響かせて、あなたとボカロ。 -ツールが押し拡げる領域-

駆け足でしたが、いかがだったでしょうか。蛇足がずいぶん長くなってしまいましたが(笑)、ZOLA_PROJECTのライブラリと「ZOLA_Unison」のペアがもたらすインパクトは計り知れません。その手間から敬遠されることもあったユニゾンやコーラス(特に多数の場合)ですが、手軽に作れるようになった今、新しい音楽が生まれる下地がまた少し広がったのだと思います。機会があれば、「ZOLA_Unison」と、ついでに「Humanizer」を試してみてください。また、もし今その機会がなくても、いつか役立つ日が来るかもしれません。そんな時、「あぁ、あんなツールがあったな」と思い出してもらえるとうれしいです。