2025/02/26(水) [n年前の日記]
#1 [blender][gimp][cg_tools][anime] 背景の森が流れていく悪例(?)サンプル映像を作ってみた
画像生成AI、Stable Diffusion web UI + Juggernaut XL Lightning (SDXLモデルデータ)を使って、森っぽい画像を生成できたので、その画像を使って、背景で森が流れていく映像の悪例サンプルを作れないか試してみた。TVアニメ「魔法使いの約束」でたまたま目にして気になった1カットを再現できるかどうか、みたいな。
最初は、Moho でレイヤーを傾けるだけでも作れるのではないかと安易に思ってしまったけれど。考えてみたら、おそらく元になった画像はカメラから捉えてそれらしく見える背景画だったのだろうから、いわゆるカメラマップ(カメラマッピング)で作らないとダメだよなと気づいた。
そんなわけで、blender 3.6.21 LTS を使ってカメラマップっぽい作業をして連番画像としてレンダリング。AviUtl 1.10 + 拡張編集プラグインを使って、手前に人物の静止画(Bing Image Creatorで生成)を配置して合成。以下のような結果になった。
さて、この見た目はアリか? ナシか?
自分はナシだと感じるのだけど…。例えば、メカメカしい床面や石畳など、人工物による平面がそこにある場合ならコレで全然イケるのだけど、森のような自然物は本来凸凹してるはずだから、このやり方では、ザ・板感が強くてダメなんじゃないのかなと…。でもまあ、人によってそれぞれ違う感想を持ちそうな気もする…。
最初は、Moho でレイヤーを傾けるだけでも作れるのではないかと安易に思ってしまったけれど。考えてみたら、おそらく元になった画像はカメラから捉えてそれらしく見える背景画だったのだろうから、いわゆるカメラマップ(カメラマッピング)で作らないとダメだよなと気づいた。
そんなわけで、blender 3.6.21 LTS を使ってカメラマップっぽい作業をして連番画像としてレンダリング。AviUtl 1.10 + 拡張編集プラグインを使って、手前に人物の静止画(Bing Image Creatorで生成)を配置して合成。以下のような結果になった。
さて、この見た目はアリか? ナシか?
自分はナシだと感じるのだけど…。例えば、メカメカしい床面や石畳など、人工物による平面がそこにある場合ならコレで全然イケるのだけど、森のような自然物は本来凸凹してるはずだから、このやり方では、ザ・板感が強くてダメなんじゃないのかなと…。でもまあ、人によってそれぞれ違う感想を持ちそうな気もする…。
◎ 代替処理について :
上記の処理がダメだとしたら、他にどんな手がありそうなのか妄想してみたのだけど…。
方法Aについては実際に試してみた。GIMP 2.10.34 Portable + Resynthesizer 1.0 i686 を使って、元画像の一部を切り出し、上下左右がシームレスに繋がった画像を作成。それを並べて大きな画像を作成して、背景画としてスクロールさせてみた。以下のような感じになった。
TVアニメならこれでも全然問題無いような気がする…。というか、このあたりの実験を試す元ネタになったTVアニメ「魔法使いの約束」でも、ちょうど昨日見た回ではこのやり方で背景を動かしていたので、一般的にはやっぱりこういう見せ方で済ませることが多いわなと…。昭和の頃からどのアニメでもやってる見せ方だから、ある意味実績(?)もあるし。
とはいえ、方法B、方法Cも、実際にできるのか気になるところ。特に方法C。本当にそんなことできるのかな…。実写画像ならともかく、この手のアニメ背景画っぽい画像から、それらしいデプスマップって作れるの…? 実際に試してみないとなんとも言えないな…。
- 方法A : セル+フィルムで作ってた頃のように、単に背景画を2次元的にスライドさせる。
- 方法B : 木の一本一本をビルボードにして、パーティクルとして大量に発生させて、カメラだけ動かす。
- 方法C : これはできるのか自信が無いけど、画像生成AIで元画像から疑似的にデプスマップ画像(奥行き情報を示した画像)を生成。デプスマップから凸凹した3Dモデルを作って、元画像をテクスチャとして貼り付けて、カメラだけ動かす。
方法Aについては実際に試してみた。GIMP 2.10.34 Portable + Resynthesizer 1.0 i686 を使って、元画像の一部を切り出し、上下左右がシームレスに繋がった画像を作成。それを並べて大きな画像を作成して、背景画としてスクロールさせてみた。以下のような感じになった。
TVアニメならこれでも全然問題無いような気がする…。というか、このあたりの実験を試す元ネタになったTVアニメ「魔法使いの約束」でも、ちょうど昨日見た回ではこのやり方で背景を動かしていたので、一般的にはやっぱりこういう見せ方で済ませることが多いわなと…。昭和の頃からどのアニメでもやってる見せ方だから、ある意味実績(?)もあるし。
とはいえ、方法B、方法Cも、実際にできるのか気になるところ。特に方法C。本当にそんなことできるのかな…。実写画像ならともかく、この手のアニメ背景画っぽい画像から、それらしいデプスマップって作れるの…? 実際に試してみないとなんとも言えないな…。
◎ カメラマップの操作手順をメモ :
blender上でカメラマップを行う操作手順をそのうち忘れてしまいそうなので、一応メモしておく。
環境は、Windows10 x64 22H2 + blender 3.6.21 LTS。
まずはプロジェクトを新規作成。デフォルトで配置されてるキューブとライトは不要なので、選択してXキーを押して削除。
カメラだけが存在してる状態になった。カメラを選択。位置や角度を調整する。Nキーを押すとサイドバー?が表示されるので、そこで位置や角度の数値を直接入力してもいい。
テンキーの0を叩くとカメラ視点の見た目に切り替わる。カメラのプロパティで「下絵」にチェックを入れて、元画像を読み込む。
カメラの表示領域に、元画像が半透明で表示される状態になる。
元画像を参考にしながら、そこにあるとそれらしく見えそうな、元画像を貼りつけるためのポリゴンモデルを作成。
斜めから見ると、以下のような形になっている。
編集モードで、ポリゴンモデルの全ての面を選択(Aキーを連打すれば全選択/全選択解除が切り替わる)。右クリックして「細分化」を選択。
分割数を100ぐらいにして分割。数値を直接入力すれば、10より大きい分割数を指定できる。
テンキーの0を叩いてカメラ視点に切り替えてから、UV → ビューから投影、を選択。これで、今現在の見た目でUV指定が行われる。
ポリゴンモデルを選択した状態で、マテリアルを新規作成。ベースカラーに画像テクスチャを指定して、元画像を割り当てる。
ポリゴンモデルに元画像が貼り付けられた。テクスチャの種類はデフォルトで「リピート」になっているけれど、「クリップ」にしたほうがいいと思う。
貼り付けたテクスチャがそっくりそのまま表示される状態にする。レンダーエンジンを「Workbench」に切り替えて、以下を指定。
後は、カメラの位置や角度にキーフレームを指定して、カメラが動くアニメーションを作って、アニメーションとしてレンダリングすればOK。
環境は、Windows10 x64 22H2 + blender 3.6.21 LTS。
まずはプロジェクトを新規作成。デフォルトで配置されてるキューブとライトは不要なので、選択してXキーを押して削除。
カメラだけが存在してる状態になった。カメラを選択。位置や角度を調整する。Nキーを押すとサイドバー?が表示されるので、そこで位置や角度の数値を直接入力してもいい。
テンキーの0を叩くとカメラ視点の見た目に切り替わる。カメラのプロパティで「下絵」にチェックを入れて、元画像を読み込む。
カメラの表示領域に、元画像が半透明で表示される状態になる。
元画像を参考にしながら、そこにあるとそれらしく見えそうな、元画像を貼りつけるためのポリゴンモデルを作成。
斜めから見ると、以下のような形になっている。
編集モードで、ポリゴンモデルの全ての面を選択(Aキーを連打すれば全選択/全選択解除が切り替わる)。右クリックして「細分化」を選択。
分割数を100ぐらいにして分割。数値を直接入力すれば、10より大きい分割数を指定できる。
テンキーの0を叩いてカメラ視点に切り替えてから、UV → ビューから投影、を選択。これで、今現在の見た目でUV指定が行われる。
ポリゴンモデルを選択した状態で、マテリアルを新規作成。ベースカラーに画像テクスチャを指定して、元画像を割り当てる。
ポリゴンモデルに元画像が貼り付けられた。テクスチャの種類はデフォルトで「リピート」になっているけれど、「クリップ」にしたほうがいいと思う。
貼り付けたテクスチャがそっくりそのまま表示される状態にする。レンダーエンジンを「Workbench」に切り替えて、以下を指定。
- 照明 : フラット
- カラー : テクスチャ
- カラーマネージメント → ビュー変換 : 標準
後は、カメラの位置や角度にキーフレームを指定して、カメラが動くアニメーションを作って、アニメーションとしてレンダリングすればOK。
◎ シームレス画像を作成する手順をメモ :
GIMP 2.10.34 Portable + Resynthesizer 1.0 i686 を使ってシームレス画像を作成する手順もメモしておく。
まあ、レイヤー位置をシフトさせてスタンプツールを使って境界を馴染ませる等、手作業でもシームレス画像は作れるのだけど…。プラグインを使ってサクッと済ませる方法を知っていても、損にはならないはず…。
まずはGIMPで画像を開く。
切り抜きツール(トリミングツール)を使って、シームレス画像にできそうな部分だけを切り出す。
Resynthesizerプラグインを使って、上下左右に繋げる。フィルター → カラーマッピング → Resynthesize、を選択。
設定ダイアログが表示されるので、Optionsタブ → Output の、Make horizontally tileable と Make vertically tileable にチェックを入れて、OKボタンを押す。この2つは、水平方向、垂直方向でタイル状にするかどうかの指定。
上下左右が繋がったシームレス画像が作成できた。
_bg_tile_take02.jpg
この画像を縦横に並べて大きな画像を作成する。フィルター → カラーマッピング → 並べる、を選択。
設定ダイアログが表示されるので、単位を%にして、幅と高さに400を入れて、4x4で並べた画像にする。ただ、本来は2x2でもいいような気もする…。途中でスクロール位置が初期座標に戻るループアニメにしてやれば済むはずだし…。

