Flashのスキルマップ 〜合言葉はD・P・I〜

最近本業が忙しくて中々日記を更新出来ませんでしたが、今日はちょっとした考察を。
今日は、どうしてFlashは習得が難しいと言われるのかを考えてみました。

結論から言ってしまうと、Flashで何かを作ろうとすると、題名にある通り必ず、

DはDesign、
PはProgramming、
IはInterface
の三つの要素が必要だからです。
それでは、一つずつ解説していきましょう。

Design(デザイン)について
一口にデザインと言っても、紙とWebでは覚えなければいけない事が全く違うのと同様、
一般的なHTMLベースのWebとFlashもまた、覚える事が全く違います。
Flashにおけるデザインとは、Webでのデザイン知識の上に、「動くデザイン」の手法を覚える必要があります。

例えば綺麗なテキストの出し方や、スムーズな画面遷移の仕方など、次の動きを想定しながら色々な事をくみ上げていく必要があります。
これらの知識は、HTML+CSSのスキームでは全く習得機会がありません。
また、一般的なFlash書籍の場合、ベクター描画による絵の描き方や、基本的なモーショントゥイーンの手法は記載されていますが、どう動かせば美しく表現できるか、という事にはあまり書面のスペースが割かれていません。

この部分は、二分程度のPV動画を作ると基礎的な事が身につきます。
出来れば音楽に合わせたPVを作るより良いと思います。
ためしに、お気に入りのPV系Flashアニメを自分で模写作成するのがいいのではないでしょうか。
PVでの演出をフレーム単位で追いかけていくと、どういう風にテキストを見せて、どのように画面切り替える演出をしているのかが判り、再現しようとする事で少しずつ身についていきます。
ここら辺でFlashには折れない心が必要だという事に気が付くはずですが、この作業を行うことによって耐性もバッチリつきます。

Programming(プログラミング)について
Flashにおけるプログラミングというのは、若干厄介です。
というのも、同じActionScriptでも覚えた時期とかによって全然言語が違うからです。

ActionScript1.0
FlashPlayer4とかの、Flash黎明期の時代の仕様。
現在の主流はAS2.0なので、PC上ではAS1.0だけで構成されたガッツリプログラムを見る機会は余り無いが、どっこい携帯サイトはFlashLite1.1でバリバリの現役の仕様。
AS2.0とはシンタックスの記述方法から違うので、AS2.0出来るからAS1.0も余裕、という話ではない。

ActionScript2.0
FlashPlayer6位から、現在に至るまでのメインストリーム。
AS3.0が登場したとは言え、普通のアニメーションやちょっとしたプログラム(タブの切り替えとか)など、現在普通に使われるFlashでやりたいことは十分にまかなえる仕様。
当分はこいつの天下が続く。

ActionScript3.0
昨年末あたりにデビューした新仕様。凄いことは凄いのだけども、その言語仕様はJavaの思想を色濃く反映し、AS2.0の即殺性がほぼ無くなったと同時に敷居がめちゃくちゃ高くなり、習得を断念し心を折られたAS2.0使いの怨嗟の声が聞こえてきそうな、今までFlash使ってた人は涙目の仕様。
一方Java使いはすんなりと入れる仕様言語ではあるが、Flash独特の概念に涙目との話もよく聞き、結局誰が得するんだコレという感じ。
勿論長期的に考えると発達していくのはAS3.0なので、追いかけなくてはいけなさそうなのだけれども、と皆で足踏みしている感じ。

で、じゃぁどこから学べばいいのかという事で考えると、結構難しい所です。
最近はAS3.0も参考書の数が非常に増えてきたので、学習しやすい環境ではありますが、発注者の立場からしても、AS3.0でFlash製作をお願いする事はありませんので、仕事レベルで考えるとAS2.0が使えないとFlasherとしては認められないような気もします。
携帯がAS2.0に対応するのは時間の問題だ、という意見に同意出来るのであれば、とりあえずAS2.0を学習し、こなれてきたらAS3.0を学習するのが効率的かと思います。
その際、AS2.0からイベントリスナー方式でイベントを捌いておくと、後で幸せになれると思います。

オススメの学習方法としては、とりあえずXMLデータを読み込む事で更新性を担保したフルフラッシュサイトを作るのがいいんじゃないでしょうか。
Flashでブログを作るのも勉強になりますね。
ボタンやレイヤー、XMLのパースと配列の扱い等々、ここら辺で基本的なことは何となく習得できると思います。

Interface(インターフェース)について
インターフェースと一口に言っても色々とありますが、主にはユーザーインターフェースと、ソフトウェアインターフェースの二つに分ける事が出来ると思います。
ユーザーインターフェースについては、これは習うより慣れた方が早いかも知れません。
手っ取り早い学習方法としては、最近流行っているゲームを適当にこなすのが意外に早道かと思います。
特にRPGなんかがいいと思うんですが、結構とんでもない情報量を綺麗に捌いている事が判ると思います。特に、携帯世代に関してはこういったインターフェースに常時接している事には留意する必要があると思います。

ソフトウェアインターフェース、といっていいのかはよく判りませんが、外部サーバーと何かやり取りをする際は、Flash以外の知識が必要です。場合によってはサーバーを立てる知識も必要になってきますが、サーバーやDBの扱い、サーバーサイド言語なんかに親しんで置くと、色々なアプリケーションを開発できるようになります。
APIの開発なんかが出来ると、とても理想的なんじゃないでしょうか。

手っ取り早い学習方法としては、Flash上で動作するような掲示板やチャットを作ってみるのがいいかも知れません。
サーバーとFlash間でのデータのやり取りをどのようにするのかを考えながら勉強すると、それなりに知識はつくと思います。


書いていて思いますが、こんな事全部出来る人ってそんなにいないと思います。
そこら辺がFlashエンジニア/Flasherが重宝される所以でもあるとは思うんですが。