PDG FFmpeg and ImageMagick
wedgeの結果をレンダリングし、コンタクトシートを作成するには?
1.Image MagickとFFmpeg のインストールを下記サイトから行う。
https://imagemagick.org/script/download.php
Houdini Evnファイルで環境変数を設定する。
windowsなら以下の場所にhoudini.envが配置されている。
C:\Users\Name\Documents\houdini18.0
※"Name"の部分はユーザー名
envファイルを開いたら、以下のコマンドを追加する。
PDG_IMAGEMAGICK = "C:\Program Files\ImageMagick-7.0.9-Q16\magick.exe"
PDG_FFMPEG = "C:\Program Files\ImageMagick-7.0.9-Q16\ffmpeg.exe"
これで使用可能なはず。(ちなみに自分の環境では、image magickは環境変数の設定をしなくても作動した。)
※FFmpegの起動エラー
ちなみにFFmpegEncodevideoノードを使用した際、以下のようなエラーが発生した。
"ValueError: path is on drive D:, start on drive C: "
私はhoudiniをCドライブ、作業用HipファイルをDドライブに保存している。
このため、作業中のhipファイルとHoudiniが自動的に生成するtempファイルの保存ドライブが異なってしまい、このことによっておこるエラーのようである。
このような環境では、FrameListFileとOutputFilenameのパスが、異なるドライブに指定されてしまうようである。
初期設定では、各パスには以下のようなHoudini変数が利用されていると思う。
$PDG_TEMP/path -- FrameListFile
$PDG_DIR/path -- OutputFlikename
これを解消するには、Local SchedulerのTempDirectory>Locationをworking Directoryとする。これによって、Tempファイルが作業中HIPと同じドライブを利用するようである。
あるいは、上のパスを両方とも$PDG_DIRで始めることでも、このエラーは解消される。
2.ImageMagicノードについて
ワークアイテムに画像データが格納されいている場合、その画像を出力する。
主な機能は以下の二つ
1.画像サイズの変更
2.ワークアイテム内に複数の画像データが存在する場合、それをコンタクトシート状に自動配置する。
2を利用するためには、ワークアイテム内に複数の画像を格納しなければならない。
mantraノードや、rop fetchで複数のウェッジの結果や、アニメーションの連番の画像データを書き出すと、それぞれのワークアイテムには、画像が一つずつ格納されている。
この一つずつのワークアイテムをPartitionノードやwait for allノードによって結合することで、ワークアイテム内に複数の画像が格納される。
このワークアイテムに対してImageMagicのMontageを利用すると、コンタクトシートが生成される。
3.FFMpeg Encode Videoノードについて
ワークアイテムに複数の連番画像が格納されていれば、それを動画として書き出してくれる。
Youtube Video:
https://www.youtube.com/watch?v=IwD_Q6K_KRw
hipファイル:
https://drive.google.com/open?id=1YdYS1JzirXLxsKX1do8AfXkn3gW5h1cM
1.Image MagickとFFmpeg のインストールを下記サイトから行う。
https://imagemagick.org/script/download.php
Houdini Evnファイルで環境変数を設定する。
windowsなら以下の場所にhoudini.envが配置されている。
C:\Users\Name\Documents\houdini18.0
※"Name"の部分はユーザー名
envファイルを開いたら、以下のコマンドを追加する。
PDG_IMAGEMAGICK = "C:\Program Files\ImageMagick-7.0.9-Q16\magick.exe"
PDG_FFMPEG = "C:\Program Files\ImageMagick-7.0.9-Q16\ffmpeg.exe"
これで使用可能なはず。(ちなみに自分の環境では、image magickは環境変数の設定をしなくても作動した。)
※FFmpegの起動エラー
ちなみにFFmpegEncodevideoノードを使用した際、以下のようなエラーが発生した。
"ValueError: path is on drive D:, start on drive C: "
私はhoudiniをCドライブ、作業用HipファイルをDドライブに保存している。
このため、作業中のhipファイルとHoudiniが自動的に生成するtempファイルの保存ドライブが異なってしまい、このことによっておこるエラーのようである。
このような環境では、FrameListFileとOutputFilenameのパスが、異なるドライブに指定されてしまうようである。
初期設定では、各パスには以下のようなHoudini変数が利用されていると思う。
$PDG_TEMP/path -- FrameListFile
$PDG_DIR/path -- OutputFlikename
これを解消するには、Local SchedulerのTempDirectory>Locationをworking Directoryとする。これによって、Tempファイルが作業中HIPと同じドライブを利用するようである。
あるいは、上のパスを両方とも$PDG_DIRで始めることでも、このエラーは解消される。
2.ImageMagicノードについて
ワークアイテムに画像データが格納されいている場合、その画像を出力する。
主な機能は以下の二つ
1.画像サイズの変更
2.ワークアイテム内に複数の画像データが存在する場合、それをコンタクトシート状に自動配置する。
2を利用するためには、ワークアイテム内に複数の画像を格納しなければならない。
mantraノードや、rop fetchで複数のウェッジの結果や、アニメーションの連番の画像データを書き出すと、それぞれのワークアイテムには、画像が一つずつ格納されている。
この一つずつのワークアイテムをPartitionノードやwait for allノードによって結合することで、ワークアイテム内に複数の画像が格納される。
このワークアイテムに対してImageMagicのMontageを利用すると、コンタクトシートが生成される。
3.FFMpeg Encode Videoノードについて
ワークアイテムに複数の連番画像が格納されていれば、それを動画として書き出してくれる。
Youtube Video:
https://www.youtube.com/watch?v=IwD_Q6K_KRw
hipファイル:
https://drive.google.com/open?id=1YdYS1JzirXLxsKX1do8AfXkn3gW5h1cM