Deprecated: Assigning the return value of new by reference is deprecated in /virtual/jessejds/public_html/blog.bk-zen.com/wp-settings.php on line 472

Deprecated: Assigning the return value of new by reference is deprecated in /virtual/jessejds/public_html/blog.bk-zen.com/wp-settings.php on line 487

Deprecated: Assigning the return value of new by reference is deprecated in /virtual/jessejds/public_html/blog.bk-zen.com/wp-settings.php on line 494

Deprecated: Assigning the return value of new by reference is deprecated in /virtual/jessejds/public_html/blog.bk-zen.com/wp-settings.php on line 530

Deprecated: Assigning the return value of new by reference is deprecated in /virtual/jessejds/public_html/blog.bk-zen.com/wp-includes/cache.php on line 103

Deprecated: Assigning the return value of new by reference is deprecated in /virtual/jessejds/public_html/blog.bk-zen.com/wp-includes/query.php on line 21

Deprecated: Assigning the return value of new by reference is deprecated in /virtual/jessejds/public_html/blog.bk-zen.com/wp-includes/theme.php on line 623
馬鹿全 - 2007-06

Home > Archives > 2007-06

2007-06

暇だったので


Deprecated: Function split() is deprecated in /virtual/jessejds/public_html/blog.bk-zen.com/wp-content/themes/wp.vicuna.ext/functions.php on line 358

どうも、JC です。
funcest 君は就職が決まったらしく、忙しくなるので Blog やめるって・・・。

まぁそれはそうと、Youtube が日本語対応になってましたね。
なので早速登録。
JC では登録できなかったので、 funcest で登録。
んで早速手品をしてみた。(笑)


手品はおもしろい。

  • Comments (Close): 0
  • Trackbacks (Close): 0

Wii で Flash を使う時の失敗


Deprecated: Function split() is deprecated in /virtual/jessejds/public_html/blog.bk-zen.com/wp-content/themes/wp.vicuna.ext/functions.php on line 358

相変わらず睡眠障害の JC です。

今日はちょっと Wii で Flash を扱う時の失敗談を。

かなりはまったのでメモとして。
JavaScript と Flash で連携する際に用いられる方法として、
FlashVars を利用して SWF(仮に A.swf とする) に値を送り、それと実際に値を受け取りたい SWF (仮に B.swf とする)に LocalConnection 等を使いやりとりをするやり方がある。

その方法を使う際に、A.swf は必ず表示されていないといけない。

A.swf が表示されない位置に配置されると、Wii のブラウザは「今は必要無いもの」として扱う。
すると、実際には DOM としてあるのだが、レンダリングされない。
つまり、Flash の表示まで行われない(Flash内の Script も実行されない)。
コレに気付くのに三日かかった・・・。

他には、原因不明だが、
簡単なシェイプをMC化(またはボタン化)した時に、表示されない時があった。

Wii に限った事では無いが SharedObject を扱う際に、
this.my_so = SharedObject.getLocal(”hoge”, “/”);
this.onEnterFrame = function() {
   this.my_so = SheredObject.getLocal(”hoge”, “/”);
   trace(this.my_so.data.huga);
}
と書いた時に SharedObject が参照されるのは最初の getLocal() の時のみ行われる。
もし、更新したい場合は、this.my_so = null; を行うか、
this.onEnterFrame = function() {
   var my_so: SharedObject = SharedObject.getLocal(”hoge”, “/”);
   trace(this.my_so.data.huga);
}
と書く。

 

こんなところに引っかかっているのは俺ぐらいなのだろうか・・・。
役に立つか分からないが一応載せてみた。
何か出てきたらまたの機会に。

  • Comments (Close): 0
  • Trackbacks (Close): 0

ちゃんと確認しましょうorz


Deprecated: Function split() is deprecated in /virtual/jessejds/public_html/blog.bk-zen.com/wp-content/themes/wp.vicuna.ext/functions.php on line 358

JC です。

おはようございます。

