natoの世界


Max4でのnato

Max 4.0がリリースされましたが、これまでのnatoは特に問題なく動作するようです。


natoって何?

よくわからん(笑)。

というのが第一印象なんだけど、端的には高機能な画像処理とネットワーク処理をMaxに付加する大規模なオブジェト群ってのが正解らしい。標準のMaxにはグラフィックスやネットワークに関して最低限の機能しかないのに対して、natoによってMaxをトップクラスの映像&ネット開発環境に進化させることができるわけ。ちょうどMSPによってMaxがDSP開発環境になるのと同じね。

気になるのは、natoの安定度なんだけど、これがかなりしっかりしてる。複雑な処理をすると動作が緩慢になるのは仕方ないとして、それでもシステムエラーを引き起こすことはない。Max標準のmovieなどがヤバヤバだったのに比べると、natoは不良ぶってる割には礼儀正しい優等生なのかも。

ところで、ここではnatoって言ってますけど、正式名称は何でしょね?

ちなみに、コレって?(笑)

<噂話>
(以下の内容は噂話なので信憑性を問わないこと。)
natoの作者はNetochka Nezvanova(略してnn)と名乗っているが、一人ではなく、複数のメンバーによって構成されるグループらしい。そのグループは何らかの研究開発団体で、デンマークが所在地である(これはメールアドレスがdkドメインであることからも裏付けられる)。Netochka Nezvanovaを講演などに招聘すると一人の美女(例の写真?)が表れ、アジテーションのような一方的な話をして帰っていく。質問には一切応えない。ある種のパフォーマンスとも言えなくもない。一方、複数のメンバーが来訪し、技術的な説明や質問に応じたこともあるらしい。
</噂話>


natoのホームページ

natoについて詳しい情報は、そのホームページに(一応)載ってます。

どれがメインページなのか釈然としないんだけど、

http://www.eusocial.com/

http://www.m9ndfukc.org/korporat/nato.0+55+3d.html

あたりらしい。

しかし、かなり崩れた英語と無茶苦茶なスクリプト攻撃で四苦八苦すること間違いなし。最悪の場合、ブラウザやOSがハングアップしてしまうかも。


natoのインストール方法

売る気があるのかないのかわからないような唯我独尊なホームページだから、natoに興味を引かれながらもビビっちゃうのがフツーでしょう。しかも、がんばって購入したらしたで、ホームページと同じような調子で、訳のわからないファイル構成と壊れた英語でのテキスト、それに自己主張しまくりの資料満載で途方に暮れるかも。

なので、私が人柱となって、natoの購入からインストール、オーソライズまで、その手順を書いときました。こちらへどうぞ。なんで私が販促してるのかわからないんだけどね。

ちなみに、権利関係のテキストだけは、きちんとした英語で書かれています。法的争議への配慮でしょうけど、案外気の小さい奴みたい。オーソライズのご丁寧さも笑っちゃうしね。ま、アンチファシストかもしれないけど、アナーキストではないらしい。


natoのサンプルパッチ

natoのサンプルとして「242+55」フォルダに「 humanitarian.assistance」なるパッチファイルがあるけど、動作の確認に役立つ程度でしかない。しかも、事前に「 0001.mov」というQuickTimeムービーファイルをダウンロードして、同じフォルダに入れておく必要あり。

「 humanitarian.assistance」ファイルを開くと、派手な(しかし五月蠅い)natoのオープニング(と初期化)の後、次のようなパッチが全画面に表示される(ここでは50%縮小表示)。上部のスイッチ(に見えないが)やマウスの位置によってムービーが変化する。このパッチはプログラミングの参考としては辛いと思うな。

そこで、もう少し分かり易いサンプルとして作成したのが、次のパッチなり。

