WOLF RPGエディター研究所 Wiki

ピクチャの管理方法

最終更新:

idatenbike

- view
メンバー限定 登録/ログイン
(※この記事は編集中です)

概要

対象者レベル:中級者

難易度:★★☆☆☆


ウディタではピクチャには全て「ピクチャ番号」が設定されています。
ピクチャの座標やサイズを取得する場合にはこのピクチャ番号が必要となりますが、
これらを再利用しやすい形で管理する方法を掲載します。


内容


1. ピクチャ番号の特性を理解する

ピクチャ番号は数値によって表示される階層が異なります。
考えなしでピクチャ番号を決めてしまうとバグの原因になるため、表示したい層を意識して番号を決めましょう。
(詳しくはWOLF RPGエディターの公式マニュアルを参照してください)

↑上層
ピクチャ番号 表示位置
100000~以上 文章・選択肢ウィンドウの上
- 文章・選択肢ウィンドウ
0~99999 イベント・フォグ・★属性のマップチップの上
- イベント・フォグ・★属性のマップチップ
-1~-99999 マップチップの上
- マップチップ
以下~-100000 遠景の上
- 遠景
↓下層

ピクチャ番号は数字が大きければ大きいほど前面に表示されます。
複数のピクチャを表示する場合、どれが手前に来てほしいのかを意識して番号を決めるようにしましょう。

またピクチャ番号は同じ番号を使いまわすことはできません。
例えば「ピクチャ番号:100」ですでにピクチャが表示されている場合、同じ番号でピクチャ表示を行うと先に表示されていたピクチャは消去されてしまいます(上書き)
ピクチャを複数表示したい場合は必ず使用されていないピクチャ番号を指定しましょう。


2. 表示するピクチャを分類分けする

ピクチャ番号を使いまわすことはバグの原因に繋がります。
必要が無い限りピクチャはすべて異なる番号を使うようにしましょう
そのためにはどのピクチャにどの番号を振るのかを考える必要があります。

まずはゲーム中でピクチャを使用していそうな処理を挙げてみましょう。
 例、
  ・フィールドメニュー
  ・戦闘処理
  ・会話イベント

次に、上に挙げたものでピクチャを使用していそうなものを列挙してみます。
この時なるべく細かく列挙していきます。
 例、
  [フィールドメニュー]
  ・メインメニューのウインドウ
  ・メインメニューの文字列ピクチャ
  ・メインメニューのカーソル

  [戦闘処理]
  ・戦闘中ステータスウインドウ
  ・戦闘中ステータスの文字列ピクチャ
  ・戦闘中ステータスのカーソル
  ・戦闘中敵グラフイック

  [会話イベント]
  ・キャラクター立ち絵
  ・表情エフェクト

分類分けすることにより、実際にピクチャを表示する際にいくつくらい番号を確保しておけばよいかの概算を立てることが出来ます。

3. ピクチャの開始番号、終了番号を決める

手順2で求めた概算を元に、各処理で使用するピクチャの「開始番号」「終了番号」を決定します。
開始番号と終了番号を決めておくと処理ごとのピクチャ操作が楽になります。

例えば、フィールドメニューの表示・非表示に関するコモンイベントを作ることを考えます。
フィールドメニューには以下のようなたくさんのピクチャが使用されています。
 ・メインメニューのウインドウ
 ・メインメニューの文字列ピクチャ
 ・メインメニューのカーソル
 etc.

メニューということは表示・非表示を切り替える必要があります。
例えばメニューを閉じるとき、いちいち一つずつピクチャ番号を指定して非表示にするのは面倒ですね。


これらのピクチャを「ピクチャ番号:100~199」までの間で表示しているとしましょう。
そして開始番号を「100」、終了番号を「199」とします。
ピクチャはオプションで「開始~終了」の番号に対し同じ処理を実行することが可能なため、
図1のようにすることでフィールドメニューに関するピクチャを1つの命令で全て非表示にすることができます。

図1.ピクチャ番号の複数指定と不透明度の設定


こういった開始、終了のピクチャ番号はゲーム中に変化させる必要はありません。
このようなピクチャ番号は「UDB」で管理することをオススメします。

図2. ピクチャを管理するUDBの設定例

4. 再利用するピクチャの番号を可変DBで管理する

