じぇーそん3のブログ

アクセスカウンタ

zoom RSS [VX] バトルレイアウトを自由に変更する

<<   作成日時 : 2012/11/11 04:53   >>

ナイス ブログ気持玉 2 / トラックバック 1 / コメント 7

VX標準システムのバトルレイアウトは、戦闘アクション中に
キャラクターのHPやMPが見えないなど、レイアウトに不満の
ある内容になっていました。
今回のスクリプトは、バトルレイアウトをある程度自由に
変更できるように改造したものになります。

画像


スクリプト素材のダウンロードは↓
http://www.lm-t.com/blog/battle_layout.zip

-----機能説明ここから-----
■基本情報■
1.機能概要
 バトルレイアウト変更スクリプトは、バトル画面でのレイアウトを
 自由にカスタマイズするための機能です。

 各種ウィンドウの位置を変更する、ウィンドウに任意のテキストや
 画像、アクターの状態などを自由に配置する、敵グループの表示位置を
 変更するといったことが可能になります。


2.サンプルレイアウト
 本スクリプトを用いて実現できるバトルレイアウトのサンプルを
 いくつか用意しました。本スクリプトの導入後、まずはそれぞれの
 レイアウトを確認し、実現したいレイアウトに近いものを色々と
 編集してみるところから始めることをお勧めします。
 (レイアウトの定義方法は後述します)

 (1) VX標準レイアウト (VxStandard.txt)
  画像

 (2) RPGツクール2ライクなレイアウト (RpgTkool2.txt)
  画像

 (3) オリジナルのサンプルレイアウト (Sample.txt)
  画像



これより下の記載は、サンプルレイアウトをそのまま使用する場合には
導入手順を除いて参照する必要はありません。



3.レイアウト定義
 本スクリプトのレイアウト定義は、XMLに近いフォーマットを
 採用しています。

 (1) 基本構造
  レイアウトは、以下のように記述して定義します。

  <def="(2)" xxx="(3)" yyy="(3) zzz="(3)" end="(4)">

  または

  <def="(2)" xxx="(3)" yyy="(3) zzz="(3)">
   <def="(2)" xxx="(3)" yyy="(3) zzz="(3)" end="(4)">
   <def="(2)" xxx="(3)" yyy="(3) zzz="(3)" end="(4)">
   ...
  <end="(4)">

 (2) 定義するオブジェクトの種類
  定義するオブジェクトの名前を記述します。ここに記述できる名前は
  決まっています。オブジェクトの名前の一覧を以下に記載します。

  window    ウィンドウ定義
  template   アクター状態テンプレート定義
  cursor    カーソル定義
  troop     敵グループ定義
  phase     フェーズ定義
  transition  トランジション定義
  bitmap    ビットマップ定義
  text     テキスト定義
  actor     アクター状態定義
  name     名前定義
  class     職業定義
  character   キャラクター定義
  level     レベル定義
  face     顔グラフィック定義
  state     ステート定義
  hp      HP定義
  mp      MP定義

 (3) 属性の値
  xxx, yyy, zzzなどの属性に対する値を記述します。値の内容は
  属性ごとに決まっています。値の形式の種類を以下に記載します。

  整数    -2147483648〜2147483647の範囲の整数値。
  実数    小数点の記述が可能な値。
  文字列   任意の文字、文章など。
  変数    値に適用する変数番号。例:$30→変数30番の値
  ブール値  trueまたはfalse。
  16進数値  16進数で記述する整数値。例:#ff113355

 (4) タグ終了宣言
  end属性は、<>での定義の終了を示します。値は必ず"/"にします。


 (5) コメント
  行頭に「#」を記述すると、その行はコメント行として認識されます。