巨大な画像が生成された。
タイリングしてます感がキツイけど、実際に画面(?)に表示されるのはこの画像の一部だから、これでも問題無いのではないかなあ、と…。
まあ、レイヤー位置をシフトさせてスタンプツールを使って境界を馴染ませる等、手作業でもシームレス画像は作れるのだけど…。プラグインを使ってサクッと済ませる方法を知っていても、損にはならないはず…。
まずはGIMPで画像を開く。
切り抜きツール(トリミングツール)を使って、シームレス画像にできそうな部分だけを切り出す。
Resynthesizerプラグインを使って、上下左右に繋げる。フィルター → カラーマッピング → Resynthesize、を選択。
設定ダイアログが表示されるので、Optionsタブ → Output の、Make horizontally tileable と Make vertically tileable にチェックを入れて、OKボタンを押す。この2つは、水平方向、垂直方向でタイル状にするかどうかの指定。
上下左右が繋がったシームレス画像が作成できた。
_bg_tile_take02.jpg
この画像を縦横に並べて大きな画像を作成する。フィルター → カラーマッピング → 並べる、を選択。
設定ダイアログが表示されるので、単位を%にして、幅と高さに400を入れて、4x4で並べた画像にする。ただ、本来は2x2でもいいような気もする…。途中でスクロール位置が初期座標に戻るループアニメにしてやれば済むはずだし…。

