【Unity】ウディタ・RPGツクール風 簡易アニメーションスクリプト紹介
こんな悩みをお持ちの方向け
Animation・Animator
をいちいち作成・設定するのがだるい- 設定をインスペクター上だけで完結させたい(色んなファイルやウインドウを操作しなくてもいいようにしたい)
シンプルなパラパラアニメの実装が意外と面倒
アニメーションの遷移制御やフレーム単位の細かな設定を行う場合、Unityのアニメーションは非常に優秀だと思います。
一方で、ウディタやRPGツクールでお馴染み、一枚アニメーション画像を分割してパラパラマンガのように表示したいだけの場合、やりたいことの割に結構手間がかかってめんどいっす。
<必要な手順>
Animation
ファイルの作成- オブジェクトに
Animator
コンポーネントを追加 Animator
コンポーネントにAnimation
を設定Animation
の設定・変更はAnimationウインドウで行う
いちおうSpriteEditor
で分割したファイルをまとめてシーンビューに置くと、自動でAnimation
作ってくれたりはするんですが、複数ウインドウを操作しないと設定・変更できないのがやっぱりネック。
という訳で、
- オブジェクトにアタッチすれば、
- あとはすべてインスペクター上だけで設定できる
そんなウディタ・RPGツクール風のスクリプトを作ってみました。
実行例
Sprite
オブジェクトに、スクリプトWoditaLikeAnimator
を設定します。
(UIならImage
オブジェクトにスクリプトWoditaLikeUIAnimator
を設定)
Texture2D
という項目に、実行したいアニメーション画像を設定します。
(今回はぴぽや様からお借りした素材を使わせてもらいます)
あとは、
SplitWidthとHeight
:アニメーション画像を分割する縦サイズ・横サイズIntervalSeconds
:分割した画像の表示時間(秒)Start
とEndPattern
:分割したパターンの何番目から何番目までを表示するか(EndPattern
は0を設定しておくと自動で最大パターン数を設定)
らへんをお好みで設定します。
今回は800×600に分割した画像の1~15パターンを、0.1秒ずつループしながらアニメーションする設定にしてみました(今回はループさせたいので、16パターン目の空画像を除外)。
実行結果はこんな感じです。
メリット・デメリット
処理負荷の観点から、弾幕シューティングやアクションで多用するのにはたぶん不向き。RPGのターン制バトル演出やイベント、ADVのノベルパートなど、比較的動作の軽量な場面で使う分には便利かなと思います。
また、プログラマーであればDoTween
を使った方が柔軟だと思うので、スクリプトを直接いじるのが大変な初心者さんやデザイナーさん向け。
詳細は下記の通り。
メリット
- スプライトエディターで分割しなくてもスクリプト側で自動分割してくれる
- 設定がインスペクター上だけで完結する
- 再生間隔や開始・終了パターン、往復設定を手軽に切り替えられる
デメリット
- スクリプト側で起動時に画像分割処理を行っているので、動作負荷は高め
- パターン毎に切り替えフレームを個別設定したり、アニメーションしながら表示位置を変更するなどの細かい制御は不可
導入手順
下記フォルダのパッケージをインポートしてください。
あとの手順は先程の実行例やReadMe参照。
設定項目解説
ReadMeにも書いてありますが、いちおうこっちにも載せておきます。
IntervalSeconds
以降の項目はすべてゲーム再生中でも変更可能なので、実際に動かしてみながら最適な設定を模索するのがオススメです。
項目名 | 設定内容 |
---|---|
Texture2D | アニメーションの画像ファイルを設定 |
Pixcel Per Unit | 1ユニットのピクセル数(テクスチャと同じ値推奨) |
Pivot | 画像の表示起点をどこにするか。0.5が中心 |
SplitWidth | テクスチャ画像を分割する横幅 |
SplitHeight | テクスチャ画像を分割する縦幅 |
Interval Seconds | パターンの切替秒数 |
Start Pattern | アニメーションの開始パターン番号(最小1) |
End Pattern | アニメーションの終了パターン番号。 0を設定しておくと、自動で最大パターンが設定されます |
Loop | アニメーションをループさせるかどうか |
Round Trip | アニメーションを往復させるかどうか |
DestroyIfCompleted | アニメーション完了時にオブジェクトを破棄するかどうか ※Loop時は絶対破棄されないので注意 |
WoditaLikeって?
「Wolf RPG Editor(通称ウディタ)」というゲーム開発ツール風ということです。
もともとウディタ出身の自分としては、簡単なアニメーションはウディタみたいに1画面でぱぱっと設定できたら楽なのになーと思っていたので、それっぽい構成およびネーミングにしてみました。
同梱素材について
ぴぽや様の素材をサンプルとして活用しました(二次配布OKを確認済)。
ありがとうございました!