チュートリアル - 選択したオブジェクトに対する迅速な名前変更

チュートリアル > 選択したオブジェクトに対する迅速な名前変更

3ds Max の実務で日常頻繁に要求される作業に、オブジェクト プロパティの大量変更があります。ここでは、複数のオブジェクトに対処する場合に MAXScript がいかに簡単かつ強力であるかを示す、非常に単純な名前変更のスクリプトについて説明します。この例を起点として使用し、1 回のクリックで他のオブジェクト プロパティを変更するスクリプトを開発することができます。

関連トピック:

Macro Script の定義

全体の流れ:

ボタン、メニューまたはショートカットとして使用する macroScript としてコードをパッケージ化します。

ダイアログ ボックスを作成するロールアウトを定義します。

ロールアウト内に、新しい基本名を入力するための編集テキスト ボックスを定義します。

名前変更を起動するボタンを定義します。

そのボタンが押されたときのハンドラを定義します。

入力された名前が有効かどうかをチェックします。

有効な場合は、選択されたすべてのオブジェクトを巡回し、基本名の文字列を使用して固有の名前を割り当てます。

起動されたら、上記の定義を使用してダイアログ ボックスを作成します。

MAXScript

macroScript RenameThem category: "HowTo"
(
 rollout rename_rollout "Enter New Base Name"
 (
  edittext base_name ""
  button rename_them "RENAME SELECTED OBJECTS..."
  on rename_them pressed do
  (
   if base_name.text != "" do
    for i in selection do i.name = uniquename base_name.text
  )--end on
 )--end rollout
createDialog rename_rollout 250 50
)

ステップごとの解説:

macroScript RenameThem category:"HowTo"
(

macroScript は RenameThem と呼ばれます。スクリプトを使用する場合は、[カスタマイズ...](Customize...)に移動してスクリプトを[HowTo]カテゴリからツールバー、メニュー、またはクアッド メニューにドラッグするか、キーボード ショートカットを割り当てることができます。

マクロ スクリプトの定義

rollout rename_rollout "Enter New Base Name"
(

この macroScript で、新しい基本名を入力するダイアログ ボックスをユーザに表示します。ダイアログ ボックスにはロールアウトが必要です。変数 rename_rollout 内に格納される、「Enter New Base Name」というタイトルの新しいロールアウトを定義します。このロールアウトには、2 つの UI 要素が含まれます。

ロールアウト句

edittext base_name

最初の UI 要素は、base_name というテキスト ボックスです。作成時の既定値はありません。

Edittext

button rename_them "RENAME SELECTED OBJECTS..."

2 番目の UI 要素は、rename_them というボタンです。このボタンには、「RENAME SELECTED OBJECTS...」と表示されます。

button

on rename_them pressed do
(

これは、ボタンのイベント ハンドラです。ボタンが押されるごとに実行されます。

if base_name.text != "" do
for i in selection do i.name = uniquename base_name.text

ボタンが押されると、まず基本名をチェックします。編集用のテキスト ボックスには、現在入力されているテキストへのアクセスを提供する .text というプロパティがあります。テキストが空の文字列でない場合は、名前の変更に進むことができます。 つまり、ユーザが意味のある基本名を入力したということです。

i ループで、選択されたすべてのオブジェクトを巡回します。各オブジェクトに対して、編集用テキスト ボックスに入力された基本名を使用して、新しい固有の名前が生成されます。結果の名前が、現在のオブジェクトの .name プロパティに代入されます。

If 式

for ループ

uniquename

)--end on
)--end rollout
createDialog rename_rollout 250 50

スクリプトが実行されると、createDialog 関数が先に定義されたロールアウトを取得して、幅 250 ピクセル、高さ 50 ピクセルのフローティング ダイアログ ボックスに表示します。

CreateDialog

)

スクリプトの使い方

スクリプトを評価します。スクリプトを使用する場合は、[カスタマイズ...](Customize...)を使用して、スクリプトを[HowTo]カテゴリからツールバー、メニュー、またはクアッド メニューにドラッグするか、キーボード ショートカットを割り当てることができます。

スクリプトを起動します。 デスクトップの中央にダイアログ ボックスが開かれます。名前を変更するオブジェクトを任意の数だけ選択し、新しい基本名を入力します。ボタンを押し、選択されたオブジェクトの名前をチェックします。 それらの名前には、同じ基本名の後に固有の連番が付いています。必要に応じてこの操作を繰り返すか、ダイアログ ボックスの X ボタンを押してダイアログ ボックスを閉じることができます。

関連項目

既に説明したように、他のオブジェクト プロパティを一括して変更するようにこのスクリプトを変更することができます。

戻る

「チュートリアル」のインデックス ページ