スクリーンショット_2019-10-22_07

プロシージャルテクスチャを画像に

これ、そんなに大したことじゃないんですけど、ちゃんと理解した上で手順として確立しておくと良いですよ、っていうお話です。

【悪用厳禁】フツウでは取り出せないテクスチャをブッコ抜く!!

まあ、人によってはこんな感じの「ヤバい系」タイトル付けてしまうのかもしれません、ええ。

タネあかし

最初にタネあかししておきますと、「出来上がっているものに対して」以下を行うだけです。

・Planeにマテリアル適用して
・所定の画像サイズに合わせて
・(Diffuse Color)平行投影のカメラでレンダリング
・(Normal)ノーマルマップをベイク

なので、基本的に元となるマッピングが「UV」のものに限ります。他のマッピングを使ったマテリアルで何か工夫して出力とかそういうことは例外的なものということで。

なお、Blenderは「立体のままマテリアルの情報をテクスチャとして画像に転写」することも可能です。参考に以下の記事を。

今回のお題

こいつを使います。kabo.blend。

ダウンロードして、ひとまず開いてみるとこんな感じ。サブディビジョンサーフェスモディファイアを有効にすると少し見栄えは良くなります。

スクリーンショット 2019-10-21 22.35.06

スクリーンショット 2019-10-21 22.35.50

ノードが表示されているところのヘッダ、マテリアル名が kabo になっていることをご確認ください。

これを何もせずに一旦閉じます。

新規シーンへマテリアルをAppend

新しくシーンを開きます。デフォルトキューブを消し、ワールド原点位置にPlane を追加します。大きさ等は変更しないでください。

スクリーンショット 2019-10-22 00.06.59

ダウンロードした kabo.blend をD&D します。

スクリーンショット 2019-10-22 00.09.28

ファイルをドロップするとメニューが現れるので、Appendを選びます。

スクリーンショット 2019-10-22 00.09.46

D&D対応していない場合にはファイルメニューから Append で。

スクリーンショット 2019-10-22 00.10.18

スクリーンショット 2019-10-22 00.10.02

Material > kabo を Appendします。

スクリーンショット 2019-10-22 00.10.37

Planeを選択した状態で、マテリアルを選択します。 kabo を選択。

スクリーンショット 2019-10-22 00.11.09

平面にマップされた状態で表示されました。

スクリーンショット 2019-10-22 00.11.23

kabo マテリアルの確認

何をマップ画像として出力するべきか、を確認します。Shaderエディタから。

スクリーンショット 2019-10-22 00.30.00

テクスチャコーディネートはUV、シェーダーは Principled BSDF シェーダー で、以下が必要になりそうです。

・ Diffuse Color(Base Color)
・ Normal

ということでちゃっちゃとやりましょうか。

出力用セットアップ

出力用の設定を変更していきます。先に設定したものを保存しておけば良いですね。

[Renderタブ]

Propertiesエディタ、Renderタブ > Color Management の View Transform を Filmic から Standard に変更します。(Render EngineはEeveeで)

スクリーンショット 2019-10-22 05.07.53

表示品質がビューポートと同じで良い場合には、Sampling の値、Render を View Port と同じ 16 にしておきます。(変更しなくてもOK)

スクリーンショット 2019-10-22 05.31.29

他、AOやBloom等の効果は全て無効にしておきます。

[Outputタブ]

Propertiesエディタ、Outputタブ > Dimension の Resolution X 、Y の値を実際の出力画像のサイズ(ピクセル数)にします。

スクリーンショット 2019-10-22 05.20.26

これで出力画像の設定は完了しました。次はカメラ。

[カメラ]

カメラの設定をします。

・ 真上から
・ 並行透視

デフォルトシーンに存在していたカメラを使います。カメラオブジェクトを選択して、メニューから Object>Clear>Location ( [Alt]+[G] ) で位置をクリア、Object>Clear>Location ( [Alt]+[G] ) で位置をクリア、[G][Z][5][Enter] として (0,0,5) の場所にカメラが真下を見下ろすように配置されているようにします。

スクリーンショット 2019-10-22 05.53.48

スクリーンショット 2019-10-22 05.57.13

スクリーンショット 2019-10-22 05.58.04

「真上から」の設定は終わったので次は「平行透視」。

プロパティエディタのObeject Data タブ、Lens の TypeOrthographic Scaleを変更します。

スクリーンショット 2019-10-22 06.05.31

