2017/06/25(日) [n年前の日記]
#1 [blender] blenderのパーティクルでビルボードを並べられるか実験
木のビルボードを大量に発生させて、その中を突き進んでいくカメラ、みたいなソレをやってみたい。TVゲームのアフターバーナーの背景みたいなアレ。
無料で使える3DCGソフト、blenderのパーティクル機能には、ビルボードなる種類も用意されているようで。ソレを使えばできるんじゃないかと思えてきたので実験を。
こんな感じになりました。
うむ。blenderのパーティクル機能を使っても、ある程度はできそうですな…。
無料で使える3DCGソフト、blenderのパーティクル機能には、ビルボードなる種類も用意されているようで。ソレを使えばできるんじゃないかと思えてきたので実験を。
こんな感じになりました。
うむ。blenderのパーティクル機能を使っても、ある程度はできそうですな…。
◎ 手順をメモ。 :
自分自身も忘れそうなので、作業手順をちと細かくメモ。…メモしたこと自体をたぶん忘れそうだけど。
ちなみに、レンダラーは blenderレンダーを選択。Cyclesじゃなくて古いほう。環境は、Windows10 x64 + blender 2.78。
まずは、地面に相当する平面(Plane)を1つ追加。
平面が1つ追加された。
後々、複製(Alt + D)して並べる時のことを考えて、オブジェクトの中心点が端になるように座標群を調整。
ちなみに、レンダラーは blenderレンダーを選択。Cyclesじゃなくて古いほう。環境は、Windows10 x64 + blender 2.78。
まずは、地面に相当する平面(Plane)を1つ追加。
- Shift + A → メッシュ → 平面。
- もしくは、3Dビューウインドウの下のほうのメニューから、追加 → メッシュ → 平面。
平面が1つ追加された。
後々、複製(Alt + D)して並べる時のことを考えて、オブジェクトの中心点が端になるように座標群を調整。
- TABキーを押して編集モードに切り替え。
- 次の順番でキーを叩く。g → x → 1 → Enter。
- g → y → 1 → Enter。
- TABキーを押してオブジェクトモードに切り替え。
◎ UVマップを作成しておく。 :
何故そうしないといけないのかちょっと分からんけど、この段階でダミーっぽい UVMap を作っておく。ここで作っておかないと、後になって木のビルボード用テクスチャ画像を読み込んだ際、妙なUV指定になってしまう。
データパネルに切り替えて、UVマップを1つ作成。UVMapという名前でUVマップが作られる。
データパネルに切り替えて、UVマップを1つ作成。UVMapという名前でUVマップが作られる。
◎ パーティクルを追加。 :
いよいよ、平面からパーティクルが出てくるように設定する。
パーティクルパネルに切り替えて、「新規」ボタンをクリックして、パーティクルを追加。
パーティクルの設定を行う。
更に、「レンダー」の設定をする。
とりあえずこの段階で、大量にビルボードを発生できそうな気配が見えてくる。後はビルボードの設定をしてやれば…。
パーティクルパネルに切り替えて、「新規」ボタンをクリックして、パーティクルを追加。
パーティクルの設定を行う。
- パーティクルのタイプは「エミッター」に。エミッターってのは、パーティクルを放射・発射するブツ。発射口とでも言えばいいのだろうか…。
- 「放射」の「数」は、発生させるパーティクルの総数。テキトーな数値を入れておく。
- 「開始」と「終了」を1にする。パーティクルは、ここで指定した開始〜終了フレームの間に総数分が発生する、という仕様になってる。両方が1ということは、開始早々、総数分を全部発生、という指定になる。
- 「寿命」に大きい値を入れる。パーティクルは、ここで指定したフレーム数分存在し続けるけど、大きい値を指定すれば、アニメが終わるまでずっとそこに存在し続ける状態になる。
- 「物理演算」は「なし」にする。例えばここが「ニュートン力学」等になっていると、アニメを再生した際、各パーティクルが重力で落ちていってどこかに消えてしまう。ずっとそこに留まり続けてほしいので、物理演算はしない方向で。
更に、「レンダー」の設定をする。
- タイプは「ビルボード」に。ビルボードと言うのは、常時カメラのほうに向き続けるポリゴンみたいなもの。立て看板とでもいうか。
- 「整列」の「固定」にチェックを入れてから、「Z」をONに。これで、各ビルボードが、横方向にのみカメラを追ってグルグルと回る状態になる。
- 「ビルボードオフセット」のYを1.0にする。木は地面の上に立っているので…。ここが0.0だと、木が地面の中にめり込んでる状態になってしまう。
- 「拡大縮小」の値をテキトーに入力。ビルボードの見た目の大きさを変更できる。
とりあえずこの段階で、大量にビルボードを発生できそうな気配が見えてくる。後はビルボードの設定をしてやれば…。
◎ マテリアルを追加。 :
エミッター(地面)用のマテリアルと、木のビルボード用のマテリアルを作成する。
マテリアルパネルに切り替えて、「新規」ボタンをクリック。
地面用のマテリアルと、木のビルボード用のマテリアルの2つを作成した。
マテリアルパネルに切り替えて、「新規」ボタンをクリック。
地面用のマテリアルと、木のビルボード用のマテリアルの2つを作成した。
◎ テクスチャ画像を追加。 :
木のビルボード用テクスチャ画像を追加していく。
木のビルボード用マテリアルを選択した状態で、テクスチャパネルに切り替える。「新規」ボタンをクリック。
「画像」の「開く」ボタンをクリックして、木のビルボード用テクスチャ画像を読み込む。
一応念のため、実験に使ったビルボード用テクスチャ画像を置いときます。CC0 / Public Domain ってことで。ファイルサイズが 5MB と大きいので注意。
_tree03_2048x2048.png (5.0MB)
テクスチャ画像が読み込まれた。
木のビルボード用マテリアルを選択した状態で、テクスチャパネルに切り替える。「新規」ボタンをクリック。
「画像」の「開く」ボタンをクリックして、木のビルボード用テクスチャ画像を読み込む。
一応念のため、実験に使ったビルボード用テクスチャ画像を置いときます。CC0 / Public Domain ってことで。ファイルサイズが 5MB と大きいので注意。
_tree03_2048x2048.png (5.0MB)
テクスチャ画像が読み込まれた。
◎ テクスチャとマテリアルの設定。 :
木のビルボード用テクスチャ画像はpng画像なので、透明・透過部分を示すアルファチャンネルを持っている。透明・透過部分は抜けるように、テクスチャとマテリアルを設定したい。
まずはテクスチャパネル上で、テクスチャの設定。
マテリアルパネルに切り替える。
パーティクルのビルボードは、影を落とそうとすると板ポリゴンの形そのままで影を落としてしまう。なので、「影」関係の設定は全部OFFにする。
(2017/06/26追記。影を落とす設定も見つけたけど、ちょっと問題が…。なので、やっぱり影関係は全部OFFにしたほうがヨサゲ。)
まずはテクスチャパネル上で、テクスチャの設定。
- 「イメージマッピング」の「延長」を「クリップ」に設定。デフォルトではここが「リピート」になってるけど、「リピート」の状態だと上下左右が繋がってしまって画面にゴミが出てくるので…。
- 「影響」の「カラー」「アルファ」にチェックを入れる。
- 「ブレンド」を「乗算」にする。
マテリアルパネルに切り替える。
- 「シェーディング」の「陰影なし」にチェックを入れる。これで、ディフューズ(拡散色)とスペキュラー(反射色・ハイライト色)の設定は無視される状態になる。
- 「透過」にチェックを入れて、「Z値透過」をONにする。
- 「オプション」の「面テクスチャ」にチェックを入れる。
パーティクルのビルボードは、影を落とそうとすると板ポリゴンの形そのままで影を落としてしまう。なので、「影」関係の設定は全部OFFにする。
(2017/06/26追記。影を落とす設定も見つけたけど、ちょっと問題が…。なので、やっぱり影関係は全部OFFにしたほうがヨサゲ。)
◎ パーティクルのビルボードにマテリアル情報を反映。 :
ビルボードのマテリアルとテクスチャが設定できたので、パーティクルのビルボードに該当マテリアルを使うように指定してやる。
パーティクルパネルに切り替えて、「レンダー」のマテリアルに、先ほど設定したビルボード用のマテリアルを指定。
本当に反映されるか確認。3Dビューウインドウの下のほうのレンダー種類を「レンダー」に切り替え。もしくは Shift + Z でも「レンダー」と「ソリッド」を切り替えられる。…ちゃんと木っぽいものが表示された。
パーティクルパネルに切り替えて、「レンダー」のマテリアルに、先ほど設定したビルボード用のマテリアルを指定。
本当に反映されるか確認。3Dビューウインドウの下のほうのレンダー種類を「レンダー」に切り替え。もしくは Shift + Z でも「レンダー」と「ソリッド」を切り替えられる。…ちゃんと木っぽいものが表示された。
◎ カメラのアニメをつける。 :
カメラを動かすアニメをつけていきたい。
まずは、何も設定していない状態でアニメを再生してみる。
ここまでの設定が正しければ、まだ何もアニメをつけてないので、3Dビューウインドウ上では何も動かないはず。動いたら、どこかで設定を間違ってる。もし、各パーティクルが下のほうに落っこち始めたら、物理演算が有効になってる。その際はパーティクルの「物理演算」を「なし」にしてやる。
問題が無ければ、初期カメラ位置を調整していく。
テンキーの0を叩いて、カメラ視点にしてやる。その状態で Shift + F を叩けば、WASDキー + QRキー + マウスカーソル移動で、カメラの位置や向きを、見た目で調整できる。決定は左クリック、もしくはEnter。3Dビューウインドウの下のほうにショートカットキーの一覧が表示されてるので参考に。
アニメーションの設定をする。レンダーパネルに切り替えて、解像度だの、フレーム範囲だの、フレームレートだの、出力フォーマットだのを指定。
ちなみに、レイトレーシングを無効にするとレンダリング速度がちょっと早くなる。が、代わりに何かの機能が使えなくなるのだと思う。
1フレーム目に移動。Ctrl + Shift + ↓、もしくはタイムラインウインドウの下のほうにあるボタンで、最初のフレームに移動できる。
カメラを選択して、1フレーム目のカメラ位置や角度を設定してやる。
キーフレームを打つべく、Iキーを叩く。メニューが出てくるので「位置」もしくは「位置/回転」を選択。これで、1フレーム目に、カメラのキーフレームが設定された。
最終フレームに移動。Ctrl + Shift + ↑、もしくはボタンで、最終フレームに移動できる。
最終フレームのカメラ位置を設定したら、Iキーを叩いて、「位置」もしくは「位置/回転」を選択。
これで、1フレーム目と最終フレームにキーフレームが設定された。キーフレームの間のカメラ座標値や角度は blender が補間して作ってくれる。
Alt + A で、アニメを再生して動きを確認。
動きが気に入らなければ、1フレーム目や最終フレームに移動して微調整して、Iキーを叩いてキーフレームを設定し直し。
まずは、何も設定していない状態でアニメを再生してみる。
- 3Dビューのレンダー種類を「ソリッド」にでもしておいて…。「レンダー」では重くてアニメが再生されないので…。
- Alt + A、もしくはタイムラインウインドウの下のほうの再生ボタンをクリックすれば、アニメが再生される。
- もう一度 Alt + A を叩けば再生は止まる。
ここまでの設定が正しければ、まだ何もアニメをつけてないので、3Dビューウインドウ上では何も動かないはず。動いたら、どこかで設定を間違ってる。もし、各パーティクルが下のほうに落っこち始めたら、物理演算が有効になってる。その際はパーティクルの「物理演算」を「なし」にしてやる。
問題が無ければ、初期カメラ位置を調整していく。
テンキーの0を叩いて、カメラ視点にしてやる。その状態で Shift + F を叩けば、WASDキー + QRキー + マウスカーソル移動で、カメラの位置や向きを、見た目で調整できる。決定は左クリック、もしくはEnter。3Dビューウインドウの下のほうにショートカットキーの一覧が表示されてるので参考に。
アニメーションの設定をする。レンダーパネルに切り替えて、解像度だの、フレーム範囲だの、フレームレートだの、出力フォーマットだのを指定。
ちなみに、レイトレーシングを無効にするとレンダリング速度がちょっと早くなる。が、代わりに何かの機能が使えなくなるのだと思う。
1フレーム目に移動。Ctrl + Shift + ↓、もしくはタイムラインウインドウの下のほうにあるボタンで、最初のフレームに移動できる。
カメラを選択して、1フレーム目のカメラ位置や角度を設定してやる。
キーフレームを打つべく、Iキーを叩く。メニューが出てくるので「位置」もしくは「位置/回転」を選択。これで、1フレーム目に、カメラのキーフレームが設定された。
最終フレームに移動。Ctrl + Shift + ↑、もしくはボタンで、最終フレームに移動できる。
最終フレームのカメラ位置を設定したら、Iキーを叩いて、「位置」もしくは「位置/回転」を選択。
これで、1フレーム目と最終フレームにキーフレームが設定された。キーフレームの間のカメラ座標値や角度は blender が補間して作ってくれる。
Alt + A で、アニメを再生して動きを確認。
動きが気に入らなければ、1フレーム目や最終フレームに移動して微調整して、Iキーを叩いてキーフレームを設定し直し。
◎ レンダリング。 :
レンダリングは、レンダーパネルの上のほうの「アニメーション」をクリック。
レンダリングは時間がかかるけど、単にプレビューっぽい感じでざっくりと動きの雰囲気だけ掴みたいなら、解像度設定の「100%」を「25%」等にしてレンダリングしてやれば、縦横1/4のサイズになってすぐにレンダリングが終わるので…。この動きでOK、と思ったところで「100%」に戻して本番レンダリングすればよろしいかと。
ちなみに自分の場合は、一旦連番pngで保存してからAviUtlで読み込んでmp4動画にしてます。
_【AviUtl】x264guiExとは?特徴や出力形式について(1/3)
いやまあ、blender も、出力 → FFmpeg video を選べば、直接mp4動画等を出力することもできますが…。コレ、標準で選べるのかな? ちとよく分からず。
ともあれ。blenderのパーティクルのビルボードを使えば、木をわらわらと生やしたりできるようですよ、とメモ。
レンダリングは時間がかかるけど、単にプレビューっぽい感じでざっくりと動きの雰囲気だけ掴みたいなら、解像度設定の「100%」を「25%」等にしてレンダリングしてやれば、縦横1/4のサイズになってすぐにレンダリングが終わるので…。この動きでOK、と思ったところで「100%」に戻して本番レンダリングすればよろしいかと。
ちなみに自分の場合は、一旦連番pngで保存してからAviUtlで読み込んでmp4動画にしてます。
_【AviUtl】x264guiExとは?特徴や出力形式について(1/3)
いやまあ、blender も、出力 → FFmpeg video を選べば、直接mp4動画等を出力することもできますが…。コレ、標準で選べるのかな? ちとよく分からず。
ともあれ。blenderのパーティクルのビルボードを使えば、木をわらわらと生やしたりできるようですよ、とメモ。
◎ 余談。 :
例えばだけど、
_ANT Landscape アドオン
で山っぽい地形を生成して、頂点でパーティクルを発生するように設定すれば、こんな感じの見た目にもできる、とメモ。
よく見ると前後関係がおかしくなってチラチラしてる部分があるけれど。ビルボードはカメラが回転したりゆっくり動いたりすると、ネタがバレるというか、こういった問題が出やすいというか。あくまでインチキなので…。
よく見ると前後関係がおかしくなってチラチラしてる部分があるけれど。ビルボードはカメラが回転したりゆっくり動いたりすると、ネタがバレるというか、こういった問題が出やすいというか。あくまでインチキなので…。
◎ 課題。 :
パーティクルのタイプには、「エミッター」とは別に「ヘアー」というのもあるようで。ヘアーを使ってもこういうことはできるのだろうか…? ググってみたけど、ちょっとよく分からなかった。
「ずっとそこに留まり続ける何か」という点では、「ヘアー」がまさしくソレだろうと思うのだけど…。こういう場合も使えるのだろうか。
それと、影が無いのが気になる…。ビルボード用テクスチャの作り方次第で、誤魔化せないものだろうか…。
「ずっとそこに留まり続ける何か」という点では、「ヘアー」がまさしくソレだろうと思うのだけど…。こういう場合も使えるのだろうか。
それと、影が無いのが気になる…。ビルボード用テクスチャの作り方次第で、誤魔化せないものだろうか…。
◎ 参考ページ。 :
[ ツッコむ ]
以上、1 日分です。