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スクリプト(6):インスタンス分配ツール "DistributeInstancesUI"

インスタンス分配ツール: "distributeInstancesUI"

こんにちは、Steemです。

自作のスクリプトを紹介しようと思います。まずは動画をご覧ください↓

 

 

こちらは、指定したオブジェクトを選択したオブジェクトの座標にインスタンス/コピーするスクリプトです。(既にトランスフォームノードが存在する場所に、別オブジェクトのインスタンスを分配していくイメージです。)

機能説明

機能の特長として、以下のことが可能です。

  • 複数オブジェクトのインスタンスを一度に分配
  • オフセットの基準にするオブジェクトとの相対的な位置関係を用いた配置
  • インスタンス/コピーを選択
  • 分配先オブジェクトの回転の適用
  • 選択したオブジェクトを削除して置き換え

操作について順に説明していこうと思います。

オブジェクトをリストに追加

まずはオブジェクト(トランスフォームノード)を選択した状態で「コピー元を取得」をクリックすると、インスタンスコピーする対象のオブジェクトを取得します。 
 

ここで取得したオブジェクトがインスタンスとして複製されることになります。ここには複数のオブジェクトの追加が可能です。

インスタンス / コピーを選択

インスタンスを作成するか、コピーとして作成するかを選択できます。メッシュオブジェクトに限らず、例えばライトを複製したいときは、インスタンスではなくコピーを使用します。

基準オブジェクトを取得

このオプションを使用する場合は、オフセットの基準となるオブジェクトを追加します。追加できるオブジェクトはひとつです。 

 

この機能を使用すると、インスタンスを分配していく際に、登録した基準オブジェクトからの相対的なオフセットが適用されます。なお、オフセットの基準となるのはここで取得したオブジェクトのピボット位置となります。 

 

この機能を使用しない場合は作成先のオブジェクトのピボット位置にインスタンスが配置されます。

回転の適用(Match Rotation)

このオプションが有効なとき、作成したインスタンスに配置先となるオブジェクトの回転を適用します。このオプションが無効だと、コピー元オブジェクトのRotate値がそのまま継承されます。

削除して置き換え(Replace Objects)

このオプションが有効だと、配置先となるオブジェクトを削除します。複製に伴いオブジェクトをそのまま入れ替える場合に用いるオプションです。

実行

配置先となるオブジェクトを選択して「実行」をクリックし、予め指定したオブジェクトのインスタンス / コピーを作成します。

追加説明

一度に大量のインスタンスを作成しようとすると、処理に時間がかかることに注意です。

(一応時間はかかりますが、途中でフリーズせず最後まできちんと完遂してくれる方式を選んだつもりです。)

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

おわりに

インスタンスの分配・置き換えという機能は非常にシンプルなものですが、相対的なオフセットなどは比較的使い勝手も良く、いざというときに役に立つこともあるかと思います。 
 

小話として、前のスクリプト紹介で突然出てきた雪だるまはこのスクリプトを説明する上で分かりやすい例になるのではと考えて簡単に作成したものでした。 

雪だるまではなく、机と椅子とかの方が良かったかもしれない。


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

こちらですが、配布・販売については調整中です。

続報をお待ちください。

Steem 

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