« 2007年06月 | メイン | 2007年08月 »

2007年07月31日

グラデーション拡張機能作ったよ

グラデーションを等間隔にしたい時、マウスだとまず無理というかそんな微調整は誰もやりたくない&やらなくてもいいけどなんだか気になるっていうのがあるので、それならボタン一発で等間隔に配置できるような拡張を作ればいいじゃないかという流れで作りました。
特にコーダーな人にはうってつけなのでは。

GradationAssist

何気にFlashMX2004対応です。
機能は以下の3つ
・均等配置
・反転
・beginGradientFill に必要なグラデーション情報の出力(一部のみ)

どういうわけか、ステージに配置しているグラデーションなシェイプを選択状態にしないと機能しません。
それとできればグラデーションの変形(特に回転)を数値入力できるようにしたかったのですが、何故かJSFLからは塗りの変形が反映されないバグという名の仕様があるようで断念しました。

他にもこんな機能が欲しいっていうのがあればドシドシお寄せください。

2007年07月28日

深度管理クラス DepthManager 作ったよ

AS1MovieClipクラスを作った時に必要に迫られて中途半端に実装していた深度管理を、ヘルパークラスとして切り離して作り直しました。

niumさんのところでFlexibleChildIndexerクラスというのがすでに公開されていますが、あちらはあくまでインデックス管理の拡張といった感じなので敢えて差別化を図りました。
あくまで深度、同じ深度に対する追加は上書きになるなど従来の手法に準じています。

せっかくなのでSparkProjectSnippetsにコミット。


DepthManager


詳細はリンク先あるいはソースを見てください。
途中で勝手に直接子を追加した場合などの厳密なエラーチェックが不足している感は否めませんが、そういうの自動検出するためにわざわざイベントリスナ登録した方がいいのかちょっと悩んでます。
助言求ム。

それ以外のごく普通の使い方で不都合やエラーが出る場合はご一報ください。

2007年07月25日

ライフゲームシミュレータ

ライフゲームシミュレータ「LIFE SIMULATOR」を公開しました。

LIFE SIMULATOR


設定可能なルールは以下の3通りです

1: 確率に従って周囲8セルのどれかの状態をコピーする
2: 一般的なセル・オートマトンのルールに従った状態遷移、初期値は23/3
3: 周囲8セルが特定の状態の時に変化する(あまり影響がないかも)

各ルールはリアルタイムにON/OFF可能で、かつ適用順を入れ替えることができます。
組み合わせ方が絶妙なので最初の内はあっという間に全滅しますが、そんな時はRANDOMボタンでガンガン再生成してください。


ルールの一部はRANDOMAPからの使いまわしですが、組み合わせ次第で想像以上の変化が見られそうなのでルール制御を逆輸入しても面白そう。

pixelDissolveのバグ?

BitmapData.pixelDissolve を変な使い方しようと弄り倒している時に気づいたんですが、randomSeed や numOfPixels の値とは無関係に必ず左上のピクセル(sourceRectで指定した矩形の左上ポイント)が変化するという妙な現象が必ず起こります。

たとえば、10個のピクセルをディゾルブさせるように設定すると、左上のピクセル+残りのピクセルの中から10個の計11個のピクセルがディゾルブします。
n個指定だとn+1個のピクセルが変化。
0個指定だと、左上のピクセルのみが変化。


せっかくなので毎フレーム適当な色でディゾルブするようなサンプルを作ってみました。
左上のピクセルが見事にチカチカします。


これって明らかに仕様と違うのですがバグなんですかね?
ちなみに当方の FlashPlayer のバージョンは 9.0.60.120 です。
どうも最近のバージョンで起こってる気がしないでもない・・・

2007年07月24日

FlashCS3拡張 EachTransformer バージョンアップ

複数シンボルについて座標を固定したまま変形を適用する拡張機能 EachTransformer に、変形の基準点を中心点に設定する機能を追加しました。
パネルの右下にそれっぽいボタンを置いてあります。

ダウンロード

と、これだけじゃ意味が分かりづらいのですが要するにシンボルを選択したときに出てくる基準点マーク ○ をダブルクリックした時と同じ処理をボタン一発で、かつ選択中のシンボル全てに対して行う機能です。
地味ですがかなり役に立つ、と思います。

残念ながら拡張機能の仕様上 FlashCS3 限定。


[追記]
mxp生成時にエラーがあったのか、バグverをそのままアップしてたようです。
先ほどリリースverをアップしなおしたので、すでにダウンロードしてしまってた人は再度ダウンロードしてください。

2007年07月23日

配置済みインスタンスの宣言文を名前空間で分かりやすくする

FlashCS3 と Flex2(あるいはas3の外部エディタ)を併用しているとよくあるのが

「あれ、この MovieClip 宣言されてるメンバって FlashCS3 で配置してあるインスタンスのことだっけ?」

 
ステージに配置済みのインスタンスについては変数宣言で public としておかなければならないため、インスタンス名で区別するしかないかなと思ってましたが名前空間を利用してしまう手もあるので紹介してみます。

 
メインタイムラインにムービークリップ(インスタンス名:mc) とボタン(インスタンス名: btn)が配置されているとして、ドキュメントクラスの宣言文に以下のように記述します。

