Max/MSP/Jitter」カテゴリーアーカイブ

Jit-ogreでアニメーション

Robert Ramirez氏らのJit-ogreプロジェクトからOGREによるアニメーションをJitterで利用するエクスターナル・オブジェクトrr.gl.ogreがリリースされています。Jitterだけでもjit.gl.modelでモデリング・データを読み込んで、グループごとの操作はできたのですが、これってとっても面倒でした。例えば、3Dモデルの人が歩いているアニメーションをJitterで実現しようとすると、できなくはないけど、結構途方に暮れちゃいますよね。

そこで、3DCGソフト(BlenderからMayaまで数種類に対応)で作成したモデル、テクスチャー、アニメーションといったデータをエクスポートして、OGRE (Object-Oriented Graphics Rendering Engine) というレンダリング・エンジンを使ってJitter上で動かそうというのが、このオブジェクトです。サンプルでは忍者が舞い踊ったり、魚(鱒?)が泳いだりします。

rrglogre.jpg

Jit-ogreのサイトにはムービーや説明があるので、まずはこれらを見ると良いと思います。既にかなり多くの機能が盛り込まれていますが、まだまだ拡張されるようです。難点としては、操作が複雑(多機能の代償)であったり、不備が目立つ箇所があることかな。しかし、Jitterで3Dモデルのアニメーションを行なうには、現時点では唯一最強のオブジェクトですから、この手のことをしたい人の救世主になりそうです。

もっとも、OGREやJit-ogreの機能だけでなく、モデルやアニメーションなどのデータを作成すること自体が難関ですから、簡単にはコトは進まないでしょうね。これに限らず、3DCGの世界は一筋縄ではいかないイバラの道です。御愁傷様〜

HDVビデオ入力が可能に!?

HDVのビデオ・カメラを繋いで、QuickTime Player (Pro)で録画しようとして、いきなり巨大なキャプチャー画面が現れてビックリしちゃいました。なんと、HDVでのリアルタイム入力ができます。従来は、iMovie HDやFinal Cut Proなど特定のアプリケーション・レベルでしか対応していないと思っていたんですけどね。

Webを検索してみると、Final Cut ProやLogic Studioをインストールすれば、QuickTimeレベルでの入力が可能になるAppleHDVCodec.componentがインストールされることが分かりました。私の手元にある構成では、Mac OS X 10.5.1 / QuickTime 7.3.1 / AppleHDVCodec.component 1.3.2 (Final Cut Studio 2)という組み合わせだけでなく、Mac OS X 10.4.11 / QuickTime 7.2 / AppleHDVCodec.component 1.2 (Final Cut Studio 1)という組み合わせでも、HDV入力ができました。と言うことは、もっと前から可能だったのかもしれません(ジョーシキだったらスミマセン〜)。

ともあれ、Jitterで試してみようとjit.qt.grabのヘルプ・パッチを開いたものの、デバイス・リストにもインプット・リストにもHDVカメラが現れません(涙)。しかし、Quartz ComposerではHDVをバッチリ選択できるし、1440ピクセル×1080ピクセルでビデオ映像が入って来ます。レイテンシーはかなりありますが、30fpsで入力できているみたい(実際には、20fpsから70fpsくらいの範囲で変動が激しい)。

qc-hdv-input.jpg

こうなるとJitterでもHDVに対応して欲しいですね。Max 5 (Jitter 2?)と言わずに、インクリメンタル・ダウンロードに入れて欲しいな(と日本語で書いても、C74には届かないけど〜笑)。

複数のオーディオ・デバイスは機器セットで

MSPもそうですが、一般的なアプリケーションは同時にひとつのオーディオ・デバイスしか選択できません。でも、Audio MIDI設定を使って機器セットを作れば、複数のオーディオ・デバイスを同時使用できます。

以下の図では、3つのデバイスをaka-setという名前で設定しています。MSPではDSP Statusを開いて、Driverでaka-setを選べばOKです。SuperColliderなど出力デバイスを選べないアプリケーションでは、Audio MIDI設定のデフォルトの出力としてaka-setを選んでおきます。

この場合、MSPでは(マッピングを変えない限り)、dac~のチャンネル1から10にオーディオを送るとFA-101から出力され、11と12では内蔵出力(内蔵スピーカーかヘッドフォン出力)から、13と14ではRocketFMへと出力されます。これは入力デバイスでも同様ね。

devices-set.png

この機器設定は、例えば、モニタ出力がない(あるいはモニタ・チャンネルを自由に選べない)オーディオ・インターフェスを使う時に便利ですね。オーディオ・インターフェースの出力はPAに送り、内蔵出力をヘッドフォンなどでモニタとして使えばバッチリです。MSPでは、モニタしたいシグナルを内蔵出力に送れば、PAの出音とは独立したモニタになる訳です。

これはTigerから備わっていて、Leopardでも使える機能ですが、意外と知られていないっぽいので、書いておきました。

2d.wave~の謎

2d.wave~は、いろいろと遊べて楽しい&バッファの読み出しだけなので軽い、という優秀なオブジェクトで、私もサンプル・ベースのシンセシスに時々使います。それで、このオブジェクトの動作を調べてみました。