Wii Flash API を作っていたのですが、
ある方法を思いついてその方法に乗り換えたところ、
その方法が使えないと言うことに気が付いた。
再度設計し直しになりました。。。

(´・ω・`)ショボーン

  • Comments (Close): 0
  • Trackbacks (Close): 0

ちょいまって


Deprecated: Function split() is deprecated in /virtual/jessejds/public_html/blog.bk-zen.com/wp-content/themes/wp.vicuna.ext/functions.php on line 358

JC です。

WiiFlashAPI の高速化したやつですが、今仕事が急に入って徹夜中なのでまだできてません。
すみません。
朝までかかりそうだ。
今日一眠りして元気だったら作ります。
8割出来てます。

  • Comments (Close): 0
  • Trackbacks (Close): 0

キロてりやき


Deprecated: Function split() is deprecated in /virtual/jessejds/public_html/blog.bk-zen.com/wp-content/themes/wp.vicuna.ext/functions.php on line 358

仕事帰りにマックに寄って夜マック。

JCです。

メガ照り焼きを買ってきました(´▽`)

うん。味は普通の照り焼きと一緒。
大きさは大きい。
そこで分かったことが一つある。

カロリーと満腹感は必ずしも比例しない。

会社の先輩が言っていたがメガてりやきは 920kcal くらいあるらしい。
確か一日の成人男性の摂取カロリーは 2500kcal だから、
メガてりやきは 1食分よりも多い事になる。
でも、今食べたが満腹感は全くない。
まだお腹空いてるくらい。
もう二個くらいいける。
大学時代。と言っても 2,3年前の話だが、そのころは 豚ひき肉を 2kg 買ってきて全部ハンバーグにして+ご飯3合ずつを
3人(一人途中で脱落)で 1食で食べ尽くしたくらい胃袋を持っているので、お腹は満足しない。

まだまだ『メガ』の単位は遠いんじゃないかな?と思った。
せめて『キロ』てりやきだなw

