Powered by Google Translate
日本語
English
简体中文
繁體中文
한국어
Français
Deutsch
Español
Italiano
Português
Русский
Bahasa Indonesia
ไทย
Tiếng Việt
Bahasa Melayu
العربية
हिन्दी
Türkçe
Nederlands
Polski
Українська
Powered by Google Translate

Mayaスクリプト(7):厚み付け・タイル化ツール "StmSolidExtruder"

こんにちは、Steemです。


今回は、ポリゴンフェースをExtrudeして別オブジェクトとして厚みのあるメッシュを作成するMELスクリプトを紹介します。 


こちらはじめに言ってしまうと、Blenderで言うソリッド化モディファイアの機能をMayaに持ち込む手段はないかと思い考案したものです。


自作ながら、個人的に最もお世話になった秀逸なツールのひとつかと思います。機能も豊富で非常に気に入っています。是非ご覧ください。

動画 

機能説明

主な機能は以下の通りです。

  1. 選択したフェースの厚み付け
  2. タイル化して押し出すオプション
  3. フレームを抽出して押し出すオプション
これに加えて以下の機能が付いています。
  • 作成時設定の取得/更新 
  • 元ジオメトリをノード上流に接続 

主にExtrudeを使用してメッシュを作成します。

(結果として polyExtrude ノードがスタックされます。)


 UI:日本語ver・英語ver

(クリックで拡大)


基本操作

厚み付け機能

以下を設定します。
  1. 押し出しの
  2. 押し出しの方向
    • 1.0が法線方向、-1が法線と逆方向、0で両側に均等な幅に押し出し
  3. 外周オフセット
    • 正の値で内側にオフセット

2. 押し出しの方向:

値を1.0より大きくするとオリジナルのフェースから浮いた状態のメッシュを作成できます。その際はテキストフィールドに直接値を入力します。

「タイル化」オプション

  1. タイルの間隔
  2. 背面削除オプション
    • 隠れるフェースを削除するかどうか
  3. 単体として作成オプション
    • 隣り合うフェースをひとつのタイルにくっつける
  4. 境界エッジ(シーム)を用いた分割

4. 境界エッジ(シーム)を用いた分割

専用のボックスにエッジをあらかじめ登録し、そのエッジを用いてタイルを(強制的に)分割します。

3.「単体として作成」がオフの状態だと登録したエッジ以外でもタイルが分割されるのでご注意ください。


また、タイル化の方式として"method 1" "method 2" を選択します。これらはそれぞれタイル間隔の基準を 「タイルの下地部分」にするか「タイルの表面部分(浮き出した高さ)」にするかの選択です。(曲面で違いが良く見られます。)


(なお 4.「シームを用いた作成」を実行する際は、ここで追加したエッジの部分は自動的に"method 1"での作成になります。)

「フレームを抽出」オプション

  1. フレームの
  2. 外周からの作成方向


 1.フレームの幅

前述の「厚み付け機能」内「外周のオフセット」に値が入っていると指定した通りの幅になりません。


 2.外周からのフレームの作成方向

こちらは1で内側に作成、-1で外側、0で両側に均等の幅で作成されます。

追加機能

作成時設定の取得/更新

  1. 取得
    • ヒストリから作成時の設定を取得します。タイル化・フレーム抽出といったチェックボックスの項目も取得できます。タイルの設定を揃えての再作成が容易です。
  2. 更新:
    • 数値に関する設定のみ更新が可能です。複数選択対応なので、広範囲に使えます。


なお、ヒストリを削除してしまうとこれらの機能は使用できません。 

「元オブジェクトを接続」オプション

ヒストリ上流のシェイプノードを差し替え、作成後のジオメトリを元オブジェクトのジオメトリに合わせてインタラクティブに編集できるようになります。


こちらの機能はジオメトリのトポロジー変更には非対応です。コンポーネントの削除・ループカット等の操作はできません。

 

なお、接続を切る際はヒストリを削除すればよいです(その際、接続されていた元オブジェクトも残ります)が、Extrudeに関する他のヒストリを消さずに元ジオメトリとの接続だけを切りたい場合は、ノードエディターを開き、ヒストリの上流で接続されているシェイプノードのコピーを接続し直す処理が必要です。

 

そしてシェイプノードを繋ぎ直した場合は、そのジオメトリを非表示にするためにアトリビュートエディタから Object Display > Intermediate Object (中間オブジェクト)を有効にするのが適切です。


参考記事:(こちら10年以上前のものなんですね。)

https://area.autodesk.jp/column/tutorial/maya_atoz/node/

 

※元オブジェクトに複数シェイプノードが混在する場合などはこのオプションはあまり推奨しませんので悪しからず。思った形状にならなかったり、追加のマテリアル操作が必要になることがあるかと思います。 

追加説明

・メッシュ作成時、UV展開を行います。

(UVの作成+カット+レイアウトを自動で行います。) 


 特にタイル作成時など大量に生成されるメッシュを後からきれいにUV展開するのは悪夢かと思いますので、この機能はこのツールに欠かせなかったのではないでしょうか。 

 

"Keep Originals"オプションで、元オブジェクトを残すかどうかを選択できます。
 
 

機能についての説明は以上です。

おわりに

先ほど説明したタイル化機能の話になりますが、「タイルの目地をどう作るか」の問題はあると思います。


(テクスチャ・マスクで済ませるか、ブーリアンを実行するか、各面を押し出してひとつのオブジェクトとして作成するか…ひとつ前に紹介した「インスタンスを並べる」も。)


そのひとつの解として、

 ・UV展開が容易

 ・テクスチャ・マスク作成が不要

 ・目地パターンについてインタラクティブ性のある

といったメリットのある、便利なツールが作成できたのではないでしょうか。

 

(追記:動画にて、「設定の取得」に触れていないことに気づきました。使っていて気持ちの良い機能ではあるのですが…(同じ設定の別のジオメトリを一瞬で作れます)実際に使っていただければ分かるということで。) 




=================

 

こちらのスクリプトを無料配布しています↓

 ダウンロードページはこちら  

(2025.12.28 更新)

 

 =================

 

お問い合わせはこちらまでお願いします。

連絡用フォーム