Nuendoで波形のバッチ処理っぽいことをやる!


この記事は KLab Creative Advent Calendar 2019 の 12日目の記事になります。

image3こんにちは!日々是胃に穴、サウンド・グループのemanonです。
昨年、私はAdvent CalendarにてKLab Sound Teamを紹介する投稿を致しましたが、今年は制作面でのお話をということで、サウンドデザイナー勢が大好きであろうと思われる「バッチ処理」について書かせて頂きます。

何故、私はNuendoでバッチ処理っぽいことをやるのか?

「何故Nuendo(注:またはCubase)でそんなことするの?SoundForgeでエエやん?」
(注:以降「Nuendo」と単独で記載させて頂きます。)

...という至極ごもっともな疑問を持たれる方が多くいらっしゃるかと思います。
まずは、そこに至る二つの要因についてお話致します。

要因1. SoundForgeを使用するにあたり、私の環境で不具合が出たことがあった。

ボイス整音処理を手伝うことになり、その作業用にSoundForgeのバッチを頂いたのですが、私の環境ではバッチ処理をした全てのボイスに「ビー!」と発振したような音がのってしまい、バッチ処理を自分環境用に再調整をすることになった。
(注:弊社の制作環境では使用しているソフトのver.をメンバー間で揃えています。)

要因2. Nuendoで作業中にSoundForgeを極力立ち上げたくはない!

Nuendoを使用されている方は体験としてわかると思います。Nuendoで立ち上げているプロジェクトで設定したサンプルレートとは異なるレートの波形をSoundForgeに放り込んでしまった際に、SoundForgeの設定が優先されてしまいNuendo側のレートが変わる!...というもので、極稀にやってしまうことがあって面倒に感じていた。

上記2大要因による些細なトラブルが度々あり、
「だったらNuendoだけでどうにかならんか?」と。

ただ、Nuendoはバッチ処理機能を持ってはいません。
しかし、楽曲制作・SE制作を通じて「機能の組み合わせで同じような結果が得られないことはないハズ!」という実感がありましたので、「似非バッチ処理」として検証を試みてみました。

以降、お読みいただく上で注意点が1点あります。
弊社の制作環境で使用しているNuendoはWindows10版のNuendo8となっておりますので、最新のNuendo10等と比較した際に差異が生じている可能性があります。その点についてはどうかご了承下さい。

1. プロジェクトファイルを作る!

なにはともあれ、似非バッチ処理をするプロジェクトを作らないと始まりません。
まずは、ボイス(mono音声)を似非バッチ処理する前提で、以下のように大変シンプルなオーディオトラック(mono)が1つあるプロジェクトを作ります。

image5

画像例。このようになっていれば大丈夫です。

2. プロジェクト設定を確認

画面上部にあるメニューの「プロジェクト(P)」から「プロジェクト設定...(J)」を選択。
以下のスクリーンショットのプロジェクト設定画面を表示させ、その中の設定項目の「パンニングのレベル補正」が0dBになっていることを確認する。

image26

上記画像中の「長さ」については、各自で適切な調整をしてください。

3プロジェクトに波形を取り込む

似非バッチ処理したい波形ファイルを用意し、先程準備しておいたオーディオトラックへとドラッグ&ドラッグでおもむろに放り込みます。

image6

すると、上記スクリーンショットにあるダイアログが表示されるので、「1つのトラック」を選択。

次に以下のダイアログが表示されるので、以下のようにチェックボックスにチェックを入れてOKを押します。

image25

すると...
プロジェクトファイルに以下のような感じに波形が取り込まれます。
音量にバラつきの見られる、まだ未調整のwavであることがわかりますね。

image19

4プールを開いて波形を仮想的に整理

次に画面上部にあるメニューの「メディア(D)」から「プールを開く(O)」を選択。
現状では以下のような状態になっているので、これを整理します。

image21

プール内、最上部にある赤く印のついた「Audio」フォルダを選択し、右クリックメニューから「フォルダーを作成」をします。

image14

出来たフォルダーに分かりやすいように名前をつけ、その中に波形を移動します。
以下例では「original」としました。

image11

ここまでプール内の波形を整理しましたので、一度プロジェクトのAudio実フォルダを見てみましょう!

image15

あれ...originalフォルダに入っていない!?
これはどういうことかというと『プール内では仮想的にファイルを管理することができる』ということを意味しています。この違いを理解していると、Audioデータをより効果的に使用出来るようになると思います。

5下ごしらえ処理としてノーマライズをかける

放り込んだ波形のイベントを全て選択し、ダイレクトオフラインプロセッシングを使ってノーマライズをかけて大雑把に音量感を合わせます。image23

