2010-03-08 (月)
■ JavaScript + Canvas で作られた さめがめ
JavaScript と HTML5 Canvas を使って作られたゲームを紹介します。 Renaudeau Gaetan さんが作成した「さめがめ」です。
ただ、Canvas を使っている関係上、Internet Explorer では遊ぶことができません。 そこで FlashCanvas ライブラリを使って、IE でも動くように修正を加えてみました。 FlashCanvas によるエミュレーションでどのくらい動くのか、ぜひ IE で試してみて下さい。
Renaudeau さんのオリジナルの game.js が GPL ライセンスなので、 修正版の game.js も GPL ライセンスに従って扱うようお願いします。
最初 Renaudeau さんに、「IE でも動くようにするパッチを作ったので、良かったら使って下さい」というメールを送ったのですが、それは断られました。 なんでも、「IE も Flash も嫌い。」なのだそうで。
「じゃあ、私のページに IE 対応版を掲載してもいいですか?」と尋ねたところ、 「Of course, you have my permission to use my game under the GPL licence. Don't forget to quote the source.」 という返事をいただけました。
と、このような経緯がありますので、 上記の Internet Explorer 対応版さめがめを自分のページに設置したりする場合は、 Renaudeau Gaetan さんのページで公開されているものがオリジナル、ということが分かるようにしておいて下さい。
2010-02-28 (日)
■ FlashCanvas Pro 1.1 を公開しました
FlashCanvas Pro とは?
FlashCanvas は、HTML5 Canvas の機能を Internet Explorer でも使えるようにする JavaScript ライブラリです。 FlashCanvas Pro は、その高機能版です。
FlashCanvas Pro 1.0 にはいくつかの問題点がありましたが、それらの修正を行いました。 他にも改良を加えて使いやすくなっていると思いますので、いろいろと試してみて下さい。
FlashCanvas Pro 1.0 からの変更点
- drawImage() のバグの修正
- ExplorerCanvas の draw-image-flip.html のサンプルが正常に表示されなかったのを修正
- 指定したのと違う順番で、画像が表示されることがあったのを修正
- stroke() の高速化
- Mozilla Developer Center の 5_2_canvas_translate.html や 5_4_canvas_scale.html のサンプルが瞬時に表示されるように
- fillText(), strokeText() の高速化
- drawImage() の高速化
- ExplorerCanvas の example3.html や resizing.html のサンプルの表示がスムーズに
- CPU time の消費を軽減
- toDataURL() を JPEG フォーマットにも対応
- 右クリックメニューに、「名前を付けて画像を保存」の機能を追加
- クリックとダブルクリックのイベントが Canvas に伝わるように修正
- ライセンスのあいまいな部分を修正
サンプルのページについてのお詫び
上でいくつか張ってあるリンクもそうなのですが、 以前、flashcanvas.net のデモのページを訪れた方は、 サンプルが正常に表示されない可能性があります。
実は、Apache の mod_expires モジュールの設定にミスがありました。 そのため、しばらくの間、古い flashcanvas.js や flash10canvas.swf のキャッシュが使われてしまうと思います。 その場合は、アーカイブファイルをダウンロードし、その中に同梱されているサンプルの方をご覧下さい。 ご面倒をおかけしますが、よろしくお願いします。
ダウンロード
2010-02-24 (水)
■ FlashCanvas Pro のライセンスの変更について
ライセンスの変更点
FlashCanvas Pro のライセンスについて、いくつかご意見を頂きました。 それらの意見を参考に、ライセンスの文章に次のような変更を加えようと思います。
- sublicense, and/or sell copies of the Software の部分を削除する
- free of charge の部分を、非商用利用の場合に限定する
修正後のライセンスは、次のようになります。
FlashCanvas Pro Copyright (c) 2009 Tim Cameron Ryan Copyright (c) 2009-2010 Shinya Muramatsu Permission is hereby granted, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. The Software is available free of charge for non-profit use. Any person who uses the Software for commercial purposes is subject to the following conditions: 1. He/She must pay a licensing fee to the licensor. 2. The licensee cannot sell copies of the Software or any derivative works.
誤解されると困るので書いておきますが、このライセンスは MIT ライセンスとは違います。 ただし、MIT ライセンスを少し厳しくしたもの、と考えると理解しやすいと思います。
なぜ MIT ライセンスをベースにするのか?
MIT ライセンスは非常に制限のゆるいライセンスで、私も好んで使っています。 基本的には自由に使って構いません、という意図を伝えるのに適したライセンスだと思います。
また、私にとって、MIT ライセンスは非常に分かりやすいライセンスです。 他のライセンスの文章もいろいろ読んでみましたが、はっきり言って、さっぱり意味が分かりませんでした。 何を言っているのか分からないようなライセンスを、他人に押し付けることはしたくありません。
Creative Commons の非商用のライセンスにしてはどうか?
私は、Creative Commons のことを、ソフトウェアに対しては使いづらいライセンスだと思っていたのですが、 改めて調べてみたところ、こんな説明を見つけました。
やはり、Creative Commons にするのは避けた方が良さそうです。
既存の他のライセンスを利用した方が良いのでは?
ライセンスに関する私の希望は上に書いた通りなのですが、 どうも、それにぴったりと合うライセンスが見つけられませんでした。 結局、私の言いたいことを伝えるためには、 ライセンスを1から書くか、既存のライセンスに修正を加えるしかないと思います。
素人がライセンスをいじっているので、抜け穴があるかもしれませんが、 それならそれで、徐々にライセンスを修正していけばいいと思っています。
繰り返しになりますが、私は、「完璧だが意味の分からないライセンス」より、 「不完全かもしれないが言いたいことは分かるライセンス」にしたいのです。
2010-02-22 (月)
■ FlashCanvas Pro 1.1beta2 を公開
FlashCanvas Pro 1.0 は drawImage() メソッドに不具合があったのですが、それをほぼ修正できました。 まだ他の部分にも修正を加える予定なのでベータ版扱いにしますが、 興味のある方は試してみて下さい。
- FlashCanvas ウェブページ
Download FlashCanvas Pro 1.1beta2Download FlashCanvas Pro 1.1beta3
FlashCanvas Pro 1.0 からの変更点:
- fillText(), strokeText() の高速化
- drawImage() の高速化
- ExplorerCanvas の draw-image-flip.html のサンプルが正常に表示されなかったのを修正
- 指定したのと違う順番で、画像が表示されることがあったのを修正
- toDataURL() を JPEG フォーマットにも対応
- 右クリックメニューに、"Save Image As..." の機能を追加
- CPU time の消費を軽減 (1.1beta3)
(2010/03/01 追記)
FlashCanvas Pro 1.1 をリリースしましたので、ベータ版のファイルは削除しました。
2010-02-17 (水)
■ FlashCanvas Pro 公開のお知らせ 補足
昨日のお知らせでは書かなかった点について。
一部有料である理由について
最初に書いておきますが、そんなに儲けるつもりもないですし、儲からないだろうと思っています。 そもそも儲けることが目的なら、FlashCanvas のソースコードをオープンソースで公開したりしないです。
大体、HTML5 Canvas を商用目的で使う人なんて、現状ではほとんどいないと思いますし、 多くの場合は、ExplorerCanvas やオープンソース版 FlashCanvas で用が足りてしまうはずです。
と、こう書くと、「じゃあ、それなら全て無料にすればいいじゃん」と言われそうですが、 FlashCanvas の開発にはそれなりに労力を費やしていますので、 その分を回収できそうなところからは回収しておきたい、ということです。
でも、例えば、「FlashCanvas Pro のせいで、みんなが Canvas を避けて Flash に流れ始めた」 という変な話にでもなってきたら、その時はまた考え直します。
uupaa.js について
最近、uupaa.js も Flash を用いた描画をサポートしようとしているようです。 そのうちに、FlashCanvas と同等かそれ以上の機能を持つようになりそうです。
ただし、FlashCanvas はライブラリであるのに対し、 uupaa.js はフレームワークを目指しているようですので、 その違いは意識しておいた方が良いと思います。

Before...
# revulo [> ・髪飾りの画像([2]と同じですが、このファイルそのものを読んでいるわけではありません)の下2ドットが欠ける。 ..]
# えむけい [ライセンスの件は了解しました。 Beta 3で、CPU消費の問題が解決したことを確認しました。ありがとうございます..]
# えむけい [仮想マシンに入れたWindows 7ではやはり発生しなかったので、どうやら私の環境固有の問題のようです。お騒がせしま..]