Blender SDFモデラーアドオン ConjureSDFについて

Blender

ConjureSDFとは?

SDFはSigned distance functions 符号付き距離関数のことで、簡単に言うと基準からどのくらい距離が離れているのかを計算できる関数のことです。モデリングでのSDFの活用はポリゴンのように頂点や辺や面などの要素ではなく、計算上で形状を表現できるため、精度の高い形状再現ができます。

GeometoryNodesでSDFが扱えるようになったことにより、BlenderでSDFを扱うことが容易になりました。昨今新たなモデリングパラダイムとしてSDFモデリングが話題となっており、BlenderでもSDF実装をきっかけにいくつかのSDFアドオンが開発されることになりました。

その中でも多くの人に注目されていたConjureSDFが約1年の開発期間を経てアルファ版のリリースされました。BlenderMarketとGumroadで販売中です。価格はBlenderMarketが$45です(日本円で7000~8000円くらい)アルファ版とはいえアドオンとしてはなかなかのお値段です。

Conjuresdf For Blender 3.3 - Public Alpha (Windows/Linux)
ConjureSDF is a Blender modeling addon. Allowing you to create flawless smooth shapes with non-destructive boolean primi...

メジャーバージョンでは80ユーロ(ドルの記載はなかった)になる予定だそうです。

簡単な使用方法

SDFモデラーはハードサーフェス系モデリングにはめっぽう強い傾向があるので、自分もBlenderでのSDFアドオンを期待しており、今回アルファ版ではありますが、ConjureSDFを購入しました。

今のところ公式Discord(購入後に招待をもらえる)が存在していますが、ドキュメント類が整備されているとは言い難いので、ConjureSDFを使う際のとっかかりや、購入検討されている方の判断材料になればと思い簡単な使い方に関して書いておこうと思います。

ConjureSDFは2024/6現在アルファ版でのリリースで、今後バージョンアップが続くと予想されます。そのためある程度時間が経つとこの記事の情報は古くなる可能性が高いので注意してください。

ConjureSDFによるモデリングの様子

いろいろ説明する前にConjureSDFのでモデリングを動画に撮ってみました。4倍速ですが感じは伝わるかなと思います。モデリングはアイデアスケッチ的に参考無しの思いつきで進めていますが、SDFモデリングの試行錯誤のやりやすさは特筆です。

Blenderのバージョン

公式の説明の通り3.3.xでの動作になります。自分は3.3系最後のバージョンである3.3.19をインストールしてアドオンを使ってみましたが動作しました。

CSDFRoot

SDFモデリングを始める前に、CSDFRootの設置が必要です。ToolタブやAddメニューから設置ができます。このオブジェクトを設置したのちにSDFプリミティブが配置できるようになります。

SDF形状のプレビュー

SDFでの形状を確認する場合は、RenderEngineにConjureVisionというレンダーが追加されているので有効にします。

WireframeやSolidではSDFの状態でのプレビューはできませんMaterialViewRenderedにてプレビューを行う必要があります。

MaterialViewかRenderedだとSDF形状のプレビューができる
Solidだとメッシュプリミティブにしか見えない

SceneタブにてSDF形状のクオリティ設定が行えます。Quality Settingの項目、特にMinimumsizeを小さくすることでディテール再現度が高まります。

Renderedでプレビューする場合、MatCapを変更することができます。

アウトライナー設定

CSDFタブのアウトライナーではSDFオブジェクトのアウトラインを設定できます。このアウトライナーはBlenderのアウトライナーと連動しており、名前変更などはBlenderのアウトライナーに反映されます。ただ複数選択などはこのアウトライナーではできない様子です。

アウトライナー上でCtrlキーを使うなどして複数選択はできませんでしたが、アウトライナーの右横にあるSeletアイコンをクリックすることで複数選択することができましたSelect nested Primtiveアイコンで入れ子になった親子を選択することができます

