チュートリアル > 選択したオブジェクトに対する迅速な名前変更 |
3ds Max の実務で日常頻繁に要求される作業に、オブジェクト プロパティの大量変更があります。ここでは、複数のオブジェクトに対処する場合に MAXScript がいかに簡単かつ強力であるかを示す、非常に単純な名前変更のスクリプトについて説明します。この例を起点として使用し、1 回のクリックで他のオブジェクト プロパティを変更するスクリプトを開発することができます。
macroScript は RenameThem と呼ばれます。スクリプトを使用する場合は、[カスタマイズ...](Customize...)に移動してスクリプトを[HowTo]カテゴリからツールバー、メニュー、またはクアッド メニューにドラッグするか、キーボード ショートカットを割り当てることができます。
この macroScript で、新しい基本名を入力するダイアログ ボックスをユーザに表示します。ダイアログ ボックスにはロールアウトが必要です。変数 rename_rollout 内に格納される、「Enter New Base Name」というタイトルの新しいロールアウトを定義します。このロールアウトには、2 つの UI 要素が含まれます。
最初の UI 要素は、base_name というテキスト ボックスです。作成時の既定値はありません。
2 番目の UI 要素は、rename_them というボタンです。このボタンには、「RENAME SELECTED OBJECTS...」と表示されます。
これは、ボタンのイベント ハンドラです。ボタンが押されるごとに実行されます。
ボタンが押されると、まず基本名をチェックします。編集用のテキスト ボックスには、現在入力されているテキストへのアクセスを提供する .text というプロパティがあります。テキストが空の文字列でない場合は、名前の変更に進むことができます。 つまり、ユーザが意味のある基本名を入力したということです。
i ループで、選択されたすべてのオブジェクトを巡回します。各オブジェクトに対して、編集用テキスト ボックスに入力された基本名を使用して、新しい固有の名前が生成されます。結果の名前が、現在のオブジェクトの .name プロパティに代入されます。
スクリプトが実行されると、createDialog 関数が先に定義されたロールアウトを取得して、幅 250 ピクセル、高さ 50 ピクセルのフローティング ダイアログ ボックスに表示します。
スクリプトを評価します。スクリプトを使用する場合は、[カスタマイズ...](Customize...)を使用して、スクリプトを[HowTo]カテゴリからツールバー、メニュー、またはクアッド メニューにドラッグするか、キーボード ショートカットを割り当てることができます。
スクリプトを起動します。 デスクトップの中央にダイアログ ボックスが開かれます。名前を変更するオブジェクトを任意の数だけ選択し、新しい基本名を入力します。ボタンを押し、選択されたオブジェクトの名前をチェックします。 それらの名前には、同じ基本名の後に固有の連番が付いています。必要に応じてこの操作を繰り返すか、ダイアログ ボックスの X ボタンを押してダイアログ ボックスを閉じることができます。