![]()
2010.05.21 CHIKATHREESIX
2010.04.16 KNOCKKNOCK
2010.03.08 TAKAIW
2010.02.01 CHIKATHREESIX
2010.01.28 TAKAIW
![]()
![]()
KNOCKKNOCK (10件)小遣い2万円のフラッシュデベロッパー。
帰りが遅いのにキレる嫁をだましだまし制作中・・・。
TAKAIW (13件)フラッシュデベロッパー。遊びでゲームを作るのも好きです。外見に似合わないイラストを描くのも好きです。とにかく作るのが好きです。
CHIKATHREESIX (8件)メタル界のフラッシュデベロッパー。またある時はメタルギタリスト。オーサリング中もヘッドバンギングは絶やさない。
YANBOU (6件)犬と猫で、家が毎日運動会のフラッシュデベロッパー。
ビールから発泡酒へ変更で節約中。
AKUZE (2件)2003年からユナイティアに寄生しているフラッシュデベロッパー。
シルクドソレイユとカナダが好き。
DECO-DEKAI (1件)ビートダウンパートでご飯何杯も食べられます。
ハードコア・テクニカルディレクターを目指して日々精進。
![]()
HOME > U/A自動化倶楽部 Vol3 基本Flashオーサリングの自動化 Progression用
KnockKnockです。
ここ数カ月忙しさにかまけて更新してませんでしたが、ようやく落ち着きましたんで、ぼちぼち記事を載せていきます。
さて、これまでPhotoShopから各画像の書き出しと、クラスの作成、Flashオーサリングといった自動化の流れを考えてきましたが、今回の自動化は最近、シーン遷移のライブラリとして普及してきているProgressionを利用した自動化です。大まかな流れは変わりませんが、クラス生成時に「Progression用のクラスを書き出してしまおう」ということです。これまでは自動化後はシーン遷移等のASのコーディングを行わなければなりませんでしたが、Progression用のクラスとして書き出してしまうことで、簡単なコンテンツでしたら一切のコーディングを必要としなくなります。こうして大幅に省略した時間をクリエイティブに利用することができます。
さっそく方法をご紹介と言いたいのですが、まずはProgressionの概念に関して最低限、シーンとキャストに関して知っておく必要があります。シーンとはその名のとおりシーン遷移のシーンです。ただし表示の実態はありません。キャストとは関連付けられたシーンで表示させたいシンボルの設定のことを言います。つまりシーンを変更すると、そのシーンに関連付けられたキャストの表示がそれぞれ制御されることになります。これから紹介する自動化の最初のステップにPhotoShopのレイヤーを整理する作業がありますが、シーンとキャストの関係を考えながら整理していく必要があります。
knockknock091013.lzh基本部分オーサリング自動化_Progression用.jsxbin : PhotoShopJS
基本部分オーサリング自動化_Progression用.mxp : Flash拡張ファイル(ダブルクリックで拡張可能)
※今回の自動化実行環境はCS4以降となります。
では、その自動化方法の説明です。動作確認状況はCS3、CS4のPhotoShopとFlashです。
デザイン済みのPSDファイルを、自動化用に整理します。
まずシーンをPhotoShopのレイヤーセットで定義していきます。シーンとして必ず必要なものとしてインデックスシーンとなります。ローディング後、一番はじめに表示されるシーンです。このインデックスシーンとして最上位の階層にレイヤーセットを作成します。レイヤー名は何でも構いませんが接頭に必ず「SC_」をつけてください。
インデックスレイヤーセットの直下に第二階層となる下層シーンレイヤーセットを作成します。さらに下層がある場合、各下層シーンレイヤーセットの直下に同じようにレイヤーセットを作成し、レイヤーセットの入れ子構造を作ります。
注意点は以下の通りです。
これでシーンの定義は完了です。
次にシーンの登場人物ともいえるキャストを定義します。各シーンレイヤーセットの直下にシーン名と同一名でそのシーンに紐づくキャストとして、レイヤーセットを作成します。シーン遷移の際、行き先がそのシーンの場合だった時に表示されるキャストです。つまりProgression用に書き出されるクラスでは_onInitでAddChildされるキャストです。各シーンに紐ずくキャストは複数作成することができます。同一シーンレイヤーセット内で一意の名前を付けてください。シーン遷移の際、行き先がそのシーンもしくは、子シーン以下の場合に表示されるキャストです。
ここでの注意点としては以下の通りです。
キャストが定義されました。
シーン遷移のためのキャストボタンを定義します。各シーンレイヤーセットの直下または、キャストレイヤーセットに飛び先シーン名と同一名でキャストボタンとして、レイヤーセットを作成します。キャストボタンレイヤーセット名がそのキャストボタンのIDとなります。レイヤー名にそれぞれ「over」「out」を設定するとロールオーバー、ロールアウトのアニメーションが設定されます。
ここでの注意点としては以下の通りです。
キャスト、キャストボタンの表示要素を定義します。キャストレイヤーセットまたは、キャストレイヤーボタン直下に静的配置するMovieClipレイヤーを作成してください。またキャストにキャストを入れ子にすることもできます。その際はキャストレイヤーセット直下にキャストレイヤーセットを作成してください。
ここでの注意点は以下の通りです。
最後に1レイヤーセットが1シーンおよび1シーン、1レイヤーが1MovieClipとなりますので、それ以外のレイヤー(ガイドやマスクなども含む)は削除、および統合してください。
例)
SC_index
--MC_index
----image
--MC_navigation
----BT_content0
------over
------out
----BT_content1
------over
------out
--SC_content0
----MC_content0
--------image
----MC_item
--------image
--SC_content1
----MC_content1
--------image
----MC_item
--------image
--MC_bg
----image
これで自動化のためのPhotoShopレイヤー整理は完了です。
ステップ1で整理したPhotoShopを開いた状態で、PhotoShopバッチ処理用に作成したJavaScriptを実行しします。バッチ処理でPNGデータ、クラスファイル、レイアウト情報テキストを書き出します。PhotoShopメニューのファイル>スクリプト>参照で「基本部分オーサリング自動化_Progression用.jsx」を選択、実行してください。ちなみに「C:\Program Files\Adobe\Adobe Photoshop CS4\Presets\Scripts」にjsxファイルを置いておくとスクリプトメニューに登録され、直接実行することもできます。「オーサリング自動化 Progression用」ダイアログが開きます。
PSDと同一階層にPSDと同一名のディレクトリを作成し、その中にmaterialsディレクトリ(PNGファイルとレイアウト情報テキストファイル)とclassesディレクトリ(クラスファイル)を作成します。
PhotoShopで書き出したデータをもとにFlashの自動化用JSFLでオーサリングを自動化します。
まずは以下のファイルをC:\Documents and Settings\ユーザー名\Local Settings\Application Data\Adobe\Flash CS4\ja\Configuration\Commandsに配置します。
Flashを起動して元となるflaファイルを新規作成し、保存します。
Flashメニューのコマンド>基本部分オーサリング自動化_Progression用を選択、実行します。
「基本部分オーサリング自動化」ダイアログが開きます。
「OK」ボタンで「layout.textを選択してください」ダイアログが開きますので、layout.textを選択してください。書き出したファイルとの位置関係を把握させるために選択が必要となります。