またオブジェクトの削除もおなじくアウトライナー右横のゴミ箱アイコンで行えます

CSDFタブでのアウトライン操作

アウトライナーでの入れ子

アイトライナーではSDFオブジェクトを入れ子にできます。入れ子にした場合、子は親にしかブーリアンの影響を与えなくなります。(ブーリアンについては後述)

入れ子にするには、子を先に選択して親を選択した上でNest under Activeボタンを押すことで入れ子状態になります。入れ子を解消するときは子を選択してUnnestボタンを押します。

例ではAとBをCがDiffrenceしていますが、CをBの子にするとCはBにしか影響を与えなくなります。入れ子を解消するとAとBどちらにも影響を与えます。

アウトライナーの並び順によるブーリアンへの影響

ブーリンアンの結果はCSDFタブのアウトライナーの並び順に影響されます。たとえばDiffrenceの場合、Diffrenceされる側が上で、Diffrenceする側が下になることでDiffrenceブーリアンが正しく挙動します

ミラー

SDF形状にミラーモディファイアはおそらく使えないので、形状ミラーをしたい場合は、WorldMirrorで軸を指定してミラーリングします。Smooth Mirroringは中央のBlend量を調整する設定です。

ブーリアン設定

基本的にSDFプリミティブをブーリアンで加工して形状を作ります。ブーリアン設定はオブジェクトプロパティにあります。

オブジェクトプロパティでのSDFオブジェクトの設定

ブーリアンはUnion、Diffrence、intersect、insetの4つです。

Blendedingでブーリアン時のBlend方式とStrengthで量を調整できます。基本的にここの設定でいわゆるフィレット表現やベベル表現を行う形になります。

またSettingにてミラー除外するIgnore Mirror、中空形状にするSolidfy、プリミティブの丸みを調整するRoundedが設定できます。

SDFオブジェクトの移動拡大縮小回転

SDFオブジェクトは通常のオブジェクトのように移動拡大縮小回転ができます。基本的にはGSRキーを使って編集をしていく形になります。また通常オブジェクトのようにItemタブで数値入力による移動拡大縮小回転も行えますので、正確な編集もできます。

メッシュ化

必要Pythonモジュールのインストール

SDFオブジェクトは計算で表現されているためポリゴンとして扱うためにはメッシュ化が必要になります。CSDFタブのMeshingのConvert to Meshでメッシュ化できますが、3.3.xではPythonモジュールのModernGLが必要になるとのことです。ModernGLがインストールされていない場合、Convert to Meshボタンの下側に赤文字でアラートが出てメッシュ化ができません。

メッシュ化メニュー
ModernGLがインストールされていない旨が表示されている状態

モジュールインストールはConjureSDFアドオンにインストールボタンがあるので通常はここでインストールすると良いと思います。

ここでインストールした後、一度Blenderを再起動するなどしてモジュールが読み込まれるようにしてください。うまくいかない場合は公式のDiscordにModernGLのスレッドがあるので、Discordを参照してもらうと良いと思います

このModernGLのインストールは現状3.3.xでの動作に必要な物だそうで、今後4.0以降にアドオン対応していくとアドオンなどの扱いが変わってくるそうです。

メッシュ化の結果

メッシュ化はボクセルメッシュ的な感じで出力されるようです。メッシュの再現は正直なところ現状ではあまり高くないように思います。ハイポリとしてそのまま使えるかどうかはテストが必要(個人的にはちょっと厳しそうな気がする)ですが、いずれにしてもローポリモデルを得るなら手動リトポは必要になると思いますので、その辺は覚悟した方がいいと思います。

今のところできないと思われること

まだテストもあまりできていませんが、現時点でできないっぽいことを挙げておきます。以下は自分が試したうえでできなかったことですが、ノードを改変する、Pythonコードを改変するなどでできる可能性はあります。ただ正規の使い方とは言えないのでアドオン自体に手を加える方向でのテストはしていません。

