見出し画像

ウディタ講座 第3回 戦闘背景の追加

ウディタの基本システムを改造しようと思ったものの、何から手を付ければばいいのか分からない! そんな時にまずオススメしたいのが、戦闘背景の追加です。サンプルゲームでは全戦闘共通で、画像のような薄いグラデーションがかかっているはずです。

講座03_01_グラデ背景

これを通常の背景を描画するように、更に指定により自由に背景を変えられるようにしてみましょう。今回では例として、以下①~③にそれぞれ別々の背景を指定するものとします。
 ①地上の雑魚戦(ゴブリン1体しか出ないやつ)
 ②ダンジョンの雑魚戦(複数通りのゴブリン軍団が出るやつ)
 ③ボス戦(コクリュウ)
 
とりあえず使用したい背景画像を「Data/Fog_BackGround」フォルダに入れておきましょう。私はウディタ使い御用達のぴぽや様の素材サイトのものを使用することにしました(下の3枚がそれ)。

講座03_02_素材の準備

この講座でやること

・ユーザデータベース(以下、UDB)への新規タイプ「戦闘背景」の追加
・戦闘背景の選択用コモンの作成
・設定した戦闘背景を描画できるよう、既存のコモンを改造

Step1 仕様検討

まずは仕様の検討です。シンプルにこんな感じで行きましょう。
 ①戦闘背景番号と画像の対応はudb[18]で定義する
 ②戦闘背景の選択はコモンで行う
 ③選択中の戦闘背景番号は予備変数v1_0に格納
 ④戦闘背景番号に応じた背景画像(0未満の場合はデフォルトのグラデーション)を表示
 
これはあくまで一例です。この例では戦闘背景番号を予備変数v1_0に格納していますが、通常変数でもかまいません。もちろん可変データベース(以下、CDB)に項目を追加して格納するのもアリです。

Step2 UDBの作成

実際の作業に入ります。戦闘背景番号と、番号に対応する画像ファイルの設定をする為、UDBに新規タイプを作成します。今回はudb[18]を使いましょう。udb[18]を選択した状態で「タイプの内容設定」を押し、タイプ編集画面を表示します。

講座03_03_UDB新規作成

タイプ名は「戦闘背景」とします。項目名0の名前を「画像ファイル」に、タイプを「文字列」にします。今回のようにファイル名を指定したい場合は「▼特」ボタンを押して特殊設定画面を開き、「ファイル読み込み(文字列)」にチェック。背景画像を入れたフォルダ(この例ではFog_BackGround)を選択してください。

講座03_04_UDBタイプ設定

設定が終わったらデータを入力していきます。0:森には地上用の背景を、1:ダンジョン_石造りにはダンジョン用の背景を、2:宇宙にはボス専用の背景をそれぞれ設定します。

講座03_05_UDBデータ入力

Step3 戦闘背景の選択用コモンの作成

戦闘背景を選択する処理を作りましょう。今回はコモン216を使用するので、『戦闘背景の設定』と名前を付けておきます。

講座03_06_コモン新規作成

引数の設定画面では数値1にチェックを付けて、入力設定にudb[18]を使用するように設定してください。これによりこのコモンの呼び出し時に、udb[18]のデータ番号(すなわち背景番号)を指定できるようになります。

講座03_07_引数設定

コモン内部の処理を作成します。と言ってもやることは1つだけ。引数で受け取った戦闘背景ID(cself[0]に格納)を予備変数v1_0に代入するだけです。

講座03_08_コモン内部処理の作成

Step4 描画処理の追加

いよいよ実際に描画処理を作成します。F7キーのピクチャ詳細一覧より、戦闘背景の描画はコモン180『X[戦]バックグラウンド描画』で行っていることが分かります(一番上のピクチャID:10000)。

講座03_09_ピクチャ詳細

このコモンをコモン217にコピーしてそちらを編集しましょう。
※コモン217のリネームは厳禁!(コモン名で呼び出す場合、同名のコモンがある時は下にある方が優先される為)
 
下の方に「背景の表示」という部分があるので、ここを下図のように編集します。予備変数v1_0の値を見て、0以上の場合はudb[18]から背景ファイル名を取得して描画。0未満の場合はデフォルトのグラデーションを表示しています。

講座03_10_描画処理の変更

戦闘背景を表示する部分の処理はこんな感じです。640x480の画像を座標(320, 240)に中心表示モードで表示している為、ちょうど全画面になります。

講座03_10B_ピクチャ描画

Step5 テストプレイ

お楽しみの実行タイムです。マップに適当なイベントを作成して戦闘テストを実施しましょう。それぞれ別々の背景が表示されたら成功です!

講座03_11_テスト用マップEv

講座03_12

問題が無さそうなら実際に組み入れましょう。ランダムエンカウントの場合はコモン37『◇ランダムエンカウント処理』の直前で背景設定を、それ以外の場合はコモン28『◆バトルの発生』の直前で背景設定を行いましょう。設定通りの背景が表示されたら成功です!

補足:戦闘途中での背景変更

もし戦闘途中で戦闘背景を変更したい場合はコモン216で背景を設定後、コモン217を表示モードで実行してみてください(今回の講座の範囲外の話ではありますが……)。

おまけ:解像度と背景画像サイズ

私は解像度640x480で作成している為、戦闘背景画像も640x480のものを使用しています。320x240で作っている人は画像ファイル自体320x240のものを使用するか、画像ファイルは640x480のままで描画時に拡大率を50%にして表示すると良いでしょう。

いいなと思ったら応援しよう!