ファイル プロパティ は、このトピックで説明するメソッドを使用して MAXScript 内でアクセスすることができます。
ファイル プロパティは、3 種類のセットで構成されています。これらのセットは、[メイン メニュー]/[ファイル]/[ファイル プロパティ]ダイアログ ボックスの 3 つのページに対応しています。
この設定には、概要ページのタイトル、サブタイトル、作成者、キーワード、およびコメントのフィールドがあります。
このセットには、一般やメッシュ総数などの内容ページの管理者、会社名、カテゴリ、およびすべてのヘッダの配列があります。内容ページの内容は、ファイルが保存されたときのみ更新されるので注意してください。シーンを一時保存するには、
max hold
を使用します。ファイルが保存され、内容ページが更新されます。
このセットには、カスタムページのすべてのフィールドがあります。
次のメソッドは、上記セットへのアクセスに使用されます。
<set_name>
には、上記の任意の値を使用できます。
fileProperties.getNumProperties <set_name>
与えられたセット内のプロパティの数を返します。
例:
|
numProps=fileProperties.getNumProperties #summary
|
fileProperties.getPropertyName <set_name> <index>
与えられたインデックスのプロパティ名を文字列として返します。インデックスの基数は 1 です。
例:
|
nameProp=fileProperties.getPropertyName #summary 1
|
fileProperties.getPropertyValue <set_name> <index>
与えられたインデックスのプロパティ値を返します。値の型は、3ds Max の[ファイル プロパティ]ダイアログ ボックスで現在サポートされている次の 4 種類のいずれかを使用できます。角カッコ内の値はそれぞれ MAXScript の値の型に相当します。
プロパティ値の型:
Text [String]
Date [String] - contains the date eg:"03/23/99"
Number [Integer or Float based on actual value]
Yes or No [Boolean]
Headers [Array of strings]
ヘッダは、内容ページに表示される一般、メッシュ総数などの項目です。
例:
|
たとえば、内容ページからのヘッダの配列は、次のメソッドを使って取得できます。
|
fileproperties.getPropertyValue #contents 1
|
次のように返されます。
|
#("General", "Mesh Totals",...)
|
fileProperties.getItems <header_string>
与えられたヘッダのすべての項目を含む文字列の配列を返します。
例:
|
たとえば、内容ページからのヘッダの配列は、次のメソッドを使って取得できます。
|
fileProperties.getItems "Mesh Totals"
|
これは、次の値を返します。
|
#("Vertices: 488", "Faces: 968")
|
fileProperties.findProperty <set_name> <prop_name_string>
セット名とプロパティ名の文字列を渡し、プロパティのインデックスが見つかればそのインデックスを返して、見つからなければ 0 を返します。
例:
|
fileProperties.findProperty #custom "BoolVal"
|
fileProperties.addProperty <set_name> <prop_name_string> <prop_value> [#date]
指定のセットに新しいプロパティを追加し、そのプロパティの名前と値を追加します。このプロパティ値は、前述した型のうち配列のように内容ページに追加できない型を除くすべての型を使用できます。
日付を含む文字列を渡す場合は、オプションの
#date
引数を渡し、日付の値として追加する必要があります。
例:
|
fileProperties.addProperty#custom "DateVal" "03/23/99" #date
|
これは、カスタム プロパティに
DateVa
という名前の日付プロパティを追加します。
|
fileProperties.deleteProperty <set_name> <prop_name_string>
これは、指定されたセットの
<prop_name_string>
で示されるプロパティを削除します。
次の一覧は、現在のシーンの階層に含まれるすべてのファイル プロパティを出力する例です。
例:
|
-- プロパティを追加します。
fileProperties.addProperty #summary "Title" "Title val"
fileProperties.addProperty #custom "IntVal" 30
fileProperties.addProperty #custom "FloatVal" 30.034
fileProperties.addProperty #custom "BoolVal" true
fileProperties.addProperty #custom "DateVal" "03/23/99" #date
--
-- シーンの一時保存を実行し、内容セットを更新します。
max hold
--
-- すべてのプロパティを取得します。
pages = #(#summary, #contents, #custom)
for pg in pages do
(
format "--- % ---\n" (pg as string)
for i=1 to (fileProperties.getNumProperties pg) do
(
local pname = (fileProperties.getPropertyName pg i)
local pval = (fileProperties.getPropertyValue pg i)
format "\t% : " pname
if (pname =="Headers") then
(
format "\n"
for hdr in pval do
(
format "\t\t%\n" hdr
local docs = fileProperties.getItems hdr
if docs != undefined then
for d in docs do format "\t\t\t%\n"d
)
)
else format " %\n" pval
)
)
|