4.ウィンドウ定義 (window)
 バトル画面に表示されるウィンドウに関する定義を行います。

 (1) 属性
  ・name
   定義するウィンドウの種類を文字列で指定します。
   この値は省略できません。以下のいずれかを必ず指定します。

   party-command   パーティコマンド
   actor-command   アクターコマンド
   skill       スキル
   skill-help    スキル用ヘルプ
   item       アイテム
   item-help     アイテム用ヘルプ
   target-actor   対象アクター選択
   target-enemy   対象敵キャラ選択
   battle-status   アクター状態
   battle-message  メッセージ
   generic1     汎用1 (全てのウィンドウの背面に表示)
   generic2     汎用2 (全てのウィンドウの前面に表示)

  ・w (width)
   ウィンドウの幅を整数で指定します。
   値は33〜2048の範囲で指定してください。
   省略すると33になります。

  ・h (height)
   ウィンドウの高さを整数で指定します。
   値は33〜2048の範囲で指定してください。
   省略すると33になります。

  ・column
   コマンド入力が行われるウィンドウにおいて、横に何列分の項目を
   配置できるかを整数で指定します。
   値は1〜8の範囲で指定してください。
   省略すると1になります。

  ・skin
   ウィンドウに使用するスキンのファイル名を指定します。
   ファイル名は文字列、変数のどちらかで指定してください。
   ファイル名を""にするか省略すると標準のスキンを使用します。
   スキンを明示的に指定するとBattleLayoutフォルダから
   読み込もうとします。

 (2) オブジェクト
  ・phase
   各フェーズでの動作内容を定義します。
   詳細は「フェーズ定義 (phase)」を参照してください。


5.アクター状態テンプレート定義 (template)
 アクター状態として表示する内容は、テンプレートとして別の場所に
 定義する構成になっています。
 「アクター状態定義 (actor)」も参照してください。

 (1) 属性
  ・name
   定義するテンプレートの名前を任意の文字列で指定します。
   省略すると空文字になります。

 (2) オブジェクト
  ・bitmap
   表示したい画像を定義します。
   詳細は「ビットマップ定義 (bitmap)」を参照してください。

  ・text
   表示したいテキストを定義します。
   詳細は「テキスト定義 (text)」を参照してください。

  ・テンプレートオブジェクト
   テンプレートオブジェクトとは、name/class/character/level/
   face/state/hp/mp のいずれかのことを指します。
   詳細は「テンプレートオブジェクト」を参照してください。


6.カーソル定義 (cursor)
 対象アクター選択、アクター状態のウィンドウで表示可能な
 カーソルの位置、形状について定義します。

 (1) 属性
  ・name
   定義するカーソルの名前を任意の文字列で指定します。
   省略すると空文字になります。

  ・x
   カーソルの左上のX座標を整数で指定します。
   省略すると0になります。

  ・y
   カーソルの左上のY座標を整数で指定します。
   省略すると0になります。

  ・w (width)
   カーソルの幅を整数で指定します。
   省略すると1になります。

  ・h (height)
   カーソルの高さを整数で指定します。
   省略すると1になります。

 (2) オブジェクト
  定義可能なオブジェクトはありません。


7.敵グループ定義 (troop)
 敵グループの表示についての定義を行います。

 (1) 属性
  ・x
   敵グループの左上のX座標を整数で指定します。
   省略すると0になります。

  ・y
   敵グループの左上のY座標を整数で指定します。
   省略すると0になります。

 (2) オブジェクト
  定義可能なオブジェクトはありません。


8.フェーズ定義 (phase)
 本スクリプトでは、VXのバトルにおけるフェーズごとに
 レイアウトを細かく設定できるようになっています。
 この定義では、フェーズごとのレイアウトを記述します。

 当方で解析したフェーズの遷移図を以下のアドレスに置きました。
 トランジションを定義する場合には理解しなければなりませんので、
 必要に応じて参照してください。

 http://www.lm-t.com/blog/phase_chart.png

 (1) 属性
  ・name
   定義するフェーズの名前を文字列で指定します。
   この値は省略できません。以下のいずれかを必ず指定します。

   all       後述
   first-contact  バトル突入直後
   party-command  戦う・逃げるコマンド選択時
   actor-command  アクターコマンド選択時
   choose-skill   スキル選択時
   choose-item   アイテム選択時
   choose-actor   対象アクター選択時
   choose-enemy   対象敵キャラ選択時
   fighting     戦闘アクション時

   allは、未定義フェーズの内容を記述する時に使用します。
   定義のないフェーズは、全てallで記述した内容になります。

   複数のフェーズを同じ内容にしたい場合は、フェーズを
   カンマで区切って複数指定することができます。

  ・x
   このフェーズでのウィンドウの左上X座標を整数で指定します。
   省略すると0になります。

  ・y
   このフェーズでのウィンドウの左上Y座標を整数で指定します。
   省略すると0になります。

  ・opacity
   このフェーズでのウィンドウの不透明度を実数で指定します。
   値は0〜1.0の範囲で指定してください。
   省略すると1.0になります。

  ・visible
   このフェーズでのウィンドウの可視状態をブール値で指定します。
   省略するとtrue(可視)になります。

 (2) オブジェクト
  ・bitmap
   表示したい画像を定義します。
   詳細は「ビットマップ定義 (bitmap)」を参照してください。

  ・text
   表示したいテキストを定義します。
   詳細は「テキスト定義 (text)」を参照してください。

  ・actor
   表示したいアクターを定義します。
   詳細は「アクター状態定義 (actor)」を参照してください。

  ・transition
   フェーズ遷移時のトランジションを定義します。
   詳細は「トランジション定義 (transition)」を参照してください。


