ジオメトリノードやマテリアルの情報を共有するには、下記の方法が考えられます。
- プロジェクトファイル(.blend) 自体を共有する
- スクリーンショットなど、画像データにして送る
Qiita でいくつか記事を書くにあたり、基本的には後者の画像データでの共有が基本となります。ただ、グラフにおいて拡大縮小を繰り返す程度に大規模になると、1 枚のスクリーンショットでは読み取りにくい画質になってしまいます。
この問題を解決するためのアプローチについて紹介します。
画像形式でのエクスポート
高画質の画像データにして送るアドオンが存在しています。
- PrintNodes: 1枚の高画質の画像としてエクスポートしてくれます。ただ、v5.0.1 では依存ライブラリ周りで導入に苦労しそうです(出来てません。動作するかも不明)
- blender-node-export: svg 画像にしてエクスポートしてくれます。Blender v5.0.1 で動きませんでした。
...全滅やんけ。
ということで、blender-node-export のバグを修正しました。修正したものは https://github.com/fiord/blender-node-export に上げてあります(完璧では無いかもですが)
これでエクスポートできた画像がこちらです。
厳密には Qiita は SVG 画像に対応していないため、GIMP で開き、圧縮レベル 5 程度の PNG ファイルとして保存しなおしています。画像データ自体実際にはスカスカなので、圧縮しないと 10MB を超えるような画像でもいけます。
mermaid 形式でのエクスポートを試みる
Qiita では mermaid 形式の共有が可能です。これどうなの?とアドオンを作ってみました。
結果がこんな感じです。
Qiita では 2,000 文字までのようで、正直なところ、複雑なジオメトリノードの共有には結構きついなと感じました。
ただ、こういった URL での共有は出来そうです。
追記: PlantUML にも対応させてみました。お前文字数制限無いんかい。これでええやん。
ついでに依存関係を解決する
PrintNodes ですが、依存関係が解決できれば動くのでは?と思っています。ということで依存関係を解決するため、Blender の環境で pip をしましょう。
Blender のフォルダの中にある python をコマンドラインで使う...の面倒ですよね。ということで、こちらのアドオンを使うと便利です。
これを入れると、こんな感じで動かすことが出来ます。実は上の自作したアドオンも pyperclip に依存しているんですよね。あると便利だと思います。
こんな感じで簡単にライブラリのインストールが可能です。
...ただ、「アドオンが動くか」は別問題のようです。特に PIL はかなり複雑ですからね...
pyperclip を使ってアドオンを導入して検証する、ということは出来たので良かったと思っています。
まとめ
個人的には「最初から画像!」という形式がやりやすいのは分かるのですが、ベクター形式で取り扱える svg の方が好みです。内部的にどうなっているかは把握できていないですが、画質が足りなくてガビガビ...ということはまず無くなりました。
Qiita に投稿するにあたってはどの形式がよいのでしょうかね...エンジニアなので Mermaid や PlantUML の形式にしたいという心もありつつ、でも結局見やすいのは画像じゃね?というところもあります。



