スクリプトを実行する

 
 
 

Softimage 内でスクリプトを実行するには、数種類の方法があります。

Script Editor からスクリプトを実行する

Script Editor から直接スクリプトを実行できます。 Script Editor からのスクリプトの実行は、カスタム コマンドを作成する前にスクリプトをテストしたり、デバッグする場合に特に便利です。

Script Editor から実行する場合は、グローバル コード(独立した関数またはサブルーチンに表示されていないスクリプト)だけが実行されます。 グローバル コードから呼び出されているプロシージャも実行されることに注意してください。

Script Editor からスクリプトを実行する際に行(複数行可)が選択されていると、選択されている行だけが実行されます。 何も選択されていない場合は、編集ペインの全内容が実行されます。

Script Editor からスクリプトを実行するには

次のいずれかの操作を実行します。

  • コマンド バーで[実行](Run)ボタンをクリックします。

    または

  • [F5]キーを押します。

    または

  • コマンド バーで[編集](Edit) [実行](Run)を選択します。

    または

  • 編集ペインを右クリックし、ポップアップ メニューから[実行](Run)を選択します。

スクリプトを部分的に実行する

スクリプトの構築、テスト、または調整を行う場合、スクリプトの一部だけを実行できます。 スクリプトの一部を実行することにより、スクリプトの特定部分の作業だけを集中的に行うことができます。 スクリプトの一部だけを実行するには、2 つの方法があります。

  • 実行する必要がない行をコメント行とします。 VBScript では、不要な行の頭にアポストロフィ(')を付けます。 行頭にアポストロフィを追加した行を再び実行したい場合は、アポストロフィを除去します。

  • 連続する行ブロックを実行するには、スクリプトを実行する前に編集ペインで行ブロックを選択します。 テキストを選択した場合は、選択した行だけが実行されます。 行は必ず完全な行を選択してください。

プロパティ エディタの自動検証

CreatePrimCreateLayer などのオブジェクトを作成するコマンドなど、一部のコマンドは、新しいオブジェクトのプロパティ エディタの自動検証機能をトリガーします。つまり、これらのコマンドが実行されると、新しく作成されたオブジェクトのプロパティ エディタが開きます。 これらのコマンドを使用するスクリプトを 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 ネイティブ コマンドを、次のいずれかの方法で自動的に実行できます。

  • オブジェクトを選択するごとに実行する。

  • フレームを変更するごとに実行する。

  • スクリプトとコマンドをイベントにバインディングし、特定のアクションやステータスで自動的に切り替える。 詳細については、「カスタム イベント」を参照してください。

スクリプトを実行するには、まずカスタム コマンドを作成する必要があります。「カスタム コマンド」を参照してください。

ジオメトリ ビューでオブジェクトの選択時にスクリプトを自動的に実行するには

  1. Autodesk Softimage のメイン メニューで[ファイル](File) [ユーザ設定](User Preferences)を選択します。

    [ユーザ設定]ダイアログ ボックスが開きます。

  2. [Interaction]ページの[OnSelectionChange コマンド](OnSelectionChange Command)ボックスに、コマンド名およびパラメータを入力します。 たとえば、VBScript の構文では次のようになります。

    LogMessage GetValue("SelectionList")

    この設定はユーザ設定に保存され、すべてのシーンに適用されます。

注:

OnSelectionChange コマンドは、3D ビュー内で何かを選択したときにのみ実行されます。 Explorer または Schematic View のエレメントを選択したときは実行されません。

現在のフレームの変更時にスクリプトを自動実行するには

現在のフレームを変更し、シーンを更新した後に、指定したスクリプトや Autodesk Softimage ネイティブ コマンドを自動的に実行することができます。 これにより、スクリプトを使用して「一定」のエフェクトをシミュレートできます。

  1. タイムラインの下にある再生パネルから、[再生](Playback) [再生オプション](Playback Options)を選択します。

    [再生コントロール]プロパティ エディタが開きます。

  2. [更新](Update)タブをクリックします。[On-Frame-Change スクリプト](On-Frame-Change Script Command)の[コマンド]ボックスに、コマンド名およびパラメータを入力します。この設定はシーンとともに保存されます。

重要:

[On-Frame-Change スクリプト](On-Frame-Change Script Command)のコマンド設定はシーンとともに保存されます。カスタム コマンドを設定する際には、シーンを開くすべてのシステムでカスタム コマンドを使用できるようにしてください。

コマンドのログを一時的に無効にする

スクリプトの実行中に一時的にコマンド ログを無効にできます。 無効化を行うと、各コマンドが Script Editor の履歴ペインに残らないため、スクリプトの実行速度を大きく向上できます。

このプロシージャの代案として、[ユーザ設定]ダイアログ ボックスでコマンド ログを恒久的に無効にすることもできます。詳細については、「コマンド ログおよびメッセージ ログを無効/有効にする」を参照してください。

注:

コマンド ログを無効にしても、コマンドを個別に元に戻す機能には影響しません。 影響を受けるのは、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" を使用すると、プロパティ エディタが自動的に開く機能を無効にできます。 詳細については、「プロパティ エディタの自動検証」を参照してください。

スクリプトを終了する

実行中のスクリプトを終了するには、[Ctrl]+[Break]キー(キーボードによっては[Ctrl]+[Pause]キー)を押します。 このショートカット キーを数回押さなければならない場合があります。キーボード操作は、各 Autodesk Softimage ネイティブ コマンドが実行される直前までチェックされないためです。

重要:

[Ctrl]+[Break]キーは PerlScript では無効です。 スクリプト エンジンはエラーでは停止しません。

Softimage は、次の Softimage コマンドの実行時に停止します。 したがって、スクリプトが自身の無限ループに陥ったり、オブジェクト モデル メソッドとプロパティのみを呼び出す場合、停止は実行できません。