このトピックで説明する関数は、3ds Max ユーザ インタフェースの [オブジェクト プロパティ](Object Properties )ダイアログ ボックス の[ユーザ定義](User Defined)パネルにあるシーン オブジェクトのユーザ プロパティへのアクセスを提供します。
[オブジェクト プロパティ](Object Properties)ダイアログ ボックスのユーザ定義のプロパティにアクセスして設定するには、次の 2 つの方法があります。プロパティの内容全体を単独の文字列とする方法と、フォーム中のキーとプロパティの対とする方法です。
ここで、key は識別子(名前値または文字列値)で、プロパティには数値、ブール値( true / false )、またはテキスト文字列を使用できます。個々のキーを付けたプロパティを設定および取得するには、2 つの MAXScript メソッドがあります。また、プロパティ テキストを単独の長い文字列として扱うには、2 つのメソッドがあります。
指定したキーのノードのユーザ定義プロパティを文字列として取得します。 <key_string> は文字列値または名前値です。キーが存在しない場合は、 undefined 値が返されます。
ノードに対して、指定したキーのユーザ プロパティを指定した値に設定します。
ユーザ プロパティ バッファ全体をすべてのユーザ プロパティ設定を含む文字列として取得します。これは、[3ds Max オブジェクト プロパティ](Object Properties)ダイアログ ボックスの[ユーザ定義プロパティ](User Defined Properties)ボックスの内容と同じです。
ユーザ定義プロパティ バッファを指定した文字列に設定します。
複数行のユーザ定義プロパティ バッファ文字列に改行を含めるには、改行復帰と改行の組み合わせ ¥r¥n を使用する必要があります。制御文字のリストについては、「文字列リテラル」を参照してください。
次の 2 つのコード フラグメントでは、シーン内のオブジェクトのユーザ定義プロパティが保存およびロードされます。
最初のコード フラグメントは、ファイルを作成し、すべてのオブジェクトに対してオブジェクト名とユーザ定義プロパティのバッファ文字列を出力します。オブジェクト名は、( readValue() を介して)シーン オブジェクトへの直接参照として返される形で入力されます。また、ユーザ定義プロパティの文字列は、 print() を使用して出力され、対応する readValue() によって 1 つの(長い)文字列リテラルとして読み込むために引用符で囲まれます。
2 つ目のコード例は、最初のコード例で作成したファイルに読み込み、ユーザ プロパティを現在のシーン内にある同じ名前のオブジェクトに適用します。 readValue() は、パス名( $<name> )を読み込むことができ、指定されたシーン オブジェクトを返します。シーンに指定されたオブジェクトがない場合は、 undefined を返します。 readValue() 関数も 1 回の実行で複数の行を含む文字列リテラルを読み込めます。