Toucanバーチャル博物館
VRML図鑑 3DCG 展示室   開発日誌 お問い合わせ

トコちゃんの修行日誌 2025年4月

お仕事中デスクトップ

お仕事中デスクトップ

4月15日 正三角形グリッドに対応 

Copilotさんも十分優秀ですね

「Pythonでy軸だけを30度傾けてひし形にするマトリックスは」と質問したら

# 30度(ラジアンに変換)
theta = np.radians(30)

# 4x4シアー変換行列(y方向にx座標依存で傾ける)
shear_matrix = np.array([
  [1, np.tan(theta), 0, 0],
  [0, 1, 0, 0],
  [0, 0, 1, 0], # z軸は影響なし
  [0, 0, 0, 1] # w軸も影響なし
])

注釈まで付けてくれて、ありがたい。もちろん、これだけでは完成はしないが、肝になる方法などは調べたり考えるより頼った方が楽。シアー変換て言うんですね。勉強になる。

流れ

流れ

自前の2D処理は流れの早いところに白波が立っています。Fluidによる流れは粘性抵抗が大きく、浅瀬や底近くは流れがゆるやか。 こっちの方がやっぱり自然ですね。

4月13日 初アドオン

流れ表示

Pyshonの文法を覚えながら、Blenderのapiについては検索で解決できました。ユーザーが多いので、同じ問題で質問があり、コード有の親切な回答があって助かります。

色々と手順が大変でしたが、内容はしごく簡単、グリッド毎にパーティクルの速度の平均を計算し、表示しています。

4月11日 Physonでグリッド表示

Grid

慣れていないPyshonに挑戦。1日かかって、やっとグリッド表示。手探り状態。

タイル内のパーティクルの平均の速度を表示してみる予定です。 

4月9日 Blenderで水(Fluid)シミュレーション

Fluid

左はUnityでプログラムした自前の流れ処理で作成した水面。右がBlenderのFluid。

自前の流れ処理は2Dグリッドで計算していて、水面がなめらかすぎます。Fluidは岩で流れが止まり水が溜まり、流れ出す、緩急がはっきりしています。 

UnityからBlenderへはFBX Exporter(Window/Package Managerからインストール)で変換しました。

上流にInFlow(流れ出し)を設定して、荒い解像度(Resolution Divisions = 256)で200フレームBakeシミュレーション、流れの結果をメッシュにし、水(Flow,Liquid)にして配置。

同じことを、全域に水が行き渡るまで何度も続けて、最後に32GBメモリぎりぎり、解像度832で200フレーム計算して完成。

シミュレーション結果を継続する方法があるといいのですが、ちょっと調べてみます。

<追記>FluidのCacheで Is Resumable(再開可能)をチェックすると継続できました。Cacheで保存されたデータも必要が無いフレームは削除しても大丈夫のようです。再生位置はOffsetを指定すれば調整できます。上記の方法だどメッシュにした段階で流れの速度が0になってしまうので、水がたまりやすかったのではないかと思います。

パーティクル

だいぶ細かいようにも思うが、浅いところは粒がだいぶ離れていて、水滴が小石ほどの大きさです。レンダリングは目立たないように、半分ほど下げ地面にめり込ませました。

さらに細かくするには有料アドオンFLIP-Fluidsがよさそうです。Fluidの強化版みたいな感じ。無料の体験版もあるようです。

有料アドオンCell Fluidsは、2Dグリッド処理ながら良さげなので購入して試してみようと思います。処理も軽いし、Geometry Nodesなので取り組みやすそうな気もします。こっちの方が現実的のような気がします。

ベイクしたフローマップをゲームエンジン(UnityおよびUnrealエンジン)にエクスポート可能だそうです。

4月4日 久しぶりのUnity

Unityを起動した。1年ぐらい前、魚のモデルのglTF変換を改良して、Boneを増やした時以来。その時、Fontでエラーが発生していてそのままだったので、その修正。

Project/Assets/Fontsのフォルダにたぶん入れていた、フォントデータが何故か消えていた。新しいパソコンに移行したときに消えたのかな?

使用していたフォントはSourceHanCodeJP007.ttf

見つけ出してコピー。 FontAssetのSource Font Fileに設定して動くようになったが、_アンダースコアが表示できないとのワーニングエラー。

フォントのAtlas(全フォントをまとめたテクスチャ)が消えていた。そこでUpdate Atlas Textureを実行。Character SetをCustom Charactersにして、使用するフォントが含まれるテキスト、japanese_full.txt(ダウンロードした)をListにペースト。

Generate Font Atlasで作成し、忘れずにSave。これでOk覚書。

そのほかにも"NullReferenceException: Object reference not set to an instance of an object"とUnityEditerで発生しているがよくわからない。 

4月3日 シェーダーノード

Pyshonを勉強し始めて、テクスチャペイントの画面で画像の編集とかできそうです。

シェーダーノードの方がPyshonでいろんなノードを追加できたら便利そうだと考えたのですが、シェーダーノードはPyshonには対応していないようです。軽量で動作するようにGPUメインなんですね。シェーダーノードなんだから、そりゃそうですね。

まだら模様やパーマークを試しにシェーダーノードで組んでみました。魚ごとに違う模様にすることができます。Unityのシェーダーノードでも同じような事は簡単に出来そうですね。

Pyshonで出来ることはなんとなく把握できたのですが、アドオンの開発となるとBlenderの事も熟知して本格的に取り組む必要がありそうですね。当然か。自分用の簡単なツールぐらいなら気軽に作れそうですが。

Pyshonは置いておいて、Blenderで水の表現に挑戦してみようかな。水のシミュレーション。

ピンポンパール

ワキン

../toucan/TocoDiaryJ.html