HACのブロマガ

【AviUtl】動画作りに役立ったツールやテクニックを紹介【2019年9月】(10/14更新)

2019/09/16 12:42 投稿

  • タグ:
  • AviUtl
  • ShadowPlay

(2019-09-16 初稿 / 2019-10-14 更新)

先日、PCゲーム『Borderlands3』の動画を投稿しました

久々の動画編集だったのですが、設定周り色々苦労したので、集めた情報を共有したいと思います。

まず、PCの環境は Core i7 2600 / 8GB RAM / GeForce GTX 1070(8GB) です。CPUはIntel、GPUはnVidia。それを踏まえてお読みください。


目次

  • ShadowPlayの動画を音ズレなしにAviUtlに読み込ませる方法
  • AviUtlのエンコードの時間を短縮したい (ハードウェアエンコード編)
  • AviUtl拡張編集にVoiceroidの音声を入力する方法
  • AviUtl拡張編集で音量の調整に困ったら (この方法ではダメです書き直します)
  • AviUtl拡張編集で簡単に立ち絵を管理する方法
  • AviUtl拡張編集が重くなった時最初にすること
  • 仮出力用の設定 (模索中)
  • その他あれこれ
(ブロマガの仕様上ページ内リンクは貼れませんでした...)

ShadowPlayの動画を音ズレなしにAviUtlに読み込ませる方法

動画の撮影には、Geforce Experiments の『ShadowPlay』を使っています。通常の録画以外に20分までさかのぼって撮影できる便利なやつですね。でも、VFR(可変フレームレート)のため、そのままAviUtlで読み込むと音ズレが発生します。

そのためAviUtlで扱うにはCFR(固定フレームレート)に変換する必要があったわけですが、変換によく使われるHandbrakeでの変換作業はとても時間がかかって困っていました。

そこで色々調べていると、Twitterにこんな情報が。

L-SMASH Works はAviUtlユーザーにはおなじみの入力プラグイン。実はこれにVFR→CFRの変換設定があるんだとか。

手元のものを調べると確かにありました!実際に上の動画ではShadowPlayで録画したファイルをL-SMASHありのAviUtl拡張編集に直入れしているんですが、確かに音ズレしていません。これでHandbrakeでのCFR化の時間が省けますね!


AviUtlのエンコードの時間を短縮したい (ハードウェアエンコード編)

ニコニコ動画向けには rigayaさん の 拡張x264出力 プラグインを使ってH.264のmp4ファイルを出力するのが一般的だと思いますが、解像度の低い頃はまだしも、今では1080p 60fpsが当たり前の時代。それほど時間の長くない動画でもエンコードにかなりの時間がかかります。

どうにかならないかと調べていると、こんな記事を発見。

動画のエンコードを出来るだけ高速化する方法【エンコが遅い】 | AviUtlの易しい使い方

この記事の下の方まで読むと、ハードウェアエンコードの文字を発見。拡張x264出力 等、通常のエンコードにはCPUの力しか使わないのですが、力の有り余っているGPUの助けを借りようというわけです。

nVidia系GPUにはNVEncというエンコード支援機能があり、AviUtlでその機能を使うために rigayaさん が 拡張NVEnc出力 プラグインを公開されています。

さて設定ですが、ニコ動向けにはファイルサイズを制限する必要があるため、設定画面のプロファイルより「H.264 ビットレート指定 高画質」を選択。設定画面内のビットレート計算機でビットレートを計算して入力するとよいです。

試しに1080p 60fpsのカット編集しただけの15分の動画をエンコードしてみたところ
・拡張x264出力: 3時間
・拡張NVEnc出力: 20分
と、9倍高速化されることが確認できました。これは使える。

余談:
Intel系CPUにもQSV(Quick Sync Video)というエンコード支援機能があり、AviUtl向けに同 rigayaさん が 拡張QSVEnc出力 プラグインを公開されています。使ってみたかったのですが、わたしの環境ではうまく動作しなかったので、詳しい紹介は割愛します。

余談2:
NVEncやQSVEncではビットレート指定(VBR)ではなく、CQP(固定量子化量)を使うとさらにエンコード速度が上がるらしいですが、ニコニコ動画などの動画投稿サイトでは容量の制約があるため、CQPは向かなそうです。残念。
rigayaの日記兼メモ帳 画質比較 2018.11 補足 - エンコ速度


AviUtl拡張編集にVoiceroidの音声を入力する方法

動画では VoiceroidUtil + ごちゃまぜドロップス を使用していますが、そこにいきつくまでに調べたあれこれを残しておきます。

動画のカット編集が終わり、字幕をつけたのですが、ここで問題発生。Voiceroidソフトで音声ファイルを作るのが面倒くさい!Voiceroidソフトには複数の文字列からバッチ処理的に音声ファイルを生成する機能がありません。

