Blenderで背景が透明な「動画」を作る方法の備忘録

By | 2017年5月26日 , Last update: 2019年8月17日

はじめに

BlenderでCGを作る作業をしていると、ちょっとレンダリングの処理が重かったりするので、

  • 背景以外の部分はBlenderで作って、
  • 背景はAviUtlで作れないか、
  • そして、もし作るとしたらどういう方法なら作れるのか。

を考えてみることにしました。

スポンサーリンク

フレームごとの画像の集合を作る。

「動画」と括弧書きにしたのには実は理由がありまして、Blender(2.78a)で背景が透明な動画ファイルを直接作成することができないっぽいからです。

かわりに作成できるのは各フレームに対応するpng画像の集合になります。仮にBlender(2.78a)で動画をmp4フォーマットでレンダリングすると、以下のような結果になります。数式の後ろの背景がグレーっぽい色にレンダリングされているのがわかります。

そこで、各フレームに対応するpng画像の集合(以下、単に「画像の集合」と書きます。)を作成する方法を調べ、メモ書き的に書くことにしました。

画像の集合を作成しておくと、例えばAviUtlで上位のレイヤーに別の動画、画像、背景等を置いておき、下位レイヤーに本記事で紹介する画像の集合を置いて、レンダリングの際に合成するといったような使い方ができます。

まず、画像の集合を作成します。

Blender(2.78a)ではフレームごとの画像の集合は以下の手順で作成することができます。

  1. Blenderを起動し、画像の集合を作成したいblenderファイルを読み込みます。読み込むと下図のような表示になります。
  2. プロパティウィンドウの「レンダー」タブ(下図の(a)のカメラのアイコンのタグ)をクリックします。
  3. シェーディングパネルの設定のうち、「アルファ」を「透過」に設定します(下図の(a)です。下図では文字列が「アルフ」になっていますが、ここを設定すれば問題ありません)。
  4. 出力パネルの「フォーマット」を「PNG」にします。するとパネルの表示が切り替わりますので、「RGBA」を選択します。
  5. 出力先としてディレクトリ名及び各画像に与えられるファイル名の先頭部分を指定します。指定された名前のディレクトリが存在しない場合には、レンダリング時に作成されます。ファイル名の先頭部分については”.”(ドット)で終わるように指定すると、レンダリング時に4桁のフレーム番号がその後ろに追加されますので、画像の集合の作成後に出来上がりなどが確認できたりして、かなり便利です。ここまでの手順を実行後の出力パネルの状態は下図のようになります。
  6. レンダーパネルの「アニメーション」ボタンを押します。
  7. 指定したディレクトリ名のディレクトリが作成され、かつその下が以下のような感じになっていれば、レンダリングは完了しています。この例ではファイル名の先頭部分の文字列として”gauss_integration.png.”と指定しているので、gauss_integration.png.0001, gauss_integration.png.0002, … , gauss_integration.png.0241という名前のファイル群が作成されています([2019/01/01追記]以下の画像をクリックすると拡大表示できるようにしました)。
  8. AviUtlなどで合成する場合には、PNGでフレームごとに画像として保存します。

次に背景を合成する。

上記の手順で画像の集合を作成したら、AviUtlを使用して背景の画像等と合成していきます。背景の画像などとの合成は以下の手順で行います。なお、本記事ではAviUtl本体に拡張編集プラグインがすでに導入されているものとして記述します。

  1. AviUtlを起動します。
  2. 拡張編集タイムラインを右クリックすると、ポップアップメニューが表示されますので、「新規プロジェクトの作成」を選択します。するとさらにポップアップが表示されますが、「OK」ボタンを押します。
  3. 拡張編集タイムラインを再度右クリックすると、ポップアップメニューが表示されますので、「メディアオブジェクトの追加」→「動画ファイル」を選択します。
  4. 「動画ファイル[標準描画]」ポップアップが表示されますので、「アルファチャンネルを読み込む」にチェックを入れます。
  5. 「参照ファイル」ボタンをクリックすると、「開く」ポップアップが表示されますので、前節の手順7で作成されたファイルのうち、末尾に追加された番号が一番若いファイルをダブルクリックします。
  6. タイムラインに動画がセットされますので、これを「Layer 3」に移動します。
  7. 「Layer 1」に背景を、「Layer 2」に適当なテキストをそれぞれ入力します。なお、背景色には紺色を指定しています。
  8. 「ファイル」→「プラグイン出力」→「拡張H.264出力 (GUI) Ex」を選択します。
  9. ポップアップウィンドウが表示されるので、出力先のファイル名を入力し、「保存」ボタンを押します。
  10. レンダリングが完了すると以下のような動画が生成されます。

まとめ

本記事では、Blenderで作成した3D動画の背景にAviUtlで作成した動画を合成する方法について備忘録的に記述しました。

複数のツールを使用するためにやり方が複雑になりがちで、忘れてしまう部分も出てくると思うので、何かの機会に役に立つのではないかと思います。

本記事は以上です。