このパッチでは、まず「242.fraktal」オブジェクトでフラクタル画像を生成。その下側で実際に画像を表示しているのが「242.ekran04」オブジェクト。生成した画像は「242.hsb」オブジェクトに送られ、ここで画像のHSB(色相、彩度、明度)が変化する。HSBを変化させた画像は、さらに「242.eklair」オブジェクトに送られ、波紋状の効果を付ける...って感じです。つまり、natoオブジェクトからパッチコードを伝わって画像が流れているわけね。各オブジェクトは、標準のMaxオブジェクトと同じく、メッセージを送ることで処理が変化しちゃいます。ここではmetroとcounterによって連続的にパラメータを変化させているので、フラクタル画像が動き、色調が変わり、波紋が広がるように見えますね。ちなみに、natoのオブジェクト名はすべて「242.」で始まっています。242って何さ?

サンプルパッチをダウンロード


気になるnatoオブジェクト

natoには山ほどオブジェクトがあって大変なのだけど、その中から気になるオブジェクトをピックアップ。順次追加予定。

3D描画

QuickDraw 3Dを使って3DMF形式のファイルを読み込み、描画するのが242.3d。3Dオブジェクト全体の回転や拡大縮小、カメラの移動、光源の移動やオンオフ、テクスチャの動的マッピング、霧の効果、などなど操作は盛り沢山なんだけど、それでもまるで足りてないって感じ。3Dオブジェクトの動的な生成消滅や、3Dオブジェクトの個別の操作はサポートされてないみたい。ま、ムービーを立方体に貼り付けてグルグル動かすみたいな用途には適してるね。

このサンプルでは10×10×10=1000個の立方体を並べてる。この程度ならPowerBook G3/500でもグリグリ動きます。もうちょっと複雑でも大丈夫かな。ま、このあたりは3Dアクセラレータ勝負なので、RADEONやGeForce2が待ち遠しいね。それに今時QD3DじゃなくってOpenGLでしょ?.....と言ってるうちにnatoくんはOpenGLに対応しちゃいました。242.glがそれなんだけど、基本パッケージとは別に購入しなければならないのが商売上手。

トラッキング

画像処理によって物体の追跡処理をするのが242.pupille。指定した範囲のRGB値に合致するピクセルを検出して、それらの領域を出力してくれるわけね。これだけだと使いにくいんだけど、事前にノイズ除去や階調処理をしておけば使えそうでしょ? 複数の242.pupilleを使って、赤い物体と黄色い物体を追いかけるなんてのもできるハズ。

サンプルではムービーの明るい領域をトラッキング中。242.pupilleのオプションとして、合致したピクセルを特定の色で表示したり、その領域を枠で囲むこともできます。

画像合成

複数の画像を合成するためには242.collageを用いる。なんと512枚までの画像が合成できるらしい。

このサンプルでは、単純に2枚の画像を重ね合わせているだけだけど、242.collageはマスクも使えるので、かなり複雑な画像合成ができるよ。

ビデオ入力

ビデオカメラなどからの映像は242.vdigを使って取り込むことができる。これはQuickTimeの機能を使っているので、QuickTimeに対応したビデオデジタイザなら何でも使えるはず。最近のMacはFireWireが標準装備だから、DVカメラはすぐに繋がるよね。

先の242.pupilleと組み合わせて監視装置を作ることもできるし、フィルタ系のオブジェクトを使えばビデオエフェクタも簡単ね。ビデオデジタイザに対する操作も豊富で、それらだけでもかなりのエフェクトをかけることができる。とにかくリアルタイム系にはこのオブジェクトが大活躍すること間違いなし。

OpenGL

いよいよ登場したnato版OpenGLオブジェクト群が242.gl、またの名を242.055+67。natoの一員だから、他のnatoオブジェクトを使ってテクスチャを作ったり、OpenGLの画像をnatoオブジェクトで変形できるのが強みだね。しかも、242.3dとは違って、複数の3次元物体を同一空間に置いて、個別に操作することが可能。

このサンプルはOpenGLの立方体にQuickTimeムービーを貼付けているので、ムービーを再生しながら立方体を拡大縮小したり回転させることができるわけね。

パッチはOpenGLらしく242.glhで始まり、マトリックス操作やライティング操作などを経て3次元物体に辿り着き、最後に242.glrenderにてレンダリングを行う。この後は通常のnatoと同じ画像データなので、242.ekranで表示したり、他のnatoオブジェクトで処理すれば良い。

