mieki256's diary



2025/01/23(木) [n年前の日記]

#1 [godot][cg_tools][blender] ゴルフボールを作りたい。その4

_昨日の作業 の続き。Windows10 x64 22H2 + Godot Engine 4.3 64bit でゴルフゲームっぽいものが作れないものかなと試してる。

ローポリモデルに指定できるゴルフボール用のノーマルマップ画像を作成したものの、Godot Engine上で凸凹具合が反対になってしまった点が気になったので、再度 blender上でベイクして作成し直した。

以下のようなノーマルマップ画像が得られた。CC0 / Public Domain ってことで。

golfball_nmlmap2.png
_golfball_nmlmap2.png (328B, 512x512)

この画像なら、blender 3.6.19 LTS上でも、Godot Engine 4.3上でも、期待した見た目になってくれた。

どんな点に注意すれば期待したノーマルマップ画像が得られるのか、今一つ分かってないけれど…。もしかすると、「押し出し」の値を指定してベイクするか、もしくはローポリモデルのほうをハイポリゴンモデルより大きめにしてからベイクすると改善されるのかもしれない…?


ついでに、ディンプルが大きめの画像も作成してみた。これも CC0 / Public Domain ってことで。

golfball_nmap.png
_golfball_nmap.png (256KB, 512x512)


Godot Engine上で使ってみた結果は以下。

godot_ss01.png

ノーマルマップをベイクする手順をメモ :

blender 3.6.19 LTS で、ハイポリゴンモデルの凸凹具合を、ローポリゴンモデルのノーマルマップにベイク(焼き付け)した際の手順を一応ざっくりとメモしておく。

  1. まずはハイポリゴンモデルを作成。
  2. 次にローポリゴンモデルを作成して、UV展開しておく。マテリアルも作成して割り当てておく。
  3. レンダーエンジンを Cycles にする。Cycles じゃないとベイクできない。
  4. ローポリモデルのマテリアルに画像テクスチャを追加して、画像を新規作成。色空間は「非カラー」にしておく。
  5. ハイポリモデル → ローポリモデルの順で複数選択。
  6. ベイクしたい画像テクスチャノードを選択。
  7. レンダープロパティで、ベイクの項目を開く。
  8. ベイクタイプは「ノーマル」。「選択物→アクティブ」にチェックを入れる。押し出しに、0.2 - 0.5m等を入れる。
  9. ベイクボタンを押すと、新規作成しておいた画像にノーマルマップがベイクされる。
  10. 画像を保存。

出来上がったノーマルマップ画像は、ノーマルマップノードを経由して、プリンシプルBSDFのノーマルに入れることができる。ノーマルマップノードが無いとおかしな見た目になるので注意。

ベイク時の「押し出し」の値は、ベイクしたいオブジェクトからどれだけ離れた位置から内側向けのレイを飛ばすかの距離。上手くベイクされない時は、この値を増やして範囲を広げてやると改善される時があるらしい。

一応スクリーンショットも貼っておく。

bake_normalmap_ss01.png

bake_normalmap_ss02.png

bake_normalmap_ss03.png


参考ページは以下。

_【Blender】リアルに見せる技法!その名もノーマルマップ! - ゆるブレ!
_【Blender3.1】ノーマルマップで凹凸を表現しよう! | CGbox
_ノーマルベイクやり方|Kioshiki Kageji
_Blenderでノーマルマップを作成(ベイク)する方法 | STYLY
_ノーマルマップを上手にベイクする方法【blender3.4.1】 - YouTube
_【Blender】ノーマルベイク時のレイの考え方

TexToolsでベイク :

blender上で TexTools というアドオンを使うと、ベイクが少し楽になるらしい。試してみた。環境は、blender 3.6.19 LTS + TexTools 1.6.1。

  1. ハイポリゴンモデルは、名前の最後に "_hp" をつけておく。
  2. ローポリゴンモデルは、名前の最後に "_lp" をつけておく。
  3. ハイポリゴンモデルとローポリゴンモデルの両方を複数選択。
  4. UVエディター内でNキーを押してサイドバーを表示。TexToolsタブを選択。
  5. 「ベイキング」を展開。
  6. ベイキングの種類として、Tangent Normal を選ぶ。
  7. 「ケージを押し出し」に適当な数値を入れる。
  8. 「AA」でサンプリング品質を選ぶ。
  9. 「Bake 1x」をクリックすれば、ノーマルマップをベイクすることができる。

textools_ss01.png

textools_ss02.png


たしかに、簡単にベイク作業を行うことができた。事前に画像を新規作成しておかなくても、いきなりベイクボタンを押せば作成してくれるし、サンプリング品質も別途指定できるし、「押し出し」の量も指定できる。

このアドオン、もしかして、レンダーエンジンを Cycles にしなくてもベイクしてくれるような…? 内部的にレンダーエンジンを Cycles に切り替えて処理してくれているのだろうか?

以上、1 日分です。

過去ログ表示

Prev - 2025/01 - Next
1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 31

カテゴリで表示

検索機能は Namazu for hns で提供されています。(詳細指定/ヘルプ


注意: 現在使用の日記自動生成システムは Version 2.19.6 です。
公開されている日記自動生成システムは Version 2.19.5 です。

Powered by hns-2.19.6, HyperNikkiSystem Project