バーチャル3Dクリエイター神部まゆみです(*^_^*)
この記事はBlenderのスクリューモディファイアをいじってみたのでそれについての記事です。
動作確認した最新バージョンはBlender 5.2.2 LTS、Unityは2022.3.22f1、VRChat SDKは3.10.5です。
はじめに:今回はCodexにScrewを使わせてみた
Blenderで花瓶やグラスを作るとき、輪郭となる線をぐるっと回して立体にできると便利ですよね。
今回はAIのCodexに、Blenderの「スクリュー(Screw)」モディファイアーを使って花瓶を作ってもらいました。完成したものは、VRChat用の既存ワールドにUnity上で配置しています。

基本操作はCodexが実際にBlenderの画面を操作して確認しました。完成用の断面の座標入力、モデル検査、FBX出力やレンダリングにはPythonを使用しています。画面で確認した操作と、自動処理した部分は分けて説明します。
BlenderのScrewモディファイアーとは?
断面を回転させて立体を作る機能
Screwは、メッシュの頂点や辺を、指定した軸の周りに回転させて面を作るモディファイアーです。
花瓶を縦に切ったときの輪郭を思い浮かべてみてください。その片側の線を中心軸の周りに360度回転させると、花瓶の形になります。
今回のような花瓶のほか、グラス、お皿、ボトル、柱など、回転させた断面から作れる形に向いています。回転と同時に軸方向へ移動させれば、らせん状の形も作れます。
ArrayやCurveとは何が違う?
| 機能 | 主な役割 | 今回の例に置き換えると |
|---|---|---|
| Screw(スクリュー) | 断面を回転させて面を作る | 一本の輪郭から花瓶を作る |
| Array(配列) | 元の形を繰り返し複製する | 同じ花瓶を一定間隔で並べる |
| Curve(カーブ)モディファイアー | メッシュをカーブに沿って変形する | 長いメッシュを曲がった経路に沿わせる |
「カーブオブジェクト」そのものにも線を編集して形を作る機能があります。今回のScrewの練習では、カーブではなく、面を持たないメッシュの辺を使います。
Screwの便利なところは、適用する前なら元の断面を少ない頂点で編集できることです。膨らみや首の細さを変更する際、花瓶全体の頂点を一つずつ動かす必要がありません。
一方、左右非対称の形はScrewだけでは作りにくく、断面が軸をまたぐと面が重なることもあります。まずは片側だけの断面で試すと、仕組みが分かりやすいです。
なお、今回はモディファイアープロパティから追加するScrewを使います。編集モードにある同名の編集ツールとは操作が異なります。
Screwを追加する前に、断面用のメッシュを用意する
最初は練習用の新しいファイルで操作します。既存の制作物がある場合は、先に別名で保存しておきましょう。
平面を追加して、頂点を一つにまとめる
- オブジェクトモードにします。初期キューブなどがある場合は、練習の邪魔にならないように非表示にしてください。
- 今回と同じく、3Dカーソルがワールド原点にある新しい空ファイルを使います。
- 上部の「追加」→「メッシュ」→「平面」をクリックします。

今回の空ファイルでは、3Dカーソルは最初から原点にありました。既存ファイルでカーソルが移動していると、追加する位置も変わるため、まず空ファイルで試すのがおすすめです。
- 追加した平面を選択した状態で、
Tabキーを押して編集モードにします。 Aキーで頂点をすべて選択します。Mキーを押し、「中心に」を選びます。

4個の頂点が中央の1個にまとまり、面もなくなります。この頂点から、花瓶の輪郭となる辺を伸ばしていきます。
平面のままScrewを追加すると、今回の「一本の線から立体を作る」練習とは違う結果になります。ここで頂点一つになっているか確認してください。
断面を作って、Screwで立体化する基本操作
Eキーで辺を伸ばす
マウスを3Dビューポート内に置き、テンキーの1で正面からの表示にします。テンキーがない場合は、ビューの軸を使って正面へ切り替えます。今回の画面確認ではテンキーを使いました。
- 原点の頂点を選択します。
Eキーで押し出し、マウスを右へ動かしてクリックします。これが花瓶の底の半径になります。- もう一度
Eキーを押し、右上へ動かして胴の膨らみを作ります。 - 続けて
Eキーで左上へ伸ばし、首を細くします。 - 最後に少し右上へ伸ばし、口の部分を作ります。