巨大な画像が生成された。
タイリングしてます感がキツイけど、実際に画面(?)に表示されるのはこの画像の一部だから、これでも問題無いのではないかなあ、と…。
◎ 実験に使った画像について :
一応念のために、今回実験に使った画像も置いておくけれど…。画像生成AIで出力した画像なのでライセンスがよく分からない…。本番で使うのはアウトだとしても、実験用途なら大目に見てもらえるんじゃないのかと甘いことを思ってるけど…。ダメかな…。
_00123-1265479670.i2i.08.png
_man.png
プロンプトもメモしておくけれど、Lightning版モデルデータを使っている上に、img2img も経由させてるので、全然参考にならない気もする。通常版のモデルデータでこのプロンプトを使うと、かなりおかしい画像しか生成されないし…。
_00123-1265479670.i2i.08.png
_man.png
プロンプトもメモしておくけれど、Lightning版モデルデータを使っている上に、img2img も経由させてるので、全然参考にならない気もする。通常版のモデルデータでこのプロンプトを使うと、かなりおかしい画像しか生成されないし…。
jiburi anime background art style green forests landscape from sky, Negative prompt: mountains,lake,river,sky,house,road,clouds,prairie,field,vacant land,blank space,grassland,recesses,road,path, Steps: 5, Sampler: DPM++ SDE, Schedule type: Karras, CFG scale: 2, Seed: 353034743, Size: 1344x768, Model hash: 044a031b95, Model: juggernautXL_juggXILightningByRD, Denoising strength: 0.6, Style Selector Enabled: True, Style Selector Randomize: False, Style Selector Style: base, Version: f2.0.1v1.10.1-previous-653-gc4b6fcce
[ ツッコむ ]
以上です。



















