Softimage 内でスクリプトを実行するには、数種類の方法があります。
フレームまたは選択が変更されるたびに、自動的にカスタム コマンドを実行することができます。「コマンドを自動的に実行する」を参照してください。
プロパティ エディタの自動検証は無効にすることができます。
シノプティックビューまたは Netview からスクリプトを実行することができます(『Softimage ユーザ ガイド』を参照)。
スクリプトおよびコマンドをイベントに結びつけて、特定のアクションおよび状態に反応して自動的に起動されるようにできます。 詳細については、「カスタム イベント」を参照してください。
Script Editor から直接スクリプトを実行できます。 Script Editor からのスクリプトの実行は、カスタム コマンドを作成する前にスクリプトをテストしたり、デバッグする場合に特に便利です。
Script Editor から実行する場合は、グローバル コード(独立した関数またはサブルーチンに表示されていないスクリプト)だけが実行されます。 グローバル コードから呼び出されているプロシージャも実行されることに注意してください。
Script Editor からスクリプトを実行する際に行(複数行可)が選択されていると、選択されている行だけが実行されます。 何も選択されていない場合は、編集ペインの全内容が実行されます。
スクリプトの構築、テスト、または調整を行う場合、スクリプトの一部だけを実行できます。 スクリプトの一部を実行することにより、スクリプトの特定部分の作業だけを集中的に行うことができます。 スクリプトの一部だけを実行するには、2 つの方法があります。
CreatePrim や CreateLayer などのオブジェクトを作成するコマンドなど、一部のコマンドは、新しいオブジェクトのプロパティ エディタの自動検証機能をトリガーします。つまり、これらのコマンドが実行されると、新しく作成されたオブジェクトのプロパティ エディタが開きます。 これらのコマンドを使用するスクリプトを Script Editor から実行すると、自動検証機能は常に無効になります。
ただし、Script Editor 以外で実行されるこれらのコマンドを使用するスクリプトでは(メニュー項目やボタンから起動される自己インストール プラグインなど)、次の場合のみ自動検証機能が無効になります。
ユーザが、現在のセッションで各自の AutoInspect プリファレンスを false に設定している(Softimage は、起動するたびにこの設定を true に戻します)。
自己インストール プラグインで、プラグインが実行されている間 AutoInspect プリファレンスが明示的に false に設定されている(Softimage は常に、プラグインが起動する前の元の設定に戻ります)。この設定には、SetUserPref コマンドまたは Preferences オブジェクトを使用します。
// via SetUserPref command SetUserPref(siAutoInspect, false); SetUserPref("AutoInspectEnabled", false); // via Preferences object var oPrefs = Application.Preferences; var oAutoInspect = oPrefs.SetPreferenceValue("Interaction.autoinspect", false);
自動検証機能をオフにするとプラグインのパフォーマンスが高まり、ユーザの不満が抑えられるため、この機能をオフにしておくことを推奨します。
カスタム コマンドまたは任意の Autodesk Softimage ネイティブ コマンドを、次のいずれかの方法で自動的に実行できます。
スクリプトとコマンドをイベントにバインディングし、特定のアクションやステータスで自動的に切り替える。 詳細については、「カスタム イベント」を参照してください。
スクリプトを実行するには、まずカスタム コマンドを作成する必要があります。「カスタム コマンド」を参照してください。
スクリプトの実行中に一時的にコマンド ログを無効にできます。 無効化を行うと、各コマンドが Script Editor の履歴ペインに残らないため、スクリプトの実行速度を大きく向上できます。
このプロシージャの代案として、[ユーザ設定]ダイアログ ボックスでコマンド ログを恒久的に無効にすることもできます。詳細については、「コマンド ログおよびメッセージ ログを無効/有効にする」を参照してください。
次のコードは、コマンド ログのユーザの現在のプリファレンスを取得し、ログをオフにして、スクリプト実行後にユーザの元のプリファレンスに戻す方法を示しています。
// Get current state var prefs = Application.Preferences; var originalsetting = prefs.GetPreferenceValue( "scripting.cmdlog" ); // Disable command logging if ( !originalsetting ) { prefs.SetPreferenceValue( "scripting.cmdlog", false ); } // // Do your stuff // // Restore logging setting to the way it was prefs.SetPreferenceValue( "scripting.cmdlog", originalsetting );
"scripting.cmdlog" の代わりに "scripting.msglog" を使用すると、メッセージのロギングを一時的に無効にできます。
"Interaction.autoinspect" を使用すると、プロパティ エディタが自動的に開く機能を無効にできます。 詳細については、「プロパティ エディタの自動検証」を参照してください。