2025/03/01(土) [n年前の日記]
#1 [blender][anime] blenderのヘアーパーティクルでビルボード的な木を生やす
blender 3.6.21 LTSを使って、ビルボード的な木を大量に生やしてみたい。
以下のような結果になった。木のテクスチャ画像を自分で描いたので見た目が酷いのだけど、やりたかったことの雰囲気ぐらいは伝わるだろうか…。
以下のような結果になった。木のテクスチャ画像を自分で描いたので見た目が酷いのだけど、やりたかったことの雰囲気ぐらいは伝わるだろうか…。
◎ 別バージョンを再掲 :
先日試したバージョンと比べると、さて、どうなんだろう…。色々なやり方があるけど、どれがイイ感じなのか…。
◎ 作業手順をメモ :
一応、作業手順をメモ。環境は、Windows10 x64 22H2 + blender 3.6.21 LTS。
まずは画像を読み込んで、1枚のポリゴンに貼り付ける。ファイル → インポート → 画像を平面で、を選択。ただ、この項目はアドオンを有効にしてないと出てこないので…。
もし、該当アドオンを有効にしたい場合は、編集 → プリファレンス → アドオン → 検索欄に「image」と入力。「インポート/エクスポート:画像を平面でインポート (Import Images as Planes)」を有効にする。
閑話休題。ファイル → インポート → 画像を平面で、を選ぶとファイルダイアログが開くので、読み込みたい画像を複数選択。Shiftキーを押しながらクリックすると複数選択できる。右側で読み込む際のオプションを指定できるので…。
画像が読み込まれて横並びになった。「カメラを追従」にチェックを入れて読み込んだので、それぞれがカメラのほうを向いている状態になっている。また、青い線で、「このオブジェクトは○○を追従していますよ」と示されている。
画像の底の部分が原点になるように、編集モードにして各ポリゴンの頂点位置を調整する。デフォルトではポリゴンの中心に原点があるだろうから、全頂点を選択して、g → z → 0.5 と打ち込めば、全頂点が少し上にずれるはず。
各画像の底のところに原点がある状態になった。
この画像群を1つのコレクションにまとめる。コレクションにまとめておくことで、後にヘアーパーティクル機能でこれら画像を大量発生させた際に、コレクション内のオブジェクトのどれかをランダムで選んで発生させることができて、見た目のバリエーションを付加できる。
Mキー → 新規コレクション、を選択。
新規コレクション名を入力して「OK」をクリック。
画像群が、新規作成されたコレクションの中にまとまった。
パーティクル(ヘアーパーティクル)を発生させるための平面を作成。
パーティクル(ヘアーパーティクル)を設定して、画像を大量発生させる。

これでひとまず、各画像を大量に発生させることができた。しかし、この状態では問題がある…。
上から見ると、各画像(各ポリゴン)の角度が妙なことになっていることが分かる。元々の4つの画像がそれぞれ持っている角度が ―― カメラへの向きが、大量発生させた画像達にもそっくりそのまま引き継がれてしまっている。本来、大量発生したそれぞれは、それぞれの位置からカメラを向いてくれないと困るわけで…。
解決方法が分からなかったので、各画像のトラッキングを削除して対処してしまうことにした。元になってる画像ポリゴンを選択して、オブジェクトコンストレイントプロパティで、トラッキング設定を削除してみる。

