Blender 5.0/5.2.2:帯状メッシュの幅をそろえるフリーアドオン「Uniform Strip Width」

最短幅への実行後。下側を固定して横断エッジの長さを0.7へそろえた帯。 Blender

インストール方法

Uniform Strip Width 1.4.1をダウンロード(ZIP)

  1. 上のボタンからZIPを保存します。
  2. ZIPは解凍せず、Blenderの「編集 → プリファレンス → アドオン」を開きます。
  3. メニューの ディスクからインストール(Install from Disk) からZIPを選びます。
  4. アドオンを有効にし、3Dビューで N を押して USW タブを開きます。

 

最短幅への実行前。帯の横断エッジの長さが場所によって異なっています。

 

最短幅への実行後。下側を固定して横断エッジの長さを0.7へそろえた帯。

片側を固定したまま、帯の幅をそろえた実行例です。掲載画像は、開発時にBlender 5.0.0で説明用メッシュを使って撮影した実画面です。

実行前は横断方向のエッジの長さが場所によって異なる帯です。冒頭の実行後画像では、下側を固定したまますべての幅を最短の0.7へそろえています。

通常機能では、移動側の頂点を元の横断エッジの線分上で固定側へスライドさせます。

全体をスケーリングする操作ではありません。

 

帯状メッシュの幅を、片側を固定したままそろえる

ベルトや縁取り、装飾パーツなどの帯状メッシュ、サブディビジョンサーフェス用のサポートエッジを作っていると、途中だけ太くなったり、細くなったりすることがあります。

Uniform Strip Width(USW) は、帯の片側を固定しながら、反対側の頂点を動かして幅をそろえるBlender用アドオンです。

基本操作は「帯の面を選択 → 固定側A/Bを選択 → 実行」。さらに、同じオブジェクトや別オブジェクトのエッジから取得した幅にそろえる機能もあります。

できること

  • 選択した帯の中で最も短い横断エッジを調べ、その幅へ自動でそろえる
  • 固定側をA/Bから選び、反対側だけを動かす
  • 別のエッジから幅を取得し、同じ/別オブジェクトの帯に適用する
  • 頂点や面を増減させず、接続関係を維持して調整する
  • A/Bの色付きマーカーをUSWタブ表示中だけ表示する

最短幅へそろえる基本操作

  1. 編集モードで、幅をそろえたい表側の1列の四角形の帯を面選択します。
  2. 3Dビューで N を押し、サイドバーの USW タブを開きます。
  3. Fixed Side A / B で固定する側を選びます。
  4. 幅を均一化 / Apply Uniform Width を押します。

選択した帯の最短横断エッジの長さを自動で調べるため、最短のエッジを自分で探したり、幅を手入力したりする必要はありません。

 

A/Bのマーカーで固定する側を確認

  • A:橙色の輪
  • B:水色の輪
  • 固定側の輪は大きく表示されます。

輪を表示するには、ビューポートのギズモを有効にしてください。

Uniform Strip Width 1.4.1のUSWパネル。固定側A/B、最短幅への実行、取得幅への実行が表示されています。

USWの操作パネル。上側が最短幅にそろえる通常機能、下側の折りたたみ枠が取得した幅を使う追加機能です。

1.4.1ではタブ名が USW になり、輪はUSWタブを表示している間だけ出ます。別のタブへ切り替えたり、N でサイドバーを閉じたりすると隠れます。USWタブ内でパネルを折りたたんだ状態までは区別しません。

別オブジェクトのエッジや同一オブジェクトの任意のエッジから取得した幅にも合わせられる

USWパネル下部の 別のエッジの幅に合わせる を開くと、1本のエッジから長さを取得できます。

  1. 基準にするオブジェクトを編集モードで開き、エッジ選択で辺を1本だけ選択します。
  2. 選択エッジの幅を取得 を押します。
  3. 同じオブジェクトに適用する場合は、そのまま面選択へ切り替えて対象の帯を選びます。
  4. 別オブジェクトに適用する場合は、いったんオブジェクトモードへ戻り、対象を選んで編集モードで帯の面を選びます。
  5. 固定側A/Bを決め、取得した幅に合わせる を押します。

