忍者ブログ
ゲームについてつらつらと。
[1] [2] [3] [4] [5]
×

[PR]上記の広告は3ヶ月以上新規記事投稿のないブログに表示されています。新しい記事を書く事で広告が消えます。

どうも白バックがチカチカするので
ピンクにしてみましたが、なんだか激烈に趣味が悪いですね。
まあ、いいや。

今回は味方ウインドウのピクチャを利用して
バトラー表示をしてみようと思います。
っていうか、これでようやく自作戦闘って気がする。


バトラー画像。あーチカチカ。

まず可変DB0【キャラステータス】に
バトラー画像アドレスの項目を追加しておきます。


さらに可変DB8【戦闘一時ステータス】にも
同じようにバトラー画像アドレスの項目を追加。


【キャラステータス】の方に各々のキャラに画像を設定したらば

今度はコモンEv59【キャラクターのロード】を改造。3行目から。
ここではこんな感じにデータ渡しをしているので

可変DB0【キャラステータス】

コモンEvセルフ変数

可変DB8【戦闘一時ステータス】

そこにバトラー画像アドレスを追加します。
アドレスは文字列なので
代入に使うコモンEVセルフ変数は
文字列用でなくてはいけません。


そしたら、またコモン45番【×┣ステータス表示/カーソル(v9[8])】に戻って・・・
今回、新しく変数を追加します。
後から出てくるので適当に覚えておいてください。

コモンEVセルフ96:新不透明度調整用
コモンEVセルフ98:新X座標指定
コモンEVセルフ99:新Y座標指定

ちなみに97は改造していくうちに消滅しました。

では188行目から。
座標、幅をあらかじめ変数に代入しておいて
いままで個別ステータスウインドウを表示していたピクチャで
現在のキャラのバトラー画像を表示。


X座標はセルフ98、Y座標は99

ウインドウの幅は変わらずコモンEvセルフ10で指定、
こっちの方は毎回代入で数値を変えてるし
他のイベントで数値がいじられることが無いので
わざわざ新しいセルフ変数を用意しなくてOKです。

さて、これをやると当然個別ウインドウがなくなりますが
あとでまた別のところで表示させます。

何故こんなことをするかと言うと
キャラがダメージを受けた時や行動するときは
このウインドウ(のピクチャ)がアニメーションするので
このピクチャ番号を流用すればバトラーを動かすのに便利なんですね。

そんなわけで
まずダメージを受けるとバトラーがふっとぶよう改造しましょう。

987行目ダメージ&回復エフェクトの処理から。
デフォルトの場合、ダメージを受けると
ダメージを受けたキャラのウインドウが下方向にふっとびます。
今回はサイドビューなので右方向にふっとんで欲しい。
なのでピクチャ移動のX座標とY座標の数値を入れ替えます。
それだけでOK!簡単!


ここでテストプレイ!
すると何故か1ターン目だけ
バトラーが設定した座標より上方向にいる。

・・・と思ったら1ターン後に元に戻りましたね。

このわけのわからん現象の正体は演出効果です。
早いので気付かないかもしれませんが
ウディタのデフォ戦では戦闘開始時にこんな風に
敵は上から、味方は下から、せりあがってきます。


この演出のおかげで
不用意にピクチャのY座標をいじるとおかしくなるんです。

改造する分には、うっとうしいばかりなので
こんな処理さっさと消しちゃうに限るんですけど
今回はせっかくなのでこれを利用してみようと思います。

とりあえず前準備としてこの処理内容の説明から。
まず
コモンEv60【×┣ [バトル開始時初期化]】が
コモンEv45【×┣ステータス表示/カーソル(v9[8])】を
シフトして表示モードで呼び出す。

シフトして表示で呼び出されると
コモンEv45番はコモンEvセルフ3の値=Y座標が
味方の処理の場合100プラスされて
敵の処理の場合100マイナスになります。
つまり、味方関連のピクチャが全部下方向にズレて表示され
敵関連のピクチャは全部上方向にズレて表示されると。

その後、コモンEv60に戻り
味方のピクチャが上にディレイ7でゆっくり100ピクセル上に移動
敵のピクチャが下にディレイ7でゆっくり100ピクセル下に移動して
所定の位置に戻ります。



さて、話はもどって
バトラーの座標を直すにはコモンEv60をいじらなければなりません。

こっちのピクチャの移動はY座標の値をいじるのではなく
○○番のピクチャを移動という形式を取っているので
コモンEv45でY座標にセルフEvコモン3を使ってないバトラーの表示座標は
ここでピクチャを移動させなければ直ります。

