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行に注意して下さい。