FlashでKinectセンサーを触ってみようと思い、windowsの環境でも使いやすそうなAIRKinect を使ってみることにしました。
AIRKinectのセッティングはこちらを参考にさせていただきました。
・blog.alumican.net » AIRKinect Extension (AIR + ANE + Kinect)を動かす
AIRKinectにスケルトン情報を取得するAPIが用意されているので、取得したスケルトン情報でゲーム画面内の人形を動かして遊ぶ2人プレイ用ゲームを作りました。
相手の陣地の穴にボールを先に5球入れたら勝ちです。
ちょうど事務所にいた元尾 さんと下村 さんにプレイしてもった映像はこちらです。
下村氏から「バナナの皮が落ちてきて、それを踏むと滑るようにしたら面白そう」等という粋な意見もあがり、もうちょっと作りこんでみたい気もする今日この頃です。
2012 年 4 月 13 日| 制作 | No Comments
顔文字をパッと作りたいとき等の為に、描いた絵を全角文字に変換するツールをFlashで作ってみました。
【使い方】
1. 下の5マス分のエリア内にマウスドラッグで何か書きます。
2. 「変換」ボタンを押します。
3. 変換された文字が3パターン作成されます。
4. 使いたい文字があれば「コピー」ボタンでクリップボードにコピーできます。
【割とうまくいった例】
【文字選別の基準】
・1マス分の色の平均の濃度が近いか
・1マス分の絵と文字の位置とサイズを合わせて、そのエリアの各ピクセルの色の濃度が近いか
・縦と横にそれぞれ何個の黒い島ができているか
・その島の位置と大きさ
上記のポイントをそれぞれ加算していって、ポイントの高い文字を選んでいます。
他の精度の高いアプリはどんなやり方なんでしょう?
しかし、実際使ってみるとそんなに上手く顔文字が作れません。
目的の文字を出す為に、何度も絵を描いて変換ボタンを押してしまう等、本末転倒な事態になりがちですw
【今後の課題】
・半角用のバージョンも作ってみる。
・用意する文字を顔文字でよく使う文字等に絞ってみる。
2011 年 5 月 23 日| 制作 | 1 Comment
大人の科学マガジンに Arduino の互換機「Japanino」と「光残像キットP.O.V」が付いてくるということで早速購入して組み立てたところ、これでなんか軽くやってみたいなと思っているうちに、それらを使った「魚釣りゲームコンテスト 」なるものがあるという事なので、簡単なゲームを作って応募してみました。
作ったゲーム「カニ漁 」はwonderflのサイトにアップしてるのですが、「光残像キットP.O.V」がないとPLAY出来ない為、PLAY中の動画をアップしました。
ゲームは昭和初期のオホーツク海という設定です。
船にカニが入ったら「光残像キットP.O.V」にカニが表示されるんですが、分かり難いというかこの動画では全然カニに見えませんねw
解像度が15×7ドットなのでこんなもんでしょうか。
今、思いついたんですけど、ハンドルを回すとゴマのパーティクルが落ちる「バーチャルゴマすり」とかどうでしょう?
需要ありますでしょうか?
※「魚釣りゲームコンテスト」の応募は7月14日で締め切られました。
[追記:2010.7.27]
応募期間が延長されました。
大人の科学マガジン Vol.27(8ビットマイコン)
付録:「Japanino」 と 「光残像キットP.O.V」
2010 年 7 月 15 日| 制作 | No Comments
PasteBook ScreenSaver を作りました。
まず、貼り絵がペタペタと始まります。
モチーフは amazon.co.jp で販売されている書籍の表紙です。
どういった書籍が表示されるかというと、登録した検索ワードで検出された書籍の「出版日が新しい順」や「売れている順」の上位30位の中からランダムで選出したものになります。
10分ちょっと経ったらこんな感じになります。
本の詳細ページ(amazon.co.jp)へのリンクにアフィリエイトタグを付けてるんですが、トータルで1冊でも売れるといいなー。へへ。
目ぼしい本が表示された時は迷わずGETしましょう!
スクリーンセーバーのサンプル動画&ダウンロードはこちら↓
・PasteBook ScreenSaver
2010 年 5 月 21 日| 制作 | No Comments
■前書き
Flashのデバッグは、ほとんどtrace()でやってるんですが、
たまにEnterFrameで値の変化を確認したい時とか、Flash Tracer(FireFoxでtraceの出力が確認できるFireFoxのアドオン)が入ってない環境で値を確認したいときもあると思います。
そういう時は確認用のTextFieldを作って値を表示させれば済むのですが、毎回それをやるのはめんどくさいです。
特にTextFieldのインスタンスをグローバルインスタンスにしたりしていると負担になり心臓に悪いです。
(みなさんは実は僕の知らない便利ツールを使ってサクッと済ませてるんでしょうか?)
そこで、毎回めんどくさいなら、すぐに値をチェックできるツールを作ってしまえということで、デバッグツール Debush(デバッシュ)を作りました。
■ダウンロード
・Debush ダウンロードページ
■使い方1:基本
下の黒いエリアはSWFです。その内、黄色いパネルがDebushのエリアです。
黄色いパネルの左上部を掴んで移動させることもできます。
このページのコンテンツには、Adobe Flash Player の最新バージョンが必要です。
下のコードは、上のSWFのドキュメントクラスです。
赤字の部分がDebushを表示させる為の部分です。
Debushをnewで呼び出した時の引数はdebushHandler関数をどこに置くかという指定です。
debushHandler関数内に表示したい値を記述していきます。
props配列内の(0番から始まるとして)偶数のString型の値が説明で、その偶数の値の次の値が表示したいプロパティです。
2つで1ペアになります。props配列内の値の数は好きなだけ増やせます。
package {
import flash.display.Sprite;
import debush.Debush;
public class Main extends Sprite {
public function Main() {
addChild( new Debush(this) );
}
public function debushHandler(recordMode:String):void {
var props:Array = [
"mouseX", mouseX,
"mouseY", mouseY,
"ball.alpha", ball.alpha,
];
Debush.update(props, recordMode);
}
}
}
■使い方2:記録する
下のSWFでは1秒に1回、record関数を呼び出して緑のエリアにその瞬間の値を記録しています。
赤のrecordボタンを押しても緑のエリアにその瞬間の値を記録します。
緑のreceiveボタンはトグルボタンになっていて、ボタンが緑色の時はrecord関数の呼び出しに応じますが、ボタンがグレーの時はrecord関数の呼び出しに応じません。
このページのコンテンツには、Adobe Flash Player の最新バージョンが必要です。
下のコードは、上のSWFのドキュメントクラスです。
赤字の部分がrecord関数の呼び出しです。static関数なのでクラス名で呼び出します。
package {
import flash.display.Sprite;
import flash.utils.Timer;
import flash.events.TimerEvent;
import debush.Debush;
public class Main extends Sprite {
private var timer:Timer = new Timer(1000, 0);
public function Main() {
addChild( new Debush(this) );
timer.addEventListener(TimerEvent.TIMER, timerHandler);
timer.start();
}
public function debushHandler(recordMode:String):void {
var props:Array = [
"mouseX", mouseX,
"mouseY", mouseY,
"ball.alpha", ball.alpha,
];
Debush.update(props, recordMode);
}
// タイマーハンドラ:1秒に1回呼ばれる
private function timerHandler(e:TimerEvent):void {
Debush.record();
}
}
}
以上がDebush 1.0.0 の機能の全てです。
2010 年 2 月 3 日| 制作 | 4 Comments