ウディタ中級者になるためのその5~タイトル画面でのキーコンフィグ~
中級者になるためのとか言い出した手前、惰性で「その5」とかつけてますが別に深い意味はないです。
自分がふと思ったことを適当に書き連ねるだけなので、脈絡もなにもございません。
ということで、最近キーコンフィグをつくっていたので、キーコンフィグについて↓
自分がふと思ったことを適当に書き連ねるだけなので、脈絡もなにもございません。
ということで、最近キーコンフィグをつくっていたので、キーコンフィグについて↓
基本システムではキーコンフィグはセーブデータ内でのみ可能な仕様で、タイトル画面で一括してコンフィグを行うことはできませんでした。
しかし、こういう仕様だと新しくゲームを始めるたびにコンフィグをいじってやる必要があり、非常に手間です。
なので、ちょっと気の利いたゲームをつくる人ならきっと、タイトル画面でまとめてキーコンフィグを行うことを考えつくことでしょう。
ですが、タイトル画面でのキーコンフィグってどうやったらいいんでしょうか。
セーブデータ間で共有されるコンフィグデータをつくるので、基本システムをさわったことのある人ならおそらく「System.sav」を使うことを思いつくでしょう。
System.savとは基本システムでセーブデータの情報を保存しているセーブデータです。
確か最終セーブ位置をSystem.savに記録しておいて、ロード時に最後にセーブしたデータに初期カーソル位置を合わせる、みたいなことをやっていたような気がします。
とするならば、まず思いつくのはこんなこと。
・タイトル画面でコンフィグをする。
・コンフィグしたデータはSystem.savに記録する。
・各セーブデータへの反映はデータロード時か、あるいは並列イベントで常時System.savのコンフィグデータを読み取って、システム変数のキーコンフィグに反映させる。
ということで、自分もかのように発想してコモンを組んでみました。
が、そしたら重い重い。
コンフィグしたデータをSystem.savに記録するだけで5秒近くかかる始末です。
前にもどっかで書いたような気がしますが、ウディタではセーブデータ内の一変数に書き込む速度=丸ごとデータをセーブする速度だそうです。
というわけで、System.savへ変数書き込みを何度もやっていたら重くて重くて効率が悪いったらありません。
そこで自分はセーブデータを利用してキーコンフィグデータを保存することを諦め、別の方法をとることにしました(なんかただの日記になっているような…)。
もったいぶることもないですが、txtファイルですね。
キーコンフィグデータを文字列にして、
100
125
134
…
みたいにキー番号(数字は適当)を改行区切りで保存することにしました。一行目から決定キー、キャンセルキー、サブキーみたいな感じで。
読み込むときは上一行切り出しを使えばいいですね。
ということで、System.savの代わりにtxtファイルを使うようにしたら動作が非常に早くなりました(DBのcsv入出力でもよかったんだけど、そこらへんはお好みで)。
前にも書きましたが、文字列操作はかなり便利なコマンドなのでガンガン使ってみるといいと思います。
それから、セーブデータへの一変数の書き込みはとっても重くて効率の悪いコマンドなので、できるだけ使うのは避けたいところですね。
しかし、こういう仕様だと新しくゲームを始めるたびにコンフィグをいじってやる必要があり、非常に手間です。
なので、ちょっと気の利いたゲームをつくる人ならきっと、タイトル画面でまとめてキーコンフィグを行うことを考えつくことでしょう。
ですが、タイトル画面でのキーコンフィグってどうやったらいいんでしょうか。
セーブデータ間で共有されるコンフィグデータをつくるので、基本システムをさわったことのある人ならおそらく「System.sav」を使うことを思いつくでしょう。
System.savとは基本システムでセーブデータの情報を保存しているセーブデータです。
確か最終セーブ位置をSystem.savに記録しておいて、ロード時に最後にセーブしたデータに初期カーソル位置を合わせる、みたいなことをやっていたような気がします。
とするならば、まず思いつくのはこんなこと。
・タイトル画面でコンフィグをする。
・コンフィグしたデータはSystem.savに記録する。
・各セーブデータへの反映はデータロード時か、あるいは並列イベントで常時System.savのコンフィグデータを読み取って、システム変数のキーコンフィグに反映させる。
ということで、自分もかのように発想してコモンを組んでみました。
が、そしたら重い重い。
コンフィグしたデータをSystem.savに記録するだけで5秒近くかかる始末です。
前にもどっかで書いたような気がしますが、ウディタではセーブデータ内の一変数に書き込む速度=丸ごとデータをセーブする速度だそうです。
というわけで、System.savへ変数書き込みを何度もやっていたら重くて重くて効率が悪いったらありません。
そこで自分はセーブデータを利用してキーコンフィグデータを保存することを諦め、別の方法をとることにしました(なんかただの日記になっているような…)。
もったいぶることもないですが、txtファイルですね。
キーコンフィグデータを文字列にして、
100
125
134
…
みたいにキー番号(数字は適当)を改行区切りで保存することにしました。一行目から決定キー、キャンセルキー、サブキーみたいな感じで。
読み込むときは上一行切り出しを使えばいいですね。
ということで、System.savの代わりにtxtファイルを使うようにしたら動作が非常に早くなりました(DBのcsv入出力でもよかったんだけど、そこらへんはお好みで)。
前にも書きましたが、文字列操作はかなり便利なコマンドなのでガンガン使ってみるといいと思います。
それから、セーブデータへの一変数の書き込みはとっても重くて効率の悪いコマンドなので、できるだけ使うのは避けたいところですね。
- 関連記事
スポンサーサイト