記号パス名

MAXScript に指定するファイル名の任意の場所に、 $<name> という形式で記号パス名を使用することができます。

この機能は 3ds Max 4 で追加され、3ds Max 9 で大幅に拡張されました。

以下の例で MAXScript に指定するファイル名は、「 $ 」で始まり、下記の記号ディレクトリ名のいずれかが続きます。

次の記号名が認識されます。

インデックス

記号名

ディレクトリ

1

$max

メインの MAX 実行可能ディレクトリ

2

$maps

マップ ディレクトリ構成内の最初のディレクトリ*

3

$scenes

3ds Max のシーンディレクトリ

4

$fonts

フォント ディレクトリ

5

$imports

ファイルの読み込み元ディレクトリ

6

$exports

ファイルの書き出し先ディレクトリ

7

$sounds

サウンド ディレクトリ

8

$matlibs

マテリアル ライブラリ ディレクトリ

9

$scripts

スクリプト ディレクトリ

10

$startupScripts

自動ロードのスタートアップ スクリプト ディレクトリ

11

$plugins

プラグイン ディレクトリ構成内の最初のディレクトリ*

12

$plugcfg

プラグイン構成ディレクトリ

13

$images

イメージ ディレクトリ

14

$ui

ユーザ インタフェース ファイル ディレクトリ

15

$macroScripts

UI ディレクトリ内の macroScripts

16

$web

Web ダウンロード用ディレクトリ

17

$temp

システムの一時ディレクトリ

18

$renderPresets

レンダリング プリセット ディレクトリ

19

$help

ヘルプ ファイル ディレクトリ

20

$expressions

関数 ディレクトリ

21

$previews

プレビュー ディレクトリ

22

$maxstart

MAXSTART.MAX のディレクトリ

23

$vpost

ビデオ ポスト ディレクトリ

24

$drivers

ドライバ ディレクトリ

25

$autoback

自動バックアップ ディレクトリ

26

$marketDefaults

各市場の既定値のディレクトリ

27

$icons

アイコン ディレクトリ

28

$maxSysIcons

システム アイコン ディレクトリ

29

$renderOutput

レンダリング出力ディレクトリ

30

$animation

アニメーション ディレクトリ

31

$archives

アーカイブ ディレクトリ

32

$photometrics

フォトメトリック ファイル ディレクトリ

33

$renderAssets

レンダリング アセット ディレクトリ

34

$userScripts

ユーザ スクリプト ディレクトリ

35

$userMacros

ユーザ マクロスクリプト ディレクトリ

36

$userStartupScripts

ユーザ スタートアップ ディレクトリ

37

$userIcons

ユーザ アイコン ディレクトリ

38

$maxData

Max データ(ルート)ディレクトリ

39

$downloads

ダウンロード ディレクトリ

40

$proxies

ビットマップ プロキシ ディレクトリ

41

$assemblies

アセンブリ ディレクトリ

42

$hardwareShadersCache

ハードウェア シェーダ ディレクトリ

43

$plugcfg_ln

Plugcfg_ln ディレクトリ

44

$ui_ln

UI_LN ディレクトリ

45

$autodeskcloud

オートデスク クラウド ディレクトリ

46

$userStartupTemplates

スタートアップ テンプレート ディレクトリ

47

$privateExchangeStoreInstallPath

プライベート Exchange Store インストール ディレクトリ

48

$publicExchangeStoreInstallPath

パブリック Exchange Store インストール ディレクトリ

これらは GetDir() および SetDir() メソッドの引数である 3ds MAX システム ディレクトリの filetype_names(「#」で始まる)とよく似ていることに注意してください。

以下の例では、現在の 3ds Max スクリプト ディレクトリにある「foo.ms」というファイルを開きます。

例:

fileIn "$scripts\foo.ms"

3ds Max 9 以降では、 $maps および $plugins 記号パス名は、インデックスも指定できます。以下の例では、インデックス付きのディレクトリを使用しています。

例:

"$maps[2]\\mybitmap.tga"

インデックスを指定しないと、マップに対応する最初のプラグイン パスが使用されます。

SymbolicPaths 構造体

3ds Max 9 以降では、SymbolicPaths 構造体には、既存の記号パスにアクセスするメソッドと、新しい記号パスを定義するメソッドがあります。

symbolicPaths.numPaths()

記号パス名の数を返します。これには、システム パスとユーザ定義のパス名の両方が含まれます。

   

symbolicPaths.getPathName<index>

インデックス付きの記号パス名を返します。

例:

for i =1 to symbolicPaths.numPaths() do
format "% : %\n" i (symbolicPaths.getPathName i)
symbolicPaths.isPathName <string>

文字列が記号パス名に対応する場合には true、対応しない場合には false を返します。

例:

symbolicPaths.isPathName "$maps"
true
symbolicPaths.isPathName "$map"
false
symbolicPaths.getPathValue {<index> | <string>}

指定の記号パス名に関連するパスを返します(インデックスまたは名前文字列で指定)。

例:

symbolicPaths.getPathValue 2
"C:\Program Files\Autodesk\3ds Max 2012\maps"
symbolicPaths.getPathValue"$maps"
"C:\Program Files\Autodesk\3ds Max 2012\maps"
symbolicPaths.numUserPaths()

ユーザ定義の記号パス名の数を返します。

   

symbolicPaths.getUserPathName <index>

インデックス付きのユーザ定義の記号パス名を返します。

   

symbolicPaths.isUserPathName <string>

文字列がユーザ定義の記号パス名に対応する場合には true、対応しない場合には false を返します。

   

symbolicPaths.getUserPathValue {<index> | <string>}

指定のユーザ定義の記号パス名に関連付けられたパスを返します。

   

symbolicPaths.setUserPathValue {<index> | <string>} <filepath>

指定のユーザ定義の記号パス名に関連付けられたパスを設定します。

   

symbolicPaths.addUserPath <string> <filepath>

ユーザ定義の記号パス名とパスを追加します。

   

symbolicPaths.removeUserPath {<index> | <string>}

ユーザ定義の記号パス名を削除します。

   

symbolicPaths.expandFileName <filename>

拡張ファイル名を返します。

例:

symbolicPaths.numUserPaths() --check foruser path- none by default
0
symbolicPaths.addUserPath "$test" "c:\\test" --define new user path
OK
symbolicPaths.numUserPaths() --check foruser path- there is one!
1
symbolicPaths.isUserPathName "$test" --is a user symbolic path?
true
--See if $temp is a user symbolic path.
--NOTE that $temp is aSYSTEMsymbolic path,
--but not aUSERsymbolic path:
symbolicPaths.isUserPathName "$temp"
false
symbolicPaths.getUserPathName 1 --get the name of the first path
"$test"
symbolicPaths.getUserPathValue 1 --get the first path
"c:\test"
symbolicPaths.getUserPathValue "$test" --get the path by name
"c:\test"
symbolicPaths.setUserPathValue "$test" "c:\\another\\path" --change
OK
symbolicPaths.getUserPathValue "$test" --see if itchangeg?
"c:\another\path"
symbolicPaths.expandFileName "$test\\somefile.txt" --expand a path
"c:\another\path\somefile.txt"
symbolicPaths.removeUserPath "$test" --remove the user path
OK
symbolicPaths.numUserPaths() --there are no user paths left
0

関連事項