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

このブログの人気の投稿

Houdini Path 表記法

HDAの作成、更新とバージョン管理について

action buttonを使ってジオメトリをattributeベースで選択するコード