チュートリアル 20:
プレゼンテーションモード

イントロダクション

このチュートリアルは、Max 5 の新機能の1つである「プレゼンテーションモード」に関するものです。プレゼンテーションモードを使うと、プログラミングモデルとは全く異なったパフォーマンス専用のUI(ユーザインタフェース)を作成することができます。

良いパフォーマンスパッチを作ることの難しさの1つに、プログラミングの内容を非表示にしてパフォーマンスに役立つコントロールだけを表示させるようにするという点があります。これは、大きなコントロールやわかりやすいシグナル経路を必要とする場合に、特に言えることです。ここで見ていくように、パフォーマンスでのパッチのレイアウトに関する問題点は、オブジェクトをプレゼンテーションモードに含め、これをプログラムでのオブジェクトの役割から切り離した形で配置することによって解決できます。

パッチの概観

チュートリアルを開いて下さい。

このパッチは、これまで使用してきた描画パッチと同じようなものです。マウスの動きをスケールし、lcd オブジェクト上に描画を行なっています。このケースでは「ペイントブラシ」が四角いボックス状(lcd では framerect と呼びます)になっています。また、単に lcd にボックスを描画するのではなく、ボックスの形と色が、パッチの上部にある水平方向の rslider オブジェクトと2つの垂直方向の slider オブジェクトの値に基づいて常に変更されています。これらのコントロールや、マウスのポーリングを行なっている metro オブジェクトのステート(内部状態)は、パッチを開いたときに、loadbang と loadmess というオブジェクトによってすべて初期化されます(loadmess オブジェクトは、パッチを開いたときに、bang ではなく、単にメッセージだけを送信します)。metro が実行されている場合、マウスをいろいろと移動させると、描画がマウスの動きに応じて絶えず移動して行くのがわかります。目を細めて見ると、モンドリアンのように思えたりすることさえあるかもしれません。

しかし、このパッチはまた、典型的な Max プログラミングが持つ限界を示すものでもあります。パッチのロジック(訳注:論理構造を支えるプログラム部分)がワーキングスペースのほとんどの部分を占めていて、結果を表示するlcd のワークスペースを圧倒しているような感じがします。これをより使いやすくする1つの解決方法は、すべてのロジックをカプセル化して非表示にし、ユーザインターフェイスのサイズを変更することです。しかし、この方法では、パッチのロジックのレイアウトが変更されてしまう可能性があります。また、後でこのパッチの機能を容易に拡張することができなくなってしまうかもしれません。そのため、パッチのロジックのレイアウトに干渉することなく、パフォーマンス用のインターフェイスを作成する方法が必要になります。

プレゼンテーションモードの使用

Maxは、パッチの特別なユーザインターフェイス画面である「プレゼンテーションモード」を提供することによって、この問題を解決します。プレゼンテーションモードに入るためには、パッチの下部にある、イーゼルに乗せられたホワイトボードのような形の小さなアイコンをクリックします。このアイコンをクリックすると、パッチのロジック部分が消え、ユーザインターフェイス部分がパフォーマンスに適した場所に移動します。アイコンを再びクリックすると、元の「パッチ編集」モード(パッチを見る通常のやり方)に戻り、パッチのロジックの編集が可能になります。プレゼンテーションモードは、パッチでユーザ向けの表示を作成する作業を、簡単なものにしてくれます。

パッチが通常の(「パッチ編集」)モードにある状態で、プレゼンテーションモードで表示するアイテムを定義することができます。チュートリアルパッチをアンロックして下さい。ユーザインターフェイスの部分がピンク色に縁取られていることがわかると思います。これは、オブジェクトがプレゼンテーションモードに含まれていることを示すインジケータです。プレゼンテーションモードにオブジェクトを追加してみましょう。パフォーマンスパッチにあると面白そうなオブジェクトが2つあります。カレントのボックスサイズを表示する2つのナンバーボックスオブジェクトです。このナンバーボックスはパッチ中央の2つ scale オブジェクトのすぐ下にあります。ナンバーボックスの内の1つを選択して、Object メニューから Add to Prsentation を選んで下さい。プレゼンテーションモードに切り替えるとこのナンバーボックスが見えると思います。しかし、大きさと位置は通常のパッチ編集モードから変更されないままです。このナンバーボックスは値の範囲をコントロールするrslider の下に移動させるとわかりやすいのではないかと思います。プレゼンテーションモードでは、「パッチ編集」モードと同じように、このナンバーボックスをドラッグすることができます。また、必要ならばサイズ変更を行なうこともできます。サイズや位置を変更しても、通常のパッチャーには影響しません。2つのモードを交互に切り替えて、これを確認することができます。

「ノーマル」モードに戻って、もう1つのナンバーボックスを選択して下さい。再び、Add to Presentation Mode を選んで、モードを切り替えて下さい。このナンバーボックスも同様に移動やサイズ変更を行なうことができます。これも rslider の下に移動させたほうが良いでしょう。プレゼンテーションモードの状態にあるとき、パッチの下部にあるロックアイコンをクリックして、(「パッチ編集モード」の場合と同様に)パッチをロックすることができます。こうすると、スクリーンでの配置を変更せずに、コントロールを動かすことができます。プレゼンテーションモード場面をアンロックして、オブジェクトパレットをダブルクリックして下さい。comment オブジェクトを追加して編集し、"Current Size" というラベルを作って下さい。この comment オブジェクトを新しいナンバーボックスを配置した場所に移動させ、ナンバーボックスの使用法がわかるようにして下さい。パッチ編集モードに戻ると、comment オブジェクトがこのレイヤーの中の、最初に作られた位置に存在したままであることがわかります。このオブジェクトも、プレゼンテーションレイヤーに含まれることを示す赤みがかった縁取りを持っています。

ビューの変更

パッチ編集画面とプレゼンテーション画面の両方で、同時に作業したい場合にはどうしたらよいでしょうか?Max5 は、そのためのちょっとしたトリックを隠し持っています。Max5 では同じパッチャの複数の画面(ビュー)を同時に開くことができるのです。パッチウィンドウに戻って、View メニューから New View を選んで下さい。これにより、同じパッチの内容を表示する新しいウィンドウが開きます。実際に、lcd オブジェクトの内容や様々なナンバーボックスの状態をみると、これが同じパッチを示しているものであることがわかります。片方のウィンドウでパッチを変更すると、もう片方にその変更が反映されます。1つのウィンドウを(パフォーマンス用のレイアウトを編集するために)プレゼンテーションモードにし、もう1つのウィンドウでパッチのロジックに対して作業を行なうことができます。複数のビューの使用は、スクリーンに表示しきれないような大きいパッチで作業を行う場合にも役に立ちます。全体を表示する代わりに、2つのビューを開いてスクロールし、パッチの異なった領域を表示させることができます。何らかの変更を行なった場合でも、これが1つのパッチに対して行なわれることが保証されています。

結び

プレゼンテーションモードは、パッチの中のロジックの配置を壊さずに、操作しやすいパフォーマンス用のインターフェイスを作成する手段を提供します。プレゼンテーションモードの中のオブジェクトは、他のモードの場合と同様に操作できますが、最善のインターフェイス・レイアウトを作るために必要であれば、様々なサイズや位置を好きなように設定することが可能です。加えて、パッチが複数のビューを持つことができるという機能を使って、より効果的なプロブラミングを行なったり、小さなスクリーンでより大きなパッチにアクセスしたりすることも可能です。

参照

なし