こういうとき、キャラクター実況にはゆっくりMovieMaker3を使うのが定番ですが、AviUtl拡張編集だけで管理したかったので、今回は見送りました。

目当てのツールがないか、便利ツール - VOICEROID素材まとめ Wiki*などで探していたのですが、なかなか収穫があがりません。VoiceroidController2, VoiceroidController, SeikaCenter, などが候補に上がりましたが、自分でビルドする気は起きませんでした。

その時 VoiceroidUtil がゆっくりMovieMaker連携だけでなく単体でも動作すると見かけて、調べてみることに。このVoiceroidUtilは、求めていた「バッチ処理で音声ファイルを生成するツール」ではなく、「VoiceroidUtilに文字列を入力すると、字幕付き音声のexoファイルを作ってくれる」ソフトでした。

しかし、これが使ってみると便利。ごちゃまぜドロップス というAviUtlのクリップボード拡張プラグインと連携することで、「AviUtl拡張編集の画面を開いた状態でVoiceroidUtilに文字列を入力すると、拡張編集のタイムラインに、音声と字幕のオブジェクトを直接生成してくれる」そんなことが実現できたのでした。

当初求めた機能とは異なり、ゆっくりMovieMaker的なアプローチでしたが

  1. Voiceroidソフトに文字列を入力する
  2. Voiceroidソフトで音声ファイルを出力する
  3. 音声ファイルをAviUtl拡張編集上にドロップする
  4. 字幕をつける

この4ステップが1度に行えるので、めちゃくちゃ省力化できます。

字幕を考えてから音声ファイルをあわせるのではなく、音声を直接タイムライン上に置くことができるため、編集の手順が大きく変わり、音声がついた動画のイメージがものすごく固まりやすくなりました。これは便利、紹介せざるをえない!


AviUtl拡張編集で音量の調整に困ったら

(10/14更新) 下記の方法ではダメです。ラウドネスに関する知識が足りませんでした。

エンコードしてみたら音声が小さすぎた、逆に音割れしている!そんな体験一度はしていると思います。結局自分の感覚に頼って音量を調整しているという方もいるのでは。

AviUtlには標準装備のフィルターで「音量の最大化」というものがあります。音声のピークを見つけてそれが最大音量になるように全体の音量を上げてくれる機能ですね。しかしエンコーダーの拡張出力系ではそれが効きません。そのうえ、拡張編集での編集中は音量がわかりません。

そういう時どうすればよいか、自分がとっている手法は「一旦wavファイルを出力して外部のツールで調整する」です。使うツールはフリーの音声編集ソフトAudacity

細かい手順を書くと

  1. 音の小さい元動画を拡張編集に入れる。音量はいじらない
  2. 編集時に聞き取りやすようにフィルタオブジェクトの「音量の調整」を全体にかける
    (音量の調整オブジェクトだけでは音量が足りない場合は、オブジェクト右上の+ボタンから音量の調整を重ねがけする)
  3. 動画の編集を最後までする
  4. さっきかけた「音量の調整」オブジェクトをレイヤーごと無効化する

  5. AviUtlの機能で全体のWAV出力をする
  6. Audacityにwavファイルを読み込み「正規化」「コンプレッサー」の順にかける
    ※コンプレッサーの設定「ピークに基づく圧縮」にはチェックを入れること
  7. Audacityで編集した音声を別名でwavファイルに保存
  8. 拡張編集でAudacityで出力したwavファイルを取り込む(必要に応じて音量を下げる)
  9. 全体のエンコード

長くなってしまいましたが、2~4は編集時に聞き取りやすいようにするためだけのテクニックです。大事なのは Audacityでの「正規化」「コンプレッサー」です。詳しく知りたい方はAudacityや音声編集ソフト自体について調べてみてください。

上の動画では、ゲーム音声がめちゃくちゃ小さかったので、正規化&コンプレッサーで上げた後、実況とのバランスを見て90%にしています。Voiceroid実況は調整なし。

Part3からはゲーム音声を編集後90%、Voiceroid音声を編集後80%で使用しています。

(2019-10-11追記)

動画にて音量調整に関してうるさいとのコメントを頂きました。コンプレッサーをかけていたのが原因だと思います。ゲーム音や音声にかけるものじゃないかもしれませんね。現在設定見直し中です。

以上です。知っている人にとっては当たり前の手段かもしれませんが、なにかの助けになれば幸いです。

補足:30分の動画をまるまるwavファイルにするとダメらしい(解決)

