Blenderのスクリューモディファイアをいじったメモ。使い方と花瓶の作り方を模索しVRChatワールドに配置した

Screwで制作した口の開いた青緑色の花瓶のBlenderレンダー Blender
※記事内に広告が含まれています。

バーチャル3Dクリエイター神部まゆみです(*^_^*)

この記事はBlenderのスクリューモディファイアをいじってみたのでそれについての記事です。

動作確認した最新バージョンはBlender 5.2.2 LTS、Unityは2022.3.22f1、VRChat SDKは3.10.5です。

●PRスペース●

〇まゆみマート|BOOTH

BOOTHでVRoidテクスチャやVRChat向けオブジェクトなどを販売しています。いいねしてくれると励みになります(*^-^*)

はじめに:今回はCodexにScrewを使わせてみた

Blenderで花瓶やグラスを作るとき、輪郭となる線をぐるっと回して立体にできると便利ですよね。

今回はAIのCodexに、Blenderの「スクリュー(Screw)」モディファイアーを使って花瓶を作ってもらいました。完成したものは、VRChat用の既存ワールドにUnity上で配置しています。

Screwで制作した口の開いた青緑色の花瓶のBlenderレンダー

基本操作はCodexが実際にBlenderの画面を操作して確認しました。完成用の断面の座標入力、モデル検査、FBX出力やレンダリングにはPythonを使用しています。画面で確認した操作と、自動処理した部分は分けて説明します。

BlenderのScrewモディファイアーとは?

断面を回転させて立体を作る機能

Screwは、メッシュの頂点や辺を、指定した軸の周りに回転させて面を作るモディファイアーです。

花瓶を縦に切ったときの輪郭を思い浮かべてみてください。その片側の線を中心軸の周りに360度回転させると、花瓶の形になります。

今回のような花瓶のほか、グラス、お皿、ボトル、柱など、回転させた断面から作れる形に向いています。回転と同時に軸方向へ移動させれば、らせん状の形も作れます。

ArrayやCurveとは何が違う?

機能主な役割今回の例に置き換えると
Screw(スクリュー)断面を回転させて面を作る一本の輪郭から花瓶を作る
Array(配列)元の形を繰り返し複製する同じ花瓶を一定間隔で並べる
Curve(カーブ)モディファイアーメッシュをカーブに沿って変形する長いメッシュを曲がった経路に沿わせる

「カーブオブジェクト」そのものにも線を編集して形を作る機能があります。今回のScrewの練習では、カーブではなく、面を持たないメッシュの辺を使います。

Screwの便利なところは、適用する前なら元の断面を少ない頂点で編集できることです。膨らみや首の細さを変更する際、花瓶全体の頂点を一つずつ動かす必要がありません。

一方、左右非対称の形はScrewだけでは作りにくく、断面が軸をまたぐと面が重なることもあります。まずは片側だけの断面で試すと、仕組みが分かりやすいです。

なお、今回はモディファイアープロパティから追加するScrewを使います。編集モードにある同名の編集ツールとは操作が異なります。

Screwを追加する前に、断面用のメッシュを用意する

最初は練習用の新しいファイルで操作します。既存の制作物がある場合は、先に別名で保存しておきましょう。

平面を追加して、頂点を一つにまとめる

  1. オブジェクトモードにします。初期キューブなどがある場合は、練習の邪魔にならないように非表示にしてください。
  2. 今回と同じく、3Dカーソルがワールド原点にある新しい空ファイルを使います。
  3. 上部の「追加」→「メッシュ」→「平面」をクリックします。
Blenderの追加メニューでメッシュから平面を選ぶ場所

今回の空ファイルでは、3Dカーソルは最初から原点にありました。既存ファイルでカーソルが移動していると、追加する位置も変わるため、まず空ファイルで試すのがおすすめです。

  1. 追加した平面を選択した状態で、Tabキーを押して編集モードにします。
  2. Aキーで頂点をすべて選択します。
  3. Mキーを押し、「中心に」を選びます。
編集モードのマージメニューで中心にを選び平面の頂点を一つにまとめる

4個の頂点が中央の1個にまとまり、面もなくなります。この頂点から、花瓶の輪郭となる辺を伸ばしていきます。

平面のままScrewを追加すると、今回の「一本の線から立体を作る」練習とは違う結果になります。ここで頂点一つになっているか確認してください。

断面を作って、Screwで立体化する基本操作

Eキーで辺を伸ばす

マウスを3Dビューポート内に置き、テンキーの1で正面からの表示にします。テンキーがない場合は、ビューの軸を使って正面へ切り替えます。今回の画面確認ではテンキーを使いました。

  1. 原点の頂点を選択します。
  2. Eキーで押し出し、マウスを右へ動かしてクリックします。これが花瓶の底の半径になります。
  3. もう一度Eキーを押し、右上へ動かして胴の膨らみを作ります。
  4. 続けてEキーで左上へ伸ばし、首を細くします。
  5. 最後に少し右上へ伸ばし、口の部分を作ります。
