Blender 4.2.3 Fluid 1 立方体の水が直方体の容器の中で落下する

毎度のことだが、すっかり忘れてしまったころになってまたやってみたくなる。
おまけにBlenderのバージョンも変わって、設定の仕方も以前とは異なっている。
結局一からやり直し。

立方体の水が直方体の容器の中で落下するシミュレーションをやってみる。

直方体の容器の準備
 4x4x8のCubeを1つ用意して以下のように設定する。
 
立方体の水の準備
 上のCubeの中に2x2x2のCubeを1つ用意して以下のように設定する。

これだけで、Timeline上で再生ボタンをクリックすれば下のように何となくシミュレーションされたものを見ることができる。

設定を変更したらシミュレーションし直すわけだが、そのためのBakeボタンが見当たらない。
DomainとしたCubeのPhysicsのCacheでTypeをAllにしたらBake Allというボタンが表示されるようになった。

Typeは他にReplayとModularとあるが違いはよく分からない。
初期設定ではReplayになっていた。

Simulation MethodをFLIPにした場合が以下、


APICにした場合が以下の動画だ。




BlenderにインポートしたG2Fをそこそこ見れるようにレンダリング設定する。

BlenderにG2Fをインポートする。」の続きというか派生記事。

DAZ Studio > Blender > Unity > VaM という流れのつもりなので、最終的にはUnityで設定することになる。
Blender上でやった設定がUnityでも生かせればここでやることは無駄ではないが、今のところそうでもない。
BlenderでFBX形式で出力したものをUnityにドロップするとマテリアルやテクスチャの関係は再設定が必要だ。

それを踏まえて、それでもそこそこ見れるようにレンダリング設定する。

透過と無関係の部分は、DAZ StudioからCOLLADA形式で読み込んだだけで普通にテクスチャが表示される。
ただし、そのままVaMまで持って行ったら、なんだか肌がくすんだような色になっていた。
Blender上でSubsurface Colorに色味がついているのが原因のように思うので白に変更した。


ところが、Unityへ持って行ったら、また色がついていた。

理由はわからない。
どこか手順を間違えているのか。

これは後で考えることにして、肝心の透明がらみを設定する。
複雑なので以下の記事のように行った。
 DAZ Studioで出力した画像は透過情報が無いようだ。
 必要なら追加して背景を透明にする。
 「GIMP 背景が透明な画像の作り方
 どの部分が透明なのか、目に関しては構造がわからないと決められない。
 「Genesis 2 Femaleの目のあたりの構造
 透過情報を持つ画像を用意すれば以下の方法が一番簡便なのでこれを選んだ。
 「Blender 3.2.1 透過テクスチャを使う
 例えばまつ毛は以下のような設定にした。

 DAZ Studioから持ってきた画像に透明情報が入ってないことに気づくまで結構右往左往した。
 GIMPで背景を透明にしてV5BreeLashes1.jpgはV5BreeLashes1_Transp.pngで保存して、これを使う。

で、Blender上でここまでやっても、FBXにしてUnityへ持って行くと全部リセットされる。




Blender 3.2.1 透過テクスチャを使う (Cycles+Principled BSDF+透過情報を持つ画像)

Blender 3.2.1で透過テクスチャを使ってメッシュを抜く。
いろんな条件や設定がありすぎて訳が分からない。
とりあえず、表題の通り、Cycles + Principled BSDF + 透過情報を持つ画像、という条件でやってみる。

のっけから、Cycles何それ、状態だが、これはRender Engineの一つだ。

Principled BSDFはSurfaceの種類。

透過情報を持つ画像の作り方はここに書いた。
GIMP 背景が透明な画像の作り方
実際の操作の様子は動画で。

しっかり調べたわけではないが、検索した限りでは今のところ、設定が一番楽なのは以上の方法だと思う。




BlenderにG2Fをインポートする。

DAZ Studio > Blender > Unity > VaM
という流れでG2FにアニメーションさせたAssetを作成するのが最終的な目的だ。
なので、とりあえずRigが取り込めることを最低条件とする。

環境はBlender 3.2.1とDAZ Studio 4.15.0.2、扱うデータはGenesis 2 Femaleだ。
このサイト

Genesisフィギアは、Collada形式でExportとすれば
rigを保持したままBlenderにimportすることが可能です

とあったのでCollada形式でインポートしてみる。

DAZ Studioでの操作
 File > Export > Collada(.dae)
 初期設定のままAcceptをクリックする。
 仮にg2f_collada.daeとした。
 g2f_colladaという名前のフォルダの中にテクスチャが出力される。

