Javaでアニメ描画ツールを作ろう


映子:「んふふふっ。あたしの独壇場ね。」
ラン:「ふんっ、えらそうに。」

戻る


 昔私がMSX用に作ったアニメ描画ツール「ACE-DRAW」をJavaで作ってみることにしました。

ACE-DRAWとは?

 以前私が構想していた、MSXでアニメを作るためのツール群のうち、輪郭だけのモノクロアニメを描くツールです。本の隅にパラパラマンガを描くような感覚で気軽にアニメを描くことができます。さらに素晴らしいことに、本のパラパラマンガの場合は前の絵が薄く透けて見えるだけですが、ACE-DRAWは次の絵も透かして見ることができるので「コマの中割り」が簡単にできます。

 ACE計画ではもう一つ、ACE-DRAWで描いた単色アニメに彩色するACE-PAINTというツールもできるはずだったのですが、そちらは日の目を見ることはありませんでした。Java版ACE-DRAWが完成して余力があったらACE-PAINTもJavaで作るかもしれません。


Java版ACE-DRAWの基本方針

・あくまでもビットマップで

 Javaには"Shape"というものがあり、これを使えば絵をすべてベクトルデータで表すこともできそうなのですが、そういう方向へは行かずMSX版と同様にビットマップで絵を表すことにします。
 ベクトルデータだと「コマの中割り」を計算で自動化できそうなので魅力的なのですが、拡大画面でドットを一個一個置いていくような描き方の絵はうまく表現できず、MSX以来そういうタイプの絵ばかり描いてきた私にはイマイチなじめません。
 またベクトルデータにした場合1枚の絵に線分が何百本とか何千本とかのオーダーになってもオールJavaのプログラムではたしてリアルタイムで再生できるのか未知数です。(試してないのでわかりません。あんがい今時のパソコンでは平気でできてしまったりして・・・)

・画像サイズ

 画像サイズは320×240ドットに固定ということにします。あまりドット数を多くしてもドット修正に時間がかかるばかりで疲れます。とくにアニメは絵の枚数が命ですから一枚の絵のドット修正に時間がかかるようでは困ります。この程度のドット数が適切でしょう。
 ただ、今のパソコンの画面は最低でも1024×768ドットというのが当たり前となりつつあり、そこで320×240ドットの画像はあまりにも小さすぎて侘しいです。ですから、作成したアニメは倍サイズで再生するような機能も付けようかと思います。

・画像データをオンメモリで扱う

 MSX版で一番辛かったのはやはりメモリでした。アニメデータ全部をオンメモリで扱えるはずなどなく、フレームを移動するたびにディスクアクセスしていました。今回のJava版は、あの頃の欲求不満を晴らすべく湯水のようにメモリを使って、オンメモリでデータを扱います。

・ファイルは独自形式

 基本的に1ドット=1ビットのビットマップで無圧縮のデータを絵の枚数ぶんだけ順番に繋げたような素朴なデータ形式にする予定です。ファイルの先頭と絵一枚一枚ごとに簡単なヘッダが付くことになると思います。それほど複雑ではないので他の画像フォーマットとの変換ツールを作るのも難しくないと思います。
 MSX版はファイル上での絵の順番と実際に再生する順番が必ずしも一致していませんでした(それを正しく扱うためにポインタ配列が付いてました)が、Java版はオンメモリでデータを扱うのでファイルに書き出す時点で順番に書きだせば済みます。


 では、実際のプログラム製作に入りましょう。いきなり完成させるのも大変なので、少しずつ段階的に作っていきます。

第1回 モノクロ2値お絵かき その1(06/11/07)

第2回 ACE−D−GENプロトタイプと、シンプルACDビュワー(07/03/04)


第3回 ACE−DRAWプロトタイプ1(07/04/22)

第4回 ACE−DRAWプロトタイプ3(07/07/15)

第5回 ACE−DRAWプロトタイプ4(07/08/04)

年寄りの回顧コーナー

 昔私はMSXという8ビットパソコンを使っていました。当時は市販ツールもあまり種類が多くなく、市販品の操作感が必ずしも自分の好みに合わなかったりすることもあり、また「ツールは自分で作るもの」というような雰囲気もかなり根強く残っていました。実際、オールBASICで作った、マウスでカーソルを動かしてLINE文で線を引いてPAINT文で塗りつぶすだけ、と言うようなツールでも結構そこそこ使い物になりました。(さすがにACE-DRAWのようなアニメツールはオールBASICでは無理で、自作のFORTHコンパイラで作りました)

 あの頃は、本当に楽しかったです。あのパソコン黎明期には「自分で作る楽しみ」が溢れていました。いまでもプログラム自作の楽しみが完全に失われたわけではなく、Javaという素晴らしい開発環境が無償で手に入るのですから、当時の雰囲気を知らない、最近になってパソコンのプログラムを勉強しはじめた人々も「自分で作る楽しみ」を体験して欲しいと思います。