[Max備忘録その5.1]Messageの活用と視覚化

5に書いておいても良かったのですが、あまり詰め込みすぎると混乱の原因になるので、今回はこのような形に…。

さて、題名の通り今回はMessageオブジェクトと、値の視覚化について補足です。あくまで”パッチを見やすくする”のと”Messageを活用して予期せぬエラーを起こさないようにする”の2点です。

最大値と最小値を設定する

その5で作ったパッチを見てみましょう。

おや……? maxよりminの方の値が大きくなっていますね。このプログラムだとrandomから出力される値が固定されるぐらいですみますが、より大きく複雑なパッチだとエラーの原因になったりします。ですがこれをどうやって回避したものでしょうか。
numberオブジェクトは個別に最低値、最大値を設定できますので、それを活用しましょう。minのnumberオブジェクトを選択してキーボードで”command + i”を押します。するとこのようにインスペクタウインドウが開きます。(右側部分)

 

ここの一番下にminimum,maximumという項目があります。これを設定することでmaxがminより小さくなってしまったり、その逆を防ごうというわけです。しかし、どうやってこのminやmaxを設定しましょうか。インスペクタウインドウで設定するだけでは、numberを動かす度に変わってしまう値に対応できません。

そこで活用するのがMessageオブジェクトです。このオブジェクトはあらかじめ設定したテキストメッセージをオブジェクトに送ったり、オブジェクトから出力されたメッセージを受け取って表示することができます。実際にやってみましょう。

messageオブジェクトを作るには上のツールバーから選択するか、キーボードの”m”を押します。

そしてこのようにパッチを組みます。”max $1″と”min $1″はそれぞれ最大値と最小値を設定するMessageオブジェクトです。両方とも$1という部分がありますが、これは受け取った値に置き換えられてメッセージを送ります。つまりmax側のアウトレットから57という数字が出たとき、”max $1″は”max 57″というメッセージを送信しているのです。これによってmin側のmaximumは57に設定される、というわけです。

視覚化

さて、今度はそれぞれの値を見やすくしようと思います。数字を見やすくする、というとスライダー類が思い浮かびますね。その中でも今回は範囲指定なのでそれに適した”rslider”を使います。(おそらくRange-Sliderの略かと思われます。)

オブジェクトをつくり、rsliderと入力するとこのようにrsliderが出てきます。

このままだとアレなので、maxとminのnumberオブジェクトに合わせた形に変更しましょう。四隅の四角をドラッグ&ドロップすれば形を変えることが出来ます。
このrsliderは範囲を設定することができ、最小値と最大値をそれぞれ左右のアウトレットから出力します。

しかし、このままだとnumberとrsliderの連携がとれないので、pattrというオブジェクトを使います。pattrは色々な機能を備えていますが、基本的には値を保持(store)するものだと考えていただいて構いません。そんな値を保持してくれるpattrをこのように繋ぎます。(あとでつなぎ替えるのでbondoと+に繋がるパッチコードは消してください。)

そして今度は両側のpattrから先ほどのbondoと+へパッチコードを繋いでやります。

こうすることで、numberとrsliderの同期がとれ、パッチが見やすくなりました。

今回はこれで終わりです。次回はサブパッチャーについて。

SNSでもご購読できます。

最近のコメント

    アーカイブ

    コメントを残す