920kcal だし。
1024 kcal 超えたら メガてりやきと呼ぶべきだな(笑

って事でもう寝ます。
喰ったら速攻寝る。
太るよってよく言われるけど、まだ大丈夫らしいw
週末に Wii Flash API を完成させなきゃだから今の内体力温存の方向で。

でわ。

  • Comments (Close): 0
  • Trackbacks (Close): 0

safari 3 public Beta


Deprecated: Function split() is deprecated in /virtual/jessejds/public_html/blog.bk-zen.com/wp-content/themes/wp.vicuna.ext/functions.php on line 358

首が痛い。。。どうも JC です。

何か Safari 3 public β版 がでてました。
メモです。

  • Comments (Close): 0
  • Trackbacks (Close): 0

CREATIVE FREEDOM 自由X自在 に行ってきた


Deprecated: Function split() is deprecated in /virtual/jessejds/public_html/blog.bk-zen.com/wp-content/themes/wp.vicuna.ext/functions.php on line 358

おはようございます。ぐっすり寝すぎて今度は多眠症かと思うくらいのJCです。

昨日はうちの会社の CTO の S田 さんと
「CREATIVE FREEDOM 自由×自在」 Adobe CS3 発表記念イベントに行ってきました。

場所は品川駅からすぐ。
基調講演は聞き逃したが、第一回「Videoセッション」、第二回「Webセッション」を聞いてきた。

「Videoセッション」
Adobe Production Premium がメインとなるこのセッションでは、
撮影、キャプチャ、加工、編集、配信 の順で説明が行われた。

まずは撮影。
ココでは新たに CS3 から登場した OnLocationCS3 (以降 OL)がデモされた。
PC に HDV カメラをファイヤワイヤで接続し、OL上で操作が可能。
撮影中の音、映像、撮影した音、映像を精密に表示が可能。
波形も似た、ベクトルスコープなどのモニタリングツールを使用し、撮影時のトラブルを避け撮影することが可能になった。
モニタリングしながら、人がアクションを起こし始めてからの撮影や、何秒か前からの撮影が可能。
更に、キャプチャの際には Premiere Pro (以降Pr) との連携で キャプチャの時間がカナリ短縮できる。

次はキャプチャ、編集 を行う Premiere Pro (以降Pr)
今までは 撮影した映像を Pr でキャプチャしていた。
その際には、1時間撮影すると、その時間分の時間がキャプチャ時間に上乗せさせられていた。
しかし、 OL と Pr の連携により、その時間は短縮され、 OL から即 Pr への読み込みが可能になった。
新機能としては、
タイムリマップ・タイムワープ。 After Effect でもおなじみのスローモーションにしたり、
 ストップさせたりということが Pr でもできるようになった。
・ エフェクトのかかったクリップを入れ替えする際に、そのエフェクトごと入れ替えができる。
・ さらに、 AfterEffect (以降AE) との連携で、 AE のコンポジションを
 そのまま Pr へ持ってくることができるようになった。
 これは、ダイナミックリンクであり、ソースではないが、プレビューもそのままできる。
 その AE のコンポジションを AE側で編集すると、そのままコンポジションは変更される。

次に加工。
ここでは AESoundBooth (以降SB)、そして Ultra (以降Ul)が登場。

SBは音関係の加工を行う。
スペクトル表示したビジュアル的にノイズの削除が行える。
ノイズを消す際には、PhotoShop に通じるものがあった。
「オートコンポーザー」機能ではスコアを元に強さ、メロディー、ボリュームを設定し、自動的に作曲を行える。
「オートコンポーザー」で使えるスコアは標準で 40種類。
さらに 有料でダウンロードすることもできる。
そこでは効果音も 無料/有料 でダウンロードすることができる。

AF は動画の加工を行う。
新機能としては
・ Illustrator の ドローイング機能が追加された。
 シェイプレイヤーにベクターで描画が可能。
・ ブレインストーム
 ネタに煮詰まったときにランダムにパターン出しをしてくれる。
 エフェクトの使い方がわからない場合にも使える。
・ パペットツール
 画像をアニメーションさせる場合に使用する。
 パペットピンツールを使い 画像のポイントを選択し、そこを軸に画像を引き伸ばしたり、
 動かしたりすることができる。
 名前の通り「パペット」を動かす感覚でドラッグでアニメーションさせることができる。
 エレメントの前後関係も、深度を変更する感じで変更することもできる。
・ バニッシングポイント
 PhotoShop バニッシングポイント を設定したファイルを書き出し、
 AE に読み込むと 3Dコンポジション のようにして扱える。

Ul は簡単に DV素材のクロマキー合成が可能になった。
少ししか紹介されなかったが、かなりすごい。

そして配信
ここでは Encore (以降En) と Device Central (以降 DC) が紹介された。
En は DVD のオーサリングツール。
DVD のメニューなどを作成することが可能。
その作り方も、ラインでつなぐなど、視覚的に編集することができる。
さらに、そのメニューを SWF ファイルとして、DVD のビデオを FLV ファイルとして書き出すことが可能。
Blu-ray にも対応。

DC はケータイ向けのコンテンツのシミュレートができる。
電池残量、電波状況、時間、周辺環境などを変更したりできる。
さらに、実機のCPU の状況を再現することもできる。便利そう。

 

「Webセッション」
Webセクションは、主に Web Premium の製品を中心にデモが行われていた。
企画、制作、配信 の順で説明が行われていた。

まずは企画。
ここでは FireWorks (以降 FW) が紹介されていた。
FW が無くならなくてよかったですねw (私信)
FW の位置づけは 企画立案~デザイン~プロトタイプ製作。
クライアントと、実際に動きを確認しながらの制作ができるようになった。
新機能としては、
・ ページ機能
 単一文章内(PNGファイル)に複数のページを作成できる。
 そして、そのレイヤーを共有できる。
・ 階層レイヤーのサポート
 複数のレイヤーをグループ化して整理することができる。

次は制作。
ここでは FlashDreamWeaver (以降 DW)が主に紹介されていました。

まずは Flash 。
新機能から紹介。
・ Illustrator との連携。
 今まで異なったベジェ曲線だったが Illustrator と共通になり、
 イラレからのインポートが楽になった。
 今まではぐちゃぐちゃになったり、グラデーションが崩れたりしていたが、そういうことが無くなった。
・ PhotoShop との連携
 今までできなかった階層をそのまま Flash へということが可能になった。
 インポートする際に、MC 化することも可能。
・ FlashType
 PhotoShop からインポートする際に 編集可能な 文字データとして読み込めば、
 Flash で編集可能でさらに ベクターの文字で編集することができる。
・ アニメーションの再利用
 MCにつけたモーションなどをコピペし、再利用することが可能になった。
・ エフェクトをそのまま素材交換
 ブラーなどのエフェクトをかけた素材を交換するときに、ブラーはそのままで
 素材のみ交換することができるようになった。
・ ワークスペースが広くできるようになった。
・ デバッガがパワーアップ
 エラー箇所をダブルクリックでその箇所へ移動
・ ActionScript 3.0 に対応。
・ FLV の読み込み
 AE、Pr などとキューポイントを共有できるようになった。
 全画面表示、字幕つきなどが簡単にできるようになった。
・ アニメーションをActionScript に変換できるようになった。
いろいろと新機能がありすぎてすごい。
早く欲しい。

次に DW。
新機能としては
・ PhotoShop から レイヤーをコピペできるようになった。
 PhotoShop のファイルを DW にインポートし、 ドラッグ&ドロップ でもできる。
・ AJAX 開発もできる
 Ajax のフレームワーク の Spry を使用して、ダイナミックなユーザーインターフェイスを
 視覚的にデザインできる。
・ Spry のフィールドチェック機能。
 フィールドチェック機能を使うと、フォームのチェックとかを簡単に設定できる。
 たとえば、ここには メールアドレスを半角で入れて欲しいという場所には
 プルダウンでチョチョイと指定してやるだけでOK。
・ CSS
 ブラウザの互換性チェックが可能。
 そのチェックでエラーが起きている部分に対してどうすればいいのか、
 などが一目瞭然でわかるらしい。
 さらに CSS初心者のために、テンプレートも多数有り。

配信は Videoセクションでも出てきた DC などを紹介していた。

 

一時間ずつのセクションだったが、もっと聞きたかったなぁ。
このセクションが終了した後、ゲームで賞品がもらえるのがあり、参加してもらってきた!
賞品はこれ。
Adobe Tシャツ!


赤と白のをもらってきたヽ(´▽`)ノ

100個限定らしい。まだ着てない。

出てみて。
いろいろな新機能を目の当たりにして、正直全部欲しくなった。
あとは、もうちょっと時間の余裕が欲しかった。
質疑応答とかもあればよかったのに。
Windows Vista と Intel Mac に対応していたが、Vista では何回か落ちていたw
でも、アプリケーションが開くまでにやたら早い。
どんなCPUを使ってたのか?
それとも、ほんとに早いのか?
気になることいっぱいでした。
とりあえず、Tシャツもらえてよかった(笑

  • Comments (Close): 0
  • Trackbacks (Close): 0

Flash が読み込まれるまで


Deprecated: Function split() is deprecated in /virtual/jessejds/public_html/blog.bk-zen.com/wp-content/themes/wp.vicuna.ext/functions.php on line 358

どうも、最近不眠症気味のJCです。

ぐったり。

不眠症はさておき、Wii Flash API を作成していて速さを求めるには
色々と調査が必要な事に気付いた。

まず第一弾。
「Flash が読み込まれるまでってどれくらいかかんのよ?」
って事で正確では無いが一応調べてみた。

JavaScript で new Date().getTime() した値を FlashVars を使って Flash に渡す。
Flash内でも同じ事をする。
そんで差を求める。

結果:
210ms ~ 30ms ぐらい。
かなりまちまちのようだ。

予定では今週末は忙しいので来週末くらいには Wii Flash API の Version 0.4 ができあがりそうだ。
Version 0.4 は今まで使用していた Flash / JavaScript Integration Kit を使いません。
別の方法を使います。
理由としては、 遅いから。
ただそれだけ。
更に LocalConnection は Flash 同士の通信には向いているが一方的に呼ばれまくる Flash には
カナリの負荷がかかる。よって重くなる。
Version 0.3 がボツになった理由はそれ。
用は読み込みたい Flash 側が好きな時に情報を取りに行ければベストなんだろう。
と言うことで今作ってます。

しばらくお待ちを(誰もいない方向に向かって


[追記]

FireFox ではもっと遅い事が判明。
さらに Wii では上手く表示されない事も判明。
小数点とかでてる・・・。何故?

  • Comments (Close): 0
  • Trackbacks (Close): 0

WiiFlashAPI の速度を上げる


Deprecated: Function split() is deprecated in /virtual/jessejds/public_html/blog.bk-zen.com/wp-content/themes/wp.vicuna.ext/functions.php on line 358

おはようございます。JC です。

一昨日とかに公開した Wii Flash API だが、難点は Flash と JavaScript の通信する速度が遅いこと。
それをどうにか解決できないかともがいてみました。

まずは実験。
「JavaScript 側から Flash へは、どれくらいの間隔で アクションの呼び出しができるのか。」

setInterval を使って定期的に関数を呼び出しているのだが、
ちゃんと取れる間隔は100ms だった。(10ms 刻みで測定)
それ以下になると、たまに呼び出しができない時が発生。
50ms くらいにすると、一切呼ばれない事態が発生する。

次は原因を追及する。
Flash / JavaScript Integration Kit (Beta) (以降FJIK)を使っているのでそのソースを見てみた。

FlashProxy の call が呼ばれると、関数 + 引数 を それぞれ FJIK の規定の形にシリアライズする。
target の DOM オブジェクトの innerHTML に Flash のタグを入れてやる。
その際、 シリアライズした 関数 + 引数 を flashvars を使って Flash に読み込ませる。
読み込まれるフラッシュは JavaScriptFlashGateway.swf だ。
その JavaScriptFlashGateway.swf が、LocalConnection を使い、ユーザーが作った SWF ファイルと通信を行う。
その時に恐らく、 SWF ファイル同士が通信を行う前に 次の call が呼ばれ、
通信することなく JavaScriptFlashGateway.swf の再読込が行われるのだろう。

さて、どうするか。
通信する前に消されなければOKって事だろう。って事でちょっと拡張してみる。

内容としては、 FlashProxy を複数作り、それぞれがそれぞれの SWF ファイルを使って順序よく call されれば問題ないのでは?
って事でやった結果のサンプルがこちら
3つの FlashProxy を使って順番に call させた。
40ms くらいでも大丈夫になったが、問題はもう一つでてきた。
Flash が LocalConnection を使って通信するのに結構マシンのパワーを使うのか、
呼ばれる回数が増えたので重くなっているのか分からないが、 Flash 側の FPS がガクンと落ちた。
コレは改良の余地有りか・・・。

ちなみに、コレがその時の Wii.js です。AS ファイルの方の変更は無し。
主な変更点は以下



// FlashTag の省力化
FlashTag.prototype.toString = function()

//// FlashProxy の拡張
// callJS の退避
var FlashProxyCallJS = FlashProxy.callJS;

// コンストラクターの拡張
FlashProxy = function(uid, proxySwfName)

// 初期化メソッド追加
FlashProxy.prototype.init = function(num)

// call 時の省力化
FlashProxy.prototype.call = function()

// 退避させた callJS を復活
FlashProxy.callJS = FlashProxyCallJS;


function の中身はソースをみてください。
初期化してできる事を先にやってみたのと、無駄な分岐を省いてみた。
元のソースファイルの後に読み込まないと意味がありません。
main 、 HTML の記述も少々変更したが、省略。

とりあえずこれから仕事なのでもう行きます。

  • Comments (Close): 0
  • Trackbacks (Close): 0

Wii リモコンのボタンを Flash で取得


Deprecated: Function split() is deprecated in /virtual/jessejds/public_html/blog.bk-zen.com/wp-content/themes/wp.vicuna.ext/functions.php on line 358

例の如くJCです。

昨日 Wii Flash API を公開してみたが、一番苦労したのはボタンのところ。
ということでちょっとボタンのところの説明をしてみようと思う。

Wii のボタンの取得は 「キーコード」 と 「window.opera.wiiremote オブジェクト」 で取得している。
インターネットチャンネルのQ&A によると wii リモコンの ボタンのキーは以下の用になる。

ボタン キーコード
十字ボタンの上 175
十字ボタンの下 176
十字ボタンの左 178
十字ボタンの右 177
Aボタン 13
Bボタン 171
-ボタン 170
+ボタン 174
1ボタン 172
2ボタン 173
HOMEボタン 取得できません

 だそうだ。
しかし、コレは 1P のみ。
他のコントローラーのボタンを取るには window.opera.wiiremote オブジェクト の “hold” から取得する必要がある。
それぞれのボタンの値は以下の用に鳴っている。

ボタンフラグ対応表
十字ボタンの上 8
十字ボタンの下 4
十字ボタンの左 1
十字ボタンの右 2
Aボタン 2048
Bボタン 1024
-ボタン 4096
+ボタン 16
1ボタン 512
2ボタン 256
HOMEボタン 取得できません

 俺は1Pをこっちに合わせる事にした。

同時押しの際には、同時押しをしたボタンに対応した値の和が返ってくる。
そして、誰が見ても分かるようこの値は二進数に直すととても便利な値になっている。

1P を他のコントローラーに合わせるには以下の方法を取った。
onKeyDown , onMouseDown , onKeyUp , onMouseUp
をそれぞれ取り、今押しているボタンの値(holdに合わせた値)をオブジェクトに登録。
Up の際にはそれを削除する。
Flash 側に送信する時は 全てのトータルを送る。
すると、Flash 側では 全てのコントローラーを平等に扱う事ができる。

Flash 側では以下の様な方法で onPress , onRelease を取得した。
まずは 送られて来た値を 2進数に直す。
そしてその値に 11111111111111 (14桁) を足す。
事前に以前送られてきた値を記録しておいて、その差を取る。
すると、0,1,2 の値の答えが求められる。
例えば

1011010 (new(7桁))と言う値が送られてきたとしよう。前回送られてきた値は
1101100 (old(7桁)) とする。
new に 11111111 (8桁) を足す。
12122121 と言う値になる。その値に対して old の値を引く。
- 1101100

答えは 11021021 となる。 その『 1【1021021】』 【】の部分が onPress と onRelease の値になる。
0 は onRelease
1 は 前回と変わらない。
2 は onPress
になる。

もっと簡単に見やすい形にしてみよう。縦に見ていってください。

new new + old
1 2 1 1
1 2 0 2
0 1 1 0
0 1 0 1

 new と old の組み合わせは以上の4つしかない。
二つを見比べると onPress と onRelease の関係が一目瞭然。
この方法を思いつくまで2日も悩んだけどね(笑)
他の方法があったら教えてください!

ちなみに何故一桁多い値を足しているかと言うと、 一番位が上の値のonRelease の際に 一桁ずれてしまう為です。

後は 前から順に見ていくだけです。


以上がボタン取得のポイントでした。
いや~勉強になりました。
ヌンチャクの値とかも取れたら面白いことできそうだったのになぁ。

  • Comments (Close): 0
  • Trackbacks (Close): 0

Home > Archives > 2007-06

Search
Feeds
Meta

Return to page top