Softimage API の構造について

 
 
 

C++ API および Softimage オブジェクト モデル(OM)は、どちらもオブジェクト指向のアプローチで実装されています。 つまり、子となるクラスは親クラスの関数を継承し、その後にさらに特定の関数を実装することでそのクラスを拡張します。 両方の API で階層表示を使用できます。

Softimage の SDK Explorer を使用することも可能です。SDK Explorer は、選択したオブジェクトの SDK 情報を表示するリレーショナル ビューです。 SDK Explorer を表示するには、Softimage のメイン メニューで[表示](View)[スクリプト](Scripting)[SDK Explorer]を選択します。

SDK Explorer は、スクリプト化されたオブジェクト モデルの情報と、スクリプト リファレンス ページへのリンクを表示します。 コマンドおよびスクリプト リファレンス ページには、対応する C++ リファレンス ページが含まれているため、ミラー C++ 情報を容易に取得することができます。

以下のセクションでは、スクリプト オブジェクト モデルと C++ クラス ライブラリを非常に高いレベルから捕らえた内容を提供します。

基本クラス

両方の API の Softimage シーンの基本の構成要素は、SIObject またはSIObjectであり、 これは NameFullNameTypeOrigin および OriginPath などの基本的な情報を実装しています。 大部分のオブジェクトは SIObject から継承されます。

Application

Application または Application は、次の構文を使用して、スクリプト化およびコンパイルされたプラグインに Softimage への接続を提供します。

  • Softimage 外部で実行できるスクリプト プラグイン(たとえば、NetView ページ)を記述する場合は、以下のように Application オブジェクトを使って Softimage に接続することができます。

    // JScript
    var xsi_app = new ActiveXObject( XSI.Application );
    var app = xsi_app.Application;
    app.LogMessage( "Initiating NetView session" );
  • C++ API でプラグインを記述する場合は、次のコードを使用します。

    Application app;
    app.LogMessage( L"Welcome to Softimage!" );
  • オブジェクト モデルで C# プラグインを記述する場合は、次のコードを使用します。

    CXSIApplicationClass app = new CXSIApplicationClass();
    app.LogMessage( "Custom Plug-in started", siSeverity.siInfo );

また、Application クラスは、コマンドの制作と実行、アドオンのインストール、Softimage 基本ユーティリティ(ディクショナリ、選択、デスクトップなど)へのアクセスなどの重要な多くのサービスを提供します。

ユーティリティ クラス

プロジェクトレベルの項目とシーンレベルの項目で基本クラスとして主に使用するクラスは 2 つあります。

  • ProjectItem または ProjectItem: プロジェクト内の大部分のコンテンツ オブジェクト用の基本クラス。たとえば、ProjectItem から継承するオブジェクトにはパラメータが存在する可能性があります。 ProjectItem から継承するオブジェクトには、Clip または ClipSource または SourceOperator または OperatorShader または ShaderScene または Scene などがあります。

  • SceneItem または SceneItem: 大部分のシーン オブジェクト用の基本クラス。たとえば、SceneItem から継承するオブジェクトの多くにはプロパティが存在する可能性があります。 SceneItem から継承するオブジェクトには、Cluster または ClusterGroup または GroupModel または ModelX3DObject または X3DObject などがあります。

3D シーン オブジェクト

3D シーン オブジェクトを管理するメイン クラスは、X3DObject または X3DObject で、これは子オブジェクトを作成する関数を実装し、ジオメトリへのアクセスを可能にし、子を介したナビゲーションを提供します。

シーン オブジェクトのデータにアクセスする際に使用できる代表的な関数の一部を以下に紹介します。

コンテンツ クラス

オブジェクト モデルで実装され、特定の Softimage アイテムを表すクラスは数多く存在します。たとえば、Shader または ShaderCamera または CameraVertex または VertexImageClip または ImageClipPort または Port などです。

グローバル クラスとユーティリティ クラス

さらに機能を充実させるグローバル クラス(intrinsic)とユーティリティ クラスがいくつか用意されています。 使用できるものは次のとおりです。

  • Application または Application クラス: Softimage および重要なサービスに接続します。

  • 計算機能: オブジェクト モデルの XSIMath オブジェクト、および C++ API の XSI::MATH ネームスペースを介して実装されます。 数学に関する便利なメソッドとインタフェースを提供します。

  • UI Toolkit または UI Toolkit: ユーザ インタフェースの構築の際に使用すると役立つツールへのアクセスを提供します。たとえば、ProgressBar または ProgressBarMsgBox または MsgBox などです。

  • XSIUtils オブジェクト: オブジェクト モデル内でのみ使用できます。 DataRepositoryLinktab などの一般的なユーティリティにアクセスできます。