SDFプリミティブをEditモードで編集できない

正確に言うとSDFプリミティブはEditモードで編集することはできるのですが、編集した形状はSDFの結果としては反映はされません

GeometryNodeのノード構成を見る限り、メッシュを受け取ってSDF化しているようではなさそうで、編集オブジェクトからオブジェクト情報(オブジェクトのTransform情報等)を取得してノード内でプリミティブを生成しているようです。

現状バージョンで形状を作る際はSDFプリミティブを複数使ってブーリアンしていく、と言うのが基本でプリミティブのEditモード編集による反映は今後の機能追加などで期待したいところです。

モディファイヤーはつかえない

上記と同じ理由で、Geometryノードには形状ではなくオブジェクトのinfoが渡っているようなので、モディファイヤーを設置することはできますが、SDF形状に適応されることはないようです。

自分はArrayモディファイヤー等を試しましたが挙動しませんでした。配列が使えるとモデリングが捗るのですが今後のアップデートに期待したいと思います(ロードマップに配列機能の機能追加の記載はあります)

SDFオブジェクト数の制約

いまのところSDFオブジェクト数の制約が500個までとなっているようです。モデリングをしてみたところ500個のSDFオブジェクトで足りなくなるという感じは無かったのですが、ある程度細かいディティールを詰めていくなどすると制約に引っかかる可能性はあります。この制約を増やすような設定は見当たらなかったので制約自体はハードコードされている可能性があります。

開発ロードマップ

公式Discordにあったロードマップとその日本語訳です。メジャーバージョンとしてのリリースはまだまだ先のことになりそうです。いまのところは4.0系への対応が大きな作業としてあるようですね。機能追加要望は公式Discordにスレッドがあるので、もし要望があるならそちらへ書き込みしてみるといいでしょう。

Upcoming Releases
All of the below updates are part of Public Alpha, they are included in your purchase. There are more updates planned for Public Alpha.

The exact timelines for each release cycle are subject to change.
Depending on additional bugfixing, features or complexity in development. (this will be communicated of course)

v0.1.x (current release cycle)
Focused on bugfixing, small features and UX improvements.
v0.1.6 is slated for later this week which includes:
meshing with smooth mirror fix
modernGL installation fix (windows and linux)
minor UX/UI improvements
If any more high priority bugs pop up, these will be fixed first in v0.1.7 or even v0.1.8 before v0.2.0 comes out.

v0.2.x (ETA for first release: 1-2 months)
active tool (hops/boxcutter esque but tailored to SDF’s needs) which will include:
3d viewport handles for editing primitive parameters
more primitives, with more parameters
shortcuts for common actions (unnest/nest under, etc.)
pie menus for boolean settings
everscroll functionality
basic linear arrays

v0.3.x (ETA for first release: 4-6 months)
This is an extensive rewrite to prepare for future releases. First few releases of this cycle will exist alongside v0.2.x, with reduced features.
support for Blender 4.0+
improved 3d viewport selection
SDF groups (separate parts that don’t blend with each other)
and more that I don’t want to promise just yet.

CondiureSDF公式Discordより

今後のリリース
以下のアップデートはすべてパブリック・アルファ版の一部です。パブリック・アルファ版ではさらに多くのアップデートが予定されています。

各リリースサイクルの正確なスケジュールは変更される可能性があります。
追加のバグフィックス、機能、または開発の複雑さによって異なります。(これはもちろん通知されます)

v0.1.x(現在のリリースサイクル)
バグフィックス、小さな機能、UXの改善に重点を置いています。
v0.1.6は今週末にリリース予定です:
スムース・ミラーの修正
modernGLのインストール修正(windowsとlinux)
マイナーなUX/UIの改善
さらに優先順位の高いバグが出た場合は、v0.2.0が出る前にv0.1.7か、あるいはv0.1.8でまず修正される予定です。