9.トランジション定義 (transition)
 バトルにおいて、フェーズが遷移する際の各種ウィンドウの
 トランジションを定義します。

 (1) 属性
  ・type
   トランジション定義の種類を指定します。
   この値は省略できません。以下のいずれかを必ず指定します。

   from  前のフェーズからこのフェーズへ遷移した時の定義
   to   このフェーズから次のフェーズへ遷移する時の定義

  ・phase
   対象のフェーズの名前を文字列で指定します。
   この値は省略できません。以下のいずれかを必ず指定します。

   first-contact  バトル突入直後
   party-command  戦う・逃げるコマンド選択時
   actor-command  アクターコマンド選択時
   choose-skill   スキル選択時
   choose-item   アイテム選択時
   choose-actor   対象アクター選択時
   choose-enemy   対象敵キャラ選択時
   fighting     戦闘アクション時

  ・x
   typeがfromの場合、トランジション開始時の、
   typeがtoの場合、トランジション終了時の
   ウィンドウの左上X座標を整数で指定します。
   省略すると0になります。

  ・y
   typeがfromの場合、トランジション開始時の、
   typeがtoの場合、トランジション終了時の
   ウィンドウの左上y座標を整数で指定します。
   省略すると0になります。

  ・opacity
   typeがfromの場合、トランジション開始時の、
   typeがtoの場合、トランジション終了時の
   ウィンドウの不透明度を実数で指定します。
   値は0〜1.0の範囲で指定してください。
   省略すると1.0になります。

  ・duration
   トランジションのフレーム数を整数で指定します。
   値は1〜600の範囲で指定してください。
   省略すると30になります。

 (2) オブジェクト
  定義可能なオブジェクトはありません。


10.ビットマップ定義
 ウィンドウに表示する任意のビットマップを定義します。

 (1) 属性
  ・src
   表示する画像のファイル名を文字列または変数で指定します。
   省略すると透明の画像が選択されます。(何も表示されません)

  ・sx (source X)
   画像の転送元X座標を整数で指定します。
   省略すると0になります。

  ・sy (source Y)
   画像の転送元Y座標を整数で指定します。
   省略すると0になります。

  ・sw (source Width)
   画像の転送元の幅を整数で指定します。
   値は0〜2048の範囲で指定してください。
   省略すると0になります。
   この値に0を指定すると、画像と同じサイズの幅が指定された
   ものと見なします。

  ・sh (source Height)
   画像の転送元の高さを整数で指定します。
   値は0〜2048の範囲で指定してください。
   省略すると0になります。
   この値に0を指定すると、画像と同じサイズの高さが指定された
   ものと見なします。

  ・x
   画像の転送先X座標を整数で指定します。
   省略すると0になります。

  ・y
   画像の転送先Y座標を整数で指定します。
   省略すると0になります。

  ・w (width)
   画像の転送先の幅を整数で指定します。
   値は0〜2048の範囲で指定してください。
   省略すると0になります。
   この値に0を指定すると、画像と同じサイズの幅が指定された
   ものと見なします。

  ・h (height)
   画像の転送先の高さを整数で指定します。
   値は0〜2048の範囲で指定してください。
   省略すると0になります。
   この値に0を指定すると、画像と同じサイズの高さが指定された
   ものと見なします。

  ・opacity
   画像の不透明度を実数で指定します。
   値は0〜1.0の範囲で指定してください。
   省略すると1.0になります。

 (2) オブジェクト
  定義可能なオブジェクトはありません。