ちなみにダイレクトオフラインプロセッシングでは、お気に入りの処理を作って登録させておくことが出来ます。更に!そのお気に入りに対してショートカットを当てられるので、波形を放り込んだ後で良くやる処理などを作り込んでおけば、楽できる場面結構あります!

6下ごしらえ処理したトラックのインサートにエフェクトを差す

トラックを再生させながら、ローカットしたりコンプかけたりディエッサーかけたりして、良い塩梅になるようにエフェクトの設定を追い込んで行きます。

image7

上記スクリーンショットは『あくまでも一例』ということでお願いいたします。
バッチ処理をする波形群の状況に応じて必要な処理は異なってくるので、音を聴いて各自判断して適切な処置をして頂ければ幸いです。

<例>
同じ声優さんだけのボイスのセットなのか?
複数声優さんの掛け合いによるカットシーンがまとめられたボイスのセットなのか?
男声なのか女声なのか?
どのくらいのラウドネスを目標値にするのか?

といった具合に、様々な状況に合わせて処理をすることになるケースがほとんどなので、「何にでも適用可能な虎の巻」のようなものはない...と思って下さい。

7波形をインプレスレンダリングで処理する

まず、手順6でエフェクトをかけたトラックにある波形イベントを全選択します。
次に画面上部にあるメニューの「編集(E)」から「インプレスレンダリング(E)」を選択して表示されるレンダリングメニューの項目を確認。以下スクリーンショットの赤枠で括った箇所を確認して同じになるように設定をしてください。

image24

注:保存先は、各々のプロジェクトファイルで異なることになります。

一番のワナになりそうなのが、メニュー中で一番小さい「鍵マーク」
これを上記画像のようにロック状態を選択することで、レンダリング後のトラック名・ファイル名が元名称から引き継がれ命名されます。以下に例を記載致します。

元名称:TEST_01.wav
レンダリング後名称:TEST_01-01.wav

もう1点。
レンダリング前に念のために再度プールを開き、プール内最上部にある『赤く印のついた「Audio」フォルダ』(手順4の最初のスクリーンショットを要参照)を選択した後、インプレスレンダリングを行います。

以下、インプレスレンダリング中の様子。

image12

8インプレスレンダリング処理後のプロジェクト画面

インプレスレンダリング処理の後、プロジェクト上では以下スクリーンショットように、新たにトラックが作られて波形がレンダリングされた状態になります。もし全部の波形が繋がっているということがあったら、インプレスレンダリングの設定を見直してください。

image9

9レンダリングで新たに生成された波形をプール内で確認

ここで再度プール画面を開くと、以下のようにファイルが作られていると思います。
これを手順4でやった元波形同様に整理してみましょう。

image20

以下、あくまでも例としてですが...
「process1」というフォルダを作り、レンダリングされた波形をそこに入れました。

image4

10レンダリングされた波形をノーマライズ

やり方によってはこの過程はいらない方もいらっしゃるかもしれません。
今回の例では、インプレスレンダリング時にかけたコンプで波形を軽く潰したあとにゲイン処理を全くしていないので、ここで再度ダイレクトオフライン・プロセシングのノーマライズをかけて一括で音量感を整えます。

image13

上記もあくまで例ということでお願いいたします。
ピークに対してどの程度の余裕を持たせるのかは、関わるプロジェクトの仕様によるので、各自適切な余裕を持たせてノーマライズしてください。

また、余談になりますが波形イベント毎のラウドネスなどを、Nuendo上で簡単に確認する方法を以下に記載しておきます^^

ラウドネスなどを確認したい波形を全選択した後、以下のメニュー項目から「解析(T)」を選択すると...

image1

すると、解析結果が選択した波形イベント分だけ表示されます。

image22

注)上記スクリーンショットでは見やすいようにバラして並べて表示してます。

極端に短い波形などはラウドネス値が-80.00LUFSとなるようですが、表示されるものとそうでないものとを耳で確認することで全体でのバランスは取ることが出来ると思います。

11仕上げの最終インプレスレンダリング!

...の前に、またまたプールを開きまして、今回は先にフォルダを作っておきます。
以下例では分かりやすいように「process2」としました。

image17

そして上記スクリーンショットのように「process2」フォルダを選択した状態にし、手順7で設定したインプレスレンダリング設定でレンダリングを行います。「(現在の設定で)レンダリング」にショートカットを当てることが出来るので、事前に設定しておけば色々と捗ると思います。

以下、レンダリング後のプール内の状態。
「process2」フォルダ直下にレンダリングされた波形が直接格納されました。

