S!メール

第5回 一歩進んだデコレメールの作成

今までの解説で、デコレメールの仕様や基本的な使い方については理解していただけたと思います。
今回は、テンプレートにFlash®のアニメーションを埋め込んで、デコレメールをよりリッチなものにする方法について解説します。

なお、効果音などを鳴らすSMAFオブジェクトと、アニメーションを流すFlash®のオブジェクトは、
1つのテンプレートにつき、どちらか片方しか使用できないので注意してください。
メールを開いたら音が鳴った!?
デコレメールでは、SMAF、SMFのオブジェクトを埋め込んで、短い音声や効果音を鳴らしたり、 Flash® のオブジェクトを埋め込んで、サウンド付きのアニメーションを流したりできるようになっています。

デコレメールで鳴らす音は、短い音声や効果音的なものが意図されていますから、着うたのように長い音楽を再生させることには向いていません。
ファイルサイズの制限や音質上の問題があるためです。

たとえば、声優さんの「おはよう」「おやすみ」の声や、爆発音、衝突音などの短い効果音をアニメーションにあわせて再生するなどが一般的な使用方法です。
状況に応じて異なるアニメーションを再生!
デコレメールでは、アニメーションを再生する手段として、
アニメーションGIFFlash®のいずれかを使用することができます。

アニメーションGIFは、一連の静止画を連続して再生する仕組みです。
アニメーションGIFがパラパラアニメの原理を利用した簡単なアニメーションしか再生できないのに対して、
Flash® を使用すると、本格的なオーサリングを行なって作ったアニメーションを再生することができます。
条件がそろえば、大きな手間をかけずに、PC用に作ったコンテンツを携帯用に作り直して流用できるのも魅力です。

Flash®では、ActionScriptというスクリプトを使用してプログラムを記述することができます。
たとえば、現在の時刻をプログラムで取得し、それを利用して時計のアニメーションを表示させるといったことが可能です。
あるいは、クリスマスや記念日、イベント開催までの日数をカウントダウンしていくようなテンプレートを用意するのも面白いかもしれません。
【カウントダウンするActionScript】

cur_year = fscommand2("GetDateYear") cur_month = fscommand2("GetDateMonth") cur_day = fscommand2("GetDateDay") if(cur_year>2009 || cur_month>9) { msg="終了しました!" } else if(cur_month<9) { msg="開催は9月30日です!" } else if(cur_day==30) { msg="開催おめでとう!" } else { msg="開催まであと" add ( 30 - cur_day) add "日!" }
他にも、時間を取得して昼は太陽を背景、夜は三日月を背景にしてアニメを表示するとか、
電池の残量や電波状況を取得してアニメの内容を変えるなどActionScriptの利用方法はいくらでも考えられます。
これらがアニメーションGIFでは実現不可能であることは言うまでもありません。

携帯用のActionScriptで特に有用なものは、fscommand2関数です。
下の表は、fscommand2関数で出来ることの一部を抜粋したものです。
【便利なfscommand2関数の機能】

GetBatteryLeve 現在の電池の残量を取得する
GetMaxBatteryLevel 最大の電池の残量を取得する
GetSignalLevel 現在の電波状況のレベルを取得する
GetMaxSignalLevel 最大の電波状況のレベルを取得する
GetPowerSource バッテリー電源と外部電源のいずれを使用しているかを調べる
GetVolumeLevel 現在設定されている音量を取得する
StartVibrate/StopVibrate バイブレータ機能を開始/停止する
Flash®の携帯向け軽量バージョン!
携帯で使用するFlash®は、「Flash Lite™」と言い、通常のPCのブラウザで表示するFlash®とは異なったものが使用されます。
Flash Lite™という名前の通り、PC用のFlash®ほど機能が多彩ではありませんが、携帯用にチューニングされ、アニメーションを制作するには十分なものとなっています。

Flash Lite™は、携帯会社や機種を問わず同一のファイル形式が使用されています。
ただし、ActionScriptやその他の細かな仕様については、携帯会社によって異なる部分があります。各携帯会社で共通する仕様の機能だけで作成すれば、Flash Lite™が埋め込まれたデコレメールを、SoftBankの携帯から他社の携帯に送っても、そのまま表示させることが可能です。

前述のように、Flash Lite™を使用すれば、アニメーションだけでなく、ActionScriptによるプログラムを駆使して、さまざまなことが実現可能ですが、デコレメールのFlash Lite™で出来るのは、自動で絵を動かしたり、音を再生したりすることだけです。通信を行なったり入力を受け付けたりするようなコンテンツを作っても意味がありませんので注意してください。

Flash Lite™でアニメーションを作るには、アドビシステムズ社のFlash MX 2004以降のProfessional版を使用します。(Flash Lite™の制作の環境を整えるためにアップデートが必要なバージョンもあります。2009年9月現在の最新版は、「Adobe Flash CS4 Professional」です。)
ちなみに、パブリッシュ設定でFlash4形式のSWFファイルを書き出せるバージョンであれば、Flash Lite™と互換性のあるファイルを書き出すことができます。(ただし、一部使用できないActionScriptがあるので注意してください。)
また、SoftBankの携帯では動作保証されていませんが、ParaFla! や Suzuka など、Flash Lite™の形式のファイルを扱えるフリーソフトもあります。

なお、Flash Lite™にも幾つかのバージョンがあり、携帯によって対応しているバージョンが違います。Flash Lite™のバージョンにより、使用できるActionScriptが異なりますので注意してください。

【SoftBank用のファイルを新規作成する】
Flash®では、素材となる図形やイラストの動きを時間の流れに沿って定義し、アニメーションを組み立てていきます。

【ライブラリには素材を登録する】
ここでは、Flash Litetrade;の制作について詳しくは説明できませんが、概略だけ説明しておきます。
あらかじめ、画像など、使用する素材をライブラリに登録しておきます。

タイムラインを構成する一つ一つのフレームは、アニメーションの1コマを表しています。
ライブラリからステージ上に素材を配置し、フレームを移動しながら、アニメーションの動きをつくっていきます。
モーション・トゥイーンという機能を使用すると、素材の移動、拡大、縮小などの動きを簡単に作成することができます。

Flash Litetrade;では、アニメーションGIFのようにコマ数分の画像を用意する必要はありません。
フレームが違ってもライブラリに登録された素材が共通して使用されるため、コマ数が多くなっても、
最終的なファイルサイズはそれほど大きくなりません。
また、素材をFlashreg;内の作画ツールで作れば、ベクター形式でデータが保持されるため、
アニメーションGIFのように全てをラスター形式のデータで持つよりもサイズが小さくてすみます。

さらに、ActionScriptによって、繰り返しなど、フレームの移動を制御できますから、
これによってもデータを小さく抑えることができます。つまり、ファイルサイズという点に関しては、
Flash Litetrade;のほうがアニメーションGIFよりも圧倒的に優位と言えます。