せっかくなのでピクチャ番号を覚えましょう。
【基本システムVer1.16説明書】に全部かどうかわからないけど書いてあります。
40200〜40299 敵表示関連

◆40300〜40319 味方1表示関連
◆40320〜40339 味方2表示関連
◆40340〜40359 味方3表示関連
◆40360〜40379 味方4表示関連

40380〜40499 味方ステータスのどこか(投げた)
41000〜41999 ダメージ
50000〜50550 基本部
50200〜50500 アイテム特殊技能
60000〜60039 アイテムエフェクト
90000、90001 メッセージウインドウ

今後、バトル関連で新しいピクチャ番号が必要になったら
とりあえず40100の前か40500の後の番号を使えば良いと思います。

さて今回把握すべきなのは◆のところです。
さらに詳しく一人目の内訳をみるとこんな感じのはず。
"はず"なので詳しく確かめたわけではありません。

40300 ウインドウ
40301 顔グラ
40403 名前
40404 HP(文字)
40405 HP(数字)
40406 HPメーター(最大)
40407 HPメーター(現在)
40408 SP(文字)
40409 SP(数字)
40410 SPメーター(最大)
40411 SPメーター(現在)
40412 ステータス異常
40419 死亡処理

40300がウインドウ、つまり今回でのバトラーピクチャです。
戦闘人数は3人なので40300,40320,40340の3つを
コモンEv60でピクチャ移動させなければOK。


でもこれだけじゃ面白くないので
戦闘開始時に半透明から不透明になる
フェードイン処理を追加してみます。

コモンEv45にてシフトモードにだけ適応される処理に
コモンセルフ96番から155の引き算する処理をいれて
バトラー表示のピクチャの不透明度を1600096と指定。


これで戦闘開始時にバトラーがフェードインで現れます。
あんまし意味がありませんね。誰も気付かないってコレー。

でもこれ以上ディレイを増やしても
ユーザーに優しくないのでやめておきます。
PR
前回は敵の位置をいじり倒し、こんなんなりました。

ウルファールのHPゲージがはみ出てるのはこの後の布石。
っていうか、こんな記事描くと思ってなかったので
中途半端な状態のバックアップしかないのですよ。

さて、次は味方のステータスウインドウをいじります。

サンプル戦闘では、こんな感じに
味方ごとに個別のステータスウインドウが表示され
その位置は戦闘メンバー数によって調整されます。


にせしまクエスト(仮)では
戦闘時のステータスウインドウはメンバー数によらず
固定なのでそのへんの仕様は削ります。

ここでも改造するのはやはり
コモンイベント45番【×┣ステータス表示/カーソル(v9[8])】です。
戦闘中の味方描写は188行目から。

こうして

こんな感じに

固定の戦闘ウインドウを表示させて
ウインドウの座標とウインドウサイズを適当にいじって
こんな感じになりました。


ごらんのとおり、このままだと
行動時や味方選択時に謎のウインドウが表示されてしまいます。

どうやら他にもいじらなくてはならない箇所があるようです。

というわけで761行目からの【戦闘中の味方選択】から
・・・ところで行数は一応未改造の状態での行数なので
もし参考にする場合は目安ってことで。

787行目から↑でいじったのと
同じようなウインドウ生成の構文がかかれているので
これをさっきと同じように直します。


さてここでコモンセルフ変数の簡単おさらい。
コモンEv0:現在処理してるキャラのナンバー(-1以下なら存在しない)
コモンEv1:何人目の処理か
コモンEv2:X座標
コモンEv3:Y座標
コモンEv4:ピクチャ番号

そこらを踏まえて、次はウインドウにあわせて
HP、SPメーターの大きさを調整します。


ここで調整するのはメーターの長さのみ。
HP(数字)の位置などがあきらかにおかしいですが
よく見たらわかるように顔、名前、HP、SPの位置は全て
ウインドウの位置を基準に加算減算だけで計算されてるので
安易に代入などで調整すると
以降のピクチャの位置が全てズレるという不都合が。

他にも上手くいかないわけがあるんですが、それはまた後日。

あと今のままだと2番目、3番目に仲間がいない場合でも
ウインドウにHPメーターとかが表示されてしまうので
条件分岐でコモンEv0が-1以下の時に、名前欄はEMPTYにして
HPとかは描写されないようにしておきます。