次のパッチでは、まず、バッファに0.0から1.0まで直線的に増加する1秒分のサンプルを作ります。このバッファをphasor~でドライブすれば、2d.wave~がどのような読み出し方をしているかを観察できるわけです。そして、2d.wave~の動作をシミュレートするために、xの位相シグナルを分割数(rows)で割って、yの位相シグナルを足した値をwave~に送って、バッファを読み出しています(下図の左側部分)。

2dwavetest.png

これでほぼOKなのですが、x/rows+yの値が1.0を超える場合に結果が異なってきます。8分割では、yの位相が0.875 (7/8)から1.0 (8/8)までの場合ですね。ここではwave~に値を送る前にfoldモードのpong~を使っていますが、warpモードでもダメで、%~とかでもダメです。分割数に応じた何らかの補正・補完処理をしているようですが、それはどのような処理(アルゴリズム)なんでしょうね?

ちなみに、このテスト用パッチを以下にリンクしておきます。このパッチを発展させれば、2d.wave~を汎用ジェネレータとして使うことができます。もともと私がしたかったことは、その手のことだったので、2d.wave~の動作原理は深く追求していませんけどね。

2dwavetestpat.zip

ちょっと便利なGUI管理術

Maxで沢山のスライダーやダイアルなどのGUIを必要とする時に、どうしても複雑怪奇なパッチになりがちですよね。それを解消するのがMax5のPresentationモードでしょうけど、現状での解決策として、ここでは私がよく使うテクニックをご紹介ね。

まず、必要なGUIオブジェクトを並べて、それぞれに名前を付けます(図の上部)。そして、autopattrオブジェクトとpattrstorageオブジェクトからなるオマジナイ(図の下部)を入れます。

gui2message1.png

後は、GUIに付けた名前と同じreceiveオブジェクトを作れば、パッチ・コードを繋がずにGUIの値が得られます。pvarオブジェクトは同一ウィンドウ内でしか使えないけど、この手法はsend&receiveなので、どこでも使えます。

なかなか簡単&効果的でしょう? 数個のGUIなら有り難みが少ないけど、十数個、数十個ともなれば、このようなスマートな手法なしには無茶苦茶大変ですからね。

gui2message2.png

ちなみに、GUIの名前は何でも構いません。ただし、複数のパッチを開いた時でも混乱が生じないように、私は最初にパッチの名前を付加するようにしています。このパッチでは「Sample」の部分ね。

さらに、先頭のスラッシュ(/)も本来不要だけど、OSC系のアプリやデバイスを使う時に便利なのです。例えば、LemurならGUIオブジェクトを「Custom Address」にして、MaxのGUIオブジェクトと同じOSCメッセージ名を付けます。

lemur2message-jzml.jpg

んでもって、以下のようにMaxでのオマジナイ部分をちょっと変更すれば、バッチリ相互リンクして動作してくれます。LemurによってMaxを操ることができて、Maxでの操作もLemurに反映されます。しかも、フィードバックによるオーバーヘッドなしのスグレもの。これでサクサクとLemurを操ることができます。

lemur2message.png

と言う訳で、オマジナイが何をしているのかは各自研究していただくとして、それが理解できなくてもオマジナイをパッチに入れておくだけで大丈夫です。ファイルのダウンロードは以下のリンクからどうぞ。

gui2message.zip

日本初のMaxオーナー

SuperColliderに続く温故知新シリーズ、あるいはメディア考古学お宝編、あるいは単なる自慢大会の第2弾は、もちろんMaxです。私が最初に購入したのはOpcode Max 2.1.2で、フロッピー・ディスクのシリアル番号は508-212-00001121です。1121番目なのか、1000番始まり(よくある偽装)で121番目なのか分かりませんけどね。これよりも若いシリアル番号をお持ちの方は、ぜひ自慢してください。できれば、物的証拠も提示ね(笑)。

この時のパッケージは、フロッピー・ディスク3枚(+OMSのフロッピー・ディスクも?)と、厚さが数センチもあるバインダー形式のマニュアルでした。例によってマニュアルは捨てちゃいましたが、フロッピーは残っていました。

max212-floppy-disk_m.jpg

今は亡きIntelligent MusicおよびOpcodeから商品として発売される前にも、IRCAMなどで使っていた人がいるんじゃないかな。確か、当時はPatcherというコード・ネームだったと思います。だから、日本初のMaxユーザってのは特定しにくいかもしれませんね。取り敢えず、私でないことは確かです。

11/10はTokyo Max Users Group #5

主催者の方からお知らせをいただきました。natoからMax5まで盛り沢山で、なんだか楽しそうですね。東京周辺の方は参加されてはどうでしょう。遠い空の下から、ご盛会をお祈り申し上げます。

—————————————————————————————ココカラ
Tokyo Max Users Group #5
「Generation/GENERATE」