各画像の角度を適当に調整してみた。以下のような配置状態になった。
レンダリング設定を指定する。Eevee の場合は、以下のような感じだろうか…。カラーマネージメントで、ビュー変換を標準に設定。
レンダリングエンジンを Workbench にした場合は以下。ただ、この設定にすると、マテリアルカラーが表示されなくなるので、全てのポリゴンにテクスチャを貼っておかないといけない。
カメラ位置が変化するようにアニメーションをつけてみた。以下のような結果になった。
これで、画像を大量に発生させることはできたので、今度は木に見える感じのテクスチャ画像を使って試してみる。今回は以下の4つの画像を使ってみた。
結果として、冒頭で示した動画を作ることができた。合成作業は AviUtl 1.10 + 拡張編集プラグインで行った。
まずは画像を読み込んで、1枚のポリゴンに貼り付ける。ファイル → インポート → 画像を平面で、を選択。ただ、この項目はアドオンを有効にしてないと出てこないので…。
もし、該当アドオンを有効にしたい場合は、編集 → プリファレンス → アドオン → 検索欄に「image」と入力。「インポート/エクスポート:画像を平面でインポート (Import Images as Planes)」を有効にする。
閑話休題。ファイル → インポート → 画像を平面で、を選ぶとファイルダイアログが開くので、読み込みたい画像を複数選択。Shiftキーを押しながらクリックすると複数選択できる。右側で読み込む際のオプションを指定できるので…。
- マテリアルタイプ : 陰影なし
- ブレンドモード : ハッシュ
- 影のモード : ハッシュ
- カメラを追従 : チェックを入れる (ここは入れなくてもいいかも…?)
画像が読み込まれて横並びになった。「カメラを追従」にチェックを入れて読み込んだので、それぞれがカメラのほうを向いている状態になっている。また、青い線で、「このオブジェクトは○○を追従していますよ」と示されている。
画像の底の部分が原点になるように、編集モードにして各ポリゴンの頂点位置を調整する。デフォルトではポリゴンの中心に原点があるだろうから、全頂点を選択して、g → z → 0.5 と打ち込めば、全頂点が少し上にずれるはず。
各画像の底のところに原点がある状態になった。
この画像群を1つのコレクションにまとめる。コレクションにまとめておくことで、後にヘアーパーティクル機能でこれら画像を大量発生させた際に、コレクション内のオブジェクトのどれかをランダムで選んで発生させることができて、見た目のバリエーションを付加できる。
Mキー → 新規コレクション、を選択。
新規コレクション名を入力して「OK」をクリック。
画像群が、新規作成されたコレクションの中にまとまった。
パーティクル(ヘアーパーティクル)を発生させるための平面を作成。
パーティクル(ヘアーパーティクル)を設定して、画像を大量発生させる。
- 平面を選択した状態で、パーティクルプロパティを選ぶ。
- 「+」ボタンをクリックしてパーティクル設定を新規作成。
- 「ヘアー」を選択。
- 「詳細設定」にチェックを入れておく。
- 「発生」の、数とヘアー長を調整。
- 「回転」にチェックを入れて、「回転する軸」はグローバルXに。見た目が良くなるなら他の項目を選んでもいい。
- 「レンダー」の「レンダリング方法」をコレクションに。
- 「レンダー」の「スケール」を1.0にしておいたほうが、見た目が分かりやすいかもしれない。
- 「コレクションインスタンス」は、先ほど新規作成した画像群が入ってるコレクションを選ぶ。
- 「ランダムに選ぶ」を有効化。
- 「オブジェクトの回転」を有効化。

これでひとまず、各画像を大量に発生させることができた。しかし、この状態では問題がある…。
上から見ると、各画像(各ポリゴン)の角度が妙なことになっていることが分かる。元々の4つの画像がそれぞれ持っている角度が ―― カメラへの向きが、大量発生させた画像達にもそっくりそのまま引き継がれてしまっている。本来、大量発生したそれぞれは、それぞれの位置からカメラを向いてくれないと困るわけで…。
解決方法が分からなかったので、各画像のトラッキングを削除して対処してしまうことにした。元になってる画像ポリゴンを選択して、オブジェクトコンストレイントプロパティで、トラッキング設定を削除してみる。

各画像の角度を適当に調整してみた。以下のような配置状態になった。
レンダリング設定を指定する。Eevee の場合は、以下のような感じだろうか…。カラーマネージメントで、ビュー変換を標準に設定。
レンダリングエンジンを Workbench にした場合は以下。ただ、この設定にすると、マテリアルカラーが表示されなくなるので、全てのポリゴンにテクスチャを貼っておかないといけない。
- 照明 : フラット
- カラー : テクスチャ
- カラーマネージメント : ビュー変換 : 標準
カメラ位置が変化するようにアニメーションをつけてみた。以下のような結果になった。
これで、画像を大量に発生させることはできたので、今度は木に見える感じのテクスチャ画像を使って試してみる。今回は以下の4つの画像を使ってみた。
結果として、冒頭で示した動画を作ることができた。合成作業は AviUtl 1.10 + 拡張編集プラグインで行った。
◎ 使用画像 :
一応念のため、使用画像もアップロードしておく。
_ground01.jpg
_layer_0001.png
_layer_0002.png
_layer_0003.png
_layer_0004.png
_man.png
_text_a.png
_text_b.png
_text_c.png
_text_d.png
_ground01.jpg
_layer_0001.png
_layer_0002.png
_layer_0003.png
_layer_0004.png
_man.png
_text_a.png
_text_b.png
_text_c.png
_text_d.png
◎ 課題 :
大量に発生した各画像(オブジェクト)が、それぞれ、カメラの位置を向くようにしたいのだけど…。どうすればいいのか…。
いや、この場合、カメラの位置を向かせることが大事なわけでもないのだよな…。ビルボードって、「カメラ自身が持っている角度」を各オブジェクトが継承することでビルボードになるのではないかしらん。でも、そんな設定、今現在のblenderで出来るのだろうか…?
ちなみに、カメラからかなり離れた位置に、この手のビルボード的なオブジェクトを大量発生させるなら、今回のやり方でも特に問題にはならないはず。その遠い位置に元となる画像群も一緒に配置してしまえばいいので…。
いや、この場合、カメラの位置を向かせることが大事なわけでもないのだよな…。ビルボードって、「カメラ自身が持っている角度」を各オブジェクトが継承することでビルボードになるのではないかしらん。でも、そんな設定、今現在のblenderで出来るのだろうか…?
ちなみに、カメラからかなり離れた位置に、この手のビルボード的なオブジェクトを大量発生させるなら、今回のやり方でも特に問題にはならないはず。その遠い位置に元となる画像群も一緒に配置してしまえばいいので…。
[ ツッコむ ]
以上です。


















