『 AS3の標準XMLパーサ ちょっとしたまとめ 』

2009 年 7 月 20 日

外部のxmlを読み込んでFlashに反映させたいという要望はよくあります。
僕はAS2のときには、XPath4AS2という高機能なXML解析ライブラリを使っていましたが、AS3になってからは標準のXMLクラスにそういった機能が付加されたのでそっちを使っています。
とはいうものの、XPath4AS2に慣れすぎてしまったせいか微妙な書式の違いにいつもとまどってしまいます。

なので、AS3でのxmlの基本的な解析方法について、trick7さんがまとめてくださった『xfactorstudioのXPath4AS2の使い方』という、僕も相当お世話になったエントリになぞらえて少しまとめておこうと思います。

Continue Reading »

『 QuickBox2D オブジェクトの平行移動と回転 』

2009 年 7 月 6 日

quick_box2d_sample_translation
オブジェクトの平行移動と回転のサンプル
ボールをドラッグで投げると、ステージ端から端へとループ。
また、ステージクをクリックすればクリックした座標に対応した回転角度で赤いバーが回転。

QuickBox2Dの小ネタ。
運動の状態を保持したままオブジェクトを平行移動や回転させるには、
QuickObjectインスタンスのx、y、angleプロパティを変更すれば良いみたい。
あるオブジェクトのQuickObjectインスタンスはaddしたときに戻り値として受け取れる。
Box2DFlashAS3のSetXFormを使うよりも簡単で便利。

以下サンプルのソースコード(実行には別途Tweenerが必要です)

Continue Reading »

『 QuickBox2DやBox2DFlashAS3での衝突判定をグループ分け 』

2009 年 7 月 5 日

quick_box2d_sample_translation
衝突判定のサンプル
●と壁、●と●、●と▲、▲と壁、■と壁の組み合わせは衝突が起こり、●と■、▲と■、■と■は衝突しない。

なるほど。
categoryBitsとmaskBitsを両方指定しないといけなかったのか。

QuickBox2DやBox2DFlashAS3でのオブジェクト同士の衝突判定をコントロールする話。
そもそもBox2DFlashAS3には(多分Box2Dにも)2種類の衝突判定方法が用意されている。
(1) groupIndexを使う方法
(2) categoryBits、maskBitsの組み合わせを使う方法

Continue Reading »

『 WP-Al-SWFObjectアップデート v2.1 』

2009 年 6 月 30 日

久しぶりにWP-Al-SWFObjectをアップデートしました。
v2.0からv2.1へのマイナーアップデートになります。

最新版のダウンロードはこちらです。
変更点は以下の通りです。

  • wp_al_swfobject_echo関数により、エントリー以外でもswfを貼り付けられるようになりました。詳しくはこちら
  • 最新版のSWFObject2.2に入れ替えました。

エントリー以外へのswf貼り付けについて、以前Yahoo!知恵袋で間違った回答をしてしまいましたので、訂正してお詫びします。

エントリー以外への貼り付けはWP-Al-SWFObjectが今まで対応していなかっただけで、WP-SWFObjectは対応しています(wp_swfobject_echo関数)。僕が知らなかっただけでした。。。

質問者のarupa2008さん、WP-SWFObjectの中の人であるJim Penaloza Calixtoさん、知恵袋を見てくださった方、誤解を与えてしまってごめんなさいごめんなさい;;

今後はこのようなことが無いよう気をつけます OTL…

『 QuickBox2D はじめの第一歩 』

2009 年 6 月 28 日

quickbox2d_samples

Zevan Rosser氏が作ってる、簡単にBox2DAS3を使うためのライブラリ「QuickBox2D」のチュートリアル。

第一回は、僕の勉強も兼ねて、QuickBox2Dの導入方法と簡単なサンプルの説明です。

メニューはこちら
QuickBox2Dの導入
サンプルファイルのダウンロード
Sample 01 「四角形と円を作ってみる」
Sample 02 「高精度な衝突判定を使う」
Sample 03 「オブジェクトの色や透明度を変える」
Sample 04 「パラメータのデフォルト値を設定する」
Sample 05 「静的オブジェクトを作る」
Sample 06 「多角形を作る」
Sample 07 「複雑な多角形を作る」
Sample 08 「Box2Dのデバッグ表示を使う」
 
Continue Reading »

『 物理シミュレーションで全加算器 』

2009 年 6 月 25 日

fulladder

Full Adder