public namespace added = public;

added mc:MovieClip;
added btn:SimpleButton;

初期状態でADDされてるインスタンスという意味合いを持たせるために added という名前空間を定義し、実体は public としておきます。
public ではなく added として宣言することで、視認性を上げようという話です。


役に立つのか微妙な気もしますが、こういうやり方もあるよーってことで。

2007年07月22日

ニコニコ市場によってもたらされる違法行為の正当化

ニコニコ市場がにわかに盛んになってる一方で、ちょっと気になっていること。

購入した人の数という目に見える宣伝効果によって、動画の違法アップロードを正当化する人が
一気に増えそう。
それもやたら自信に満ち溢れて。

 
これまでは直接数値としてみることはできなくて、コメントで「今すぐ買いに行く」といったほとんど冗談まじりな感想からしか推測できなかったため

 
・私の作品を見て本家に興味を持った人が番組を見るようになるかもしれない
・私の作品を見て自分でも作りたいと思った人がDVDを買うかもしれない
・売り上げに少しは貢献しているかもしれないから見逃して
 

という、確実にそういう人はいるんだろうけどそれを証明できないが故に説得力が弱かった意見を言い訳にして、違法なアップロードを繰り返す人が多かったと思います。
それがニコニコ市場の登場によって一気に飛び越えて

 
・私の作品を見て関連商品が○○個売れた
・売り上げに貢献してるんだから、やってることは悪くない
 

といった感じで、違法行為に対する言い訳に妙な自信をもってしまう人が増えてくるんじゃないかと。
それが昂じて売り上げ貢献レースにならないか、ニコ動の中の人の管理手腕にかかってきそうです。


迷いがある内はバランスが取れているというのはよくある話。
それがちゃんと解決されない内に状況が変化する中で強引に断ち切られてしまうと暴走が引き起こされるんじゃないか、とちょっと懸念しています。


購入キャンセル率がまだ分からないのが救いですかね・・・場合によっては公表しない方がいいのかも。

2007年07月19日

弾幕スクリーンセーバー公開

弾幕ギャラリーに投稿されたデータをランダムに再生するスクリーンセーバーを公開しました。
ベースはas3で作ってるとはいえFlashなのであまり大量の弾を表示するとさすがに重くなります。


ダウンロードは弾幕ギャラリーのページ右下のボタンからどぞー


タイミング的に voo-doo-dolls に触発されたっぽい感じですが、普通に開発verを見せ合いながらどっちが公開早いか牽制しあってた気がしないでもなく。
食中毒で動けなくなってる間に先越されましたorz

この手の投稿型サービスはコツコツやっていくしかないんだけれど、それにしても公開してからまだほとんど投稿がないので、これで少しでも弾みがつけばいいなあ。

2007年07月15日

弾幕ギャラリーの今後について

弾幕ギャラリーの敷居が高さが改めて浮き彫りになったので、今後の改良+更新予定を書いておこうと思います。
書いておくことで多少モチベーションの維持につながることを願って。


1. 投稿データをランダムに再生するスクリーンセーバーを公開

これ実はほとんど完成してたりで、後はごくまれに起こるバグをつぶす段階。
キリがないかもしれないので数日中に公開予定。


2. パーマリンク導入

はてブコメントで要望があったので。
微妙に悩んでるのが、飛んできた時にどのページを見せるのか。
今はエディタ経由しないとプレビューできない・・・とはいえ、いきなりプレビューだとほんとに見るだけになってしまう・・・


3. 初心者向けの弾幕エディタを用意

弾幕エディタが事実上のBulletMLエディタになっているので、それはあくまで上級者向けと位置づけして新たに初心者向けの弾幕エディタを作ります。
今のところ考えているアイデアは以下の通り。

・【1秒後に】【全方向に】【30個弾を撃つ】といった感じの命令パーツ組み立てオモチャ
・命令パーツにはそれぞれジグソーパズルのように凹凸をつけてドラッグで自由自在に
・構造を意識せずに日本語だけで分かるようなものにする
・最終的にBulletMLに変換する
・BulletMLから命令パーツへの変換は複雑になるので余裕があったら


あーこれ、開発ブログを別にもった方がいいのかなあ。

2007年07月14日

地上マップの自動生成をFlashで作ってみた

地上マップの自動生成@ダンジョン自動生成スレを読んで、いてもたってもいられなくなってFlashに移植してみました。

といってもそのままじゃただのパクりなのでアレンジを加え、マップチップそのものがウネウネ動く見た目勝負で。

RANDOMAP


あまりでかいと重くなるので、64x64でやってます。
同じ理由で海岸線も入れてません。
そこまでできたらちょっと楽しそう。


ちなみに中身は結構えぐいことやってます。
これでもas1で書いてたり。
GPGPUもどきバンザイ。


[追記]
64x64から128x128に拡張し、海岸線も入れました。
思ったより軽くなりましたが、それでもやはりマシンスペックによっては相当重くなります。