はい、タイトルのとおりです。30分の動画の音声をまるまるwav出力(動画音声+実況音声の2本に分けて)してAudacityで編集した後、拡張編集に入れ直すと、拡張NVEnc出力 のエンコード時にエラーが出てエンコードに失敗しました。拡張編集でのプレビュー自体はうまくいくんですが、エンコードがだめですね。

メモリの問題でしょうか。横着はダメですね。対策として、シーンごとに音声変換してやればうまくいきました。全体で4シーンぐらいに分かれています。

中間ファイルが増えますが、手順を踏めば作り直せるので、投稿を終えたら消しちゃってもよさそうです。

注意点

ただし、切り取る場所の音量次第で全体が不揃いになる可能性があります。一番確実なのは一度全体を出力して編集したあと、音声ファイルをシーンごとに切り取って分ける方法だと思うんですが、これは手間がかかりそう...。わたしは上の方法で妥協しています。

解決方法(10/05追記)

自分の試行では30分の動画音声+30分のVoiceroid音声を2本のwavファイルに分けてそれぞれAudacityで処理し、2本別々に拡張編集に取り込んだ結果(1本約300MB)、恐らくメモリの問題でエンコードに失敗しました。

最新の動画では、動画音声とVoiceroid音声をAudacityで合成して1本の音声データとして出力、さらに出力時にはflac形式(可逆圧縮フォーマット)で出力することで問題の回避に成功しました(約200MB)。これが最適な方法ではないかと思います。flac形式は L-SMASH works プラグインで読み込めます。

ただし、Audacity上で2本の音声ファイルの音量バランスを調整する必要があります。それについては下に追加でまとめます。

補足:Audacityで音量を調整する方法(暫定的なメモ)

Audacityでの音量の調整には「エフェクト」→「増幅...」を使います。

ただし、Audacityの増幅エフェクトはAviUtl拡張編集と違い、デシベルでの調整しかできません。パーセンテージで調整できないかと解決策を調べたところ、フォーラムの下の記事に行き当たりました。

Decrease volume by x% (with Amplify)? - Audacity Forum

最新の投稿によると「エフェクト」→「Nyquist プロンプト...」で「(mult 0.9 s)」のコマンドを入力するとよいとあったのですが、自分には適用方法がよくわからなかったので、まだ検証中です。

そのため、参考になったのは下から2つめの返信でした。

50 % = -6.0 dB
60 % = -4.4 dB
70 % = -3.1 dB
80 % = -1.9 dB
90 % = -0.9 dB
100 % = 0.0 dB

Re: Decrease volume by x% (with Amplify)? より部分引用

厳密には対数計算が入るのですが、大まかに近似するとこのくらいらしいです。数値に厳密な音量調整が必要なケースってそうないですから、この数値で役に立つと思います。


AviUtl拡張編集で簡単に立ち絵を管理する方法

他と比べて重要度が低かったため後回しになりましたが、わたしがAviUtl拡張編集で常用している手法を紹介します。

この動画製作者支援動画で知ったので、見てもらったほうが早いかもしれないですね。


要点を文章で書くと

  1. 立ち絵用のシーンを用意する --- (シーンとは?)
  2. 用意したシーンに立ち絵を全部1フレームの長さにして並べる
  3. メインのシーンに戻り、シーンオブジェクトで立ち絵用のシーンを呼び出す
  4. シーンオブジェクトの再生速度を0にして、再生位置で立ち絵を管理する

とういところです。

簡単な立ち絵表示に向いた、手軽で応用のきくテクニックなので、覚えておくと便利かもしれません。


AviUtl拡張編集が重くなった時最初にすること

30分の動画を編集していると、拡張編集の編集画面やプレビューがとても重くなります。そんなときはまずAviUtl本体の環境設定から優先度をRealtimeにしてみてください。ある程度解決できるかもしれません。

わたしは「動画カット→セリフ入れ→表情付け」の流れで編集しているのですが、表情付けの段階にくると動作が重くなって困っていました。しかし優先度をRealtimeにしたことで解決。思えばまず最初に試すべきことでした。メモとしてここに残します。


仮出力用の設定 (書きかけ)

自分用のメモ程度のものですが

  • フレームレートを下げる (60fps → 20fps など)
  • 解像度を下げる (640×360 程度でやってます。目的によっては低解像度もあり)
  • [未検証] NVEncを使う場合はCQPにする (早くなるらしいですが、詳細は未検証)

その他あれこれ

AviUtl拡張編集の文字オブジェクトの"サイズ"を大きくするとプレビューがとても重くなる

ロゴを入れるときは拡張編集の機能に頼らず画像を用意したほうがいいみたいです。当該文字オブジェクト以外のプレビューを軽く見るためには、一旦非表示にしておくのも編集時には有効です。


コメント

コメントはまだありません
コメントを書き込むにはログインしてください。

いまブロマガで人気の記事