FC2ブログ








Blender 2.8 Animation Nodesで遊んでみよう! #01

こんにちは。

ブログ更新せずに、Blenderで色々と遊んでました。
前回はスクリプトでオブジェクトを大量に配置してみましたが、もっとすごいことが簡単にできるアドオンがありました。

Animation Nodes

色々な形でオブジェクトを配置して、動かしたり、色を変えたりできます。

今日は、これで遊んでみようと思います。
まずは、10×10×10の球を配置してみます。
20200202-01.png

Distribute Matricesのグリッドを変えると直線や円、らせんに配置することもできます。
また、メッシュにすると、メッシュの頂点やサーフェス上にオブジェクトを配置することもできます。
オブジェクトの数をあまり大きくするとBlenderがフリーズします。

Object InspancerのCopy Full Objectにチェックを入れて、元オブジェクトにリジッドボディを追加すると、物理演算で落下させることもできました。

20200202-02.png

フレームの剰余の範囲で、キューブと球を切り替えたり、オブジェクトリストをサブプログラムに渡して、Vector Wiggleでインスタンスを動かすこともできました。
分岐とループの使い方が分かったので、色々と面白いことができそうです。

それでは、また。

[ 2020/02/02 23:48 ] 3DCG | TB(0) | CM(0)

Blender 2.81でドーナツを作ってみよう! #05

こんばんは。

今日は、Blender 2.81のスクリプトで遊びます。
前々回、ドーナツを100個空から落としましたが、その時は、手作業で複製して空に配置しましたが、これをスクリプト化して大量に空から落としてみます。

Blender 2.8になってスクリプトのAPIが大幅に変更になっているようで、情報を調べるのがかなり大変でしたが、できました。

import bpy

size = 10
bsize = 0.2
pos = bpy.context.scene.cursor.location

if bpy.context.object.select_get():
  for z in range(size):
    for y in range(size):
      for x in range(size):
        bpy.ops.object.duplicate()
        bpy.context.object.location = (x * bsize + pos.x, y * bsize + pos.y, z * bsize + pos.z)
else:
  print("Please select object!")

オブジェクトを選択してスクリプトを実行すると、オブジェクトをX軸Y軸Z軸にそれぞれ10個ずつ複製して、3Dカーソルの位置に配置するスクリプトです。

最初に選択したオブジェクトをコピーし続けようと思ったんですが、スクリプトから選択するとうまく動かず、コピーしたオブジェクトを更にコピーするとうまくいったので、これで完成ということにしました。

それでは、空から1000個のドーナツを落とします。
どーーん!!
Donuts_1000-2.png

こんな感じです。
頂点数3000くらいのドーナツですが、1000個も物理シミュレーションを動かすとかなり重くなります。
アニメーションの1コマに数秒かかります。
さすがに、UE4やUnityよりは遅いですね。

まあ、このくらいの速度が出れば、試行錯誤でアニメーションを作って最終的に動画にする分には問題なさそうです。

スクリプトも多少分かってきたので、面白い事を考え付いたらアドオンでも作ってみようかな。

それでは、また。

[ 2019/12/30 01:01 ] 3DCG | TB(0) | CM(0)

ペンタブ(XP-PEN DECO01)を買ったよー!

こんにちは。