それと IE の最新 FlashPlayer では画像処理の過程において何故か一部挙動が怪しくなっていますが、どうもプレイヤーのバグっぽいので Firefox 推奨としておきます。

[さらに追記]
軽量化のテクニックについて、ActionScript的超絶技巧発表会で発表しました。

2007年07月11日

GUIはユーザビリティが命

弾幕ギャラリーのブラッシュアップ。


公開直後に、同じデータの重複投稿を防ぐためのチェック機能を慌ててつけてみたらそれがセキュリティサンドボックスエラーを併発して、丸一日投稿できない状態が続いてたっぽい。
めちゃくちゃアホだorz
逃がしたユーザの数はどんだけー


気を取り直して、全方向弾と扇状弾を発射する行動を一発でセットするボタンをつけてみた。
これだけでずいぶん作りやすくなったように思う。
あとはひたすらボタンの追加だなあ。


それからギャラリーからGUIに飛んで、もう一度ギャラリーに戻ってきた時にページを保持するようにした。
こういう小さな修正が後々効いてくるのは重々承知なので、やれるところからガッツリ手をつけていこうと思う。


あとはギャラリーからいきなりプレビューできるようにしたいところ。
でもそうするとどうやってGUIに飛ばせるか悩みどころ。
写真クリックしたら一度拡大させるかなあ。

それと近々、今まで作った作品を一箇所にまとめてみようと思う。
昔のサイトとか一度閉鎖したサイトとか、作品散らばりすぎ。

2007年07月09日

弾幕をシューティングしようぜ

なんだかそろそろ表に出してしまわないと踏ん切りがつかないというか、いつまでたっても開発中になってしまうので公開してしまいます。
ヘルプも何もないけれど、後は野となれ山となれ。

弾幕ギャラリー


ギャラリーとは名ばかりで、その実はエディタです。
エディタ大好き。
GUI作るの楽しい。


弾幕データはBulletMLで定義しています。
実はずっと前にシミュレータとして作ったものの焼き直しだったり。
もっと誰でも簡単に使えるようなオモチャ風味にしてみたいところです。


無限ループなど不正データを除外するため投稿時に一度プレビューする仕組みをとっていますが、プレビュー中に弾幕を撮影することができます。
そんでもって、ここで撮影した画像がギャラリーに並びます。
これがほんとの弾幕シューティング、なんちゃって。


何気に一番苦労したのはギャラリーの写真の並び替えかもしれない。
リキッドレイアウトばんざい。
こんなところで使わずに、新しくとったドメインのTOPに採用すればよかったかもと微妙に後悔。


ちなみにプレビュー用のFlashだけActionScript3.0で記述しました。
でも計算速度よりも描画速度がネックなのは相変わらず。


[07/10 23:55 追記]
セキュリティサンドボックスに引っかかって投稿できない状態でした・・・今ものすごい勢いで後悔orz
修正したのでバンバン移植とかオリジナルとかばっちこーい!

2007年07月06日

as3に対する期待と現実のギャップ感

Flashゲームプログラミング講座 For ActionScript3.0が相当数はてブられているのを見て、前々から思っていた疑問に近い違和感。


actionscript3.0(as3)でFlashゲームを作りたいって思ってる人はめちゃくちゃ多そうなのに、肝心のゲームが一向に出てこない。


as3になって敷居が高くなったのは確かなんだけど、それにしてはあまりに少なくないかと。
2~3年前のFlash全盛期の頃はそれはもう毎日といっていいほどFlashゲームが量産されていたのに、as3で作られたFlashゲームはここ1年を通しても数えるほど。


作法も似ているのでJavaな人がFlashに参入してくるとは思っていたけど、どうも業務アプリ方面ばかりでゲーム方面にはさっぱりな感じ。
そもそもゲームだと描画負荷がボトルネックになるので、as3の恩恵があまり預かれないような気がします。
ただFlashゲーム作るだけならas3じゃなくても作れるわけで、じゃあなんでas3のゲームプログラミング講座があんなにウケてるんだ?となんだかもどかしい感じです。

CS3が出たので多少状況は変わるかなあ。
 
 
もひとつ気になっていること。
主にFlashでwebサイト制作している人の中で「実はゲームが作りたいんだ」なんて思ってる人がどれくらいいるのか。
これは色んな人をつかまえて是非聞いてみたい。

2007年07月05日

EachTransformer公開

Flashの変形パネルで複数のシンボルをまとめて変形しようとすると、グループとして扱うのか妙な変形をして全く使えなかったので、ひとつひとつ処理できるような拡張機能を作りました。
具体的には各シンボルの座標を固定したまま変形を適用できるようになります。

ダウンロードはこちら

ただし、今のところFlashCS3対応です。
傾きや回転を直接変更できるプロパティがFlash8以前ではなかったので後回しにしましたが、普通に需要がありそうなのでFlash8でも動くように作り直す予定。

たとえば複数シンボルを選択した状態で縦横比 150.0%, 50.0% &傾斜 20.0°, 40.0°で変形をかけてみると

これが

こうなります


使用方法などは Extension Manager の説明欄に書いてあります。
特に難しくないので、是非使ってみてバグレポートをばw

あわせて読みたい