💍

【Blender】ゲームVFX半球/リングメッシュの作り方 ポリゴンモデリング編

2023/08/26に公開

◯概要

【もここのBlender VFXメッシュ自由研究】
引き続き簡単な半球メッシュの作り方のメモです。

球メッシュの作り方の次でも良かった感がありますが、
「手動のUV調整」が必要なのでというのも、少し後回しにした理由です。
(本当は忘れてたのでこのタイミングでのメモb)

半球とリングを一緒にしたのは、球の上下を削除するだけでほぼほぼやることが同じだったからです!

ではさっそく。

◯環境

Blender 3.4.1(メッシュ制作)

◯今回半球、リングメッシュを作る作戦

・UV球メッシュを追加する
(サイズ調整)

・球の下半分(上半分)を削除する
(・必要に応じてピボットをずらす)
・UVを調整(正規化)する

+頂点カラーを設定する(ジオメトリノード)

◯半球メッシュの作り方

▼1.UV球メッシュを追加する

球の作り方について詳しいことは、↓にまとめたので復習してみてください!
https://zenn.dev/animamococo5656/articles/c07f227353dca8

・「Modeling」ワークスペースで、「Shift + A」>「UV Sphere」でUV球を作成します。
・画面左下に球メッシュの調整ウィンドウが出るので「Segments : 50」「Ring : 30」「Generate UVs:オン」で設定します。

▼2.サイズ調整(UE5用)

