Shade3Dでmp4/webm形式のアニメーションレンダリング出力を行う

  • by

Shade3Dでのアニメーションレンダリングの出力は、
Windows環境の場合はavi、Mac環境の場合はmov形式を選択できます。
その他、アニメーションレンダリングのフレームごとに連番ファイルの静止画を出力することもできます。
その他の出力は存在しません。
昨今では、動画ファイルはmp4やwebmが多く使われています。
Shade3Dのアニメーションンレンダリングの動画ファイルをこれらに対応させます。

FFmpegを使ってコンバートする方法

aviまたはmovからmp4やwebmとして出力したい場合は、
「FFmpeg」( https://www.ffmpeg.org/ ) というコマンドラインツールを使用する手段もあります。
これについては、Shade3Dナレッジベースの「アニメーションレンダリングでmp4形式で出力したい」をご参照くださいませ。
FFmpegは動画編集ではよく使われるコマンドラインツールのため、覚えておいて損はないかと思います。
FFmpegのコマンド」にもいくつかコマンド指定の情報を記載しています。

プラグインを使う方法

Shade3D ver.14以降のStandard/Professionalバージョン以降の場合は、
プラグイン「Movie Exporter for Shade3D ( https://github.com/ft-lab/Shade3D_MovieExporter )」を使うことでmp4/webm動画出力を行うことができます。
オープンソースのプラグインです。

この「Movie Exporter for Shade3D」プラグインは、以下のReleaseより最新版のプラグインバイナリをダウンロードできます。
https://github.com/ft-lab/Shade3D_MovieExporter/releases

プラグインをpluginsフォルダに複製

「MovieExporter_v.1.0.0.0.zip」をダウンロードして解凍し、
Windows環境の場合は「MovieExporter64.dll」、
Mac環境の場合は「MovieExporter.shdplugin」をShade3Dのpluginsフォルダに複製します。

なお、このプラグインは実行に「OpenCV 4.4.0」を使用しています。
そのため、OpenCVの動的ライブラリへの検索パスを指定してShade3Dを起動する必要があります。
Windows環境の場合は動的ライブラリ数が少ないため、Shade3Dの実行ファイル(bin)にコピーしてしまってもかまいません。
Mac環境の場合はOpenCVのインストールをOS自身に行うため、インストールは手間ですがShade3D起動時に検索パスの指定は必要ありません。
Windows/Mac環境に分けてインストール/起動方法を書いていきます。

※ これらは、GitHubページの内容からの引用になります。

Windows環境の場合

OpenCVのReleasesページ ( https://opencv.org/releases/ )より、
「OpenCV – 4.4.0」のWindows版をダウンロードし、解凍します。
バージョンが大事です。Movie Exporter for Shade3Dでは OpenCV ver.4.4.0を使用しています。

「C:\WinApp\OpenCV-4.4.0」に解凍した場合、以下のような構成になっているのを確認します。

[OpenCV-4.4.0]
    [build]
      [bin]
      [etc]
      [include]  ← ヘッダファイル
      [java]
      [python]
      [x64]
        [vc14]
        [vc15]
          [bin]  ← 実行時に必要な動的ライブラリ
          [lib]  ← 使用する静的ライブラリ
      LICENSE
    [sources]
    LICENSE.txt

※ 末端は省略しています。

Shade3Dを起動するバッチファイル

OpenCVを「C:\WinApp\OpenCV-4.4.0」に展開した場合、以下のようなバッチファイルを作成し Shade3Dをバッチから起動します。

set OPENCV_PATH=C:\WinApp\OpenCV-4.4.0
set PATH=%OPENCV_PATH%\build\x64\vc15\bin;%PATH%

set Shade3D_APP=C:\Program Files\Shade3D\Shade3D ver.17
"%Shade3D_APP%\bin\shade.exe"

この場合、「C:\WinApp\OpenCV-4.4.0\build\x64\vc15\bin」内の
「opencv_videoio_ffmpeg440_64.dll」「opencv_videoio_msmf440_64.dll」「opencv_world440.dll」の3つの動的ライブラリが
Shade3D実行時に参照されます。
「set PATH」の行で検索パスを追加し、「"%Shade3D_APP%\bin\shade.exe"」の行でShade3D ver.17を実行しています。
OpenCVのインストールフォルダ、Shade3Dのインストールフォルダは環境によって変わります。
「OPENCV_PATH」にOpenCV 4.4.0のインストールフォルダ、「Shade3D_APP」にShade3Dのインストールフォルダを指定するようにしてください。

上記バッチファイル経由でShade3Dを起動し、メインメニューの「レンダリング」-「アニメーションレンダリング」を選択したときに
ファイルダイアログボックスの「ファイルの種類」で「mp4」「webm」が選択できるようになっているのを確認してください。

バッチを作らずに使用したい場合

上記のようなバッチファイルを使用せずにMovie Exporter for Shade3Dを使用したい場合は、
OpenCV 4.4.0の動的ライブラリ (build\x64\vc15\bin内)「opencv_videoio_ffmpeg440_64.dll」「opencv_videoio_msmf440_64.dll」「opencv_world440.dll」を管理者権限で、
Shade3Dの実行ファイルのフォルダ(ver.17の場合は C:\Program Files\Shade3D\Shade3D ver.17\bin)に複製するようにしてください。

Mac環境の場合

Homebrewのインストール

Macでパッケージをインストールするツールとして「Homebrew」というのがあります。
これを使用して、あらかじめOSにHomebrewをインストールします。
Homebrewについては以下を参照してくださいませ。

https://brew.sh/index_ja

  • Homebrewが既にインストールされているかチェック
    コマンドラインで操作するため、「ターミナル」(アプリケーション/ユーティリティ内)を起動します。

    which brew

    で「/usr/local/bin/brew」のように表示されれば、すでにHomebrewはインストールされています。

OpenCVのインストール

コマンドラインで操作するため、「ターミナル」(アプリケーション/ユーティリティ内)を起動します。

brew list --versions | grep opencv

を実行し、OpenCVが既にインストールされておりバージョンが4.xである場合は新たにOpenCVをインストール必要はありません。
存在しない場合は、以下でバージョン4系の最新のOpenCVをインストールします。

brew install opencv@4

brewのアップデートを促される場合は、以下でbrewをアップデートしてください。

brew update

これらのインストール処理は時間がかかります。

brew list --versions | grep opencv

で、OpenCVのバージョンを再度確認します。
「opencv 4.4.0_2」のように表示されれば正しくインストールされています(4系ですとどれでもいいです)。

Mac環境の場合は、上記のインストール操作でOSの検索パスにOpenCVの動的ライブラリが入ることになるため、
Shade3Dの起動時には検索パスなど考えなくて問題ありません。

Shade3Dでアニメーションレンダリングして確認

Shade3Dを起動し、何かアニメーションするシーンを読み込みます。
メインメニューの「レンダリング」-「アニメーションレンダリング」を選択します。
ファイルダイアログボックスで「mp4」と「webm」が表示されているのを確認します。
これが出ない場合は、OpenCVのインストールや検索パスの指定に失敗している可能性があります。

mp4で出力する場合

CODECは「H.264」のみ選択できます。

H.264の場合は、解像度の最大は4K(4096 x 4096ピクセル)になります。

webmで出力する場合

CODECは「VP8」か「VP9」を選択できます。

VP8の場合は、解像度の最大は4K(4096 x 4096ピクセル)になります。
それよりも大きい解像度を指定する場合はVP9を選択します。

なお、mp4/webmともに自動で圧縮されます。
この処理は、OpenCV内部で呼び出しているffmpegの動作に従っているようです。

以上で、Shade3Dからmp4またはwebm形式の動画ファイルを出力できるようになりました。
なお、このプラグインでは音声は出力されません。