2025/06/30(月) [n年前の日記]
#1 [cg_tools][dogwaffle] Project Dogwaffle Howler 2023 (PD Howler 2023)を試用。その9
Project Dogwaffle Howler 2023 (PD Howler 2023) という、Windows上で動作するお絵かきソフトを試用中。
◎ Puppy Rayでアニメーションを作成 :
PD Howler は、Puppy Ray という地形描画フィルタを持っている。白黒の画像を高さマップに見立てて、3D形状として地形らしいものを描画してくれる。
この Puppy Ray を使ってアニメーションを作成できそうか調べてみたので、操作手順をメモしておく。
まずは、アニメーション用のフレームを確保する。Animation → Create、を選択。

フレームレートやフレーム数を指定して、フレームを確保する。これでアニメーションが作れる状態になる。今回は、24FPSで1秒間 = 24フレームにしてみた。
Puppy Ray用に、高さマップ相当の画像を作成する。Filter → Render → Plasma noise を選んで、もやもやした感じのノイズ画像を作成。
Puppy Ray を呼び出す。Filter → Transform → Puppy Ray GPU を選択。

Puppy Ray の設定ダイアログが開く。
最初のキーフレームを指定する。タイムバーを一番左にして0フレーム目を指定しつつ、プレビュー画面内でマウスドラッグして見た目を調整してから、下のほうにある、キーフレーム追加アイコン(鍵に「+」がついているアイコン)をクリックする。これで一番最初のフレームにキーフレームが設定される。

最後のキーフレームを指定する。タイムバーを一番右にして、プレビュー画面内でマウスドラッグして見た目を調整してから、キーフレームを追加する。

アニメーションを作成する。Animateをクリック。
Quality を Final render にして、Render をクリック。これで全フレームに Puppy Ray の処理結果が順々に描画されていく。結構時間がかかる…。

出来上がった動画は以下。512x288、24FPS、1秒間(24フレーム)で作成。
この Puppy Ray を使ってアニメーションを作成できそうか調べてみたので、操作手順をメモしておく。
まずは、アニメーション用のフレームを確保する。Animation → Create、を選択。

フレームレートやフレーム数を指定して、フレームを確保する。これでアニメーションが作れる状態になる。今回は、24FPSで1秒間 = 24フレームにしてみた。
Puppy Ray用に、高さマップ相当の画像を作成する。Filter → Render → Plasma noise を選んで、もやもやした感じのノイズ画像を作成。
Puppy Ray を呼び出す。Filter → Transform → Puppy Ray GPU を選択。

Puppy Ray の設定ダイアログが開く。
- プレビュー画面のすぐ下にあるのがタイムバー。
- 鍵っぽいアイコン群が、アニメーションのためのキーフレームを追加したり削除したりできるアイコン。
- 鍵っぽいアイコン群の、一番右にあるグラフっぽいアイコンは、スプライン曲線で動きを補間するかどうかの指定。無効にすれば直線的な動きになるし、有効にすれば最初と最後がゆっくりした動きになる。
最初のキーフレームを指定する。タイムバーを一番左にして0フレーム目を指定しつつ、プレビュー画面内でマウスドラッグして見た目を調整してから、下のほうにある、キーフレーム追加アイコン(鍵に「+」がついているアイコン)をクリックする。これで一番最初のフレームにキーフレームが設定される。

最後のキーフレームを指定する。タイムバーを一番右にして、プレビュー画面内でマウスドラッグして見た目を調整してから、キーフレームを追加する。

アニメーションを作成する。Animateをクリック。
Quality を Final render にして、Render をクリック。これで全フレームに Puppy Ray の処理結果が順々に描画されていく。結構時間がかかる…。

出来上がった動画は以下。512x288、24FPS、1秒間(24フレーム)で作成。
◎ 動き予測でフレーム補間 :
PD Howler は、動き予測とやらを行ってフレーム補間をする機能も持っているらしい。
前述の動画は1秒間と短いので、フレーム補間機能を使ってもっと尺を長くしてみたい。
フレーム補間は、フィルタとして呼び出すことができる。Filter → Animated → Motion prediction module を選択。
設定ダイアログが開く。

まずは、動き予測とやらの解析処理だけを試してみる。Dry run にチェックを入れて、Motion analysis only を選ぶ。Arrow や Show motion vectors にチェックを入れてから、Go ボタンをクリック。

1フレームずつ解析処理をして、結果を表示してくれる。赤い線が、画素がここからここまで動いてると判定された結果。
それっぽく解析できそうなので、実際に動き予測とやらでフレーム補間してみる。

