Unityと吉里吉里でSLGとかRPGを作るブログ

今まで作ってきたエフェクト処理を多少修正してまとめてみた。
正直、忙しい最中に作ったので、結構直した方が良い部分も多かった、やっぱ最初に設計をカチッとした方が良いんだろうな。


///エフェクトの概要
■エフェクト処理の流れ
エフェクト処理概要図
エフェクト処理の中で、クリップ方式のアニメーションを行った場合の処理。

■エフェクト概要図
エフェクト概要図
セル方式もクリッピング方式も基本的にぱらぱら漫画の要領である事には変わり無いので、呼び出される度に次の画像を表示すれば良いわけだ。
原理は以下になる。

①予め画像をエフェクト用レイヤにロードし、レイヤを非表示にしておく。
②setSizeで1コマ分のサイズに変更する。
③最初に呼び出されたら、所定位置にレイヤを移動させ表示する。
③次から呼び出される度にsetImagePosで表示領域を上にずらし下の画像が表示される様にする。
④全部のコマが表示されたらレイヤを非表示にする。

①~②は簡単、起動時にエフェクト用のレイヤを用意する。エフェクト用の画像をロードし、重ね順序などを設定する。
簡単に言うと後は表示だけ!って状態にしておく。

そして、③~④を制御するのがエフェクト情報になる。
どんなエフェクトが、何処に、秒間何コマで、何ミリ秒表示されるかをまとめたクラスを作り、それを配列で管理する。
その配列に情報があった場合は、表示したいエフェクトがあると言う状態になる。それをコンティニュアスハンドラで監視する。
あったら、その情報を元にエフェクトを表示、削除する。


///エフェクト情報
エフェクト情報とは簡単に言えば、エフェクトを表示する為の情報。
情報用のクラスを作成し、それを配列で持つ事で管理する。
基本的な情報はCSVで起動時にロードしておく、例えばその時鳴る効果音とか、どのエフェクト用レイヤを使用するのかとか。
■エフェクト情報概要図
エフェクト情報概要図
この情報の詳細は、以下を参照してほしい。

モード
どのエフェクト用レイヤを使用するか?と言う情報。これとエフェクト用レイヤを直接関連付ける方法として、エフェクト用レイヤを配列にして、こいつをその添え字と同じにしておく。

X補正
 エフェクトはレイヤにロードした画像をsetImagePosで表示領域を換える事で表現する。
 この補正値分setImagePosで指定する位置を変更する。

Y補正
 上に同じ

タイル番号1
 エフェクトの対象となるユニット番号。例えばダメージならダメージを受けているユニットになる。

タイル番号2
 上の予備みたいなもの、例えば回復役が1で、回復されるユニットが2とかにする。

カウント
 ぱらぱら漫画が何コマかを表す。下の画像例なら5が入る。
 ■画像例
 アニメ画像

ウェイト
 コンティニュアスハンドラは秒間何回か固定して稼働させる為、(実際には何ミリ秒以上立ったら処理する様にする)それ上でのウエイト。
 簡単に言うと何回に1回しかコマが変わらなくする為の設定。上の画像例なら1回に1コマ変わると秒間50コマのコンティニュアスハンドラなら、0.1秒で終了してしまう。この値を10とする事で10回に1コマしか変わらず1秒かけてアニメーションする様になる。

現在ウェイト
 上の更新用。コンティニュアスハンドラから何回呼び出されてるか管理。

単独
 エフェクト情報は配列で処理し、上から順にエフェクトを起動する。この時単独フラグがたっているエフェクトが来るまで、全て同時にエフェクトを実行する。
 例えば、ダメージの場合、攻撃エフェクトは単独で、ダメージの数は1桁目から4桁目まで同時で表示するとかの制御の為。

初期稼動ウェイト
 エフェクトが開始されるまでのウエイト。ダメージエフェクトみたいに、1桁目に遅れて2桁目が出るとかの演出の為。

終了後ウェイト
 アニメーションは終ってるけど、最後の画像を暫く表示したい時なんかに使うウェイト。
 レイヤを非表示にするのをこの値だけ待つ。

初期配置left
 画面上の何処に表示するか。上のタイル番号とこれを元にエフェクトの表示位置を決定する。

初期配置top
 上に同じ。

効果音
 エフェクトが表示された場合にならす効果音。

初回稼動フラグ
 エフェクト用レイヤなどの位置や表示(非表示からの切り替え)などは1回でいいので、そのフラグ。簡単に言うとぱらぱら漫画の1コマ目かを表す。

表示領域位置X
 setImagePosで指定する表示領域。呼び出されるたびにここを更新してアニメーションさせる。

表示領域位置Y
 上に同じ。

アニメフラグ
 エフェクトかどうかを表すフラグ。エフェクト以外の効果もエフェクト情報で管理した方が楽なんで(HPなどの増減はエフェクトに連動して変わった方が良いから)。




今回はここまで、相変らずの文章力で自分でも嫌になるが、これにかまけてゲーム作成が疎かになっては意味もない(言い訳終了)


スポンサーサイト
2009.02.27 / Top↑
Secret

TrackBackURL
→http://nekodamasi.blog79.fc2.com/tb.php/32-1ca3c6f1