LoginSignup
0
0

More than 1 year has passed since last update.

ウディタで連番画像をつかったアニメーションを再生する方法

Posted at

という記事を書こうと思ったのですが...

ウディタ2.26で「動画再生機能」なるものが実装されたのですね。素敵です。
というわけで、この記事は10年くらい前のウディタ(2.0xとか)を使っていた筆者の、昔話を語る記事になります。
単に動画が再生したい方は、是非この素敵な機能を使ってみてください。

とはいえ

何らかの要請で連番画像を連続で表示するような機会はあるかもしれませんし、
なによりウディタで連番画像を表示する機能を実装すると、ウディタの文字列の取り扱いに結構詳しくなれると思いますので、
われこそはと思われる方はこの記事とにらめっこしつつ是非自前で実装をしてみてください。

さぁやっていくぞ

なにはともあれまずは全体像を把握するため、まずはコモンイベントの全体像をスクリーンショットしました。
私がだいぶ昔に実装したもので、実際に発売されているゲームで使用したイベントを、Qiita向けにいろいろと整形したものです。
image.png
このままだとよくわからないと思うので、機能ごとに色分けしてみました。
image.png
上から、
1.初期化処理(黄)
2.画像パスの作成処理(緑)
3.ピクチャの表示処理(青)
4.ループ終了処理(赤)
5.アニメーション終了処理(オレンジ)
の流れになっています。
それぞれ順に説明していきますよ。
ここまでですべてを理解できた方は、これ以上この記事から得られることは無いかとおもいますので、
「いいね」だけ押してからブラウザバックでよろしくお願いします・w・

初期化処理

コモンイベントではセルフ変数は内容が破棄されるため、あえて初期化を行う必要は無いといえば無いのですが、
通常イベントではセルフ変数は保存されるので(なのでゲームのセーブができる)どちらでも初期化を行う癖を付けておいたほうが良いように思います。
また、コモンイベントでは変数にニックネームを付けることができ、ここではCSelf0にindexというニックネームをつけています。
セルフ変数使用状況ボタンを押下することでセルフ変数に名前を付けることができますので、コモンイベントが複雑化してきたら、コモンイベントを見返すことになる未来の自分のために、ぜひ使ってあげてください。
image.png
CSelf0にindexという名前をつけてあげたので、今回はCSelf0にループ回数を格納してあげることにします。
つまり、CSelf0が0であれば0枚目、CSelf0が100であれば100枚目の画像を表示することができればいいわけです。

画像パスの作成処理

通常イベントでは文字列をセルフ変数に格納することはできませんが、コモンイベントでは文字列をセルフ変数に格納することができます。
文字列が格納可能なセルフ変数はCSelf5~CSelf9までの5個です。
今回は連番画像をlogo_0000.pngからlogo_0205.pngまで用意しましたので、
CSelf0が0ならlogo_0000.png、CSelf0が100ならlogo_0100.pngを表示すればいいことがわかります。
文字列入力ボックスでコモンセルフ変数を埋め込みたければ、\cself[number]という特殊な文字列を使うことで実現できます。
image.png
このやり方で、CSelf0が3なら、000\cself[0]と書くことで、0003になってくれるわけです。
ただし、単純にこのままだとCSelf0が333になったときに000\cself[0]だと文字列が000333になってしまうので、
桁数に応じで000\cself[0],00\cself[0],0\cself[0]となるように分岐を行っています。

ピクチャの表示処理

ピクチャの表示はファイルパスを通じて行うことができます。
今回はCSelf5にパスを格納していますので、ピクチャ表示機能でファイルパスにCSelf5の文字列を代入すればいいわけです。
先程は文字列入力ボックスで\cself[number]という特殊な文字列を使ってコモンセルフ変数の内容を埋め込みましたが、
数値入力ボックスではそれとは別の1,600,000+numberという特殊な数値を使ってコモンセルフ変数の内容を埋め込みます。
(どの入力欄が文字列入力ボックスで、どの入力欄が数値入力ボックスなのかは・・・あんまり区別はよくわかりません!)
image.png
今回CSelf5にパスが入っていますので、1,600,000+5=1,600,005をファイル欄に入力するわけです。
これで変数に格納したパスを用いた画像の表示ができました。

その後はアニメーションをするために1フレーム待ってあげて(待たないと、同一フレーム内にすべての画像が表示されてしまいますよ)最後の画像が表示されたらループを抜けるようにしてあげた後、ピクチャの表示を終了して連番画像を用いたアニメーションの再生は完了です!

おわりに

連番画像をつかったアニメーションを実装しつつ、ちょっと不思議なウディタの文字列の取り扱いや特殊文字・特殊な数値の話でした。
もっと特殊文字、特殊な数値に興味がある方は、こちらも是非ご覧くださいませ。
特殊文字 一覧
変数呼び出し値 一覧

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0