選択後、自動化処理が開始されます。アイテム数によってはしばらく処理に時間がかかりますが、処理が完了するまでお待ちください。
自動化処理完了後、ステージサイズを調整し、ドキュメントクラスを設定します。ドキュメントクラスはPhotoShopから書き出したclasses/proj/プロジェクト名/display/インデックスシーン名/インデックスシーン名.asを指定してください。記入例としては「proj.プロジェクト名.display.インデックスシーン名.インデックスシーン名」になります。次に「パブリッシュ設定」ダイアログを開いてを行います。「リソースパス」をPhotoShopより自動で書き出されたclassesに設定します。ここで重要なのですが「ステージのインスタンスを自動宣言」のチェックを外してください。基本的に静的配置されたオブジェクトはクラス上に自動ですべて宣言されます。
設定が完了したらパブリッシュですが、パブリッシュ前に、Progressionライブラリをclasses以下に配置してください。今回自動で書き出したクラスはProgressionを使用していますので、Progressionライブラリがないとエラーを起こしてしまいます。パブリッシュしてシーン遷移が問題なく行われていれば完了です。
以上がProgressionを使用したPhotoShop書き出しと Flashオーサリングの自動化の流れです。Progressionのコンポーネントベースで開発をすればもちろんスクリプトを記述する必要はありませんが、クラスベースで開発した場合そうはいきません。しかし実際はProgressionはクラスベースの開発に利用されるケースがほとんどです。
今回はProgressionのクラスベースの開発を自動化しました。もちろんこれでサイトが完成するというわけではありません。トランジションや各アニメーションの調整をする必要はありますが、それまでの工数を大幅に削減することができるのです。
是非ご利用いただければと思います。

KNOCKKNOCK小遣い2万円のフラッシュデベロッパー。
帰りが遅いのにキレる嫁をだましだまし制作中・・・。