Blenderでスカルプティングしていて、ペンタブが欲しいな~と思いました。
ググってみたら5000円くらいでも良さそうなのがあります。
思わず、ポチっと買ってしまいました。(^^;



結構おおきくて、使いやすいです。

イラストも描いてみたいなと思って、CLIP STUDIO PAINTの体験版もインストールしました。
30日間の無制限で使えるようです。

かなり練習しないとちゃんとした絵は描けそうにないけど、使いこなせるようになったら買おうかな。



ペンタブでBlenderのスカルプティングをやってみたら、マウスとは全然違って思い通りに粘土がコネコネできました。
ハイポリになってしまうのが欠点ですが、Blender 2.81にはBsurfacesというリトポロジーを支援してくれるアドオンが最初から入っていました。昔は有料だった有名なアドオンのようですが、これがあればスカルプティングで作ったモデルをローポリ化してアニメーションやゲームに使えるかも。

もう少し練習したら、何か作ってみようと思います。

それでは、また。

[ 2019/12/29 23:55 ] 3DCG | TB(0) | CM(0)

Blender 2.81でダイヤモンドを作ってみよー!

こんにちは。

Blender 2.81で何か面白い事ないかな?
ググってみたらこのサイトのダイヤモンドに惹かれました。
Cyclesでダイヤモンド〈その1〉

2012年の記事で、Blenderのバージョンが相当古そうなのと、日本語化してないので、今のBlenderで同じことができるかな?
試行錯誤の末にできたのがこれです。
20191224.png

ベルベット調の布と、ダイヤモンドのグレアが綺麗です。
光の当たり具合を調整するのにすごく苦労しました。
結局、同じ感じまで持っていけなかったけど、これはこれで綺麗なので良しとします。

やり方を書いておきます。
まず、床の平面を追加し、布の下に置く球を適当に細長く潰した形にして2つ置きました。
どちらもコリジョンを設定します。
次に布の平面を作成し、50くらいに分割します。
これにクロスを追加して、アニメーションで床に落とします。
程よい皺ができるまで下の球の形や配置を調整します。
(ここにも結構時間がかかりました)
あと、球を動かして、布を落とした時に、球の周りに布が吸い込まれるバグがありました。
球を作り直すことで対応しました。
次にダイヤモンドをアドオンを使って追加します。
マテリアルはこの参考サイトに書かれている通りに、布をベルベットBSDF、ダイヤをグラスBSDF、周りの壁をディフューズBSDF、板光源を放射にしました。
後は、綺麗に見えるようにダイヤモンドを配置して、カメラと光源を調整します。

次にCompositingワークスペースに切り替えて、以下のようにノードを配置しました。
bandicam 2019-12-24 23-52-39-417

ダイヤモンドの明るさに合わせてカラーランプの位置を調整しないとグレアがきれいにかかりません。
最初はバージョンの違いかと思いましたが、壁の大きさ等が参考サイトと違ったことで、全く同じパラメータにしても結果が大きく変わっていました。

クロスシミュレーションのやり方と、コンポジットノードでグレアの使い方が分かったのが今日の収穫です。
これで、色々なものが作れそうな気がしてきました。

それでは、また。
[ 2019/12/25 00:02 ] 3DCG | TB(0) | CM(0)

Blender 2.81でドーナツを作ってみよう! #04

こんにちは。

今日もBlenderで遊びます。

チュートリアル動画のドーナツは、操作を学ぶ都合で色々と複雑な作り方をしてましたが、どこまで簡単に作れるかを探ってみます。
大量にドーナツを描画するためにも、頂点数をできるだけ抑えることにもチャレンジしてみます。

サブディビジョンサーフェスや細分化を使わないで、どこまでやれるかを試してみましたが、大セグメント数:96、小セグメント数:32のトーラスであれば、ある程度本物っぽくできました。
スカルプティングをやるには粗すぎるので、アイシングとトッピングは省略しました。

ノイズテクスチャとかを使って、テクスチャを自分で描かなくてもよくできないかを色々と試してみましたが、うまくいきませんでした。

高いところから100個のドーナツを落として、地面に跳ね返ったところを撮影してみました。

Donuts05.png

やり方を書いておきます。
物理演算プロパティで、ドーナツにリジッドボディとコリジョンを追加します。
キューブを追加して、平べったく拡大して地面にします。これにもリジッドボディを追加して、タイプをパッシブにします。
配列のモディファイアーで5×5の25個に増やして、モディファイアーを適用して一つのオブジェクトにします。
編集モードでメッシュ-分離-構造的に分離したパーツで、を使ってバラバラにします。
オブジェクトモードで、オブジェクト-原点を設定-原点を中心に移動(ボリューム)を実行します。
この25個を複製して移動と回転で4段積み重ねます。
アニメーションを再生。地面から跳ね返ったところで停止します。
カメラとランプを良い位置に調整して、レンダリングしたら出来上がり。

それでは、また。

[ 2019/12/22 20:17 ] 3DCG | TB(0) | CM(0)