2007.11.10(Sat) 18:00-21:00
at 西麻布 Bul-let’s (http://www.bul-lets.com/)
Entrance 1000yen / 1drink

TokyoMaxUsersGroup は Max/MSP/Jitter を中心に、Audio/Visualプログラミングに関する情報交換を目的としたゆるやかな集いです。
第5回目の今回は「Generation/GENERATE」と題し、伝説のソフトウェア”nato.0+55″を駆る710beppoのvokoi、portable[k]ommunity の堀切潤らが登場。
その他VVVV,NodeBox,Jitterなど各ソフトウェアのエキスパートによる生成系映像プログラミングを時系列に沿って一挙紹介!
さらにリリース前から話題沸騰、Maxの正規代理店イーフロンティアによるMax5のプレゼンテーションが急遽決定!新旧Maxの文脈を繋ぐ重要な夜になること間違い無し!
もちろん初心者•非ユーザー大歓迎。 Maxに興味のある方ならどなたでも参加可能。
ノートPCの持参を推奨します!

[プレゼンター]
nato.0+55:vokoi(710beppo)、堀切潤(portable[k]ommunity)
Jitter:Masato TSUTSUI
vvvv:voice.zero
NodeBox、Unity:TCY(tripon)
Max5:イーフロンティア
(予告なく変更の場合があります)

Ask : info.tmug@gmail.com

tmug5.jpg

—————————————————————————————ココマデ

私は面白そうと思いながら、まだ手を出していないUnityに興味津々。さすが、TCYくん、いいところに目を付けてます。

10.5でMaxが起動しない場合

LeopardでMaxが起動しない場合があるそうです。私の場合は、クリーン・インストールで問題なく起動しましたが、Leopardにアップデート・インストールしたり、移行アシスタンスを使った場合に、この症状が現れるとか。はい、お察しのようにバカ犬PACEくんの仕業です。

しかし、バカ犬が鍵をくわえて戻ってくるのは早かったようで、Driver download page
に新しいバーションであるInterLok Mac OS X extensions installer v5.5.1が公開されています。しっかり、For Mac OS X 10.3.0 through 10.5と記されていますね。

pace-interlok551-download.png

と言う訳で、Leopard宇宙に飛び出したものの、Maxが起動しないよ〜って人は、新版InterLokをインストールしてみてはどうでしょうか? 全然関係ありませんけど(笑)、最初に宇宙に行ったのは、ライカという犬、打ち上げ日は60年前の明後日(11/3)です。

Leopardでaka.objects

Leopardでもaka.objectsはバッチリ動作します!….と言いたいところですが….aka.wiiremoteでBluetoothのチェックをミスっていました(苦笑)。LeopardでWiiリモコンを使う人は、修正済みのバージョン1.0B7をダウンロードしてくださいね。

ついでに、このバージョンでは、IRセンサーの生データや加速度センサーなどのキャリブレーション・データを取得するextraoutputメッセージを追加しています。フツーの人には必要ないと思いますが、ディープな使い方をする人にはウレシイかも。

akawiiremote-b7.png

他のオブジェクトは問題なく動作しているようです。何か気づいた点があれば知らせてください。かなり自然な発声をするAlexくんも、aka.speechで遊んでみてください。音声認識のaka.listenでは、認識率が悪くなったような気もしますが、単に私の発音が下手になっただけかも(笑)。

マルチ・タッチLemurが国内発売

以前から話題になっていたJazzmutantのマルチ・タッチ・スクリーンによるフィジカル・コントローラ「Lemur(レミュー)」と「Dexter(デクスター)」が、いよいよ国内発売されるそうです。発売元はMax/MSP/Jitterも取り扱っているイー・フロンティア(旧カメオ・インタラクティブ)さん。まだ国内向けのWebサイトがなく、国内価格など詳しい情報は分かりませんが、今月末に製品発表会があるそうです。発売予定日は11月26日とか。

lemur.jpg

マルチ・タッチと言えばiPhone/iPod touchもそうですが、ニューヨーク大学のJeff Han氏の研究(よくできたデモ映像は必見)や、それを製品化するPerceptive Pixel社、何でもちょっと遅れてちょっかいを出すMicrosoft社(笑)のSurfaceなど、世間の注目が集まっているホットな分野ですね。精度や耐久性を無視すれば、自分で作っちゃうことも可能です。

ただし、演奏や制作に使えるフェーダやノブを持ったフィジカル・コントローラの発展型として考えると、Jeff Han方式やMicrosoft Surface方式は壁面やテープル・サイズで大き過ぎるし、iPhone/iPod touchは掌サイズで小さ過ぎるかもしれません。となると、実際の選択肢はLemur/Dextuerしかないですね。マルチ・タッチは長年研究されていますが、実用に耐える現実の製品として開発したJazzmutantはエライ!と思いますよ。

私も以前にDSPBoxプロジェクトをやっていたこともあって、マルチ・タッチには興味津々だったのですが、当時の技術ではロクなものがありませんでした(笑)。だから半信半疑だったものの、2年程前にLemur試作機のデモを見せてもらった時は、本当にビックリ。ちゃんとマルチ・タッチができている!反応速度も精度もバッチリ!と驚愕しましたからね。そして、万を期しての国内登場という訳です。ポケット・マネーでちょいっと買える価格ではないと思いますが、少しでも入手し易い価格になることを祈りつつ、正式発表を待つことにしましょう。