ちなみに、242.glには、球、円柱、円盤、扇形、立方体、矩形、ティーポットなどの定型物体があり、ライト、霧、マトリックス、テクスチャの操作が行えるようになっている。現時点では、パーティクルを飛ばしたり、モデリングデータを読み込めるGEM for Macintoshのほうが機能が多いみたいね。

QuickTimeエフェクト

242.qtfxを使えば、QuickTimeが持つ様々なエフェクトをnatoで利用することができる。サンプルでは2つのムービーを「膨張」エフェクトでトランジッションしている。

natoの基本オブジェクトだけでトランジッションすることは面倒だが、242.qtfxならお手軽に実現できると言うわけ。もちろん、雲や炎などの画像生成系エフェクトや、フィルムノイズやレンズフレアなどの画像変化系エフェクトも使える。おそらくサードパーティ製のQuickTimeエフェクトも利用できるだろうね。

アスキーアート

画像を英数字などの文字で置き換えるアスキーアートは242.asciiで処理できる。サイズを大きくしたのはこちら

この手法自体は、ラインプリンタしかなかった頃の産物で、珍しくはないよね。しかし、natoのオブジェクトであるので、静止画だけでなく動画でもアスキーアートが簡単にできてしまうのがミソ。

そう言えば、確かデベロッパー用のサンプルに同じようなコーデックがあったねな。

ネットワーク転送

インターネットやイントラネットでnatoの画像データを転送するのが242.wto。しかも、QuickTimeコーデックを用いて動画を圧縮した上で転送することまで面倒を見てくれる。

ただし、実際には242.wtoはネットワーク機能を持っておらず、CNMATが開発したudp/otudpオブジェクトを用いて、画像データをudpパケットに変換・復元するようになっている。

非リアルタイム処理

世の中すべからくリアルタイムたるべしと思っている人は多いけど、悲しいことに処理能力には限界がある。natoでも小さな画像ならグリグリ動いても、フルスクリーンではカメになってしまうかもしれない。そこで大きなサイズで画像処理をしたい時や非力なマシンを使う時には、242.nrtまたの名を242.055.nr+が活躍する。これはメモリまたはディスクに画像を溜め込んで、必要なだけ時間をかけて処理をしましょうということ。これでPremiereもAfterEffectsも要らなくなる(わけないか)。

DV出力

242.firewireがあればnatoの画像をFireWireポートからDVデータとして出力して、DVカメラやDVデッキで録画することができる。個別のオブジェクトとしては、242.filmdvはQuickTimeムービーによる画像をDV出力、242.fireuireはnatoの画像をDV出力、そして242.fireuire~はMSPのシグナルをDV出力する機能を持っている。さらには、n2+0.fireuireはImage/ineの画像を、n2+0.fireuire02はImage/ineの音声をDV出力してくれる。

これは便利に使えそうなんだけど、実際にはDV出力にはCPUパワーが必要なので、非力なマシンだと辛いかもね。それにDV入力との併用はできないそうなので、ちょっと残念。


natoのお助け機能

natoにはヘルプ・パッチがないものだから、とにかくドキュメントを解読するしか理解への道がない。ドキュメントは詳細に書かれてるものの、これまた軽度に崩れた英語なのね。これではあまりに酷いと思ったのか、ちょこっとだけお助け機能がある。

まずは「modular.ref」というパッチ。ポップアップメニューでnatoオブジェクトを選べば、そのドキュメントが開かれるという仕組み。

それから、natoオブジェクトをOption+Shift+クリックすれば、そのオブジェクトが受け付けるメッセージが一覧表示される。これはMax本来の機能だけどね。ただオブジェクトやメッセージについての説明はないので、ある程度natoに慣れた人向きだろうね。

同じことをオブジェクトとして実行するのが242.assistね。


natoのクイックリファレンス

natoは膨大なオブジェクトから構成されているので、ちょっと整理してみました。こちらへどうぞ。


return to main page