第3回 - 最初のプログラム: 簡単な足し算

前回は,まっさらなパッチをつくるところまでいきました.新しいパッチを開いたら,このパッチの上でプログラミングを始めましょう.まずは簡単な足し算をやります.

オブジェクトパレットの一番左のオブジェクトを,パッチの上に置いてください.New Objectというリストがでてきたはずです.今,置いたのはオブジェクトボックス(Object Box)といわれるもので,一般的なオブジェクトを作るための箱です.これをただ置いただけでは,まだオブジェクトはできてません.New Objectというリストの中から使いたいオブジェクトを選ぶか,オブジェクトの名前を直接キーボードで入力する必要があります.


Picture 9

今使いたいのは,足し算なので [+] というオブジェクトです.リストから +を選ぶ(ダブルクリックする)か,自分で+を入力してください.自分で入力する場合は,オブジェクトボックスの中をクリックすると,カーソルが表示されキーボードの入力を受け付けます.いずれの場合も,パッチの余白の部分か他のオブジェクトをクリックすると,カーソルが消え,入力が確定します.これで足し算につかう+オブジェクトを置くことが出来ました.

注意: オブジェクト名は常にASCII文字(半角英数字)で入力する必要があります.間違っても日本語で+と打たないようにしましょう.

Picture 8-1

次に,[Number Box]というオブジェクトを置きます.このオブジェクトは,数値を表示するためのもので,実行モードでもユーザがマウスで値を変更できるようになってます.こうしたユーザからの入力を受けるオブジェクト,あるいはユーザに対してなんらかの視覚的な情報提示を行うオブジェクトをユーザインタフェースオブジェクトといい,オブジェクトボックスではなくそれぞれ独自の形を持っています.(実際には,オブジェクトボックスを置いてnumberと入力すると,Number Boxに変化してくれます)

Number Boxは,オブジェクトパレットの左から6番目の四角に三角がかさなっているものです.これをドラッグして,パッチに置いてください.もうあと二つNumber Boxが必要なので,同じようにオブジェクトパレットからドラッグしてもいいのですが,今回はコピー&ペーストしてみましょう.通常のワープロやメールのソフトのように,Maxでもオブジェクトをコピー,ペーストできます.ショートカットも Command + C, Command + Vと同じです.これでNumber Boxを三つに増やせました.

Picture 10-1
次にこれらをつないで足し算を完成させましょう.[Number Box]の左下と右下に黒い突起がついているのがわかりますか? マウスを重ねると,パッチの左下の余白のところに,それぞれ「Output Incoming and Entered Value」「bang When Tab Key Pressed」というメッセージが出たかと思います.これは,それぞれの突起から出力されるメッセージの意味を説明しています.左下の方は,「入ってくる値か入力された値を出力」ということになりますが,足し算に必要なのはこちらの出力です.右下の方は今は使いません.ちなみに,この説明書きが表示される部分をアシスタンスエリアといいます.どういう値が入力/出力されるのかを知りたいときによく使います.

同様に[+]の左上,右上,左下にもマウスを置いてください.「Set Left Operand, Trigger the Calculation」「Set Right Operand」「Result = Left + Right」とあります.ここでいうオペランド(Operand)とは足される値のことです.+オブジェクトは右側の入力と左側の入力を足す.

(左側の入力) + (右側の入力) = (出力)

ということになるわけです.

このように各オブジェクトには,値が入ってくる入り口と,出て行く出口があります.これらの黒い突起で示される入り口,出口をMaxではそれぞれインレット(inlet),アウトレット(outlet)と呼びます.たいていのオブジェクトは,インレットに入ってきた値に対して何らかの処理をして,アウトレットに送り出す,という役割を持ちます.

オブジェクトによっては,インレット/アウトレットが複数個ある場合があります.この場合,左から第1,第2,第3と番号をつけて呼びます.二つの場合は,左インレット/右インレットのように簡易的に呼ぶこともあります.

オブジェクトの役目 - インレットに入ってきた値に対して何らかの処理をして,アウトレットに送り出す