正面表示で五つの頂点と四本の辺から作ったScrew練習用の断面

画像では、原点から右側だけに線が伸びています。最後に作った頂点が選択され、ほかの頂点は黒く見えています。

CodexはここをGUIのマウス操作で作ったため、座標はおおよその値です。同じ形を数値で試したい場合は、押し出しごとに次の移動量を入力すると、近い断面を作れます。

押し出し入力する移動到達する位置の目安(X, Z)
1回目E→X→0.8→Enter0.8, 0
2回目E→Z→1.4→Enter、続けてG→X→0.4→Enter1.2, 1.4
3回目E→Z→1→Enter、続けてG→X→-0.6→Enter0.6, 2.4
4回目E→Z→0.5→Enter、続けてG→X→0.1→Enter0.7, 2.9

この数値入力表は、実際に作成した頂点座標を丸めた再現用の案内です。表のキー入力順を一つずつGUIで再実行したものではありません。単位がメートルの練習ファイルなので、ここでは高さ約2.9mの大きな形になります。完成用の花瓶では高さ30cmに作り直しました。

形を直したいときは、頂点をクリックしてGで移動します。X方向の移動で太さ、Z方向の移動で高さが変わります。今回はY方向に動かさず、正面から見える平面内で断面を作りました。

モディファイアープロパティからスクリューを追加する

  1. Tabキーでオブジェクトモードに戻ります。
  2. 断面のオブジェクトを選択します。
  3. 画面右側のレンチのアイコンをクリックします。
  4. 「モディファイアーを追加」をクリックします。
  5. 検索欄に「スクリュー」と入力し、「生成・スクリュー」を選びます。
レンチのモディファイアープロパティからスクリューを検索して追加する画面

今回は、追加時の設定で「角度」が360度、「スクリュー」が0m、「座標軸」がZになっていました。正面で作った断面がZ軸の周りを一周し、立体になりました。

角度360度とZ軸を指定したScrewで練習用断面が立体になった状態

上の画像は、口が見えるよう少し上からの表示にしています。画面操作では、マウスを3Dビューポートへ移してからテンキーの8で視点を回しました。設定欄の上にマウスがあると、同じキーでもビューが動かないことがありました。

この練習用モデルは、外側の輪郭と底だけです。内側の壁の厚みは、Screwを追加しただけでは作られません。 完成用では断面を内側へ折り返して厚みを作ります。

形がずれたときに確認するところ

今回のScrewは「軸オブジェクト」を指定していないので、オブジェクト原点を通るローカルのZ軸を中心に回転します。原点と断面の位置関係が大切です。

立体が二重になる場合は、断面が軸の左右にできていないか確認してください。違う向きに大きく広がる場合は、座標軸の指定と、オブジェクトの回転を確認します。今回X軸に変更したときも、同じ花瓶を横に向けた形にはならず、断面の回転結果そのものが変わりました。

Screwの主な設定項目と使い方

Blender 5.2.2の日本語UIでは、「角度」「スクリュー」「座標軸」「ビューのステップ…」「レンダー」「マージ」が並んでいました。「スムーズシェーディング」は、下部の「ノーマル」を開くと表示されます。

数値欄はダブルクリックし、Ctrl+Aで元の値を選択してから新しい値を入力し、Enterで確定しました。比較するときは、一つずつ変更して元に戻すと違いを追いやすいです。

Angle:角度を変えると、回転する範囲が変わる

角度を360度から180度に変更すると、一周せず、半周分の形になりました。

Screwの角度を180度に変更して半周分の面だけが作られた比較状態

花瓶なら360度が基本です。途中の角度を使うと、回転で面ができる様子を確認できます。切断面を自動でふさぐ設定ではないため、180度の形には開いた端が残ります。

Steps:ビューでの円周方向の細かさ

ビューのステップ数を16から8に下げると、口や胴の輪郭の角張りが分かりやすくなりました。

ビューのステップ数を8に下げて花瓶の口が八角形に見える状態

数値を増やすと円周方向の面が増えます。近くで見る装飾と遠くの小物では必要な細かさが違うので、見た目と負荷を見ながら決めます。

ステップ数を増やしても、元の断面にある角が自動で丸くなるわけではありません。胴の縦方向の曲線を整えたい場合は、断面の頂点の位置や数を調整します。

Render Steps:レンダー時の細かさは別に設定する

UIの「レンダー」は、レンダリング時に使うステップ数です。GUIで16から32へ変えても、ビューポートの形は変わりませんでした。ビューのステップ数は16のままだからです。

さらに完成用モデルを使い、Pythonでビューの値を16に固定し、レンダー用の値だけ8と32にして静止画を出力しました。

ビューのステップ数を16に固定しレンダー用ステップ数8と32で出力した花瓶の比較

左が8、右が32です。口や胴の外周を見ると違いが分かります。この比較画像はGUIの操作録画ではなく、同じカメラと照明を使ったPythonによるレンダーです。

