スタートアップ スクリプト

3ds Max を初めて起動すると、MAXScript によってスタートアップ スクリプト ファイルが検索され、自動的にロードされ、実行されます。この機能は、常に使用する関数ライブラリを事前にロードしておく場合、カスタム UI 設定を行う場合、スクリプト プラグインを定義する場合、またはスクリプト ユーティリティ ロールアウトをロードする場合などに便利です。

3ds Max が起動すると、常に以下で説明する手順通りにスクリプトがロードされます。ソフトウェアの一部はまだアップできておらず、スタートアップ プロセスの別の段階にあります。スタートアップ プロセスの手順とその理由を理解するとコードの作成に役立ち、すべての関数とUI の自動ロードが正常に作動するようにできるようになります。

ファイルなしでの 3ds Max の起動

手順 1 - 標準スクリプト

3ds Maxstdplugs¥stdscripts にある初期状態のスクリプトの評価を行います。これらのスクリプトでは、3ds Max ソフトウェアのベースとなるスクリプト化された要素に必要な関数を定義しています。

独自の MacroScript での使用のためにいくつかの関数やグローバル変数を定義する必要がある場合は、stdplugs¥stdscripts の .ms ファイルに格納してください。これにより関数やグローバル変数を最初に定義できます。

手順 2 - ユーザ定義のプラグイン パス

次に、3ds Max は、[カスタマイズ…](Customize...) > [パスを設定…](Configure Paths...) > [プラグイン](Plug-Ins)とそのサブディレクトリ通常のプラグインのロード方法とは異なる点に注意してください。この方法は通常のプラグインをロードする方法と異なります。プラグインは指定したパスからのみロードされ、サブディレクトリは検索しません。その他のスクリプト、 特に MacroScripts で使用する関数、メソッド、構造体を定義できます。

この時点では、3ds Max シーンは作成されず、ビューポートも作成されていません。これらのスクリプトでは、シーン オブジェクトは作成できず、また UI 関連の作業は何もできません。もちろん、これらの操作を実行する関数を定義できますが、この時点ではこれらの関数の呼び出しはできません。

このとき startup.ms という名前のスクリプト ファイルが無視されます。こうしておくと、スクリプト プラグイン スクリプトを プラグイン フォルダに配置して自動的にロードされるようにすることができます。これらのスクリプトは DLL プラグインのように管理でき、管理しやすいようにスタートアップ スクリプトを独自のディレクトリ内でグループ別に構成することができます。ネストされたディレクトリが検索されないようにするには、「(old-versions)」のように、名前をカッコ()で囲みます。こうすると、ディレクトリ ベースのグループに対して、スクリプトを有効または無効に設定できます。

手順 3 - MacroScripts

次に、ui¥macroscripts にある MacroScript .mcr ファイルが評価されます。これらのファイルは UI に表示できるアクション項目を定義します。この時点では、まだ UI は作成されておらず、MacroScripts はその関連ボタンを埋め込む際に必要です。

手順 4 - スタートアップ スクリプト

最後に、startup フォルダにある startup.ms および任意のスクリプトが評価されます。この時点で、シーン、ビューポート、および UI が表示されます。ここでは、必要に応じて操作できます。

3ds Max 9 以降では、3ds Max システム スタートアップ スクリプト ディレクトリにあるスタートアップ スタートアップ スクリプトが最初に実行され、次に ユーザ定義のスタートアップ スクリプト ディレクトリが実行されます。この動作により、Max システムのスタートアップ スクリプト ディレクトリとは別にユーザのスタートアップ スクリプト ディレクトリを設定することができます。

MAXScript では、まず以下のディレクトリで startup.ms ファイルが、以下の順序で検索されます。

  • ユーザ スクリプト ディレクトリ

  • ユーザ スタートアップ スクリプト ディレクトリ

  • Max システム スクリプト ディレクトリ

  • Max システム スタートアップ スクリプト ディレクトリ

  • 3ds Max 実行可能メイン ディレクトリ

  • Windows NT 32 ビット システム ディレクトリ (system32)

  • Windows 16 ビット システム ディレクトリ(system)

  • Windows ディレクトリ

  • PATH 環境変数のリストに表示されているフォルダ

MAXScript は最初に startup.ms が見つかったところで検索を停止します。

スタートアップ スクリプト ファイルの自動ロードを非アクティブにするには、[基本設定](Preferences)ダイアログ ボックスの [MAXScript]ページにある [MAXScript オート スタート](Auto Start MAXScript)オプションをオフにします。詳細については、主要製品オンライン ヘルプの「MAXScript 基本設定」を参照してください。

ファイルを指定した 3ds Max の起動

次の 2 つの場合について考えてみましょう。

  1. 3ds Max をコマンド ラインから起動し、最終的にはコマンド ライン スクリプトを使用する

    3dsmax.exe somefile.max
    3dsmax.exe somefile.max -U MAXScript somescript.ms
  2. .MAX ファイルをデスクトップの 3ds Max ショートカットにドラッグする

いずれの場合も、3ds Max は上記の説明どおりに開始され、ファイルをロードします。

3ds Max 2009 以前では、スクリプト フォルダおよびコールバックは以下の順番で実行されていました。

フォルダ/コールバックの処理

コメント

stdplugs¥stdscripts¥

3ds Max シーンおよび UI はまだ作成されていません。

プラグイン パス

3ds Max シーンおよび UI はまだ作成されていません。

MacroScript

UI はまだ作成されていません。

#filePreOpenProcess

シーンが作成されます。

#filePreOpen

起動スクリプトはまだロードされていません。

¥Startup

ファイル オブジェクトにはまだアクセスできません。

.MAX ファイル

コマンド ライン/ドロップされたファイルをロード

#filePostOpen

シーン オブジェクトにはこの後アクセスできます。

#filePostOpenProcess

ファイルのロードが完了

-U MAXScript スクリプト

コマンド ライン スクリプトを実行 (存在する場合)

この結果、Startup フォルダからロードされたスクリプトは #filePreOpen イベント コールバック で使用することはできません。

3ds Max 2010 では、ロード順序が次のように変更されました。

フォルダ/コールバックの処理

コメント

stdplugs¥stdscripts¥

3ds Max シーンおよび UI はまだ作成されていません。

プラグイン パス

3ds Max シーンおよび UI はまだ作成されていません。

MacroScript

UI はまだ作成されていません。

¥Startup

UI が作成されます。コールバックの前に起動スクリプトがロードされます。

#filePreOpenProcess

シーンが作成されます。

#filePreOpen

ファイル オブジェクトにはまだアクセスできません。

.MAX ファイル

コマンド ライン/ドロップされたファイルをロード

#filePostOpen

シーン オブジェクトにはこの後アクセスできます。

#filePostOpenProcess

ファイルのロードが完了

コマンド ライン -U MAXScript スクリプト

コマンド ライン スクリプトを実行 (存在する場合)

関連事項