Max 5 API Reference
Max用のユーザインターフェイスオブジェクトを書くのであれば、そのオブジェクトにアイコンを用意することを推奨します。
アイコンを用意しておけば、ユーザはオブジェクトパレットから穴が作成したクラス(オブジェクト)のインスタンスを作ることができ、オブジェクトがデフォルトで持つインスペクタなどを含む Max とユーザのインタラクションをより快適なものにすることができます。
Max のオブジェクトに対して Cycling '74 がどのようにアイコンを用意しているかを見るために、Max によってインストールされている "Cycling '74/object-palettes" というフォルダの中を見て下さい。オブジェクトのために様々な SVG (scalable vecter graphics)ファイルがあることが分かるでしょう。これらのファイルはクラス名(オブジェクトの main() 関数で定義されたものと同じ名前)と同じ名前をつけられています。これによりオブジェクトとアイコンが関連づけられます。Max によって認識されるためには、作成した SVGiアイコンファイルをこのフォルダ内に置いておく必要があります。
SVG ファイルは様々なアプリケーションソフトで編集することができます。例えば、InkScape や Adobe Illustrator などです。Mac では OmniGraffe から SVG ファイルをエクスポートすることもできます。Max のオブジェクトアイコンはこの方法で作られています。
svg ファイルを追加することにより、アイコンは Maxから利用できるようになります。しかし、新規オブジェクトパレットにこのアイコンを表示させるためには、このSVGファイルを含むパレットを作成する必要があります。Cycling '74/object-palettes フォルダ(SVG ファイルを置いた場所です)の中を見ると、 "palette1.json"、"palette2.json"、palette3.json" というような名前のファイルがあることに気づくと思います。作成したオブジェクト用には、新しいパレットファイルを作らなければなりません。
次の例では "littleuifo" という名前のオブジェクトを作成したと仮定しています。このオブジェクト用に "littleuifoo-palette.json" というパレットファイルを作る場合、ファイルの内容は下に示すようなものになるでしょう。
{
"patcher" : {
"rect" : [ 0.000000, 0.000000, 1000.000000, 1000.000000 ],
"bgcolor" : [ 1.000000, 1.000000, 1.000000, 1.000000 ],
"bglocked" : 0,
"defrect" : [ 10.000000, 59.000000, 1176.000000, 668.000000 ],
"boxes" : [ {
"box" : {
"maxclass" : "fpic",
"boxalpha" : 1.000000,
"presentation" : 0,
"destrect" : [ 0.000000, 0.000000, 0.000000, 0.000000 ],
"patching_rect" : [ 241.000000, 244.000000, 100.000000, 50.000000 ],
"autofit" : 0,
"id" : "obj-1",
"ignoreclick" : 0,
"hidden" : 0,
"fontname" : "Courier",2
"pic" : "littleuifoo.svg",
"xoffset" : 0.000000,
"yoffset" : 0.000000,
"background" : 0,
"presentation_rect" : [ 0.000000, 0.000000, 0.000000, 0.000000 ],
"fontsize" : 12.000000,
"instance_attributes" : {
"palette_category" : [ "Images", "Interface" ],
"palette_action" : "littleuifoo"
}}
} ], "lines" : [ ] } }
このパレットファイルの大部分は、どのようなオブジェクトにも共通するものです。慧眼な読者は、これが fpic オブジェクトを含むパッチを表す t_dictionary の JSON 表現であることに気づくかもしれません。このディクショナリの中の3行に注意して下さい。