っていうか、ここまで来て
これは改造講座なのか。個人的なメモなのか。迷走してしまう。
後で自分が混乱しないように、
デフォのコモンイベントをいじって
デフォルトの戦闘システムをサイドビューに改造するさまを解説してみます。

『改造1:まず敵の位置をどうにかしてみる。』

表示関係は58番からのバトル関係コモンではなく
45番のステータス表示の中にあります。
その450行目の敵キャラ描写。
494行目から敵の位置なのでここをいじりましょう。

EVセルフ1が0の場合、デフォルトで真ん中の敵。
EVセルフ1が1の場合、デフォルトで真ん中から1つ左の敵。
EVセルフ1が2の場合、デフォルトで真ん中から1つ右の敵。
EVセルフ1が3の場合、デフォルトで真ん中から2つ左の敵。
EVセルフ1が4の場合、デフォルトで真ん中から2つ右の敵。
EVセルフ1が5の場合、デフォルトで真ん中から3つ左の敵。
EVセルフ1がそれ以外の場合、デフォルトで真ん中から3つ右の敵。
・・・の位置を指定してあります。

EVセルフ2に代入した数がX座標、EVセルフ3に代入した値がY座標なので
ここをいじって敵の位置を調節しましょう。
デフォルトでは元の数に数値を足していったりして
スタイリッシュに計算されてますが、
いじる分には単純に代入するだけでいいはず。

あとは敵の名前とか敵HPメーターとか
これだけじゃ解決しないもんだいがありますが
何故かそっちの位置をいじると不都合が・・・。

X軸はいいんだけどY座標の方をいじると表示位置がおかしくなる。
多分、処理のどこかで同じピクチャをいじくってるから起こるバグだと思うんですけど・・・
まあ、それはまた後で直すことにします。
今週は恋に仕事に大忙し(笑)だったので全然製作進んでないですよ。
せっかくだからこの日記で戦闘システムを設計してみることとする。

【戦闘前準備】
・味方キャラ、敵キャラのパラメータを変数にロード(?)
↑可変データをそのまま使えないかな?
・戦闘ウインドウ表示
・敵名表示

【戦闘中処理】
・ターンごとにキャラのコマンド入力
・敏捷値を判定して行動順が決める
・行動処理
・たまに吹き出しでセリフ表示。キャラ座標が必須。
・モンスターが倒れるごとに経験値加算
 種別により、その地点の種族数が変化。
・キャラの体格(?)がモンスターより高いと捕獲。

【戦闘後処理】
・全滅or勝利or逃亡、それぞれで演出。
・キャラの状態判定⇒特定の状態異常の場合、経験値を加算しない
・LvUP判定、LVUP処理
・条件により現在地の地形変化
・暗転場所移動


パッと思いついた処理はこれくらいかなあ。
また加筆しておきます。自分の為に。
探索のイベントは組めたので
次は地形ごとの素材ランダム入手のイベントを作ろうと思う。
FIブログで作った素材入手リストもここで役に立つというわけです。

まずアイテムに素材カテゴリーを作ろうと、コモンイベントを色々なぶってみる。

それで、なんとか実装できたんですが

なんかアイテム欄が変なことに・・・。

わかりづらいけど左側のアイテム名が一個下にずれてるんですね。
説明はそのままなのに。

コモンイベントをいじったせいですかねえ?困ったなあ。

色々いじったけど
どうもコモンイベントを元に戻すだけじゃ直らないみたいで
どうしてこんな風になるのか皆目わからない。

・・・と思ったらコモンイベントじゃなくて
本体をアップデートしたことによる不具合のようです。
データベースのデータを入れなおしたら直りました。



えーと、具体的に言うと
アップデート適用後にアップデート前に編集した
ユーザーデータベース10番と11番のアイテムを所有してると
そのアイテムの下の段のアイテム名が1個下にずれてしまう・・・と。

言葉にしても、全く意味がわからないバグだけど
消したコモンイベントはもう戻ってきやしない。ああ。

月並みだけど、バックアップはこまめに取りましょうね。

--------------------------------------

ウディタTIPS
ピクチャ番号は簡単にメモしておくといいかもしれない。


忍者ブログ [PR]
ブログ内検索
プロフィール

HN:
山田
誕生日:
07/17
趣味:
ゲーム製作
好みのタイプ:
無印ポポロクロイス物語
無印アークザラッド
That's QT
バハムートラグーン
花と雨と太陽と
砂のエンブレイス
デカボイス
チュウリップ
サテラビュー関連
メッセ
aonori_hataraotmail.com (一部画像なので手打ちでどうぞ)
タロット占い