カスタム プロパティを定義する

 
 
 

プロパティ ページをビルドするには、使用したいコントロールに対応する一連のパラメータを使用して、最初にカスタム プロパティ セットを作成する必要があります。 たとえば、(RGB)のカラー コントロール 1 つとテキスト ボックス 2 つをユーザに表示するダイアログを作成する場合、作成しなければならないパラメータは、浮動小数点パラメータ 3 つと文字列パラメータ 2 つ(全部で 5 つ)です。

注:

追加パラメータは、最終的なプロパティ ページに表示しないで、カスタム プロパティ セット上に作成することができます。 ユーザに使用できない情報や、シーン内に永続させる必要のない情報を格納する場合は、非表示のパラメータを使用すると便利です。

ヒント:

また、カスタム プロパティ上のパラメータを動的に変更することもできます。 詳細については、「カスタム プロパティを動的に変更する」を参照してください。

基本プロパティ セットを作成するには

  1. カスタム プロパティを作成する際は、その作成方法に応じて、はじめに CustomProperty または CustomProperty オブジェクトへのポインタを取得します。

    • 処理中にプロパティを作成するには、SceneItem.AddCustomProperty または SceneItem::AddCustomProperty を使用して空のカスタム プロパティ セットを作成します。プロパティをオーナー(たとえば、クラスタ、3D オブジェクト、モデルなど)としてサポートするシーン ノードは、どれでも使用できます。

    • 自己インストール プロパティを作成する場合は、Define コールバック内部で Context.Source または Context::GetSource プロパティから CustomProperty オブジェクトへのポインタを取得できます。

    // JScript
    function MyCPSet_Define( in_context ) {
    	var oCusProp = in_context.Source;
    	// ...
    }
    
    // C++
    CStatus MyCPSet_Define( CRef& in_context ) {
    	Context ctxt(in_context);
    	CustomProperty cus_prop(ctxt.GetSource());
    }
    
  2. 単純なコントロールを定義する場合、または非表示のパラメータを作成する場合は、毎回 CustomProperty.AddParameter3 または CustomProperty::AddParameter を使用します。

    カラーコントロールを定義する場合は、チャンネル(RGB/RGBA)ごとに 1 つのパラメータを作成する必要があるので、その手間がかかります。

    Fカーブ ウィジェットには、CustomProperty.AddFCurveParameter または CustomProperty::AddFCurveParameter を使用します。

    グリッド データ ウィジェットには、CustomProperty.AddGridParameter または CustomProperty::AddGridParameter を使用します。

    ヒント:

    C# またはスクリプトの場合は、CustomProperty.AddParameter3 がプロパティ セット作成の推奨バージョンです。これは、JScript 準拠(CustomProperty.AddParameter2 と同様)で、しかもオリジナル(CustomProperty.AddParameter)をベースに単純化されたものであるためです。ただし、パラメータがUI範囲、特定の分類フラグ、またはユーザ名を必要とする場合は、これら両バージョンのどちらかを使用することを考えてください。

    C++ API の場合、単純化されたものと、UI 範囲を指定できるものの、2 つの CustomProperty::AddParameter 関数があります。両者とも、分類フラグおよびユーザ名を指定するための引数があります。

  3. PPGLayout または PPGLayout オブジェクトを PPG.PPGLayout または ProjectItem::GetPPGLayout から取得してプロパティ セットのレイアウトを定義し、次の操作でその定義を使用します。

  4. このカスタム プロパティを自己インストール プラグイン(再利用可能)にする場合は、特定のコールバックも指定する必要があります。 詳細については、「プロパティ コールバック」を参照してください。

    重要:

    XSIUtils.WriteSPDL を使用してシーン内のスクリプト済み CustomProperty 定義から SPDL を(また必要に応じてプリセットも)作成し、XSIUtils.RegisterSPDL を使用して登録することができます。ただし、これらの手法を使うことは低レベルであり、Softimage のインストールに障害が発生する可能性があるためお勧めしません。

    また、同じ機能を自己インストール式カスタム プロパティで実行するときは、追加の SPDL ファイルを作成してもメリットはありません。