この記事は KLab Creative Advent Calendar 2019 の 12日目の記事になります。
こんにちは!日々是胃に穴、サウンド・グループのemanonです。
昨年、私はAdvent CalendarにてKLab Sound Teamを紹介する投稿を致しましたが、今年は制作面でのお話をということで、サウンドデザイナー勢が大好きであろうと思われる「バッチ処理」について書かせて頂きます。
「何故Nuendo(注:またはCubase)でそんなことするの?SoundForgeでエエやん?」
(注:以降「Nuendo」と単独で記載させて頂きます。)
...という至極ごもっともな疑問を持たれる方が多くいらっしゃるかと思います。
まずは、そこに至る二つの要因についてお話致します。
ボイス整音処理を手伝うことになり、その作業用にSoundForgeのバッチを頂いたのですが、私の環境ではバッチ処理をした全てのボイスに「ビー!」と発振したような音がのってしまい、バッチ処理を自分環境用に再調整をすることになった。
(注:弊社の制作環境では使用しているソフトのver.をメンバー間で揃えています。)
Nuendoを使用されている方は体験としてわかると思います。Nuendoで立ち上げているプロジェクトで設定したサンプルレートとは異なるレートの波形をSoundForgeに放り込んでしまった際に、SoundForgeの設定が優先されてしまいNuendo側のレートが変わる!...というもので、極稀にやってしまうことがあって面倒に感じていた。
上記2大要因による些細なトラブルが度々あり、
「だったらNuendoだけでどうにかならんか?」と。
ただ、Nuendoはバッチ処理機能を持ってはいません。
しかし、楽曲制作・SE制作を通じて「機能の組み合わせで同じような結果が得られないことはないハズ!」という実感がありましたので、「似非バッチ処理」として検証を試みてみました。
以降、お読みいただく上で注意点が1点あります。
弊社の制作環境で使用しているNuendoはWindows10版のNuendo8となっておりますので、最新のNuendo10等と比較した際に差異が生じている可能性があります。その点についてはどうかご了承下さい。
なにはともあれ、似非バッチ処理をするプロジェクトを作らないと始まりません。
まずは、ボイス(mono音声)を似非バッチ処理する前提で、以下のように大変シンプルなオーディオトラック(mono)が1つあるプロジェクトを作ります。
画像例。このようになっていれば大丈夫です。
画面上部にあるメニューの「プロジェクト(P)」から「プロジェクト設定...(J)」を選択。
以下のスクリーンショットのプロジェクト設定画面を表示させ、その中の設定項目の「パンニングのレベル補正」が0dBになっていることを確認する。
上記画像中の「長さ」については、各自で適切な調整をしてください。
似非バッチ処理したい波形ファイルを用意し、先程準備しておいたオーディオトラックへとドラッグ&ドラッグでおもむろに放り込みます。
すると、上記スクリーンショットにあるダイアログが表示されるので、「1つのトラック」を選択。
次に以下のダイアログが表示されるので、以下のようにチェックボックスにチェックを入れてOKを押します。
すると...
プロジェクトファイルに以下のような感じに波形が取り込まれます。
音量にバラつきの見られる、まだ未調整のwavであることがわかりますね。
次に画面上部にあるメニューの「メディア(D)」から「プールを開く(O)」を選択。
現状では以下のような状態になっているので、これを整理します。
プール内、最上部にある赤く印のついた「Audio」フォルダを選択し、右クリックメニューから「フォルダーを作成」をします。
出来たフォルダーに分かりやすいように名前をつけ、その中に波形を移動します。
以下例では「original」としました。
ここまでプール内の波形を整理しましたので、一度プロジェクトのAudio実フォルダを見てみましょう!
あれ...originalフォルダに入っていない!?
これはどういうことかというと『プール内では仮想的にファイルを管理することができる』ということを意味しています。この違いを理解していると、Audioデータをより効果的に使用出来るようになると思います。
放り込んだ波形のイベントを全て選択し、ダイレクトオフラインプロセッシングを使ってノーマライズをかけて大雑把に音量感を合わせます。
ちなみにダイレクトオフラインプロセッシングでは、お気に入りの処理を作って登録させておくことが出来ます。更に!そのお気に入りに対してショートカットを当てられるので、波形を放り込んだ後で良くやる処理などを作り込んでおけば、楽できる場面結構あります!
トラックを再生させながら、ローカットしたりコンプかけたりディエッサーかけたりして、良い塩梅になるようにエフェクトの設定を追い込んで行きます。
上記スクリーンショットは『あくまでも一例』ということでお願いいたします。
バッチ処理をする波形群の状況に応じて必要な処理は異なってくるので、音を聴いて各自判断して適切な処置をして頂ければ幸いです。
<例>
同じ声優さんだけのボイスのセットなのか?
複数声優さんの掛け合いによるカットシーンがまとめられたボイスのセットなのか?
男声なのか女声なのか?
どのくらいのラウドネスを目標値にするのか?
といった具合に、様々な状況に合わせて処理をすることになるケースがほとんどなので、「何にでも適用可能な虎の巻」のようなものはない...と思って下さい。
まず、手順6でエフェクトをかけたトラックにある波形イベントを全選択します。
次に画面上部にあるメニューの「編集(E)」から「インプレスレンダリング(E)」を選択して表示されるレンダリングメニューの項目を確認。以下スクリーンショットの赤枠で括った箇所を確認して同じになるように設定をしてください。
注:保存先は、各々のプロジェクトファイルで異なることになります。
一番のワナになりそうなのが、メニュー中で一番小さい「鍵マーク」。
これを上記画像のようにロック状態を選択することで、レンダリング後のトラック名・ファイル名が元名称から引き継がれ命名されます。以下に例を記載致します。
元名称:TEST_01.wav
レンダリング後名称:TEST_01-01.wav
もう1点。
レンダリング前に念のために再度プールを開き、プール内最上部にある『赤く印のついた「Audio」フォルダ』(手順4の最初のスクリーンショットを要参照)を選択した後、インプレスレンダリングを行います。
以下、インプレスレンダリング中の様子。
インプレスレンダリング処理の後、プロジェクト上では以下スクリーンショットように、新たにトラックが作られて波形がレンダリングされた状態になります。もし全部の波形が繋がっているということがあったら、インプレスレンダリングの設定を見直してください。
ここで再度プール画面を開くと、以下のようにファイルが作られていると思います。
これを手順4でやった元波形同様に整理してみましょう。
以下、あくまでも例としてですが...
「process1」というフォルダを作り、レンダリングされた波形をそこに入れました。
やり方によってはこの過程はいらない方もいらっしゃるかもしれません。
今回の例では、インプレスレンダリング時にかけたコンプで波形を軽く潰したあとにゲイン処理を全くしていないので、ここで再度ダイレクトオフライン・プロセシングのノーマライズをかけて一括で音量感を整えます。
上記もあくまで例ということでお願いいたします。
ピークに対してどの程度の余裕を持たせるのかは、関わるプロジェクトの仕様によるので、各自適切な余裕を持たせてノーマライズしてください。
また、余談になりますが波形イベント毎のラウドネスなどを、Nuendo上で簡単に確認する方法を以下に記載しておきます^^
ラウドネスなどを確認したい波形を全選択した後、以下のメニュー項目から「解析(T)」を選択すると...
すると、解析結果が選択した波形イベント分だけ表示されます。
注)上記スクリーンショットでは見やすいようにバラして並べて表示してます。
極端に短い波形などはラウドネス値が-80.00LUFSとなるようですが、表示されるものとそうでないものとを耳で確認することで全体でのバランスは取ることが出来ると思います。
...の前に、またまたプールを開きまして、今回は先にフォルダを作っておきます。
以下例では分かりやすいように「process2」としました。
そして上記スクリーンショットのように「process2」フォルダを選択した状態にし、手順7で設定したインプレスレンダリング設定でレンダリングを行います。「(現在の設定で)レンダリング」にショートカットを当てることが出来るので、事前に設定しておけば色々と捗ると思います。
以下、レンダリング後のプール内の状態。
「process2」フォルダ直下にレンダリングされた波形が直接格納されました。
感の良い方は「手順7でも同じ用にやった方が早かったじゃん!」と気づいたと思います。プールの説明を軽く入れたかったので、このように解説させて頂きました^^
プロジェクト上の画面、以下のようになっていると思いますが、どうでしょうか?
上記のようになっていたら、Nuendo上での処理は終わりになります。
手順4で一度確認したプロジェクトのAudio実フォルダ内を再度覗くと...
以下のようにファイルが格納されていると思います。
ここに格納されたファイル名で、プール内仮想フォルダ「process2」の中にあるファイル名と同じものを選択しctrl+Cでコピーしたのちに...
以下のような感じに、この上の1つ上の階層に「_RX_process」のような分かりやすい名前のフォルダを作り、そこに先程コピーしたファイルをペーストしてあげます。例フォルダ名にある文字列「RX」はiZotopeの同名アプリケーションから取らせていただきました。
手順13を経て「_RX_process」フォルダ内は以下のようになったと思います。
こちらに格納したファイルを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
メリット・デメリットを書き出してみると、このNuendoによる似非バッチ処理法...
十分に役目を果たしてくれる悪くはない手段といえそうです。また、何かがあった際の「コンティンジェンシー・プラン」としても、覚えておいて損はない手段だと思いました。
最後に、使用ソフトという宗教の枠を超えて「こんなやり方もあるのか~!」と、
今回紹介した投稿を楽しめて頂けましたならば幸いです。
そして、弊社サウンドチームに興味が御座いましたら、
KLabSoundTeamのTwitterのフォローよろしくお願い致します!^^
Tweets by klabsoundteam
明日はR&DグループのYojiさんの記事です。
ではでは、来年のアドベントカレンダーでまたお会いしましょう!!
KLabのクリエイターがゲームを制作・運営で培った技術やノウハウを発信します。
合わせて読みたい
KLabのクリエイターがゲームを制作・運営で培った技術やノウハウを発信します。