画像では、原点から右側だけに線が伸びています。最後に作った頂点が選択され、ほかの頂点は黒く見えています。
CodexはここをGUIのマウス操作で作ったため、座標はおおよその値です。同じ形を数値で試したい場合は、押し出しごとに次の移動量を入力すると、近い断面を作れます。
| 押し出し | 入力する移動 | 到達する位置の目安(X, Z) |
|---|---|---|
| 1回目 | E→X→0.8→Enter | 0.8, 0 |
| 2回目 | E→Z→1.4→Enter、続けてG→X→0.4→Enter | 1.2, 1.4 |
| 3回目 | E→Z→1→Enter、続けてG→X→-0.6→Enter | 0.6, 2.4 |
| 4回目 | E→Z→0.5→Enter、続けてG→X→0.1→Enter | 0.7, 2.9 |
この数値入力表は、実際に作成した頂点座標を丸めた再現用の案内です。表のキー入力順を一つずつGUIで再実行したものではありません。単位がメートルの練習ファイルなので、ここでは高さ約2.9mの大きな形になります。完成用の花瓶では高さ30cmに作り直しました。
形を直したいときは、頂点をクリックしてGで移動します。X方向の移動で太さ、Z方向の移動で高さが変わります。今回はY方向に動かさず、正面から見える平面内で断面を作りました。
モディファイアープロパティからスクリューを追加する
Tabキーでオブジェクトモードに戻ります。- 断面のオブジェクトを選択します。
- 画面右側のレンチのアイコンをクリックします。
- 「モディファイアーを追加」をクリックします。
- 検索欄に「スクリュー」と入力し、「生成・スクリュー」を選びます。

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

上の画像は、口が見えるよう少し上からの表示にしています。画面操作では、マウスを3Dビューポートへ移してからテンキーの8で視点を回しました。設定欄の上にマウスがあると、同じキーでもビューが動かないことがありました。
この練習用モデルは、外側の輪郭と底だけです。内側の壁の厚みは、Screwを追加しただけでは作られません。 完成用では断面を内側へ折り返して厚みを作ります。
形がずれたときに確認するところ
今回のScrewは「軸オブジェクト」を指定していないので、オブジェクト原点を通るローカルのZ軸を中心に回転します。原点と断面の位置関係が大切です。
立体が二重になる場合は、断面が軸の左右にできていないか確認してください。違う向きに大きく広がる場合は、座標軸の指定と、オブジェクトの回転を確認します。今回X軸に変更したときも、同じ花瓶を横に向けた形にはならず、断面の回転結果そのものが変わりました。
Screwの主な設定項目と使い方
Blender 5.2.2の日本語UIでは、「角度」「スクリュー」「座標軸」「ビューのステップ…」「レンダー」「マージ」が並んでいました。「スムーズシェーディング」は、下部の「ノーマル」を開くと表示されます。
数値欄はダブルクリックし、Ctrl+Aで元の値を選択してから新しい値を入力し、Enterで確定しました。比較するときは、一つずつ変更して元に戻すと違いを追いやすいです。
Angle:角度を変えると、回転する範囲が変わる
角度を360度から180度に変更すると、一周せず、半周分の形になりました。

花瓶なら360度が基本です。途中の角度を使うと、回転で面ができる様子を確認できます。切断面を自動でふさぐ設定ではないため、180度の形には開いた端が残ります。
Steps:ビューでの円周方向の細かさ
ビューのステップ数を16から8に下げると、口や胴の輪郭の角張りが分かりやすくなりました。

数値を増やすと円周方向の面が増えます。近くで見る装飾と遠くの小物では必要な細かさが違うので、見た目と負荷を見ながら決めます。
ステップ数を増やしても、元の断面にある角が自動で丸くなるわけではありません。胴の縦方向の曲線を整えたい場合は、断面の頂点の位置や数を調整します。
Render Steps:レンダー時の細かさは別に設定する
UIの「レンダー」は、レンダリング時に使うステップ数です。GUIで16から32へ変えても、ビューポートの形は変わりませんでした。ビューのステップ数は16のままだからです。
さらに完成用モデルを使い、Pythonでビューの値を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 |
| スムーズシェーディング | オン |

編集用のBlenderファイルではScrewを残しています。モディファイアー上部のモニターのアイコンをオフにすると断面だけ、オンにすると立体を見ることができました。適用せずにこの切り替えを使うと、仕組みを見直すときにも便利です。
VRChatワールドに配置してみた
まぁ普通にできたので部屋に飾っておこうかな。
まとめ
結構便利な機能なので覚えておくと良さそう。
Screwは、断面となる辺を回転させて立体を作るモディファイアーでした。最初は頂点を少なくして試すと、どこを変えたときに形が変わるのか分かりやすかったです。
花瓶では「角度360度・スクリュー0m・Z軸」を基本にし、ステップ数で円周方向の細かさを調整しました。壁の厚みは設定値を増やすのではなく、断面を内側へ折り返して作っています。
今回はCodexがGUIで基本操作を確かめたうえで、完成モデルの座標設定や出力をPythonで処理しました。編集できる断面を残しておくと、別の形の花瓶やボトルを作る練習にも使えそうです。
関連するCodexの制作・導入の記録として、CodexとFinal IKを使ったVRChatの添い寝ギミックの記事もあります。AIで作ったモデルをUnityへ持ち込む例は、TripoのモデルをVRChatへ持ち込んだ記事で紹介しています。