v0.2.x (最初のリリース予定: 1-2ヶ月)
アクティブツール(hops/boxcutterのような、しかしSDFのニーズに合わせたもの):
プリミティブのパラメータを編集するための3Dビューポートハンドル。
より多くのプリミティブ、より多くのパラメーター
一般的なアクションのショートカット(アンネスト/ネストアンダーなど)
ブーリアン設定のためのパイメニュー
エバースクロール機能
基本的な線形配列

v0.3.x (最初のリリース予定: 4-6ヶ月)
これは将来のリリースに備えた大規模な書き換えです。このサイクルの最初の数リリースは、v0.2.x と並んで存在し、機能は縮小されます。
Blender 4.0+ をサポート。
3Dビューポート選択の改善
SDFグループ(互いにブレンドしない別々のパーツ)
などなど、まだ約束したくないことがたくさんあります。

DeepL.com(無料版)で翻訳しました。

ConjureSDFの使用感

SDFモデラーを触るのはほとんど初めてですが、かなり感触はよいです。Blenderの基本的なオブジェクト操作が基礎になっているのでBlenderを今まで使ってきた人ならほとんど苦労せずに導入できると思います。感覚としてはメタボールに近いかもしれません。やはり特にハードサーフェス系のモデリングにはめっぽう強いと思います。

基本的に非破壊モデリングなので、オブジェクトの配置やアウトライナーでの順番を後から変更することができ、形状の試行錯誤が非常にやりやすいと思います。スカルプトの場合リメッシュをすると形状が固まってしまうことを考えると、SDFモデリングは後戻りしやすいモデリング手法だと思います。

一方、プリミティブのパラメータ編集的なものがないので基本形状を作るのにもそれなり手順が発生してしまいます。例えば以下のような傾斜の付いた面を作りたい場合、ブーリアンで作ることになり、2つオブジェクトが必要になります。つまり斜面をつくるにはDiffrence用の斜めに回転させたオブジェクトを用意しないとならず、手順が多いなという印象です。

もしこれがオブジェクトに角のベベル的なパラメータがあれば、オブジェクトは1つで済むうえに手順が短縮されると思うので、ロードマップにもあったようにオブジェクトパラメータのさらなる改良はぜひ実装してほしいなと思います。

フィレット(辺のディテール)は各オブジェクトのパラメータで操作することになりますが、一括でRoundパラメータ等を変更することができないので、フィレットの状態を一括で変えたい場合にはひとつひとつオブジェクトパラメータを変更してく必要があります。オブジェクトが多くなるとこれはかなり手間な作業なので、非破壊モデリングにもかかわらずフィレットの状態を最初から限定しないといけないような感じがしてしまいます。

メッシュ化に関しては正直なところ、ZBrushのZリメッシャーのようなループなどを考慮したようなメッシュにはならないので、QuadRemesherアドオンでリメッシュしてさらにメッシュを綺麗にするなどが必要かもしれません。ローポリモデルを起こさないといけない場合はどうしても手動リトポが必要になると思います。そこまでをこのアドオンに期待するのはやや筋違いな気がしますので、ワークフローのテストが必要だな感じています。

まだアルファ版ということを考えれば、現時点ではかなりシンプルな機能と言わざるを得ないですが、そうだとしてもモデリング手法の一つとしてかなり感触は良いです。ハードサーフェス系はいうまでもなく、工夫次第ではある程度有機的な形状もモデリングできると思います。個人的にはスカルプトスケッチよりも楽に形状試行錯誤ができるので、SDFモデリングで本番モデリングを行わないとしても、アイデア出しや形状検討などでも十分威力を発揮するのではと思います。

Blenderでポリゴンモデリングやスカルプト、Blenderと親和性の高いPlasticityでNUBRSモデリング、そして今回のConjureSDFによるSDFモデリングと、Blenderを核とするモデリングパラダイムの選択肢が増えて非常に嬉しいです。

タイトルとURLをコピーしました