image16

感の良い方は「手順7でも同じ用にやった方が早かったじゃん!」と気づいたと思います。プールの説明を軽く入れたかったので、このように解説させて頂きました^^

12最終状態のプロジェクト画面

プロジェクト上の画面、以下のようになっていると思いますが、どうでしょうか?

image10

上記のようになっていたら、Nuendo上での処理は終わりになります。

13Nuendoで処置した最終ファイルを確認

手順4で一度確認したプロジェクトのAudio実フォルダ内を再度覗くと...
以下のようにファイルが格納されていると思います。

image8

ここに格納されたファイル名で、プール内仮想フォルダ「process2」の中にあるファイル名と同じものを選択しctrl+Cでコピーしたのちに...

以下のような感じに、この上の1つ上の階層に「_RX_process」のような分かりやすい名前のフォルダを作り、そこに先程コピーしたファイルをペーストしてあげます。例フォルダ名にある文字列「RX」はiZotopeの同名アプリケーションから取らせていただきました。

image2

14次処理用ファイルを格納したフォルダを確認、他

手順13を経て「_RX_process」フォルダ内は以下のようになったと思います。

image18

こちらに格納したファイルをiZotopeのRX等を使って、ノイズリダクション処理やより細かいボリュームオートメーションの処理を行っていくことになりますが、その前にもう一手順として、レンダリング処理で追加された余計な文字列をリネームソフトやバッチファイル(拡張子bat)を使い取り除いてあげます。

以下枠内、wavファイル名の末尾6文字を削除するバッチ例です。

for %%F in (*.wav) do call :sub "%%F"
goto :EOF

:sub
    set BEFORE=%~1
    set FILENAME=%~n1
    set EXTENSION=%~x1
    set AFTER=%FILENAME:~0,-6%%EXTENSION%
    ren "%BEFORE%" "%AFTER%"
goto :EOF

大抵の場合、元wavのファイル名で実装することが多いと思うので、もとのファイル名に戻してあげるということです。

...ということで、Nuendoによる似非バッチ処理のお話は終わりです。
iZotopeのRXによるボイス整音処理は現代では必須だと思いますので、まだご存知でない方は以下リンク先の動画を是非とも御覧ください!

『KLab×gumi×TACSYSTEM』ソーシャルゲームサウンドMeetup! vol.2

まとめとしての個人的見解(メリット・デメリット)

メリット

  1. ファイルがとっちらからない!
    オリジナルファイル、処理途中ファイル、最終結果ファイルが、1つのNuendoプロジェクト内に綺麗にまとまる。
  2. 実際に音をプレイバックしながら、非破壊でバッチ処理設定を追い込める。
    通常のバッチ処理では一度処理(当然破壊処理)しないと確認することが出来ないので、限られた時間内で設定をより追い込んでいけるのは大変助かる。
  3. 処置後波形が新規トラックに生成されて視認出来るので便利。
    波形を視認して意図した処理が出来ているか確認出来る点も便利。
  4. SoundForgeなくてもなんとかなるかも?...と思ってしまった。
    その分をSE制作素材やVSTiに設備投資費する作戦が使える!
    ...といって、無いと無いで困るのがSoundForgeなのである。

デメリット

  1. レンダリング処理がSoundForgeより少し重い?
    個人的には微々たる程度の差だと感じています。
    いつものバッチ処理時間を耳休め時間にしている人でしたら、全く気にならないと思います。
  2. 文字列が追加されるので、それを取る必要がある。
    しかし、追加される文字列数は1回のレンダリングで決まっているので、手順14で示した対処法などを行えば労力をホボ無視出来る。

メリット・デメリットを書き出してみると、このNuendoによる似非バッチ処理法...
十分に役目を果たしてくれる悪くはない手段といえそうです。また、何かがあった際の「コンティンジェンシー・プラン」としても、覚えておいて損はない手段だと思いました。

最後に、使用ソフトという宗教の枠を超えて「こんなやり方もあるのか~!」と、
今回紹介した投稿を楽しめて頂けましたならば幸いです。

そして、弊社サウンドチームに興味が御座いましたら、
KLabSoundTeamのTwitterのフォローよろしくお願い致します!^^

明日はR&DグループのYojiさんの記事です。
ではでは、来年のアドベントカレンダーでまたお会いしましょう!!

このブログについて

KLabのクリエイターがゲームを制作・運営で培った技術やノウハウを発信します。

おすすめ

合わせて読みたい

このブログについて

KLabのクリエイターがゲームを制作・運営で培った技術やノウハウを発信します。