今月も Spark project 勉強会 #09 ありがとうございました。Geoff 氏が参加して下さったせいもあってか、なんだか異様に盛り上がってた気がします。すばらしい!!
発表資料は以下になりますー。
- Spark project 勉強会 #09 Keynote (近況報告)
さて、今回僕は Geoff 氏のお誕生日大喜利 (?) で ARMessageCard なるものを作ってみました。こんなの:
ARMessageCard from Yoshihiro Shindo on Vimeo.
砂絵的なアレです。実際に遊びたい人は ここからどうぞ。マーカーはこれを。ソース一式もアップ したので、よかったらお持ち帰りくださいまし。
今回のポイントは、カードの傾きから、重力を求めるとこです。
private var _mat:Matrix3D = new Matrix3D(); private var _rot:Number3D = Number3D.ZERO; private var _v:Number3D = new Number3D();
のとき、
_mat.copy(_baseNode.transform); _mat.invert(); _rot = Matrix3D.matrix2euler(_mat, _rot); _v.reset(0, 1, 0); _v.rotateY(_rot.y); _v.rotateX(_rot.x); _v.rotateZ(_rot.z); var gx:Number = -_v.x * 2.0; var gy:Number = -_v.y * 2.0;
という感じのコードで重力を求めてます。FLARToolKit によって算出された姿勢の変換行列の逆行列を求めて (こうすることでマーカーに対する重力の傾きが求まる)、重力用に正規化したベクトルに回転だけを反映して X と Y 成分 (X と Y にどれだけ傾いているか) を取り出すというかんじ。たぶん。
ちなみに、他の四人の作品が凄くて、もうちょい派手にすれば良かったかなーと今になって思っています。
せっかくなので JActionScripters にも レポート を書いたんですがめっちゃしんどかったです。

JActionScripters に サブリン先生がポストした液晶エフェクト が素敵だったので、クラス化して LCDBitmap として Spark にコミットしてみました。使い方はこんな感じ:
addChild(new LCDBitmap(bitmapData));
表示したい BitmapData を渡すだけ。超簡単。
RGB を表示してるタイルの大きさとマージンもカスタマイズできます。
addChild(new LCDBitmap(bitmapData, 4, 2));
この場合は、サイズ 4px でマージン 2px なり。
Wonderfl に サンプルも投稿 したのでぜひどうぞー。
総勢 20 名以上の日本人 ActionScritpers が、日本の Flash のヤバさを伝えるために共同で運営する英語ブログ「JActionScripters」が開始されました!もちろん、僕も参加しています。
何を隠そう、このクレイジーな企画を立ち上げたのは、ニートになって更に勢いを増しつつある fladdict さん。ご本人による リリースはこちら。ブログにあがっている記事も最初からかなりハイレベルで、これからが楽しみですねー!
さっきのエントリに書き忘れたんですけど、BetweenAS3 では、Wonderfl を、サンプルコードやデモの公開場所として使おうと思っています。理由はいくつかあるのですが、
- (作る側の理由として) 公開が簡単。なんといってもコード貼付けるだけでいいので。
- 動くもの (SWF) とコードが同時に見れるというスタイルで分かりやすい。
- サンプルやデモそのものをフォークして、すぐに勉強や質問が出来る。
などなどです。例示や参照として使うのに Wonderfl はとてもいいフォーマットだと思うのです。ライブラリのドキュメントに Wonderfl を活用するというスタイルを広めたいなーと勝手に思ってます。
