オブジェクトを任意の点で回転させたい場合。
→目的のオブジェクト(Planeなど)をDisplayObject3Dの中に突っ込んで、
 中身のx, y, zを弄った上で回転。
 もっといい方法があるんだとは思うけど、今わかるのはそのくらい

オブジェクトにColorTransform適用したい(BitmapDataのソレじゃなくて)
→Bitmap, Sprite, MovieClip なりを MovieMaterial に突っ込んで、
 myMovieMaterial.movie の transform.colorTransform = myColorTransform
 でおk。
 MovieMaterialがPlaneなどに入っていると思うので、
 myPlane.material as MovieMaterial つかう。
 myPlane.getMaterialByName("hoge") はなんか知らんけどうまく行かんこと多い。

<追記>ColorTransform適用後、myMovieMaterial.drawBitmap(); すること。
   じゃないと変更が反映されない。書き忘れてた。


とりあえず今日はこのくらい
色々と苦労しつつも出来上がったのでage。
比較対象としてmp3も鳴らせるようになってます。
wavを聴いてからmp3を聴くと、つなぎ目がほんのりと無音状態なのがわかるかと。
ただ、wavの方はクリップノイズが頭についてるのがなんでだろ?状態。

ソースはこちら。(※要POPFORGE & FP10)

作成にあたっては、Flexフォーラムのこちらのスレッドと、
kappa-memo.comさんのこちらの記事、及びソースを参考にさせていただきました。



メモ。
URLLoaderでデータをバイナリとして読み込み。
読み込んだdataをPOPFORGEのSoundFactory.fromByteArrayでサウンドにして鳴らせるか。

var _loader:URLLoader = new URLLoader();
var _req:URLRequest = new URLRequest("test.wav");
_loader.dataFormat = URLLoaderDataFormat.BINARY;

var _binary:ByteArray = _loader.data
SoundFactory.fromByteArray(_binary, Audio.STEREO, Audio.BIT16, Audio.RATE44100, someHandler);

近いうちにテスト。

約半年にかけて死亡状態だったのですが、ぼちぼち復活。
とりあえず、以前やっていたことを思い出しつつ。

BPM同期系は8分音符までならかなりの精度で同期可能な
BeatFrameEvent系(EnterFrameベース)を煮詰めることにして、
BeatSyncEvent系(SoundCompleteベース)はしばし凍結。


後はサウンドデータ周り。
ここで困るのがMP3ファイルの先頭にある無音部分。
ループの時にちょっと音が途切れる感じになるのと、
サウンド再生が若干遅れるので非常に気持ち悪い。
POPFORGEを使ってこの先頭部分をなくしたものが作れるか、
はたまたwavやoggファイルの読み込みに対応したものを作るか。

できることならmp3を読み込んで、先頭部分の無音をなくせるほうがいい。
が、バイナリとか全然なのでwav読み込みで妥協するかも。
ただ、サウンドエフェクトくらいならともかく、曲のループファイルとかだと
メモリ圧迫しそうで怖い。
oggファイルの場合、出来ればかなりいいんだけどファイル形式になじみがないのがなんとも。
自分がoggローダー作ってそれをきっかけにoggが使われるようになれば一番?
でもそんなこと出来るの?君に?みたいな。

まあ、頑張っていきます。

頓挫

| | コメント(0) | トラックバック(0)
なんとかしてフレームレートとBPMの誤差を吸収するものを作れないか、
と頑張ってBeatFrameEventを弄繰り回していたんですが、
どうやっても以前のBeatFrameEventの改悪にしかならない、というか
Timerが真っ当な動作しない!俺も脳みそも真っ当な動作しない!
もういい!やめだやめ!

ということで、Sparkにコミットしたものの16分サポートバージョン作って
ひとまず落ち着こうかと。

んー、ただコレだと60FPSくらいは欲しくなる作りなのがなんとも。
描画処理はその半分のフレームに抑えるようなつくりのほうがいいのかな。

くっそー、悔しいな。
先日BeatFrameEventで「8分くらいならいけるんじゃないか」と思い、
16分でイベントをまわす設計にしたところ、8分でも十分使用可能だと判明。
(あくまで個人的な評価ですが)

ただ、やはり120BPMの16分なんかはムラが出るなぁとTwitterでぼやいていたところ、
FPSとのズレを加味してまわしては、とお声をいただけたので、早速ホゲホゲ。

1FPSなんて超鈍足なフレームレートでもTimerを使って
リズムどおりになるものが出来つつある、ん、です、けど、、、。

なんか詰まって鳴ったり一足飛びで鳴ってしまったり。
多分ディレイの設定や、1フレームで複数回鳴らすときの条件がおかしいんだと思う。
あー、こういうとき感覚>>>>>数理な脳みそが恨めしい。


以下 BeatFrameEventDispatcher の主要部分ソース。


Be Interactive! のyossyさんに
「BeatFrameEventとか、SparkProjectにコミットするといいですよー」
と嬉しいお言葉を頂いたので、
svnの使い方など助言いただきながら BeatEvent 周りをコミットさせていただきました。
興味がありましたら見ていただけると幸いです。
昨日、Twitterにて
「Rezの開発者がRezプレイUstやってる(via @beinteractive 」
との情報を受け、飛んでいきました。

なんせRezといえば僕にとってバイブルみたいなもの。
開発者がどういうコンセプトでRezを作ったのか、非常に興味があったからです。

放送その1
放送その2
放送その3

えっさほいさとサンプルを作ってみました(それにしては遅い。
とりあえず音が鳴ればいいかな、ということで画面には何も映りません。

BeatFrameEventサンプル(音注意)
BeatFrameEventTest.swf

BeatSyncEventサンプル(音注意)
BeatSyncEventTest.swf

ソース(要Popforge)
beatEventTest.zip

専門学校の卒制に作ったFlash作品 (*1)で、進行に伴い音楽が展開していく、
いうなればRezぽい感じのインタラクティブ・アートを作ったのだけど、
その頃から「リズムと完全同期したモノを作りたいなぁ」と思っていました。

牛歩ではあるけども、TwitterでASerな方からの助言などを頂きつつ、
色々やってみています。