colorMan コア インタフェースは、MAXScript にカラー マネージャを公開します。
3ds Max では、[メイン メニュー]/[カスタマイズ]/[ユーザ インタフェースをカスタマイズ]/[カラー]タブを使用して、さまざまな UI 要素を変更したり、要素の彩度、値、および透明度を変更したり、カラー スキームをロードおよび保存したりすることができます。
注:カラーを変更した後は、必ず
colorMan.repaintUI #repaintAll
を呼び出して、変更を適用し、カスタマイズ ダイアログ ボックスの内容を反映させる必要があります。
メソッド:
<boolean>colorMan.useStandardWindowsColors()
標準の Windows カラーが使用されている場合は
true
、カスタム カラーが使用されている場合は false を返します。
colorMan.setUseStandardWindowsColors <boolean>onOff
標準の Windows カラーを使用するかどうかを設定します。これにより、カスタム カラーではなく標準の Windows カラーを使用するようにシステムに指定することができます。
<boolean>onOff: 標準の Windows カラーを使用する場合は true、カスタム カラーを使用する場合は false を渡します。
<boolean>colorMan.registerColor <string>color <string>name <string>category <point3>defaultColor
新しいカラーがシステムに登録されます。また、カラー マネージャのデータベースにカラーが追加され、カラー カスタマイズ UI からアクセスできるようになります。カラーが既に登録されている場合は
false
、その他の場合は
true
を返します。
<string>color: 登録するカラーの ID。例: #myNewColor
<string>name: カラーの名前。 例: "My Own Color"
<string>category: カラーのカテゴリ。渡した名前が既存の 3ds Max カテゴリのいずれかと一致する場合は、カラーはそのカテゴリに置かれます。一致しない場合は新しいカテゴリが作成されます。例: "Fun Gaming Colors"
<point3>defaultColor: カラーの既定値。これは、3ds Max ユーザがカラー カスタマイズ ダイアログ ボックスで[リセット]を押したときに、リセットされるカラーの値です。例: [1,0,0]
例
|
colorMan.registerColor #myNewColor "My Own Color" "Ugly Colors" [1,0,0]
|
これにより、赤の既定値を保持する
#myNewColor
という名前の新規カラーが登録されます。カスタマイズ UI 内のカテゴリは「Ugly Colors」、名前は「My Own Color」になります。
他のスクリプトからは、次の方法でこのカラーにアクセスできます。
|
colorMan.getColor #myNewColor
|
注:
colorMan.registerColor
は、¥stdplugs¥stdscripts フォルダ内のスクリプトから呼び出す必要があります。 これらのスクリプトは 3ds Max 起動時に実行されるため、カラーはすぐにカスタマイズ UI 内で使用可能になります。ユーザがこのカラーをカスタマイズすると、値は MaxColors.clr ファイルに保存されます。
<boolean>colorMan.loadColorFile <filename>file
このメソッドは、現在の UI ディレクトリから指定されたカラー ファイルをロードします。ロードが正常に終了した場合は
true
、その他の場合は
false
を返します。
<string>file: ロードするカラー ファイルのファイル名。
注:指定したパスは、¥UI ディレクトリに相対的である必要があります。
<boolean>colorMan.saveColorFile <filename>file
このメソッドは、現在の UI ディレクトリから指定されたカラー ファイルを保存します。保存処理が正常に終了した場合は
true
、その他の場合は
false
を返します。
<string>file: 保存するカラー ファイルのファイル名。
注:指定したパスは、¥UI ディレクトリに相対的である必要があります。
<filename>colorMan.getColorFile()
現在のカラー ファイルのファイル名を返します。
<boolean>colorMan.setColor <string>color <point3>colorValue
ID が渡されている登録済みカラーのカラー値を設定します。カラーが設定されている場合は
true
、渡された ID が見つからない場合は
false
を返します。
<string>color: 設定するカラーを指定します。
<point3>colorValue: 設定するカラー値。
あらかじめ定義されているカラーは次のとおりです。
#background
|
すべてのコントロールおよびボタンの背景
|
#text
|
すべてのコントロールおよびボタンのテキスト
|
#activeCommand
|
コマンド モード ボタンを押したときのカラー
|
#hilight
|
3d コントロールのハイライト カラー
|
#shadow
|
3d コントロールのシャドウ カラー
|
#window
|
編集ボックス、リスト ボックス、およびその他のウィンドウの背景カラー
|
#activeCaption
|
アクティブなキャプションのカラー
|
#toolTipBackground
|
ビューポートのツール チップの背景
|
#toolTipText
|
ビューポートのツール チップのテキスト カラー
|
#hilightText
|
スタック ビュー ドロップダウン リスト内のハイライト カラー
|
#windowText
|
編集ボックス、リスト ボックス、およびその他のウィンドウで使用するカラー
|
#itemHilight
|
項目のハイライト カラー
|
#subObjectColor
|
スタック ビューのサブオブジェクト レベルをハイライトするために使用されるカラー
|
#3dDarkShadow
|
3d コントロールのダーク シャドウ カラー
|
#3dLight
|
3d コントロールのライト カラー
|
#appWorkspace
|
アプリケーション ワークスペースのカラー
|
#trackbarBg
|
トラックバーの背景
|
#trackbarBgSel
|
選択されたキーのトラックバーの背景
|
#trackbarText
|
トラックバーのテキスト
|
#trackbarTicks
|
トラックバーのティック
|
#trackbarKeys
|
トラックバーのキー
|
#trackbarSelKeys
|
トラックバーの選択キー
|
#trackbarCursor
|
トラックバーのカーソル
|
#pressedButton
|
[変換の制限]などの押されたボタンの背景カラー
|
#timeSliderBg
|
タイム スライダ バーの背景
|
#viewportBorder
|
ビューポートの境界カラー
|
#activeViewportBorder
|
アクティブなビューポートの境界カラー
|
#rollupTitleFace
|
ロールアウト タイトルの背景
|
#rollupTitleText
|
ロールアウト タイトルのテキスト
|
#rollupTitleHilight
|
ロールアウト タイトルの 3d ハイライト
|
#rollupTitleShadow
|
ロールアウト タイトルの 3d シャドウ
|
#selectionRubberBand
|
選択マーキー カラー
|
#stackViewSelection
|
スタック ビュー内で選択された項目のカラー
|
<color>colorMan.getColor <string>color
ID が渡されているカラーのカラー値が返されるか、または渡された
Color
が見つからない場合は、黒(RGB(0,0,0))が返されます。
<string>color: 取得するカラーを指定します。
<name>colorMan.getName <string>color
ID が渡されているカラーの名前を返します。
<string>color: カラーの ID。
<string>colorMan.getCategory <string>color
ID が渡されているカラーのカテゴリ文字列を返します。
<string>color: カラーの ID。
<boolean>colorMan.setIconFolder <filename>folder
<filename>folder: UI フォルダの名前。ディレクトリに対する相対パスで指定します。絶対パス名は使用できません。
このメソッドは、UI のすべてのアイコンをロードするために使用するフォルダを設定し、ただちにそのフォルダからアイコンを再ロードします。
注:
アイコン ファイルのないフォルダがロードされると、UI 内のすべてのアイコンは空白になります。このとき、警告は発行されません。
<filename>colorMan.getIconFolder()
現在のアイコン フォルダの絶対パス名を返します。
getIconFolder
は絶対パスを返します。ただし、
setIconFolder
では、相対パスしか使用できません。
<float>colorMan.getIconColorScale <enum>type <enum>which
type enums: {#disabledIcon|#enabledIcon}
which enums: {#saturationScale|#valueScale|#alphaScale}
指定されたアイコン タイプに適用されるいずれかのスケール係数を浮動小数点値(0.0 ~ 1.0 の範囲)で返します。これらのスケール係数は、起動時にアイコンにイメージ処理を行うために使用されます。
<enum>type: 値は次のいずれかです。
#disabledIcon:
無効なアイコン。
#enabledIcon:
有効なアイコン。
<enum>which : アイコンのカラー スケール。値は次のいずれかです。
#saturationScale:
彩度のスケール。
#valueScale:
値のスケール。
#alphaScale:
アルファのスケール。
colorMan.setIconColorScale <enum>type <enum>which <float>value
type enums: {#disabledIcon|#enabledIcon}
which enums: {#saturationScale|#valueScale|#alphaScale}
渡されたアイコン タイプに、指定されたスケール係数を設定します。カラー マネージャは、3ds Max アイコン イメージ処理システムで使用する値を保持します。開発者はこのメソッドを使用して、有効なアイコンおよび無効なアイコン イメージの彩度、値、透明度をスケールする値を設定することができます。
<enum>type: アイコン タイプ。値は次のいずれかです。
#disabledIcon:
無効なアイコン。
#enabledIcon:
有効なアイコン。
<enum>which : アイコンのカラー スケール。値は次のいずれかです。
#saturationScale:
彩度のスケール。
#valueScale:
値のスケール。
#alphaScale:
アルファのスケール。
<float>value: 値の範囲は 0.0 ~ 100.0 です。
colorMan.getIconColorInvert <enum>type
type enums: {#disabledIcon|#enabledIcon}
指定されたアイコン タイプに反転フラグが設定されている場合は
true
、設定されていない場合は
false
を返します。
<enum>type: アイコン タイプ。値は次のいずれかです。
#disabledIcon:
無効なアイコン。
#enabledIcon:
有効なアイコン。
setIconColorInvert <enum>type <boolean>value
type enums: {#disabledIcon|#enabledIcon}
指定されたアイコン タイプの反転フラグを
on
または
off
に設定します。
<enum>type: アイコン タイプ。値は次のいずれかです。
#disabledIcon:
無効なアイコン。
#enabledIcon:
有効なアイコン。
<boolean>value: 反転する場合は true、反転しない場合は false を渡します。
<filename>colorMan.getFileName()
現在ロードされているカラー ファイルのファイル名を返します。
注:
loadColorFile
と
saveColorFile
が相対パスを使用していても、このファイル名は絶対パスを指定します。
<color>colorMan.getDefaultColor <string>color
指定された ID の既定値のカラーを返します。既定のカラーは、その後
SetColor()
が実行されているかどうかにかかわらず、registerColor の defaultValue として渡された値です。これは、ユーザが[リセット]を押してカラーを既定値にリセットする場合に UI で使用されます。
<string>color: カラーの ID。
colorMan.repaintUI <enum>type
type enums: {#repaintAll|#repaintTrackBar|#repaintTimeBar}
このメソッドでは、ユーザ インタフェースの再描画を発行することができます。これは、[カスタマイズ]ダイアログ ボックスの[すぐにカラーを適用]ボタンと同じです。
<repaintType>type: 発行する再描画のタイプ。
#repaintAll
、
#repaintTrackBar
、
#repaintTimeBar
のいずれかです。
次に、タイム スライダおよびトラック バーの背景を青に変える macroScript を示します。
例
|
macroScript BlueBar
category: "Color"
tooltip: "Blue Bar"
(
on execute do
(
colorMan.setColor #timeSliderBg [0, 0, .6]
colorMan.repaintUI #repaintTimeBar
colorMan.setColor #trackbarBg [0, 0, .6]
colorMan.repaintUI #repaintTrackBar
)
)
|
注:すべての 3ds Max の標準アイコン BMP ファイルは、指定したフォルダ内に存在する必要があります。標準ファイルが存在しない場合は、3ds Max の UI のアイコンが空白で表示されます。必要なすべてのアイコン ファイルは、ui¥icons フォルダ(既定のアイコン フォルダ)にあります。
アイコン ファイルから、すべての CUI アイコンを再度ロードします。新規のアイコン ビットマップ ファイルを追加したり、既存のファイルを編集した後で、UI を更新する際に使用します。
3ds Max 9 以降で使用可能です。
<bool>colorman.resolveIconFolder <filename> <&fullfilename>
このメソッドは、ユーザ アイコンパス、システム アイコン パス、<3dsmax.exe>¥ui¥iconsの順にファイル名を解決します。
ファイルを検出すると、完全修飾のファイル名が fullfilename に入れられ、このメソッドは true を返します。
検出されない場合には、このメソッドは false を返します。
3ds Max 9 以降 で使用可能です。
この製品に付属している SDK ヘルプ ファイルの「IcolorManager」も参照してください。