【ウディタ】戦闘画面の背景をデータベースから指定する

レビニアなのよ。今回は戦闘背景の変更をするわ。

  • ユーザーDBから戦闘中の背景画像を指定できるようにする
  • 画像の指定がない場合は従来どおり薄いグラデーションを表示する

こんな感じ。まぁ簡単な改造ね。

ユーザーDBのシステム設定に項目を追加する


まず最初に、戦闘背景画像を入れるためのフォルダを作成しましょう。元からあるPictureフォルダを使ってもいいのだけど、まぁ一応ね。
→Dataフォルダ内に「Battle_BackGround」フォルダを作成する


次は、ユーザーDB17番「システム設定」に戦闘背景画像を指定する項目を追加するわ。左側の「タイプの内容設定」をクリックして頂戴。


最後尾に項目を追加するわね。
→項目名:[戦闘]戦闘中の背景
→設定方法:▼特(後述)


「▼特」ボタンをクリックして特殊設定を指定するわ。さっき作ったフォルダを参照するのよ。
→指定方法:ファイル読み込み(文字列)-「Battle_BackGround」フォルダを指定

これでデータベースの準備はOK。

背景描画コモンを改造する


次は戦闘関連コモンを改造するわ。改造対象は「180:X[戦]バックグラウンド描画」よ。改造用に空きIDへコピペしてね。


改造する前に、背景画像ファイルを読み込むのにセルフ文字列を1つ使うから名前をつけて頂戴。
→セルフ文字列5番に「背景画像」と名前を付ける


改造するのは36行目。ここに処理を追加していくわ。まずはさっき追加したユーザーDBの項目を読み込むのよ。
→■DB読込(ユーザ): CSelf5[背景画像] = ユーザDB[ システム設定 : システム基本設定 : [戦闘]戦闘中の背景 ] (17 : 0 : 35)


その下に条件分岐を作るわ。ユーザーDBの項目が空白かどうかを調べるのよ。
→■条件分岐(文字): 【1】 CSelf5[背景画像]が “” と同じ 【2】 CSelf5[背景画像]が “” 以外


背景画像が空白(ファイル指定なし)の場合は従来どおり薄いグラデーションを表示するわ。元々のピクチャ表示処理を分岐の中に切り取り→貼り付けしてね。
→◇分岐: 【1】 [ CSelf5[背景画像] “” と同じ ]の場合↓
→■変数操作: CSelf10 = 32 * CSelf88[座標倍率X[x10]]
→■変数操作: CSelf11 = 24 * CSelf89[座標倍率Y[x10]]
→■変数操作: CSelf10 += 32 + 0
→■変数操作: CSelf11 += 24 + 0
→■ピクチャ表示:CSelf21[一時ピクチャ番号] [左上]ウィンドウ「<GRADY-779-000>」サイズ[CSelf10,CSelf11] X:0 Y:0 / 10(0)フレーム / パターン 1 / 透 255 / 乗算 / 角 0 / 拡 100% / カラー R[100] G[100] B[100]


背景画像が空白以外(ファイル指定あり)の場合はその画像ファイルをピクチャ表示させるわ。分岐の中にピクチャ表示を追加してね。
→◇分岐: 【2】 [ CSelf5[背景画像] “” 以外 ]の場合↓
→■ピクチャ表示:CSelf21[一時ピクチャ番号] [左上]ファイル(CSelf5[背景画像]) X:0 Y:0 / 10(0)フレーム / パターン 1 / 透 255 / 通常 / 角 0 / 拡 100% / カラー R[100] G[100] B[100]

これでコモンの改造はこれでOKよ。

戦闘画面背景の変更をテストしてみる


まずは背景画像未設定(空白)の場合


OK。空欄の場合は従来通り薄いグラデーションが表示されたわ。


次は画像ファイルを指定した場合。サンプルに同封されていたフォグ画像を使ってみるわね。


うん成功! ユーザーDBで指定した画像が戦闘背景として表示されたわ。

他の画像を使いたいなら「Battle_BackGround」フォルダに入れて、同じようにユーザーDBから指定してあげればいいわよ。ゲーム画面サイズに合わせた画像ファイルを用意してね。

戦闘画面の背景を変更する方法の解説は以上よ。