IntensityShuttleViewerとは?
MacでBlackmagic Design社 IntensityShuttle for ThunderboltのPreviewを簡単にできるアプリです。今回、久しぶりにバージョンアップをしました。詳しくは、以前の記事をご覧ください。
変更点
- 内部処理を見直し軽量化
- GUIの変更
- Max6 → Max7で書き換え
- OS 10.11.3 対応
ダウンロード
こちらからどうぞ
実行環境が無く最新版に対応できないため、非公開とさせていただきました。
Maya LTで頂点カラーを指定したモデルをfbxで書き出し、daeに変換後わMax7のjit.gl.modelで表示できた。 #Max7 #MayaLT https://t.co/ViTEK8oUIx
— mirrorboy (@mirrorboy) 2015, 3月 22
3Dプリンター持っていたり、VJで3Dモデル使ってみようと思って、Blenderを勉強してみようと思ったんですが、操作が難しすぎて挫折していました。そんな中、最近UnityやUnreal Engineのようなゲーム開発環境向けにMaya LTというソフトが比較的お手頃な価格で出ておました。ポリゴン書き出し数やレンダリングの制限があるようなのですが、Blenderよりは分かりやすい操作で、Maxで使うオブジェクトを作るにも丁度良さそうだったので使ってみる事に。
Maya LTでつくったモデルは、FBX / OBJ / Maya LTフォーマットで書き出せます。一方、Maxのjit.gl.modelが対応しているフォーマットは、DAEとOBJです。それならOBJで書き出し読込すれば良さそうですが、頂点カラーの設定がどうにも読み込まれ無かったりで、使えませんでした。続いて、プランBとしてFBXをDAEに変換を試してみました。
FBX→DAE変換は、AutoDesk公式でFBX Converterというアプリケーションがでております。これにMaya LTで書きだしたFBXをドラッグ&ドロップで読み込ませ、”Destination format”で”DAE Collada”を選択しエクスポートで変換完了。
jit.world(Max7からjit.gl系のセッティングが楽になりましたね)、jit.gl.model、jit.gl.handleを繋いで書きだしたDAEを読込むと。
表示できました。jit.gl.modelの@modeがdisplaylistかimmediateにしないと、Maya LTで設定した頂点カラーが描画されないので注意です。
@10_pet 今丁度 Maya LTの方でフェースを塗るオプションを発見しまして、やってみたら出来ました!マテリアルやテクスチャでも出来そうですね。 pic.twitter.com/hamkq81QMA — mirrorboy (@mirrorboy) 2015, 3月 22
頂点カラーでモデルに色を塗った場合、色の境界は自動的に補間されてなだらかに繋がってしまいます。それを防ぐために、フェース単位で色を塗る方法がありました。

あのタグで待ってるをMax7に対応させようと改良しています。Max7化のポイントは、jit.movieから直接GPUに動画テクスチャを送る機能を使ったパフォーマンスアップです。
ただし、問題がありました。jit.gl.pixの解像度が、第一インレットに入力される解像度に固定されてしまうという点です。これの何が問題かと言うと、VJソフトは16:9や4:3等の異なるアスペクト比や、HDやSD画質など異なる解像度を持つ動画を次々に切り替えて再生するので、そのままでは最終出力の解像度やアスペクト比も次々に変わってしまいます。横長の間延びした動画になってしまったり、SD解像度にHD画質の動画がひっぱられて解像度が落ちてしまったり。
そこで今回は、上記の画像のように16:9の画面に4:3の動画を、指定した解像度で出すのが目的となります。

ポイントは、jit.gl.pixの第一インレットに解像度を指定するMatrixを入力する所です。これを使ってjit.gl.pixの出力を常に同じ解像度に固定します。また第二インレットに jit.movie @output_texture 1 で取得した動画テクスチャを入れます。この動画テクスチャのアスペクト比を保持するために、解像度を別途jit.gl.pixに入力してあげる必要があります。なぜならjit.gl.pixでは、in2に入力したテクスチャから直接dimを取得できないためです。param dim2 としてパラメーターを与えています。
ちなみに動画テクスチャの解像度をjit.movieから取り出す際に、dimメッセージで取得すると正しい値が取れないので、getmoviedimを使いました。
in1に入れたマトリクスは、全く利用しません。あくまで解像度を固定するために入力しています。テクスチャのアスペクト比の調整は、右側のコードで行って、最終的にin2の動画テクスチャをsampleオブジェクトで取り出します。
指定した解像度とアスペクト比にする事は出来ましたが、まだ問題があります。上記画像を見ると、左右領域にゴミが残ってしまっています。本来ここの領域は真っ黒にしたいのです。この原因はjit.gl.pixの内部でsampleのオプションを@boundmode clampにしているためです。@boundmodeはいくつか指定があるのですが、他のwrapやmirrorでももちろん駄目でした。指定した領域にテクスチャが無い場合に単純に黒くするオプションが欲しい所・・・。自分で黒く塗るプログラムを追加するのが解決策になりそうですが。

動画の縁まで色が付いていると、こんな感じになってしまいます。
続きを読む jit.movie @output_texture 1 で取得したGPU上の動画テクスチャを指定した解像度でアスペクト比を保ったまま描画:#max7 #maxmsp #gen
先日 Cycling’74 Max7 勉強会(のβテスト開催)をDMM.make AKIBAの一角を間借りして開催しました。ちなみに急遽開催だったため、お呼び出来なかった方すみません。参加者は左から→@CO_CO_ / @ishicca / TY0004 / @raykunimoto / @nanagagatata + @mirrorboy
半日かけてMax7の新機能を中心に、各々が気になる機能を好き勝手触るという無謀なやり方でしたが、結果的には皆で新機能に関する知見が共有できました。
参加者の中ではBEAPとVIZZIEの扱いやすさが特に人気でした。サウンド・アートなどをされている神谷氏(@ishicca)。最近はデジタルを使わない作品が多いため、Maxを弄るのは久しぶりだったとのこと。
チュートリアルをやるMaxレッスンの生徒さん。右側で実演される動画に合わせて、左側で実際にパッチを組んでいけるので、分かりやすい!
チームラボでMaxを使ったサウンドデザインを担当されている國本氏(@raykunimoto) BEAP & Gen & Jiter を組み合わせようとしている強者。最近はGPU処理に興味があるようです。
BeapやGroove~のTime Stretchをチェックするコバルト爆弾αΩのΣ氏(@nanagagatata)。写真には写ってないですが、monomeコントローラーがBEAPのモジュールで動くことも確認していました。
自作コントローラー等を発表しているTanzvolk(@tanzvolk)の塩沢氏(@CO_CO_)。本日Max初挑戦との事でしたが、やはりBEAPの簡単さに驚いていた様子。Javaを使えるそうで、mxjにも興味があったようです。
GenはMax6から入った機能なので、Max7の新機能という訳ではないのですが、参加者のリクエストに答えて少し解説しました。
Max7は、GUIの大幅な変化に目を奪われますが、特に初心者/久しぶりな方々でも取っ付き易く学んだり遊んだりできる機能が増えているという印象でした。とにかくBEAPがヤバイ楽しい。あとは、みんなで好きに弄るスタイルの勉強会であれば、余力で開催できそうなので、今後も機会があれば続けたいです。
text by @mirrorboy

Jitter Externalの勉強がてらLeap Motionのステレオ赤外線カメラ画像を取得できるExternalオブジェクトを書いてみました。Mac OSX Yosemite環境にて開発してるので、それ以外で動くかは謎です。
Cycling74 Max Tool。パッケージにまとめてあるので、Application/Max6.1/packages 以下に落としたファイルを置けば使えると思います。