ステータステーマ(XPスタイルバトル for MV)

Themes

Standard-MV beta


デフォルトのステータステーマです(ベータ版)。デザインは今後更新予定です。

※現在、このテーマは設定ファイルを提供していません。使用するには、プラグインパラメータ (string)hud.themeFileName の値を空にして下さい。

Boundary


ツートンカラーのカードを背景にしたステータステーマです。イメージカラーはパープルですが、おまけのカラーバリエーションもご用意しました。バトラー表示はカードの領域に合わせて自動でクリッピングされるので、このスキン専用のバトラーグラフィックを用意する必要はありません(レンダリングモードがWebGLの場合のみ)。

Ether

STR11eのスキンLNX11bのEプラスのMVバージョンです。現在作成中です。
他のLNX11b向けに作成したステータススキンも順次作成予定です。

ステータステーマを変更する

ここでは『バウンダリー』テーマを例に説明します。

  1. XPスタイルバトル for MVを有効する
    手順はこちら

  2. ステータステーマ画像をインポートする
    テーマ画像はEntyでDLしていただいたパッケージのThemeフォルダにそれぞれ配置されています。バウンダリーテーマの場合、Theme/boundary/bd_boundaryフォルダがテーマ画像のフォルダです。bd_boundaryフォルダを、フォルダごと
    プロジェクトのimg/systemフォルダへコピーします。bd_boundaryフォルダ内の画像のみをコピーしないようご注意下さい。

  3. ステータステーマ設定ファイルをプロジェクトのdataフォルダにコピーする
    Theme/** に配置されているJSONファイルがテーマの設定ファイルです。バウンダリーテーマの場合、bd_boundary.jsonをプロジェクトのdataフォルダにコピーします。

  4. XPスタイルバトル for MVのプラグインパラメータ (string)hud.themeFileName の値を変更する
    dataフォルダにコピーしたJSONファイルのファイル名を指定します。拡張子は省略してください。バウンダリーテーマの場合、bd_boundary に変更します。

  5. これで完了です。テストプレイで正常に動作することをご確認下さい。

ステータステーマ設定ファイル詳細

※なんとなくプログラムが分かる人向けの解説になります。ご了承下さい。

ステータステーマを定義するJSONファイルは、表示する複数のHUDオブジェクトをツリー構造で表現したものです。各HUDオブジェクトには、自身を表現するための情報(properties)と、子のHUDオブジェクト配列(children)が定義されています。このJSONデータは戦闘開始時に記述されたツリー構造に相当するSpriteツリーに射影され、ステータスとして表示されます。

以下にHUDオブジェクトのデータ構造をJSONで示します。

properties

プロパティ名(キー)と値の連想配列になっています。キーと値の集合によってHUDオブジェクトが数字やゲージ、バトラーとして表現されます。はじめに、他のプロパティとは区別して扱われるname, typeプロパティについて説明します。

name プロパティ

HUDオブジェクトのユニーク名。他のHUDオブジェクトのnameと重複してはいけません。このプロパティは他のHUDオブジェクト等から自分を参照させる場合等に使用するIDです。

type プロパティ

HUDオブジェクトが何のオブジェクトかを決定するプロパティです。以下のtypeを使用できます。

type名 説明
Root ルートコンテナ。ルート要素のHUDオブジェクトは必ずこのtypeである必要があります。
Container コンテナ。childrenを表現するためのオブジェクト。
PartyStatusContainer パーティ毎のHUDオブジェクトを表現するためのオブジェクト。原則としてアクター毎にHUDオブジェクトを持つ必要があるオブジェクトはこのコンテナのchildrenにします。
Image イメージ。画像をimgフォルダから参照して表示します。
HorizontalGauge 水平ゲージ。HP等の割合を表現するために使用します。
CircleGauge 円形ゲージ。HP等の割合を表現するために使用します。
Number 数字。HP等の数値を表現するために使用します。

以下のtypeはPartyStatusContainerのchildrenに含まれている場合のみ使用できます。

type名 説明
Battler バトラーグラフィック。マスク画像を設定することが出来、設定した場合、そのマスク画像に従ってバトラーグラフィックのクリッピング処理を行います。
StateIcon ステートアイコン。自身の表示状態と他のHUDオブジェクトの表示状態を同期する機能を持ちます。

コモンプロパティ

ここではname, type以外のプロパティをコモンプロパティと呼びます。コモンプロパティは、設定されたtypeに対し、具体的にどんな設定を行うかを決定するプロパティです。プロパティの値はプリミティブ型ではなく、JavaScriptとして評価されます。そのため、ゲーム上で取得可能な全ての値(例えば所持金やプレイタイム、スイッチ・変数等)をデータソースにすることが可能です。ほとんどのプロパティは初回表示時に1度だけ値を評価しますが、一部のプロパティ(value, maxValue等)は表示中に高頻度で評価を行うため、コードを記述する場合は処理コストに留意する必要があります。

以下に代表的なコモンプロパティについて列挙します。

プロパティ名 値の型 説明
x Number オブジェクトのX座標。子要素のX座標にも影響します。
y Number オブジェクトのY座標。子要素のY座標にも影響します。
visible Boolean オブジェクトを表示するかどうか。子要素の表示状態にも影響します。
fileName String 参照する画像ファイルのパス。
value Number 参照する数値。
maxValue Number 参照する最大値。

PartyStatusContainer下におけるthisパラメータ

PartyStatusContainerを先祖に持つHUDオブジェクトのコモンプロパティ値には、thisパラメータにbが追加されます。bとは、バトルメンバーのGame_Actorのインスタンスです。コモンプロパティの値にthis.b.xxxxと記述することで、Game_Actorのプロパティやフィールド、ファンクション評価値をデータソースに使用することが可能です。

children

HUDオブジェクトの配列です。以下のtypeのHUDオブジェクトがchildrenに対応しています。

  • Root
  • Container
  • PartyStatusContainer

上記以外のtypeのHUDオブジェクトはchildrenに対応していないため、配列を空にしておく必要があります。

Z座標

各HUDオブジェクトのZ座標(前後関係)はchildren配列でのHUDオブジェクトデータの位置で決定されます。配列の後ろの要素ほど手前に表示されます。