ブックマーク / blog.alumican.net (18)

  • blog.alumican.net » Blog Archive » AIRKinect Extension (AIR + ANE + Kinect)を動かす

    AIRKinect Extensionを使えば、AIR 3 Native Extension(通称ANE)を経由して、AIRアプリからMicrosoftのKinectドライバを簡単に叩けるらしい。 ということでやってみた。 Microsoft Kinect SDK beta2をインストールする。 これまでOpenNIを使ってた人はドライバが競合するので注意。解決方法もあるみたいだけど、めんどいのでOpenNIをアンインストールした。 ここのDemo Applicationからデモアプリをダウンロードしてインストールする。 Kinectを接続してサンプルAIRアプリを起動する。うまく動かない人は、Microsoft Kinect SDKのインストールフォルダに入ってるサンプルを一度起動から、もう一度AIRアプリを試してみるとうまくいくかも。 するとこうなる。 では次に、自分でAIRアプリを

    kkeisuke
    kkeisuke 2011/11/16
    『 AIRKinect Extension (AIR + ANE + Kinect)を動かす 』
  • blog.alumican.net » Blog Archive » FlashPlayer11のサウンド新機能を試してみる 2

    前回、Sound.LoadPCMFromByteArrayを試してみたんで、ついでにSound.LoadCompressedDataFromByteArrayについてもやってみました。このメソッドではPCMデータではなく圧縮済みのmp3データそのものをSoundインスタンスに変換することができます。 » サンプル(要FlashPlayer11) » ソース こちらはうまくいくようです。SoundCompleteイベントも呼ばれているようです。再生完了時に約20ミリ秒ほど再生ヘッダが最後まで進まずに止まりますが、普通にサウンドを再生したときも同様の現象が起こったので多分こんなもんなのでしょう。

    kkeisuke
    kkeisuke 2011/10/17
  • blog.alumican.net » Blog Archive » FlashPlayer11のサウンド新機能を試してみる

    ブログを書くのが久しぶり過ぎて、世の中ではすでにFlashPlayer11の話題で持ちきりのようで。 アップデートの目玉であるStage3Dに関してはいろんな人が取り上げているので、ちょっと地味なSoundの新機能をちょちょいと試してます。Sound.LoadPCMFromByteArrayを使えば、ByteArrayに格納されたPCMデータからSoundインスタンスを生成できるようになります。ごにょごにょ加工したByteArrayをSoundインスタンスに変換しておくことで、SampleDataEventでサウンドを動的に生成し続けなくても、同じ音であれば低コストで繰り返し再生できるようになりますね。 以下、SoundインスタンスからByteArrayにデータを抽出して、再びSoundインスタンスに変換し直しただけのサンプルです。クリックで再生します。音量注意。 » サンプル(要Flas

    kkeisuke
    kkeisuke 2011/10/15
  • blog.alumican.net » Blog Archive » 第一回東京ひよこの会に参加してきました

    久しぶりのブログ更新です。生きてます。 「東京ひよこの会」なる勉強会に参加してきまして、そのとき発表したデモをアップしました。 SpriteやMovieClipのhitAreaというプロパティ自体は前々から知っていたのですが、うまく扱えないためこれまで避けていました。 Spriteを親SpriteのhitAreaとして設定した場合、hitAreaの兄弟Spriteにもボタンが反応してしまっていたのですが(デモ起動直後のbtn4の状態)、このたび会場にいらしていた野中先生のおかげでこの問題を無事解決することができました。 ボタン自体のmouseChildrenをfalseにするだけでした。hitAreaに設定されたSpriteはマウスイベントに関する扱いが少し特殊で、mouseEnabledやmouseChildrenをfalseに設定しても、hitAreaとして設定されているSpriteや

    kkeisuke
    kkeisuke 2011/03/07
    mouseEnabledやmouseChildrenをfalseに設定しても、hitAreaとして設定されているSpriteやMovieClipのヒット領域としての仕事は全うできる
  • blog.alumican.net » Blog Archive » Flash + OpenCV

    AIR2.0の新機能でOpenCVと連携してみました。AIRアプリを起動してTwitterID入力 → Webカメラを選択すると、カメラの映像から顔領域を検出して目を盗みます。TwitterIDを空欄にすると笑い男が出現します。 » OpenCVFaceDetection » ソース一式 ・Iキー ・・・ アイコンの表示/非表示を切り替えます。 ・Rキー ・・・ 検出された全顔領域の表示/非表示を切り替えます。 実行にはOpenCV1.0、DirectShowが必要です。ビルドにはさらにDirectX SDK、Platform SDKが必要です。いろんなSDKをインストールしたマシンで開発しているので、これらのライブラリでは足りない場合は教えてもらえるとうれしいです。 » OpenCV Download » Platform SDK » DirectX SDK さらに、ネイティ

    kkeisuke
    kkeisuke 2010/08/10
    AIR2.0 ネイティブアプリケーション
  • blog.alumican.net » Blog Archive » トップページ更新 Cells

    トップページにコンテンツを追加しました。 » Cells 今回はボロノイ図とパーティクル操作を組み合わせたものとなっています。ボロノイ図のアルゴリズムには高速なFortune’sアルゴリズムを用いています。Fortune’sアルゴリズムは空間を上から下に走査していきながら、各々のボロノイ母点が作り出す放物線(beach line)同士が交わる点列を領域分割線とするアルゴリズムとなっています。 » アルゴリズム解説 » C++版 » AS3版 wonderflに投稿されているkndさんの『Fortuneのアルゴリズムの可視化』が直感的で分かりやすいのです。

    kkeisuke
    kkeisuke 2010/07/12
    ボロノイ図 パーティクル particle
  • blog.alumican.net » Blog Archive » PixelBenderをActionScriptに埋め込む

    まじめにPixelBenderやろうかなと思いつつ、いちいちpbjファイルをロードするのも面倒くさいなと思ったので、ちょっと便利そうなツールを作ってみました。 pbjファイルをローカルからアップロードすると、PixelBenderのコードを内部に埋め込んだActionScriptのクラスを生成します。pbjファイルがパラメータを含む場合は、各パラメータに対して自動的にgetter/setterも用意します。インプットに対しても自動でgetter/setterを生成します。 このツールの利点としては コンパイル時にPixelBenderのコードを含めることができるので、pbjファイルを外部読み込みする必要が無くなる pbjファイルにどのようなパラメータやインプットを設定すればいいのか分かる といったことがあります。wonderflに投稿する際にメインのコードとPixelBenderをひとつの

    kkeisuke
    kkeisuke 2010/07/12
  • blog.alumican.net » Blog Archive » drawTrianglesで球面マッピング

    既視感ありまくりのエントリで恐縮なのですが、今までGraphics.drawTrianglesを使ったことなかったのと、仕事で必要になったので勉強しました。 [Study] Sphere using Graphics.drawTriangles – wonderfl build flash online 外部から読み込んだ画像をテクスチャとして球面上にマッピングしています。 パースはつけていません。 一応最適化ということで、頂点をなるべく重複点させないようにしています。ただし画像の端に対応する頂点がうまくマージでずにほったらかしなので、頑張ればもうちょっと減らせると思います。 迷ったのが、多数の3次元座標を Matrix3D を使って一括投影するのに、 Utils3D.projectVectorsとMatrix3D.transformVectorsがあるということ。 前者は2次元座標

    kkeisuke
    kkeisuke 2009/12/20
  • blog.alumican.net » Blog Archive » 遺伝的アルゴリズムで歩行動作獲得への道 ~2歩目~

    どうも間が空いてしまってすいません。 前回の何も学習しなかったバージョンに脳みそを加えて、単純なGAを組み込んできました。ageが世代、fitnessがその世代の生物が記録した中で一番良かった成績です。この数値が上がっていけば学習が成功しているといえます。3匹しか見えていませんが、一応裏側で10匹ほど動いています。 » Earthwalker Prototype02 う~ん、学習してるような、してないような。なんとも微妙な感じです。まだまだ改良が必要です。 GAの基設定としては、エリート(淘汰や突然変異を受けず、次世代にそのまま残される個体)は生成最優秀の一匹、交配は2点交叉が1ペア、パラメータ化と評価方法は前回に示したとおり。かなり勘です。 ちなみに、今回から描画をnutsuさん作のFrocessingでおこなっています。生物の体が曲線描画になっているところなんかそうですね。ありが

    kkeisuke
    kkeisuke 2009/11/11
  • blog.alumican.net » Blog Archive » 遺伝的アルゴリズムで歩行動作獲得への道 ~1歩目~

    僕の大好きな、「マッチ箱の脳」というがあります。 このを書いたの「がんばれ森川君2号」や「アストロノーカ」とか、人工知能が組み込まれたゲームを作ったすごい人です。 » マッチ箱の脳(AI)―使える人工知能のお話 僕はアストロノーカしかやったこと無いのですが、人工知能が自然にゲームに組み込まれていてすごいなあと当時思ってました。中ではすっごい難しいことをやっているのに。その影響か、僕も人工知能を組みたいと思ってこれまで何度もチャレンジしては挫折してきましたが、懲りずにまたチャレンジすることにしました。 シャクトリムシの進化をやってみることにします。 いくつかの棒状のパーツが繋がった体をシャクトリムシと見立てます。体の繋ぎ目である関節を適当に動かすと、シャクトリムシがウニョウニョ動きます。でもこれだけだと、ただ暴れているだけで全然前へ進みません。前へ歩かせるためには、全ての関節が連携しな

    kkeisuke
    kkeisuke 2009/10/29
  • blog.alumican.net » Blog Archive » QuickBox2D はじめの第一歩

    Zevan Rosser氏が作ってる、簡単にBox2DAS3を使うためのライブラリ「QuickBox2D」のチュートリアル。 第一回は、僕の勉強も兼ねて、QuickBox2Dの導入方法と簡単なサンプルの説明です。 メニューはこちら QuickBox2Dの導入 サンプルファイルのダウンロード Sample 01 「四角形と円を作ってみる」 Sample 02 「高精度な衝突判定を使う」 Sample 03 「オブジェクトの色や透明度を変える」 Sample 04 「パラメータのデフォルト値を設定する」 Sample 05 「静的オブジェクトを作る」 Sample 06 「多角形を作る」 Sample 07 「複雑な多角形を作る」 Sample 08 「Box2Dのデバッグ表示を使う」 導入 まず、QuickBox2Dライブラリを使うには手元にQuickBox2Dライブ

    kkeisuke
    kkeisuke 2009/10/18
  • blog.alumican.net » Blog Archive » Bitmapのsmoothingプロパティ変更のタイミング

    Bitmapインスタンスのsmoothingプロパティは、そのインスタンスのbitmapDataがnullのときに変更しても効かない。ということを今更知ったというお話。 var bmp:Bitmap = new Bitmap(); bmp.smoothing = true; bmp.bitmapData= bmd; trace(bmp.smoothing); //false … smoothingが効いてない var bmp:Bitmap = new Bitmap(); bmp.bitmapData= bmd; bmp.smoothing = true; trace(bmp.smoothing); //true … smoothingが効いてる bitmapDataを入れ替えた後も、smoothingを設定し直さなければならない。 var bmp:Bitmap = new Bitmap()

    kkeisuke
    kkeisuke 2009/10/12
    Bitmapインスタンスのsmoothingプロパティは、そのインスタンスのbitmapDataがnullのときに変更しても効かない
  • blog.alumican.net » Blog Archive » 縦横比を保ったままリサイズするBoundaryResizerクラス

    読み込んだ画像をサムネイル枠内に収まるように縦横比を保ったままリサイズしたり、ステージの背景に敷くために拡大したりすることがあると思います。その都度計算式を書くのは面倒なので、クラス化しました。 Download » 通常版はこちら » BoundaryResizer.asファイルのみ (拡張子をasに変更してください) サンプル こちら(wonderfl)にあります。何が目的のライブラリかだいたい分かると思います。 使い方 サンプルコードはこんな感じで。 var bmp:Bitmap = ... var target:Rectangle = bmp.bitmapData.rect; var boundary:Rectangle = new Rectangle(50, 50, 300, 300); var scaleMode:String = BoundaryResizer.TOP

    kkeisuke
    kkeisuke 2009/10/07
    読み込んだ画像をサムネイル枠内に収まるように縦横比を保ったままリサイズしたり、ステージの背景に敷くために拡大したりする
  • blog.alumican.net » Blog Archive » QuickBox2D正式版v1.0リリース

    今までアルファ版だったのに、いつの間にかQuickBox2D 1.0がリリースされていました、やったー。 QuickBox2DっていうのはActionSnippetのZevan氏が作ってる、Box2DFlashAS3を簡単に扱えるようにするライブラリです。このブログでも何度か紹介させていただいてます。超オススメ。 なので、久々にQuickBox2Dネタを書こうとActionSnippetを見てみると、僕の知らないサンプルが33個も。凄い、どれを紹介しようか迷う。というか機能が増えすぎてよくわからん、やばい! というわけで、これから片っ端からここに書いていきます、何日かに分けてだけど。 サンプルがどんなことをやっているのかと、どこの部分がキモなのかだけ、ずらずら書いていこうと思います。僕も勉強しながらなので間違うかも知れません。そんなときはどうぞ突っ込みお願いします。 ちなみに、Quick

    kkeisuke
    kkeisuke 2009/10/01
    Box2DFlashAS3を簡単に扱えるようにするライブラリ
  • blog.alumican.net » Blog Archive » Shift-JISやEUC-JPのXMLを読み込むSimpleXMLLoaderクラス

    先日のエントリ『AS3の標準XMLパーサ ちょっとしたまとめ』で、余計な説明を省くために作ったSimpleXMLLoaderクラスでしたが、使ってみたら予想以上に便利だったのでバージョンアップしてみました。まあ大したことはやっていなくて、今までutf-8専用だったところを、好きな文字コードで書かれたxmlを読み込めるようにしただけです。 » SimpleXMLLoader.as (拡張子をasに変更してください) 例をどうぞ。使い方としては、loadメソッドにオプションとして文字コードを指定できようになっただけで、他は変わっていません。なお、エラー処理付きのサンプルは先日のエントリに載せています。 //Shift-JISで書かれたxmlを読み込む var loader:SimpleXMLLoader = new SimpleXMLLoader(); loader.onLoadComplet

    kkeisuke
    kkeisuke 2009/07/30
    好きな文字コードで書かれたxmlを読み込める
  • blog.alumican.net » Blog Archive » 一定時間後に関数を一度だけ実行するDelayExecutorクラス

    DelayExecutorクラス Timerは手続きが多くて面倒、setTimeoutは何故かしっくりこない人のための、一定時間後に指定した関数を一度だけ実行するクラスです。いわゆる遅延処理。以下の例は、全て3秒後にtrace(”完了!”)を実行します。 (1) new DelayExecutor()でインスタンスを生成して実行する var exe:DelayExecutor = new DelayExecutor(func, 3000); exe.start(); function func(executor:DelayExecutor):void { trace("完了!"); } (2) インスタンスを生成後に、コールバック関数と遅延時間を設定して実行する var exe:DelayExecutor = new DelayExecutor(); exe.onComplete =

    kkeisuke
    kkeisuke 2009/07/28
    遅延処理
  • blog.alumican.net » Blog Archive » TimerEvent.TIMERのdispatcherが分からない

    Timerクラスを継承したMyTimerクラスを作ってみる。 MyTimerはdispatchEventをオーバーライドしているので、 Timerが発行するイベント(TimerEvent.TIMERとTimerEvent.TIMER_COMPLETE)を検出できるはず・・・だった。 package { import flash.events.Event; import flash.utils.Timer; public class MyTimer extends Timer { public function MyTimer(delay:Number, repeatCount:int = 0):void { super(delay, repeatCount); } /** * dispatchEventをオーバーライドする */ override public function dis

    kkeisuke
    kkeisuke 2009/07/26
  • 『 AS3の標準XMLパーサ ちょっとしたまとめ 』

    外部のxmlを読み込んでFlashに反映させたいという要望はよくあります。 僕はAS2のときには、XPath4AS2という高機能なXML解析ライブラリを使っていましたが、AS3になってからは標準のXMLクラスにそういった機能が付加されたのでそっちを使っています。 とはいうものの、XPath4AS2に慣れすぎてしまったせいか微妙な書式の違いにいつもとまどってしまいます。 なので、AS3でのxmlの基的な解析方法について、trick7さんがまとめてくださった『xfactorstudioのXPath4AS2の使い方』という、僕も相当お世話になったエントリーになぞらえて少しまとめておこうと思います。 なお、ここで紹介するやり方が唯一の正解というわけではもちろん無いので、もっと良い方法や、こんな方法もあるよ、というのをどんどん教えて頂けると助かります。 使用するxmlはtrick7さんのエント

    kkeisuke
    kkeisuke 2009/07/25
  • 1