また、Render StepsはUnity側の設定ではありません。今回はビュー・レンダーとも32にそろえ、評価したメッシュをFBXに出力しました。Unityへは書き出された面数が渡ります。

Screw:回転しながら軸方向へ移動する量

名前が同じなので少し紛らわしいですが、設定欄の「スクリュー」は、回転中の軸方向の移動量です。

練習用で0mから1mへ変えると、一周の間に高さが変わり、上下にずれたらせん状の形になりました。花瓶では輪郭を一周させたいので、0mに戻しました。

これは花瓶の厚みを付ける項目ではありません。「回転だけ」なのか、「回転しながら進む」のかを変える設定です。

Axis:断面をどの軸の周りに回すか

今回の断面はXとZの平面上で作り、Z軸を花瓶の中心にしました。「座標軸」のZを選びます。

GUIでXへ切り替えると、形が大きく変わることも確認できました。軸を切り替える操作は、完成した花瓶を回転させる操作とは別です。形全体の向きを変えたい場合は、オブジェクトモードの回転を使います。

Merge:軸に近い頂点をまとめる

「マージ」をオンにすると、軸付近の頂点を指定した距離で結合できます。ツールチップでも、スクリュー値を0にする注意が表示されていました。

この練習モデルをPythonで調べると、ステップ数16で、マージなしは80頂点、ありは65頂点になりました。軸上にある底の中心が重複したままにならず、まとまるためです。画面の見た目だけでは差が小さい項目でした。

結合距離を大きくしすぎると、残したい細い部分まで結合することがあります。完成用の小さな花瓶では0.0001mにしました。マージをオンにするだけで、内側の壁や任意の穴が自動的に作られるわけではありません。

Smooth Shading:面のつなぎ目の見え方を整える

「ノーマル」を開き、「スムーズシェーディング」をオフにすると、面ごとの明暗が目立つ表示になりました。

ノーマル内のスムーズシェーディングをオフにして面ごとの明暗が見える状態

オンに戻すと、面同士が滑らかにつながって見えます。ただし、面数自体は増えません。少ないステップ数の輪郭は角張ったままなので、スムーズ表示とステップ数は分けて考えると分かりやすいです。

Screwで装飾用の花瓶を作ってみた

ここからは、基本操作で確認した仕組みを使った制作例です。CodexがPythonで断面の座標を指定し、Screwモディファイアーを追加して制作しました。

外側から内側へつながる断面にする

完成用では、底の中心から外側の輪郭を上へ伸ばし、口の縁を通って内側へ折り返し、内側の底の中心まで戻る断面にしました。

完成用花瓶の断面を編集モードで表示し外壁と内壁と底の厚みを確認する

左下の軸上に、外側の底の中心と内側の底の中心があります。その間は約11mmです。口は約6mm前後、胴も数mm程度の厚みになるように内側の輪郭を配置しました。

この断面は頂点41個、辺40本です。外側だけの練習モデルと比べると線が二重になっていますが、別々の線を重ねたものではなく、口の縁を通ってつながる一本の断面です。

断面の最初と最後は軸上ですが、二つの端点同士を辺でつないではいません。それぞれが回転して底の面を作ります。Screwで回すと、口が開いた空洞と、厚みのある壁・底ができます。

形を手動でアレンジしたい場合は、編集モードで胴の頂点を選び、X方向へ移動すると膨らみを調整できます。原点や軸上の端点を不用意に動かさず、まずは外側の中間の頂点から試すと追いやすいです。

完成用のScrew設定

項目使用した値
角度360度
スクリュー0m
回数1
座標軸Z
ビューのステップ数32
レンダー32
マージオン、0.0001m
スムーズシェーディングオン
完成用花瓶のScrew設定でZ軸と360度と32ステップを確認する

編集用のBlenderファイルではScrewを残しています。モディファイアー上部のモニターのアイコンをオフにすると断面だけ、オンにすると立体を見ることができました。適用せずにこの切り替えを使うと、仕組みを見直すときにも便利です。

VRChatワールドに配置してみた

まぁ普通にできたので部屋に飾っておこうかな。

まとめ

結構便利な機能なので覚えておくと良さそう。

Screwは、断面となる辺を回転させて立体を作るモディファイアーでした。最初は頂点を少なくして試すと、どこを変えたときに形が変わるのか分かりやすかったです。

花瓶では「角度360度・スクリュー0m・Z軸」を基本にし、ステップ数で円周方向の細かさを調整しました。壁の厚みは設定値を増やすのではなく、断面を内側へ折り返して作っています。

今回はCodexがGUIで基本操作を確かめたうえで、完成モデルの座標設定や出力をPythonで処理しました。編集できる断面を残しておくと、別の形の花瓶やボトルを作る練習にも使えそうです。

関連するCodexの制作・導入の記録として、CodexとFinal IKを使ったVRChatの添い寝ギミックの記事もあります。AIで作ったモデルをUnityへ持ち込む例は、TripoのモデルをVRChatへ持ち込んだ記事で紹介しています。

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