・ Type: Orthographic
・ Orthographic Scale: 2.0

カメラビューにします。カメラの撮影範囲ちょうどにPlaneが収まっていることを確認ください。

スクリーンショット 2019-10-22 06.07.41

Diffuse Color

Planeを選択しておき、画面レイアウトを変更します。Shaderエディタを上半分に表示。

スクリーンショット 2019-10-22 06.08.43

まあこの時点で大体お分かりかと思いますが、Planeに表示されているテクスチャ、色味が何か違う気がしますよね。Renderd にするとすぐに気づくと思いますけど、環境光のせいですね。

環境光の影響を受けないよう、Emission シェーダーにつないで、それを出力します。

スクリーンショット 2019-10-22 06.16.14

はい、これでレンダリングする、と。

[F12]キーを押してレンダリングした後、イメージエディタから Image > Save As ([Shift]+[S])で画像を保存します。ファイル名は kabo_col.png で。

画像22

出力し終えたら、Emmitionシェーダーから Principled BSDF シェーダーに切り替え直しておきます。

Normal Map

ノーマルマップはテクスチャで Principal BSDF シェーダー の nomal にノードが繋がっている、という場合に、必要に応じて実施します。

スクリーンショット 2019-10-22 06.25.20

[Cyclesレンダーエンジンへの変更]

2.80では Eeveeではノーマルマップ等はベイクできないので、Cycles レンダーエンジンに切り替えます。ついでにレンダリング時のサンプリング値も 1 に変更しておきます。

スクリーンショット 2019-10-22 06.49.24

次に Bake パネルを Normal 出力用に切り替えます。

スクリーンショット 2019-10-22 06.52.14

Shaderエディタで、 kabo マテリアルに Image Texture ノードを追加します。

スクリーンショット 2019-10-22 06.55.06

[+New]ボタンを押して新規画像を作成します。 2048x2048px の画像を作成。名前を kobo_nor とします。

スクリーンショット 2019-10-22 06.57.17

スクリーンショット 2019-10-22 07.11.45

スクリーンショット 2019-10-22 07.13.05

Image Texture ノードがアクティブ選択状態のまま(白枠で囲まれている)、プロパティエディタの Bake ボタンを押します。

スクリーンショット 2019-10-22 07.04.05

画面右下にプログレスバーが表示され、少しすると「セーブかパックして」というメッセージが表示されます。

スクリーンショット 2019-10-22 07.05.00

Image > Save As ([Shift]+[S])で画像を保存します。 ファイル名は kabo_nor.png

スクリーンショット 2019-10-22 07.07.54

画像33

ひとまずこの時点の作業を保存します。 bake_setting.blend

Blenderを閉じます。

この時点で、このようなファイルが出来ているはずです。

スクリーンショット 2019-10-22 07.24.10

確認

kabo.blend を開いて、複製したメッシュにこれまでの手順で作成した画像を反映したマテリアルを割り当ててみましょう。先に、 Node Wrangler Add-on を有効にしておきます。

オブジェクトを複製してマテリアルを削除します。

スクリーンショット 2019-10-22 07.19.32

新しいマテリアルを追加します。

スクリーンショット 2019-10-22 07.21.57

おもむろに [Shift]+[Ctrl]+[T] 。ファイルセレクタ画面になるので、kabo_col.png と kabo_nor.png を選択して、[Principled Texture Setup]ボタンをクリックします。

スクリーンショット 2019-10-22 07.26.03

スクリーンショット 2019-10-22 07.25.39

するとノードが自動的に作成されます。_col とか _nor とかファイル名につけていたのはこの為に、です。

スクリーンショット 2019-10-22 07.27.46

3Dビューエディタで確認します。

スクリーンショット 2019-10-22 07.28.59

スクリーンショット 2019-10-22 07.29.44

Normal Mapの強さを調整して

スクリーンショット 2019-10-22 07.34.40

スクリーンショット 2019-10-22 07.35.18

ひとまずこれで。

画像の色味が若干変わるとかNormalマップの凸凹がちょっと印象違うとかNormal Map画像の強さ調整しなくちゃいけないとかありますが、及第点程度の出力にはなると思います。

大体こういう作業が必要なのって、Blenderのみで最終出力まで行くようなものではなく、「外部ツールにメッシュとテクスチャを持って行く」場合ですね。

See Also




お読みいただきありがとうございます。サポートいただいた分はおやつのグレードアップに使おうかと思います。スキ、SNSにシェアもよろしくお願いします!