Maxでkeyやkeyupの値から長押し判定するオブジェクトが見当たらなかったので、組んでみました。
Max6 から加わった jit.gl.lua やってます。 OpenGL2.1でopenFrameworksなんかと比べても古く、勉強しようにも世のOpenGLの解説書は大抵GLUT等のライブラリを使っているためMaxの環境との微妙な違いでサンプルコードが使いづらかったり、実行時エラーが出た行を、真っ黒に隠すというエディターだったりして、かなり苦行感もありますが、使いこなせれば結構面白そう!
さて、今日コバルト爆弾αΩのεに「jit.gl.luaで使える関数がわかんない・・・」と言われたので、記事に書いておきます。ちなみに一文字目が大文字なのが関数で、全部大文字が定数です。使い方は → OpenGL 2.1 Reference Pages
jit.gl.lua で OpenGL を始めるにあたり、一先ずluaのテンプレートを作成してみました。js オブジェクト に無い scriptload 関数があったりとで便利です。ちなみにテンプレートのコードで灰色の四角形を描画しています。
[js]
this.autowatch = 1
this.gc = 1
local gl = require("opengl")
local GL = gl
function loadbang()
print("loadbang was called")
end
function scriptload()
print("scriptload was called")
end
function float(v)
print("float", v, "inlet", this.last_inlet)
end
function int(v)
print("int", v, "inlet", this.last_inlet)
end
function list(…)
local values = {…}
print("list", table.concat(values, ", "), "inlet", this.last_inlet)
end
function dest_changed()
print("dest was changed")
end
function dest_closing()
print("dest was closed")
end
function draw()
local pos = math.random();
gl.Clear(GL.COLOR_BUFFER_BIT);
gl.Begin(GL.POLYGON)
gl.Vertex(-pos,-pos);
gl.Vertex(pos,-pos);
gl.Vertex(pos,pos);
gl.Vertex(-pos,pos);
gl.End();
gl.Flush();
end
[/js]
Top > Option > OpenGL Status で確認できます。OpenGL 2.1 / GLSL 1.20 のようです。最近の書籍などでは、OpenGL4.0対応の物もでているようなので、少し古いのかな・・・?
OpenGLで使える命令は、 jit.gl.sketch のヘルプパッチで見ることができました。
※jit.gl.luaの場合は、glbegin → gl.Begin と書く必要があります。
※jit.gl.lua で使う gl.Begin を調べたい場合 → glBegin で検索する必要があります。
OpenGLの先輩で、TMUG主催パーティ“ハロウィン・チャネル”でもご一緒する @irishoak 先輩オススメのページ。
Blackmagic Design社 Intensity Shuttle for Thunderbolt でキャプチャ動画をリアルタイムに視聴・確認・プレビュー・フルスクリーン表示するためのMac用アプリケーションです。
IntensityShuttleViewer.app ダウンロードは、こちら。 → 最新版 0.2.2 公開しました。
Intensity Shuttle for Thunderbolt を接続し、アプリを起動。Device と Mode を変更します。設定にコツがあるみたいなので詳しくは、こちらのサイトを参考をご参考ください。
コンポーネント(赤・青・緑)接続で動画を入力する場合の設定を紹介します。



torne試聴用のプロジェクターがぶっ壊れ、アニメ視聴ができない非常事態に!
そういえば前に買っておいた Intensity Shuttle for Thunderbolt があったので、Macbook Proで視聴をしようと設定を試みる。PS3 torne → Blackmagic Intensity Shuttle for Thunderbolt → Macbook Pro と繋ぎ、こちらのサイトを参考にしたら表示までできました。
しかし、Blackmagic Design社が公開しているBlackmagic Media Expressというアプリケーションは、動画キャプチャ用のアプリケーションのため全画面が出来ないし重い。映像視聴用には余り良い出来とは言えませんでした。QuickTime等のアプリケーションも幾つか試してみたのですが、上手くいかず・・・。もしやMaxでプレビュー視聴用のアプリが書けないか?と思いやってみました。
Intensity Shuttle for Thunderbolt は、オーディオインターフェイスとしても利用できるはずなのですが、Max上でデバイス指定した瞬間にパッチが100%落ちるバグがでてます。今後Max / Intensity Shuttle のアップデート等で修正されたらアプリで音も取得できるように更新したいです。

Maxで現在の年・月・日時等の取得の仕方がわからなかったのでjsオブジェクトで作成してみました。
[javascript]
"use_strict";
autowatch = 1;
function anything(){
var date = new Date();
outlet(0,messagename,date[messagename]());
}
[/javascript]
Javascriptには元々Dateクラスが容易されているので、それを利用したいです。そこでanythingやmessagenameプロパティを使い、dateクラスのファンクションを動的に呼び出しております。
ひとまずjsのクラスをMaxパッチに公開する事ができました。