Flashで物理演算をしたくても計算が難しいし、Box2DAS3を使うにしても手順が多くてややこしい。そんな人はこれ使うといいかも。
QuickBox2D
Box2DAS3を簡単に使えるようにしてくれるライブラリです。まだ対応していないオブジェクトもあるみたいだけど、とりあえず動くものなら簡単に作れるらしい。

さっそく物理演算のおもちゃを作ってみたのがサムネイルのアレ。
これは全加算器といって、2進数の足し算をしてくれるおもちゃ。

ちょっと遊び方を説明。

  1. 玉を上に書いてある数字(+1,+2,+4,+8,+16,+32)のとこに乗せる(同じ数字のとこに同時に2つ乗せちゃだめ)
  2. 上のpullを右へひっぱると玉がころころ転がってが2進数の足し算をする
  3. ひっぱった後にシーソーに引っかかってる玉の横に書いてある数字(1,2,4,8,16,32)の合計が答え
  4. 続けて上にまた玉を乗せてどんどん足し算できる
  5. 一番左から玉がこぼれたらオーバーフロー、計算機の限界を超えました(笑)
  6. 下のpullをひっぱると強制リセット

詳しくはこことかここを見るといいです。

次回からQuickBox2Dの使い方を解説していくよ。
 

他のQuickBox2Dネタ一覧もどうぞ » tag : QuickBox2D

『 RGB Ensemble using Webcam 』

2009 年 6 月 6 日

先月の大阪てら子Saqooshaさんがつくってたのが素敵だったので、見よう見まねでやってみました。ただやるだけだとつまんないので、RGBのカラーバージョンでアンサンブルしてみました(音の動的生成を使っているのでFlashPlayer10以上じゃないと動きません)。

webカメラ(カメラがない人はサンプルの静止画像)からリアルタイムで読み込んだ画像をRGB分解します。分解されたRGB画像をもとに音を鳴らすおもちゃです。RGBの順にオクターブ単位で音域が低くなっているので、頑張れば3パートでハモれるかも知れません。

いい感じの音を鳴らすために
あの楽器っぽいスクリプト Ver1.2(メニューをつけてみた)
の波形生成アルゴリズムを使わせてもらってます。ありがとうございます。

また、単純にBitmapData.copyChannelやColorMatrixFilterなどでRGB分解すると、例えば白い部分などは全チャネルで反応してしまいます。そこで、人の目が見て赤緑青な部分を直感的にRGB成分として取り出せるように、RGBExtractorというクラスを作りました。

このクラスは入力画像の全ピクセルに以下の処理をおこなうことでRGB各成分を抽出します。ここで、R,G,Bはある座標における入力画像の色、R’,G’,B’は分解後のその座標の色となります(計算上マイナスになった場合は0とします)。
scaleは0以上の任意の実数です。写真などの自然画像にはRGBの純色はまず出てこないので、scaleがある程度高くないとハッキリと検出できませんでした。

R' = scale * ( R - max(G, B) )
G' = scale * ( G - max(B, R) )
B' = scale * ( B - max(R, G) )

この処理は、実際にはフィルタで全ピクセルをバッチ処理しています。RGBExtractorクラスはまだ詰めが甘いので、もう少し精度を上げられるように頑張ってSpark Projectにコミットしておきます。

今回初めてFlashPlayer10の動的音生成を使ってみたのですが、鳴らすだけなら思ってたより簡単でした。それ以上に、音の鳴るものは作っててやっぱり面白くて、音楽ってすごいなあって改めて感じました。幸いにもSpark Projectには音関係の素晴らしいライブラリがたくさんあるので、もっと使わせていただこうと思います。そんな感じです。

『 仏を語る会 ミニ四駆品評会 超絶メンツ飲み会に行ってきた 』

2009 年 5 月 31 日

nium_top題 『漢の背中@渋谷マルイシティ』
 
niumさん、さくーしゃさん、bao_baoさん、kikidogさん、mutastさん、ahchangさん、チン★カスさん、與座さん、ko_zouさん、launchの中川さん田路さん佐竹さん森崎さん、stoopaの池田さん野原さん、あとうちの彼女、というそうそうたるメンツで飲みに行ってきました。超楽しかったよー。あいかわらずさくーしゃさんに殴られたよー><(笑)

半分くらい初対面の方々だったのですが、気さくな方ばかりで、みなさんと熱い話ができて本当に良かった。みんなトップランカー、すっごい人達ばかりで、もうパワーあるある。酒も入って俺も熱かったので、もしかしたら失礼なこと言ってたかも、ごめんなさいごめんなさい。

