Blender ウォッチング
無料の「Blender」で1枚の写真から3Dモデルを作る方法 最終章
2024年2月22日 16:05
本連載では、無料の高機能3Dモデリングツール「Blender」の使い方や関連情報を幅広くお伝えします。
今回も引き続き、「Marigold Depth Estimation」の深度生成画像によるディスプレイスメント用のジオメトリノードを生成していきます。
「Blender」関連の注目記事一覧
Floatカーブノードの追加
これでとりあえず変形はしましたが、逆方向に移動してしまっています。調整もしたいので、調整用ノードを追加します。
- [追加][ユーティリティ]-[数式]メニューの[Floatカーブ]を実行します。
- [画像テクスチャ]ノードと[XYZ合成]ノードの間の線上にこのノードを移動して割り込ませます。
ノードエディター内は中マウス(ホイール)ボタンドラッグで移動、ホイール回転でズームできます。ヘッダーなどのインターフェイスも移動が可能です。
デフォルトではカーブが右肩上がりになっていますが、左右の端の「制御点」をそれぞれドラッグし、左肩上がりにします。
これでとりあえずちゃんと変形されるようになりました。
マテリアルの追加と深度画像の色空間の設定
調整に入る前に、このモデルに元画像を貼り付け、調整しやすくします。
ジオメトリノードでモデルを生成している都合で、少し手間がかかります。
元画像と深度画像の画像テクスチャノードの追加
- 画面上部の[シェーディング]タブをクリックします。
- すでにマテリアルは設定されているので、元画像をシェーダーエディターにドラッグ&ドロップして[画像テクスチャ]ノードを追加します。
- このノードの[カラー]ソケットと、[プリンシプルBSDF]ノードの[ベースカラー]ソケットをつなぎます。
そしてUV座標をジオメトリノードと受け渡しする(後述)ため、[属性]ノードを追加します。
- [追加]メニューから[入力]-[属性]を実行し、このノードの[ベクトル]と[画像テクスチャ]ノードの[ベクトル]をつなぎます。
- [属性]ノードの[名前]に「UV」と入力します。
まだ3Dビューポートに変化は現れませんが、ジオメトリノード側で設定した後に表示されるようになります。
さらに、[追加]-[テクスチャ]メニューから[画像テクスチャ]で[画像テクスチャ]ノードを追加し、中の「画像アイコン」(下図)をクリックして「深度画像」の名前を選択し、[色空間]を「非カラー」にします。
なお、 このノードはどこにもつなげず適当な場所に配置 してください。これは執筆時点ではジオメトリノード内のメニュー(①)からノードでは色空間が変更できない「Blender」の制限があったためです。
ジオメトリノードへのマテリアルの追加
さらに、ジオメトリノードにマテリアルを設定します。これはジオメトリノード内でグリッド形状を生成しているためです。
- [ジオメトリノード]タブで[ジオメトリノード]ワークスペースに戻ります。
- [追加]-[マテリアル]メニューから[マテリアル設定]を実行します。
- [メッシュ細分化]ノードと[グループ出力]ノードの間に割り込ませます。
- [マテリアル設定]ノードの一番下の球型アイコンをクリックし、上で設定したマテリアルを選択します。
UV座標の出力とマテリアルへの受け渡し
前述のように、UV座標を受け渡しするため、「属性」として出力し、マテリアル内の[属性]ノードで受け取れるようにします。
- [ジオメトリノード]エディターの右端の[≺]をクリックして「サイドバー」を開きます。
- [インターフェイス]パネルの[+]ボタン-[出力]を実行します。
- パネル内の[タイプ]を「ベクトル」にします。
[グリッド]ノードの[UVマップ]ソケットを「グループ出力」の[ベクトル]ソケットにつなぎます
右側の[プロパティ]エディターの[モディファイアー]プロパティ内のジオメトリノードモディファイアーのパネルの[出力属性]をクリックして開き、[Socket]に「UV」と入力します。
上の3Dビューポートヘッダー右端の「マテリアルプレビュー」アイコンをクリックすると、テクスチャが貼られていると成功です。もしアイコンが見えない時は、ヘッダーをホイールボタンでドラッグしてみてください。
凹凸の調整
では最初の目的である「近景の変形」を調整しましょう。
[ジオメトリノード]エディター内の[Floatカーブ]ノード内の線上のどこかをドラッグすると新しい制御点が追加されるので、2つ追加して下図のように調整します。
TIPS
カクカクしている場合
追加した形状はデフォルトでは「フラットシェーディング」になっていますが、ジオメトリノードを使用して作成した形状も同様で、[スムーズシェード設定]ノードを追加する必要があります。
[追加]-[メッシュ]-[書込]メニューから[スムーズシェード設定]を実行し、[グリッド]ノードより右側の「緑の曲線」上のどこかに割り込ませます。
もっと細かくしたい場合
画像によってはもっと細かくしないとディテールが消えるかもしれません。
現在の[メッシュ細分化]ノードのレベルは最大ですので、「新たに」このノードを[追加]-[メッシュ]-[処理]メニューから[メッシュ細分化]で「新規追加」し、現在の[メッシュ細分化]ノードの後ろに割り込ませてください。
コピーする場合は先に「レベル」を小さくしてから割り込ませないと地獄を見ます(経験者談)。
……おや、なにやら棘が上部に出ていますね。
終わりに
長くなってしまいましたが、「Marigold」サイトとその活用法についての記事は今回で終わりです。お疲れさまでした。
皆さんも色々活用してみてくださいね。
ではまた。