Blenderでの操作
 File > Import > Collada(.dae)
 初期設定のままImport COLLADAをクリックする。
 g2f_collada.daeとg2f_colladaフォルダの中身、位置関係を変更しないこと。

まつげと目の部分が真っ黒だ。

他の方法ならこうならずに済むのか、どうせいずれは修正しなければならないのはどの方法でも似たり寄ったりなのか、このあたりがいつもわからない。
加えて、Blender上で修正するべきなのか、Unityへ持って行ってからの方がいいのかとかもわからない。

BlenderにインポートしたG2Fをそこそこ見れるようにレンダリング設定する。」へ続く。




Blender 3.2.1 - Backgroundに使うEmptyのSize -

現物をスキャンして、その画像をBlenderでBackgroundに読み込み、それに合わせてオブジェクトを作る。
しょっちゅうやってる方法だが、EmptyのSizeで始めて迷ったので覚書きしておく。

作るのはこんなもの。

目玉クリップと自作ESP8266基板との間をつなぐパーツを3Dプリンターで作る。
目玉クリップも基板もスキャンして画像を用意してある。
ともにBackgroundとして読み込んでねじ穴の位置合わせとかに使う。

作ってみたら、基板のねじ穴の位置が合わなかった。

原因
EmptyのSizeを決めるとき、勝手に横方向がSizeだと思い込んでいたこと。

実際は、縦横無関係に長い方の辺の長さをSizeとするようだ。
下の絵の画像、一方を90度回転したものを用意して読み込んだのだ。
どちらも同じSizeの値を設定して正しく同じ大きさで表示される。

今まで何で迷わなかったのかそっちの方が不思議だ。
あるいは、以前の私は「長い方指定に決まってんじゃん。」と無意識にやっていたのか。




Blender 3.2.1 Numpad.

「Numpad.」はテンキーのドットのことだ。
テンキーのドットと普通のドットは違うらしい。
Blenderでは視点の中心を切り替えるのに多用するが、最近買ったキーボードにはテンキーが無い。

マウスでこれをクリックすればいい。

どうしてもキーボードだけでやりたければ、これを右クリックして表示されるQuick Favoritesに登録もできる。

以後[Q]を打つと表示されるようになる。

ちなみに、テンキーの数字で視点を切り替えるらしいのだが、これは普通の数字キーで代用可能だ。

Blender 2.70 視点回転時の中心を選択部分にする」に関連記事。




Blender 3.2.1 ObjectをPlaneにSnapする。

こういう位置関係だったCubeを

PlaneにSnapする。

以下のように設定して、

あとはCubeをPlaneに近づければいい。




Blender 3.2.1 Set Origin

Blender 2.79 MirrorとOrigin」でちょっと触れたOrigin関連の覚書き。
Ver 3.2.1用に若干書き直した。

Object > Transform 改め Object > Set Origin

ObjectモードからObject > Set Originとたどると4つのOrigin toがある。

Origin to Geometryでは頂点の密度に偏りがあると設定後に以下のようになる。

Origin to Center of Massだと見た目のイメージと同じ位置に中心が来る。




Blender 2.92.0 - io_export_anim.py -

io_export_anim.py
AnimationをCSVで保存するAdd-onだ。
InstallしてFile>Export>Animetion(.CSV)から使う。


選択しているオブジェクトのAnimationデータをCSV形式で出力してくれる。
同じ名前のAdd-onが見え隠れして、そちらはCameraが対象なようなことが書いてある。
そもそも同名のAdd-onって共存できるのか。
さっきまで2つ表示されていたのに、気づいたら1つだけになった。

Blender 2.92.0 – CSVファイルを読み込んでObjectにAnimationをつける。 –
上の記事でCubeにAnimationをつけ、それをio_export_anim.pyでCSV出力したものを元データと比較して完全に一致すること確認した。




Blender 2.92.0 - Using Blender's filebrowser with Python -

Using Blender’s filebrowser with Python
というのを見つけた。
[crayon-6717493c6a54e622867369/]
そのままBlenderから実行して、確かにファイル名やフルパスが得られることを確認した。

これを、自分のスクリプトに組み込めばファイルの指定が自在にできるようになって便利だ。

試しに、今やっている、位置データのCSVファイルを読み込んでObjectにアニメーションをつけるPythonスクリプト、に組み込んでみる。
下が組み込む前のスクリプトで、ファイル名を決め打ちしている。
[crayon-6717493c6a55d125532625/]
これが、組み込んだ後のスクリプトだ。

[crayon-6717493c6a561325297505/]
Pythonなんて全然わからないので試行錯誤だが、どうにかBlenderのFile Blowserからドライブ上のCSVファイルを指定して、そのデータをCubeのAnimationとして読み込めた。