インレット/アウトレットの役割を知りたいときは,マウスを上において,アシスタンスエリア野説明文をチェック

そこで二つの[Number Box]の左下をそれぞれ,[+]の左上,右上につないでください.[+]の左下を残った[Number Box]の左上につなぎます.つなぐ際には,アウトレットをクリック,目的のインレットまでドラッグしてインレットの上でマウスを話してください.アウトレット/インレットともにマウスが上にくると,大きくなるので分かりやすいと思います.つねにアウトレットからインレットの方向につなぐ必要があることに注意してください.
picture-13.png

ここまでで足し算のパッチが完成しました.View > Editか,Command + Eで実行モードに変更してください.

さぁ,足し算がちゃんとうごくか見てみましょう.左上の[Number Box]をマウスをクリック, ドラッグして値を10にしてください.クリックして選択した状態でキーボードで10を直接打っても構いません.その場合,入力の最後にリターンを押して値を確定する必要があります.

左上の[Number Box]を値を10に変えると,全く同じ値 10が下の[Number Box]にもでてきました.これはどういうことでしょう?

picture-14.png

左上の[Number Box]の値をマウスで変えるか,リターンキーを押して入力を確定すると,その値がアウトレットから出て,つながっている[+]の左側のインレットに入ります.ここで足し算が起こるわけですが,まだ右側のインレットには値が入力されてないため,10に0を足すことになります.その結果の10が,[+]のアウトレットをでて,左下の[Number Box]に入り,その値が表示される,と,こういうことになります.

では,ここで右上の[Number Box]を5にしてみましょう.出力される値は… なぜか10のままですね.10 + 5 = 15ではと思った方,その疑問は正しいのですが,左上のインレットの説明が「Set Left Operand, Trigger the Calculation」だったことを思い出してください.

Maxでは通常第1インレットに値が入力されたときのみ計算が行われるのです,それが証拠に左上の[Number Box]を10から20に変更すると,無事に20 + 5 = 25が出力されます.右インレットに入れた値は,次の計算のために足す値をセットしたことにほかならず,実際の計算は左インレットに値が入力されたときにのみ起こるわけです.この点をぜひ覚えておいてください.

picture-18.png

Maxのたいていのオブジェクトは第1インレットに値が入力されたときのみ,処理が行われ結果が出力される(例外も多数ある).その他のインレットへの出力は,処理に使う値をセットするのに使われる.

最初から足す値(右インレットで指定される値)をあらかじめ決めておくことも出来ます.[+]オブジェクトを作る際に,+の後にスペース(これも英数字のスペースです)を一つ置いて,その数字を書いてあげれば大丈夫です.下の場合は,足す値を2に最初から指定しているので,10を左インレットに入力すると12が出力されます.

picture-17.png

このようにオブジェクトのあとにスペースを置いて指定される値を,アーギュメントもしくは引数といいます.オブジェクトの処理に使われる値(+の場合は,入力に対して加算する値)の初期値を指定することにつかいます.アーギュメントで指定された初期値のほとんどは,後で対応するインレットに値を入力することで自由に変更できます.

picture-15.png

処理に使う数値の初期値はオブジェクトのアーギュメント(引数)で指定する

最後にもう一つ,どんなに上級者になっても,オブジェクトの細かい使い方を忘れることはよくあいます.そういうときに頼りになるのが,オブジェクトの使い方をコンパクトにまとめたヘルプパッチです.ヘルプパッチを開くには,編集モードでOptionを押しながらオブジェクトをクリックしてください.Control + クリック(Mac),もしくは右クリック(Windows)でコンテクストメニューを出して,一番上のHelpを選ぶ方法もあります.ヘルプパッチを上手に使うのが,Maxの上達の早道です.ヘルプパッチをどんどん参照し,まねをしてパッチを作って行きましょう.習うより慣れろ!という言葉がまさにぴったりです.

困ったときのヘルプパッチ頼み.Optionを押しながらオブジェクトをクリック


There are no comments on this post

Leave a Reply