魔術師の巣窟(仮)
趣味のゲーム製作サイトです。 そのうちHPを作ると思いますので、ここは仮住まいです。
スポンサーサイト
上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。
データベース解説 その5 ~そして伝説へ~(ォィ
さて、データベース解説、今回で終了です。いかがだったでしょうか? 他の講座で語られなかった部分を補完する形で書いてみようと思ったのですが、なかなか難しくて苦労しました。

それでは記事は追記からどうぞ

・可変データベース

ここまで、ユーザーデータベースについての解説を続けてきました。しかし、もうすでに気づいていらっしゃる方もいるかもしれませんが、ユーザーDBには、イベントコマンドで値を代入することができません。読み取り専用の変数なのです。
しかし、RPGなら、主人公のステータスなどはどんどん変化していきます。それなのにDBに書き込みができないとなると、「全く使えないじゃねーか」という話になってしまいます。
そこで、可変データベースを扱います。
だったら可変DBだけでも十分じゃないかと思う方もいるかもしれません。しかし、注意したいのは、可変データベースの中身は、丸ごとセーブデータに書き込まれるということです。全てのデータを可変DBに入れておくと、セーブデータのサイズが恐ろしいことになります。まあ最近の記憶デバイスは容量が大きいので大丈夫と言えば大丈夫なのですが、とりあえずやたらとサイズが大きいのはスマートじゃないよって事で一つ。
で、可変データベースへの値の代入方法です。
基本的には先ほどの読み込みと同じで、"可変DB"のボタンを押した後に"DBに代入↑"のボタンを押して同じように設定すれば、先ほどと逆方向に値が代入されます。今回は、変数を指定する以外にも数値や文字列を直接代入することも可能なので、活用してみてください。

・システムデータベース

ユーザー・可変と説明してきましたが、最後にシステムデータベースが残っています。
しかしこれについてはそれほど多く語る必要はないでしょう。
まず、システムDBとは何かと言うと、ウディタがサポートしている機能に必要なデータを格納する場所です。
ゲーム中での値の扱い方は、ユーザーDBと全く同じ、読み取り専用です。
システムが使用するデータを入れる場所なので、勝手に型をいじったりしたらえらい事になります。内容の入力は自由に出来ますが、基本的にタイプの内容設定は一切弄らないようにしましょう。 それぞれのタイプの説明は、説明書を読むといいと思います。

・変数呼び出し値と特殊文字の活用

そろそろ終わりが見えてきました。頑張ります。
変数呼び出し値についてはさっき説明したじゃないかと思われるかもしれませんが、今回は実際にデータベースの変数呼び出し値を使う話をしたいと思います。
データベースの変数呼び出し値は他の変数呼び出し値と比べると少々面倒で、ユーザーデータベースなら10aabbbbcc、可変なら11aabbbbcc、システムなら13aabbbbccという値を使います。
何だそりゃ、と思うかもしれません。つまり、"可変データベースのタイプ12番のデータ24番の内容54番"を呼び出したい時は、1112002454と書けばいいのです。
書き方を変えれば、"可変データベースのタイプA番のデータB番の内容C番"を呼び出す時の値は、1100000000 + A*1000000 + B*100 + Cです。これを上手く扱えると、何となくカッコいい気がします。あれ? 私だけ?
可変DBのデータ型が整数の時、
■可変DB書込:DB[このコモンEvセルフ0:このコモンEvセルフ1:このコモンEvセルフ2] = 0
と、
■変数操作: このコモンEvセルフ3 = 1100000000 + 0
■変数操作: このコモンEvセルフ3 += このコモンEvセルフ0 * 1000000
■変数操作: このコモンEvセルフ3 += このコモンEvセルフ1 * 100
■変数操作: このコモンEvセルフ3 += このコモンEvセルフ2 + 0
■変数操作: V[このコモンEvセルフ3] = 0 + 0
は全く同じ操作を表しています。前者の方がどう見てもスマートに見えますが、ループや条件分岐を使う場合には後者の方がいいこともあったり、この方法を使わないとエラーが発生することもあるので、どちらも使えるようにしておくと便利です(※注 エラーが発生するというのは、実は非常に限定された条件の話です。文字列型のデータから文字列型のデータに内容を移すときに、変数操作を使うとエラーが出てしまうのですが、DB読み込みと変数呼び出しを使って型に関わらず内容コピーを行うことができます)。
次に、特殊文字の方を説明します。
データベースを呼び出す特殊文字は、ユーザーが\udb[a:b:c]で、可変が\cdb[a:b:c]です。システムはありません。
これに限らず、特殊文字を文章表示するのは、デバッグ作業に非常に役立つので覚えておきましょう。
ちなみに、a,b,cの部分には他の変数の特殊文字を使用することが可能ですが、\udb[\cdb[a:b:c]:d:e]と言ったように、データベースの特殊文字内にデータベースの特殊文字を入れると不安定になるので気をつけましょう。
特殊文字の話のついでに、余り知られていない(気がする)面白い機能があるので紹介しておきます。
データベースのタイプの内容設定で、データの名称の項目に\udb[a:b]または\cdb[a:b]と入力すると、タイプaのデータbのデータIDを勝手に読んでくれます。基本システムでは、状態異常残り歩数等に使われているので、興味があったら調べてみてください。

・csv2dbtype

さて、初めに長々とデータベースの入力方法を説明してみましたが、実は一つ、裏技的な方法があります。公式の素材投稿スレッドに上がっていると思いますが、csv2dbtypeというツールです。csvというファイル形式が何なのかは適当に調べてください。とりあえず何も分かってなくても、エクセルやOOセルで表を作成してcsv形式で保存し、csv2dbtypeに放り込むと勝手にdbtypeファイルに変換してくれるすばらしいソフトです。後はこれを適当なタイプの位置で読み込めばそれだけで入力は完了です。
だったら何を長々と解説していたのかと言うと、確かに入力自体はcsv2dbtypeで出来ますが、データベースという物を理解するためには実際に入力した方が早いと思ったからです。
しっかり理解したうえでcsv2dbtypeを使うのと、そうでないのとでは作業効率にも明らかに差が出てきますからね。



さて、以上でデータベースの解説は終わりです。
たぶん終わりです。
解説忘れてることないよね? よし、多分大丈夫! これであなたもDBマスターです! ……だといいなァ。
この記事は全てカテゴリ"データベース解説"に入れておくので、説明が分かりやすいと思ったら適当にリンク張ってみてください。
それでは、皆さんの製作の順調に進まれることを祈って。
2008年8月27日 Rew 拝
スポンサーサイト
コメント
この記事へのコメント
コメントを投稿する
URL:
Comment:
Pass:
秘密: 管理者にだけ表示を許可する
 
トラックバック
この記事のトラックバックURL
この記事へのトラックバック
copyright © 2005 魔術師の巣窟(仮) all rights reserved.
Powered by FC2ブログ.
上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。