品質については、その下のパラメータで調整する模様。
「xxフレーム作成するよ?」と尋ねてくる。OKをクリックすれば実際に処理が始まる。

処理結果は以下。24フレームが88フレームになった。計算が合わないような気もするけど、フレームは増えているから、まあいいか…。
ただ、出力結果を眺めると問題が…。映像の端っこのほうに、おそらくは推測が失敗しておかしくなった部分がチラホラ出ている。この手のアルゴリズムは、必ず端のほうに妙な結果が出てきてしまうのだとか。
この問題への対策としては…。解説動画では以下の方法が紹介されていた。
前述の動画は1秒間と短いので、フレーム補間機能を使ってもっと尺を長くしてみたい。
フレーム補間は、フィルタとして呼び出すことができる。Filter → Animated → Motion prediction module を選択。
設定ダイアログが開く。

まずは、動き予測とやらの解析処理だけを試してみる。Dry run にチェックを入れて、Motion analysis only を選ぶ。Arrow や Show motion vectors にチェックを入れてから、Go ボタンをクリック。

- Dry run にチェックを入れると、処理結果をフレームに書き込まない、のだと思う
- Motion analysis only にチェックを入れると、解析処理だけを行う。
- Arrow や Show motion vectors にチェックを入れると、解析結果を赤い線や赤緑の塗りで表示してくれる。
1フレームずつ解析処理をして、結果を表示してくれる。赤い線が、画素がここからここまで動いてると判定された結果。
それっぽく解析できそうなので、実際に動き予測とやらでフレーム補間してみる。

- Dry run のチェックを外して、実処理をすることを指定。
- Extrapolate frames を選んで、フレームを外挿(?)することを指定。その下の Tweens で、各フレームを何フレーム増やすかを指定する。
- Arrow や Show motion vectors のチェックを外す。
品質については、その下のパラメータで調整する模様。
- Search distance で、動き予測の距離を指定。
- Grid spacing で、動き予測をするグリッド単位を指定する。
- Fudge factor の数値を小さくするとノイズが減るらしい。
- Refinement pass にチェックを入れると画質が良くなる、と解説動画等では説明されてたけれど、シンプルな動きの場合はチェックを入れないほうが画質がそれらしくなった。
「xxフレーム作成するよ?」と尋ねてくる。OKをクリックすれば実際に処理が始まる。

処理結果は以下。24フレームが88フレームになった。計算が合わないような気もするけど、フレームは増えているから、まあいいか…。
ただ、出力結果を眺めると問題が…。映像の端っこのほうに、おそらくは推測が失敗しておかしくなった部分がチラホラ出ている。この手のアルゴリズムは、必ず端のほうに妙な結果が出てきてしまうのだとか。
この問題への対策としては…。解説動画では以下の方法が紹介されていた。
- 使えそうな部分だけトリミングして取り出して、拡大処理をかけてみる。
- もしくは、あらかじめ、切り捨てる部分を含めた大きな解像度・画像サイズで元映像を作っておく。トリミングして、本来欲しかった解像度の動画にする。
◎ トリミングの仕方 :
◎ 壊れたフレームを埋める :
PD Howler には、壊れてしまったフレームを埋める機能もあるらしい。一応メモしておく。
以下のように、数フレームが壊れてしまっていたとして…。

修正したいフレームを選択する。Shift + 左ボタンドラッグで、その範囲を選択することができる。

右クリックでメニューが表示される。その中の、Extrapolate block を選択。
壊れていたフレームが、前後のフレームを元にして補間される。

ただ、以下の結果を見ると分かるけど…。
補間と言っても、前後のフレームを、透過率を少しずつ変えながら重ねているだけのようで…。
でもまあ、動画として再生してしまえば、一見すると分からない感じになってくれるかもしれないなと…。少なくとも、いきなり黒フレームがポンと出てくるよりは全然マシなはず。
以下のように、数フレームが壊れてしまっていたとして…。

修正したいフレームを選択する。Shift + 左ボタンドラッグで、その範囲を選択することができる。

右クリックでメニューが表示される。その中の、Extrapolate block を選択。
壊れていたフレームが、前後のフレームを元にして補間される。

ただ、以下の結果を見ると分かるけど…。
補間と言っても、前後のフレームを、透過率を少しずつ変えながら重ねているだけのようで…。
でもまあ、動画として再生してしまえば、一見すると分からない感じになってくれるかもしれないなと…。少なくとも、いきなり黒フレームがポンと出てくるよりは全然マシなはず。
[ ツッコむ ]
以上、1 日分です。