手順3では分類分けした処理のピクチャ開始・終了番号をUDBに登録してみました。
しかしピクチャによってはもっと細かく管理する必要があります。

フィールドメニューの例で考えてみます。
フィールドメニューには以下のようなピクチャが使用されています。
 ・メインメニューのウインドウ
 ・メインメニューの文字列ピクチャ
 ・メインメニューのカーソル
 etc.

このうちカーソルのピクチャなどは入力されたキーに応じて座標を移動させる必要があります。
そうなるとカーソルのピクチャ番号はどこかに記憶しておかなければいけません。

今回は可変DBでピクチャ番号を管理する方法で解説しています。
※なぜ可変DBで管理するのかは、ややこしいので読みたい方のみご覧ください。

可変DBでピクチャを管理する理由

+ ...
ピクチャを細かく管理する方法はいくつかあります。
 1. 通常変数にピクチャ番号に記録する
 2. UDBでカーソルのピクチャ番号をあらかじめ設定しておく
 3. 生成したカーソルピクチャを可変DBに記録する

色々な方法がありますが、それぞれどのようなメリット・デメリットがあるかを考えてみます。

1. 通常変数(予備変数)にピクチャ番号に記録する
 [メリット]
  ・ピクチャ番号を取得する際に条件がいらない
  ・変数に自由に名前を付けることが出来るため管理はできる
  ・ピクチャ番号が不定なので拡張性が高い
 [デメリット]
  ・通常変数自体が様々な処理で使用されるので混同しないように気を付ける必要がある
  ・使いやすいがゆえに誤って値を上書きしてしまう可能性が高い
  ・通常の変数と似た呼出方法なので差別化がしにくい

 通常変数であれば特別な設定などなく番号を取得できます。
 しかし使いやすいが故に不要な箇所で値が上書きされてしまう可能性が高いので注意です。
 また変数名以外に管理する方法がないため管理が大変です。

2. UDBでカーソルのピクチャ番号をあらかじめ設定しておく
 [メリット]
  ・タイプ名、データIDを自由につけられるので管理がしやすい
  ・「DB操作」で呼び出すので他の変数と差別化ができる
  ・ピクチャ番号が明確なのでバグが起きにくい
 [デメリット]
  ・「DB操作」で呼び出すので操作が手間
  ・急なピクチャ番号の変更が必要になった際に手直しがとても面倒
  ・拡張性に難がある

 UDBで管理するとピクチャ番号が必ず固定なのでバグが起きにくく、
 またあらかじめ決められた番号しか使用されないので管理が楽です。
 しかし番号を細かく刻むと後からピクチャを挿入したいときに手直しが非常に面倒です。
 修正が面倒なものは得てしてバグが出やすいため特に注意が必要です。
 バグには強いかもしれませんが拡張に難があるため推奨できません。

3. 生成したカーソルピクチャを可変DBに記録する
 [メリット]
  ・タイプ名、データIDを自由につけられるので管理がしやすい
  ・「DB操作」で呼び出すので他の変数と差別化ができる
  ・拡張性が高い
 [デメリット]
  ・「DB操作」で呼び出すので操作が手間
  ・ピクチャ番号はピクチャを生成する処理で被らないように気を付けなければいけない
  ・「可変DB」なので後から値を変更することが出来てしまう

 使い勝手としては通常変数より手間です。
 また可変DBのため値は変更できてしまうのですが、
 値の設定・取得を「DB操作」のみで行う事によりバグに対する安全性が高いです。

 そもそもピクチャ番号は一度設定したら上書する必要はありません。
 そのため誤って値を上書きする可能性を押さえられる可変DBでの管理が総合的に優れています。

 一応、通常変数(予備変数)も実態はシステムDBであり、可変DBと同じような使い方は可能です。
 可変DBに余裕がない場合は通常変数(予備変数)で代用することは可能です。



ピクチャ番号を可変DBで管理する場合、
UDBの開始・終了番号と同じようにピクチャ番号を管理するタイプを設定します。
UDBと異なりピクチャ番号を設定する必要はありません。

図3. ピクチャを管理する可変DBの設定例

5. 実際の使用例

手順1~5を踏まえて作ってみたコモンイベントのサンプルです。

()
ウィキ募集バナー