基準オブジェクトAから取得した幅1.1がUSWパネルに表示されています。

基準オブジェクトAから取得した幅1.1を表示した状態。取得した値は、同じシーン内でオブジェクトを切り替えても使えます。

取得後に元のエッジを変更しても、記録した幅は自動更新されません。必要に応じて取得し直してください。通常の「幅を均一化」は、引き続き選択した帯の最短幅を使います。

太い箇所と細い箇所では、動き方が異なります

  • 取得幅より太い箇所:元の横断エッジ上を、固定側へスライドします。
  • 取得幅より細い箇所:移動側の頂点を、その頂点の正の法線方向へ動かします。
  • すでに目標幅になっている箇所は、許容誤差内なら維持します。

取得幅への実行前。幅1.1より太い箇所と細い箇所が混在しています。

取得幅への適用前。目標の1.1より太い箇所と細い箇所が混在しています。

取得幅への実行後。太い箇所はスライドし、細い箇所は法線方向へ動いて幅1.1にそろいます。

取得幅への適用後。太い箇所はスライドし、細い箇所は法線方向へ動いています。

平らな帯では、細い箇所が面から浮く方向へ変形します。 面の上で横に広げる動作とは異なります。作業ファイルのコピーで動きを確認してから使用してください。

対応環境と動作確認

項目 内容
アドオンのバージョン 1.4.1
対象 Blender 5.x(最低バージョン設定は5.0.0)
今回の動作確認 Blender 5.0.0 / 5.2.2 LTS、macOS
機能テスト 各バージョンで通常機能25件+取得幅機能18件、計43件が成功
インストール確認 配布ZIPのインストールと有効化・無効化を確認
ライセンス GPL-3.0-or-later

今回の再確認はバックグラウンド実行による検証です。開発時のチャットと検証記録では、Blender 5.0.0の画面で幅の取得・適用・Undo、USWタブによるマーカー表示切り替えを確認しています。掲載したスクリーンショット6枚は、その開発時に用意された説明用の実画面です。

Windows・Linux、すべてのBlender 5.x、保存・再読み込み後の継続操作は未検証です。

対象メッシュと使用上の注意

  • 対象は、四角形が1列につながる帯状の表面です。開いた帯、閉じた環状の帯、3Dで湾曲した帯に対応します。
  • 分岐した選択、複数列の選択、不連続な選択、帯そのものがNGONのケースは対象外です。帯の周囲・裏側・端面にNGONがあることとは区別してください。
  • 幅として測るのは、横断エッジ両端のワールド座標での直線距離です。表面に沿った長さではありません。
  • 固定側や裏側の頂点は保持しますが、移動頂点を共有する側壁などの面は形が変わります。
  • 頂点数・面数・接続関係・選択状態・UV座標は維持します。相対シェイプキーに対応し、変形差分を保持します。絶対シェイプキーは未検証です。
  • 複数オブジェクトの同時編集、共有メッシュ、リンク・オーバーライド・読み取り専用データは処理しません。共有メッシュは先にシングルユーザー化してください。
  • 非対応の選択や、面・辺が潰れるケースなどでは理由を通知して中止します。あらゆる自己交差や、他物体との衝突を検出する機能ではありません。

ダウンロード・ソースコード

不具合やご要望について

不具合や「こんな機能があると便利」といったご要望がありましたら、この記事のコメント欄にお気軽にお書きください。

不具合の場合は、Blenderとアドオンのバージョン、OS、問題が起きるまでの操作、期待した動作と実際の動作、エラーメッセージを添えていただけると確認しやすくなります。コメントには個人情報や公開できない制作データを書き込まないようお願いいたします。

更新履歴

  • 1.4.1:タブ名をUSWへ変更。A/BマーカーをUSWタブ表示中だけに限定。
  • 1.4.0:同じ/別オブジェクトから取得した幅へ合わせる機能を追加。

Xで記事をシェア

コメント

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