オブジェクトモード
・「N」キーでサイドメニューを表示して、メッシュのスケールは50倍(今回はUE5にもっていったときに直径1mになるようにしておきました。

▼3.球の下半分を削除する

・エディットモードで下半分の頂点を選択
 → 「X」キー(削除) → 「Vertices」を選んで選択した頂点を削除します。
(パイメニューを使っているのでこんな表示です)

▼4.UVを調整(正規化)する

球の下半分を削除したことで、UVも下半分がなくなってしまったかと思います。

なので、これを0~1の範囲でいっぱいになるように正規化していきます。

ただ、ちょっと↓の方法が良いか自身がないです。
(もう少し楽にできる気もしますが、標準機能だけだとこうなる…?詳しい人教えていただきたい…。)

ーーー
・「UV Editing」ワークスペースを開いて、エディットモードへ切り替え
・一番上の頂点を選択して、「UV > Snap > Cursor to Selected」で2Dカーソルを一番上に移動します。
・UVの一個右のドロップダウンから↓のように、「2D Cursor」を選択。(さっき一番上に移動した、2Dカーソルを基準に変形できるようになる)

・「UV > Constraint to Image Bounds」をオンにしておく。(これでどれだけ拡大してもこの0~1の枠内を上限として変形ができるようになる)

・「A」キーで全選択 → 「S」キーでスケールツール → 「Y」キーで縦軸のみに限定 → マウスを動かして一番下に付くようにぐっと伸ばして拡大 → 「Enter」で確定。

これで、UVが正規化されました!(正直ちょっとめんどくさぃかも?、、、)

裏話 このUV調整方法にたどり着くまで…。

BlenderのUV正規化方法がよくわからず、ここにいきあたるまでにだいぶ手こずりました…。
(そもそも、同様のことをしたいけどなんて調べればいいかよく分からず…
 結局UV編集のウィンドウで1つずつポチポチ機能名を見ながら検索して、やっとそれっぽいものにたどり着きました(_ _;))

(↓も微妙に違って断片情報しかなかったんですがね…(_ _;))
参考
https://blender.stackexchange.com/questions/39580/what-is-the-best-way-to-scale-uvs-to-fit-an-image

5.Blenderチェック用マテリアル適用

以前の記事で作成した汎用マテリアルを適用していきます。
まだ作ってない場合は↓を作っておきましょう。
https://zenn.dev/animamococo5656/articles/63190887887aa7

・「Shading」ワークスペースのNewの左から「MT_VFXMeshUVMap_Checker」(汎用チェッカーマテリアル(マット))を選択します。

このマテリアルの「color」アトリビュートにジオメトリノードから値を送ります。

6.マテリアルにジオメトリノードから頂点カラーを送る

ジオメトリノードから頂点カラーを設定することで、UVに対するカラー、アルファの調整がかなり楽になります。
これも作っておいた汎用のジオメトリノードをコピーして流用していきます。
もし作ってない場合は、先に↓を作っておきましょう。
(作ってある場合は、使い回し方法を参照してください)
https://zenn.dev/animamococo5656/articles/4eb659bdae33a8

<ジオメトリノード使いまわし方法>
・オブジェクトを選択して → モディファイアプロパティの「Add Modifier > Geometry Nodes」を選択

・Newの左のアイコンから、「上記で作った汎用ジオメトリノード」を選択します。
(Temp_GN_VFXMeshPoligon_000)

・(注意)ジオメトリノードエディタ内の↓のアイコンでテンプレを「コピー」しましょう。
※モディファイアプロパティの方は、同じアイコンでも新規作成らしくテンプレが使いまわせません…。アイコン同じなのが紛らわしい(_ _;)

・連番が増えてコピーされるので、わかりやすい名前にリネーム。
(メッシュと同じ名前とかだとわかりやすいかも。)

これで、マテリアルの「color」アトリビュートに頂点カラーが送られて頂点カラー/アルファが適用されました!

7.ノーマルの設定

・前に作った汎用マテリアル適用(チェッカーマテリアル(鏡面反射)MT_VFXMeshUVMap_Checker_Mirror)
に切り替え

エディットモード
・「A」で頂点全選択 → 「Mesh > Normals > Set from Faces」でノーマルを調整する。

鏡面反射のマテリアルを適用してみて表面がつるつるになればOKです。

8.FBX書き出し

書き出し設定をしてFBX書き出しします。
↓参考
https://zenn.dev/animamococo5656/articles/e2c4d32d6f7dfd
 ・1.編集メッシュを複製
 ・2.ジオメトリノード適用
 ・3.トランスフォームのフリーズ
のみ行えばOK!

※今回はジオメトリノードでUV設定はしていないので、
 ・「▼4.UVアトリビュート適用」はしなくてOK!

◯リングメッシュの作り方

ほぼほぼ一緒なので、半球と違うところだけ一応メモしておこうかなと(_ _)b
UV調整とピボット調整に少しBlenderさんの癖があります。

1.球作成2.サイズ調整は同じ

▼1-1.(パターン1)球をきれいに上下対称に削除する

・エディットモードで、
「Alt + 左クリック」で中央一周ループ選択 → 「Shift + .」で選択範囲を拡張 → 「Ctrl+I」選択範囲を反転 → 「X」(Vertices)頂点削除
のコンボで中央数ラインを残して上下を対称に削除できます!

▼1-2.(パターン1対称の場合)UVを調整(正規化)する

対称であれば簡単です。

・「UV Editing」ワークスペースを開いて、エディットモードへ切り替え
・「UV > Constraint to Image Bounds」をオン
・「UV」の一個右のドロップダウンから↓のように、「Bounding Box Center」を選択。(選択したものの中央を基準に変形できるようになる)

・「A」キーで全選択 → 「S」キーでスケールツール → 「Y」キーで縦軸のみに限定 → マウスを動かして一番下に付くようにぐっと伸ばして拡大 → 「Enter」で確定のコンボを使います。

あとは同じように
・「頂点カラー」
・「ノーマル」を設定して、
・「ジオメトリノード」を適用。
・トランスフォームのフリーズ
などしてFBXで書き出せばOK

▼2-1.(パターン2)球を上下非対称に削除する

・パイメニューでは、「Q」キーで表示を切り替えられるので「Front」表示へ切り替え
・↓右図のように□が2つ重なったアイコンをオンにして、奥面も選択できるようにしておきます

・上下の頂点をそれぞれ範囲選択して削除

▼2-2.(パターン2)ピボットポイントを変更する

ちょっとここがややこしいポイントではあるんですが、Blenderのピボット操作は3Dカーソルをうまく使いこなせるようになれば勝ちです!
(Blenerはオレンジの◯がピボットポイント)

・まずエディットモードで、ピボットを合わせたいループを選択
(今回は一番下の面に合わせたいので、一番下のループを選択。このループ中央にピボットを移動する想定。)
・「Mesh > Snap > Cursor to Selected」で3Dカーソルを選択中央に移動します。

・オブジェクトモードに切り替え
・「Object > Set Origin > Origin to 3D Cursor」でさっきリングの下に移動した3Dカーソルの位置にピボットポイントが移動します。
ひとまず、ピボット位置の変更自体はこれでOK

続いて、FBX書き出し用にこのメッシュをワールド原点に移動しておきます。
・オブジェクトモードで「Object > Snap > Cursor to World Origin」でワールド原点に3Dカーソルを移動。
・続けて、「Object > Snap > Selection to Cursor」で選択オブジェクトを3Dカーソルの位置に移動。

これで、これでピボットを下に移動した状態でオブジェクトをワールド原点に移動できました!

▼2-3.(パターン2対称の場合)UVを調整(正規化)する

UV調整も微妙に癖があるなと思いました…。

・「Bounding Box Center」をピボットとして、「UV > Constrain to Image Bounds」はオンにしておきます。
・「A」キーで全選択 → 「G」キーで移動モードに切り替え → 「Y」キーでY軸に沿って移動 → 一番上までUVを移動 → 「Enter」で移動確定のコンボ。

・一番上の行の頂点を選択
・「UV > Snap > Cursor to Selected」で2Dカーソルを選択した一番上の頂点の中央に移動。

・「2D Cursor」をピボットとして
・「A」キー全選択→「S」キースケールモード→「Y」キーY軸に沿って→マウス動かして一番下に付くようにスケール→「Enter」で変形確定。
これでUVが正規化できました!!

あとは同じように
・「頂点カラー」
・「ノーマル」を設定して、
・「ジオメトリノード」を適用。
・トランスフォームのフリーズ
などしてFBXで書き出せばOK

3.FBX書き出し

書き出し設定をしてFBX書き出しします。
↓参考
https://zenn.dev/animamococo5656/articles/e2c4d32d6f7dfd
 ・1.編集メッシュを複製
 ・2.ジオメトリノード適用
 ・3.トランスフォームのフリーズ
のみ行えばOK!

※今回はジオメトリノードでUV設定はしていないので、
 ・「▼4.UVアトリビュート適用」はしなくてOK!

◯まとめ

半球やリングのような形をBlenderでポリゴンモデリングする場合には、ピボットやUV調整に若干癖があるかなと感じました。

(もう少し良き方法があれば有識者のみなさんぜひ教えて頂きたいですm(_ _)m)

ジオメトリノードでのピボット調整方法はまたどこかでご紹介できればと思います!

Discussion