でも、おかげさまでもの凄いモチベーションを得た。みんなの名言の中でもマイベストセンテンスはko_zouさんの「いつも本気で☆」。もし面白くない仕事だと思ったら、何とかして面白くもっていくのがうちらの仕事なんよね。うんうん。

というわけで、飲み会の前のF-siteセミナーと合わせて、とても有意義な一日だったと思うよ。(F-siteではじゃんけん大会でまさかの2連勝しました。Flash本2冊ゲット!)

あと俺はイベントクラッシャーとかじゃないです、安全なアルミカンですから。これからもよろしく御願い致します。

とりとめのない日記でごめんよ><
あとで見返したときに再燃できるように気持ちをメモるって難しいね。

『 ActionScript3.0製のスクロールバー JPPScrollbar 公開 』

2009 年 5 月 28 日

簡単に使えるActionScript3.0製のスクロールバー「JPPScrollbar」をSpark Projectでリリースしました。はい、名前はエアロスミスのJust Push Playにあやかっています、すいません。以下説明。

JPPScrollbar

Just(ただ) Put(置けば) Play(動く) Scrollbar(スクロールバー)
サンプルファイルのライブラリからステージに置けば動いてくれるActionScript3.0製のスクロールバーです。個人的に作っていましたが、割と高機能になったので公開します。

主な機能

  • 任意のSpriteやMovieClipをスクロールバーのパーツとしてバインド可能です
  • 滑らかな減速スクロールを使用可能です
  • コンテンツ量に合わせて縮むスクロールバーを使用可能です
  • スライダーの高さを0ピクセルとして扱うことが可能です
  • iPhoneのような、スクロールが行き過ぎて戻る演出が使用可能です
  • エンドロールのような自動スクロールを実行可能です
  • 外部からメソッド呼び出しでスクロールさせることが可能です
  • スクロール量など、こと細かく決められます
  • スライダーやスクロール対象コンテンツを整数値に吸着できます
  • y座標でなくても、任意のプロパティをスクロール可能です
  • ライブラリからコピペしなくてもnewして使えます
  • SWFWheelを使用しているので大抵の環境でマウスホイールを使えます

などなど色々ありますが、とりあえず目的にかなったサンプルのフォルダからごそっとコピペすれば動くようになっています。もう少し詳しい使い方はSpark Projectのほうに書いてあります。

サンプル

  • samples/01 ・・・ コンテンツ量に合わせて伸縮するスライダーを使用した減速スクロールバー(デフォルト)
  • samples/02 ・・・ 減速スクロールを使わないスクロールバー
  • samples/03 ・・・ iPhoneっぽいスクロールとイベントの使用例 (matsumosさんに作成していただきました)
  • samples/04 ・・・ リキッドレイアウトに対応したスクロールバー
  • samples/05 ・・・ useIgnoreSliderHeight = true (スライダーの高さを0として扱う)の使いどころ → スライダーの基準点をスクロールエリアの上から下までめいっぱい動かしたいとき
  • samples/06 ・・・ 水平スクロールバーのサンプル
  • samples/07 ・・・ ASファイルだけで作ったサンプル (matsumosさんに作成していただきました)
  • samples/08 ・・・ Papervision3Dのテクスチャに組み込んだサンプル (matsumosさんに作成していただきました)
  • サンプルどしどし受付中です!

つーわけでこのJPPScrollbar、ガンガン使ってもらえると嬉しいです。
めんどくさい部分はちゃちゃっと済ませちゃいましょー。

追記 10.05.12 バージョン1.03への移行について
バージョン1.03へのアップデートに伴い、これまでの使い方ではエラーが出るようになりました。詳しくはSparkProjectに追記していますのでそちらをご覧ください。バージョン1.02もダウンロード可能です。

追記 10.07.04 バージョン1.04をリリースしました
MagicMouse使用時の不具合に対処しました。詳しくはSparkProjectに追記しています。

『 record 09.05.22 』

2009 年 5 月 22 日

映像表現の高度化によって、ゲームが現実に近づくにつれ、ユーザの身体性のメタファーであったはずのキャラクターが、ユーザではなくキャラクター自身の身体性とインターフェイスとの結びつきがより緻密になってしまいました。そしてそれをユーザに還元するため、操作が複雑化し、操作自体に習熟する必要がより高まり、本来直感的に操作することでユーザ自身の身体性と結びついていたものが、切り離されてしまったというふうに考えることができます。

CBCNET – ゲームにみる没入感と身体性

« Previous - Next »