11.テキスト定義 (text)
 ウィンドウに表示する任意のテキストを定義します。

 (1) 属性
  ・caption
   テキストの内容を任意の文字列、または変数で指定します。
   省略すると空文字になります。

  ・x
   テキストのX座標を整数で指定します。
   省略すると0になります。

  ・y
   テキストのY座標を整数で指定します。
   省略すると0になります。

  ・w (width)
   テキストの幅を整数で指定します。
   値は1〜2048の範囲で指定してください。
   省略すると32になります。

  ・h (height)
   テキストの高さを整数で指定します。
   値は1〜2048の範囲で指定してください。
   省略すると24になります。

  ・color
   テキストの色を16進数値で指定します。
   指定形式は#AARRGGBBです。

 (2) オブジェクト
  定義可能なオブジェクトはありません。


12.アクター状態定義 (actor)
 アクターの状態を表示する定義です。

 (1) 属性
  ・index
   どのアクターの状態を表示するかを整数で指定します。
   値は0〜3の範囲で指定してください。
   0は1人目、3は4人目のアクターを示します。
   省略すると0になります。

  ・x
   アクター状態のX座標を整数で指定します。
   省略すると0になります。

  ・y
   アクター状態のY座標を整数で指定します。
   省略すると0になります。

  ・cursor
   このアクター状態に適用するカーソルを文字列で指定します。
   別途、「カーソル定義 (cursor)」で指定したカーソルの名前を
   指定してください。
   カーソルの座標はx, yで指定した座標からの相対座標になります。
   省略すると空文字になります。

  ・template
   このアクター状態に適用するテンプレートを文字列で指定します。
   別途、「アクター状態テンプレート定義 (template)」で指定した
   テンプレートの名前を指定してください。
   テンプレートの座標はx, yで指定した座標からの相対座標に
   なります。
   省略すると空文字になります。

 (2) オブジェクト
  定義可能なオブジェクトはありません。


13.テンプレートオブジェクト定義
 テンプレートオブジェクトとは、テンプレート定義に記述可能な
 オブジェクト全てを指します。

 (1) テンプレートオブジェクト一覧
  name     名前定義
  class     職業定義
  character   キャラクター定義
  level     レベル定義
  face     顔グラフィック定義
  state     ステート定義
  hp      HP定義
  mp      MP定義

 (2) 属性
  ・x
   オブジェクトの左上X座標を整数で指定します。
   省略すると0になります。

  ・y
   オブジェクトの左上Y座標を整数で指定します。
   省略すると0になります。

  ・size
   オブジェクトのサイズを整数で指定します。
   値は1〜2048の範囲で指定してください。
   省略すると1になります。

 (2) オブジェクト
  定義可能なオブジェクトはありません。


■導入手順■
1.スクリプトの追加と置換
 (1) 追加
  以下のスクリプトは標準のスクリプトには存在しないものなので、
  手動で追加する必要があります。スクリプトの名前は各ファイル名
  から「.txt」を除いたものにしてください。

  BattleLayout.txt
  Config.txt
  Window_BattleGeneric.txt

  ただし、過去に公開された拙作のスクリプト素材を導入済みで、
  すでに同じ名前のスクリプトが存在する場合は、以下のコメントで
  囲まれている部分を手動で追加してください。

  #T14-040 NEW--->
  #<--------------

 (2) 置換
  以下のスクリプトの内容を書き換える作業を行います。

  Game_Troop.txt      → Game_Troop
  Scene_Battle.txt     → Scene_Battle
  Scene_Title.txt      → Scene_Title
  Spriteset_Battle.txt   → Spriteset_Battle
  Window_ActorCommand.txt  → Window_ActorCommand
  Window_Base.txt      → Window_Base
  Window_BattleMessage.txt → Window_BattleMessage
  Window_BattleStatus.txt  → Window_BattleStatus
  Window_Command.txt    → Window_Command
  Window_Help.txt      → Window_Help
  Window_Item.txt      → Window_Item
  Window_PartyCommand.txt  → Window_PartyCommand
  Window_Skill.txt     → Window_Skill
  Window_TargetEnemy.txt  → Window_TargetEnemy

  上記で示したスクリプトに、以下のコメントで囲まれている部分を
  手動で追加してください。

  #T14-040 ADD--->
  #<--------------

  変更する箇所を間違えないように注意してください。

 ●注意
 置換作業を行う前に必ずバックアップを取っておくようにしてください。
 元のスクリプトの状況によっては、置換を行うことでスクリプトが
 正常に動作しなくなることがあります。


