変数 のバックアップ(No.8)


 変数とは、不確定要素を擬似的・暫定的に記号・抽象化したもの。不確定要素が計算出来るようになる。対語は定数、類語は不定元・未知数など。

 目次

 変数ってなんぞ?

 算数・数学における変数

  • 学校教育における計算問題の答えだと思って下さい。
    • 算数では空白部分
    • 数学ではx,yやa,bなど

 一般社会における変数

  • 電子分野ではなくてはならないものです。

 ウディタにおける変数

  • ウディタではイベントを組むには避けては通れないモノです。
  • 二つの使い方があります。
    数字の大きさを変えられること
    数字を読み取ってイベント分岐させられること
  • 例えば
    ダメージを受けたらHPが減る、HPが0だったら倒れる
  • HPやExp、恋愛ゲームの好感度といったパラメータは勿論、装備している武器なんかもIDで管理された変数です。
  • ゲームを開始してから経過した時間や、主人公がマップのどの辺りにいるかも変数として記録されています。
  • 気づいてなかっただけで、実はゲームというのは変数のかたまりです。
  • 聞きなれない言葉かも知れませんが、難しく考えずにステップアップしてください。

 各変数の意味

セルフ変数:そのイベント固有の変数
通常変数:ゲーム全体に影響を与えることができる変数
システム変数:ゲームのシステムとして役割が決まっている変数

 書き込み可能の変数

  • 可変データベース(cdb)
  • システムデータベース(sdb)
    • 4:文字変数名
    • 14〜24:通常変数、予備変数
  • 各セルフ変数

 読み取り専用の変数

  • ユーザーデータベース(udb)
  • システムデータベース(sdb)
    • 0:マップ設定
    • 1:BGMリスト
    • 2:BGSリスト
    • 3:SEリスト
    • 5:システム文字列
    • 6:システム変数名
    • 7:位置設定リスト
    • 8:キャラクター画像
    • 9:キャラ影グラフィック名
    • 10:ウィンドウ画像
    • 11:トラジションタイプ
    • 12:文字色
    • 13:遠景画像
    • 24:顔グラフィック名

 変数に名前をつける

  • 新版ウディタ講座で説明されているのでそちらを参考にして下さい。

 使い道

 手順

 1、アイディアのアルゴリズム(プロット)化

  • 仕様書の段階です。
    • どういう手順を経て
    • どういう結果が導き出されるのか
  • を文書化します。

 2、アルゴリズムのフローチャート(UML)化

  • 設計図の段階です。
  • ウディタに適したUMLは検討中です。
    例えばサンプルゲームの流れをマップ化した場合以下の通りになります。
    ScreenShot_outline.png
  1. ゴブリンと戦ってLvを10以上にする。
  2. エディを仲間にする。
  3. コックからパンを買う。
  4. 夕一を仲間にして、後ろの宝箱から鍵を手に入れる。
  5. ダンジョンのドラゴンを倒して、ウディタを手に入れる。

 3、フローチャートのコマンド(ソース)化

  • ここからようやくツールや言語(ウディタ)の出番で、つまり1と2の作業は紙媒体(チラシの裏)でも十分できるということです。
  • オープンソースという暗号化されてないゲームの場合、見れるのがこの部分だと思って下さい。
  • また、配布コモンもこの状態です。

 種類

  • ツクールや基本システムを使用した場合、システムはほとんどいじる必要はありませんが、仕様がどういうものか理解する必要があります。
  • シナリオやキャラクターは自分で作る必要があるというわけです。

 システム

  • 文章表示や選択肢などの基礎的なシステムはウディタ本体に標準装備されています。
  • 戦闘やメニュー等は基本システムとしてフルパッケージに用意されてます。
  • 配布コモンには基本システム改造用コモンや独立した大規模コモン、汎用なテストプレイコモン等があります。

 シナリオ

  • マップイベントとコモンイベントの両方から通常変数で管理する事になります。
  • フラグという概念が一般的です。

 キャラクター

  • NPCはマップイベントで管理することになります。
  • AI戦闘はコモンイベントのシステムとして管理することになります。

 FAQ

 変数を増やしたいのですが

「システムデータベース」 → 「14:通常変数名」 のデータ数を弄りましょう。

 変数を増やしたのにイベントコマンド入力時に項目が増えていないのですが

条件(変数)の所の注釈に書いてあるように、変数の種類選択ボタン→([Self][変][Sys])を押す事で更新出来ます。

 乱数、ランダムの作り方

  • いくつか方法があります。
    1.変数操作で、 左辺=右辺A〜右辺B とする。
    2.変数呼び出し値の、 8000000+X を利用する。(0〜Xまでの範囲がランダムで返る)
    3.システム変数30と変数操作の%を組み合わせる。(例えば100で割った余りを求めた場合、0〜99の範囲が返る)
  • 乱数でアイテムを入手できるイベントを作成したのですがデータをロードして始めると、毎回同じアイテムを同じ順番で入手します。
    1番2番目のようなウディタの乱数は、いわゆる擬似乱数と呼ばれるもので、そういう状況に陥るのだと思います。
    3番目のような方法を試すか、キー入力監視などの並列(常時)内部にセルフ変数=0〜0のような乱数を噛ませる事で回避できます。

 検索語

  • 変数
  • 代入

 関連項目

 外部リンク

このページに関するコメント

このページに関するコメントがございましたらこちらへどうぞ。

【注意!】
疑問・質問・相談・要望などへの回答は期待しないでください。
また、コメントへの回答・指摘される方は冷静に余裕を持ってお願いします。