2.必要なフォルダの作成
 以下のフォルダに配布ファイル中に含まれるBattleLayoutフォルダを
 そのままコピーしてください。

 (制作中ゲームフォルダ)\Graphics


3.使用したいレイアウトファイルの選択
 Configモジュールに記述されているBLAYOUT_FILEに対して、
 使用したいレイアウト定義ファイルを記述します。デフォルトでは
 VxStandard.txtが記述されています。
-----機能説明ここまで-----

テーマ

関連テーマ 一覧


月別リンク

ブログ気持玉

クリックして気持ちを伝えよう!
ログインしてクリックすれば、自分のブログへのリンクが付きます。
→ログインへ
気持玉数 : 2
ナイス ナイス

トラックバック(1件)

タイトル (本文) ブログ名/日時
[VX] 戦闘時アクターにアニメーションを表示する
VX標準システムでは、戦闘時のアクション中、アクター(味方)の ステータスも顔グラフィックも表示されませんが、スクリプトを改造して それらを表示している場合、アクターに対してもアニメーションを 表示したいと思うことがあります。 今回のスクリプトは、その機能を実現するためのものです。 ...続きを見る
J-SONのブログ
2012/11/16 01:01

トラックバック用URL help


自分のブログにトラックバック記事作成(会員用) help

タイトル
本 文

コメント(7件)

内 容 ニックネーム/日時
このスプリクトを導入したのですが、

Window_Baseの440行目(下記参照)でNoMethodErrorが発生しました。
undefined method`phase'for nil:NilClass

と、表示されます。原因が分からないので、教えていただけたら助かります。

@bl_phase = @bl_window.phase(BattleLayout::PHASE_ALL)

2013/09/05 17:43
自己解決しました。コメント欄を汚してしまい申し訳ないです…。

2013/09/05 17:50
このスクリプトを導入しSample.txtを使用しているのですが、
バトルイベント発生時に「戦う・逃げる」等のコマンドを非表示に出来ませんか?
教えていただけたらありがたいです。
よろしくお願いします。
miyuto
2015/11/06 22:31
>>miyuto様
ご質問の件、回答が遅くなりました。
戦う・逃げるのコマンド非表示についてですが、バトルレイアウトスクリプトのみではコマンドを非表示にすることまではできない仕様になっております。
J-SON
2015/11/09 00:24
>>J-SON様
分かりました。
回答、有難うございました。
miyuto
2015/11/09 21:30
こちらのスクリプトでオリジナルの
サンプルレイアウトを導入させていただきたいのですが、
5人PT用、6人PT用にレイアウトを変更するには
どのあたりをカスタマイズすれば良いのでしょうか?
また、物語序盤は4人PT、中盤後半でPTメンバー数を増設
といった演出も考えているのですが、それも含めてご教授戴けると幸いです。
スクリプトに関しては初心者なもので、
出来るならばテンプレートなど戴ければ非常に有難いですが…
よろしくお願いいたします。
相楽慶司
2016/10/04 13:08
RGSS2スクリプトのサポートサービス
終了の記事、今気付きました。
よく読まずに質問してしまい、
大変申し訳ありませんでした。
相楽慶司
2016/10/13 10:55

コメントする help

ニックネーム
本 文
[VX] バトルレイアウトを自由に変更する じぇーそん3のブログ/BIGLOBEウェブリブログ
文字サイズ:       閉じる