その他の汎用定義

画像定義以外の定義です。数字や文字、グラフやボタンなど何らかの機能を持った定義になります。
画像定義同様何個でも使えます。

#SRC_NUMBER

数値定義です。スコアや日付などを参照します。

src_number.png

(NULL) #IMAGEと同じです。NUMBER定義では0以外を入力しても意味はありません。
gr

number.pngを使うのでここでは1。

xywh

IMAGEと同じですが、NUMBER定義では「使用する数字全体の座標」を指定します。
右図の赤枠で示した範囲を指定し、これをdivで分割して使用します。
このため、各数字の横幅を統一しておく必要があります。

※csv側での文字間隔の指定は不可能なので必要に応じて画像制作段階でスペースを入れておきましょう。

number_xywh.png
divx_ div_y

SRC_NUMBERのdiv_xとdiv_yを掛けた値は以下のいずれかでなければなりません。

10の倍数:0〜9の文字セット
11の倍数:0〜9の文字セットと裏0
24の倍数:0〜9の文字セットと裏0と+符号、同じく値が負の場合の0〜9裏0と-符号

ここでいう「裏0」は表示桁数が指定桁数より少ない場合に桁を埋めるために使用する0を指します。
サンプルでは分かりやすく半透明にしましたが、必ずしも透過する必要はありませんし、
11分割にした上で画像を用意しなくても特に問題はありません。
urazero.png

11分割で裏0を使用しないのであればそもそも10分割にした方が早いですが、
マイナス側の値を参照し、かつ裏0を表示したくない場合は24分割で裏0だけ透明にする手法が使われます。

※裏0ありだとalignによっては正確な値が出せません。

※「○の倍数」となっているのはdiv分割アニメーションが使用可能という意味です。
また、仕様書によると10・11・24のいずれか2つで割りきれる値に分割した場合は10分割アニメーション優先だそうです。

cycle div分割アニメーション数値定義の場合のみ入力します。0で省略。
IMAGE定義同様、アニメーション周期を指定します。
timer

div分割アニメーション(cycle値)の動作開始timerを指定します。利用可能なtimer値はスキン関連ドキュメント内timer.txt参照。

num

この数値定義で何の数値データを参照するのかを指定します。利用可能なnum値は右表参照。

※当然ですが、間違うと大変です。

align

数値定義の配置指定です。

0:右寄せ
1:左寄せ
2:中央

keta

表示する桁数を指定します。ketaが少ないときちんと表示されない場合があるので、
「この定義で表示する可能性がある最大値」に合わせておくのがベストです。

スキン関連ドキュメントには「ketaは+-文字を含めた桁数です」と記述されていますが、
正しくは「+-符号を含まない桁数」指定です。

つまり24分割NUMBER定義を使う場合、keta4の数値を表示するには5桁分の横幅が必要になります。

#DST_NUMBERのwh値で指定するのは数字1桁分のサイズで、DST_xy座標からalignとketaに従って数値が表示されます。

NUMBER定義のalignとDST_xy座標

keta8のNUMBER定義のalign0〜2をそれぞれ裏0無しと有りで全て同じDST_x座標に並べた時の表示は以下の様になります。
※緑の実線がDST_x座標、黒の破線は座標確認用補助線

number_align.gif

NUMBER定義のDST座標は、まず先にDST_w値をketa数倍にして定義全体のw値が割り出され、そこから有効桁数でalign調整され、最後に裏0.が付加されます。
この時、align1・2では裏0が何故か値の右側に表示されるため、効果が無いばかりか値がおかしくなります。

また、24分割時のみ符号分も含めて幅を取るので、算出される座標は(keta値+1)×DST_w値になります。
他の定義と特性がちょっと違うので注意。


NUMBER定義テンプレート

カンマ区切り

タブ区切り

#SRC_SLIDER

パラメータ変更用のスライダーです。クリックで摘むことにより、値を自由に変更できます。

src_slider.png

(NULL) #IMAGEと同じです。SLIDER定義では0以外を入力しても意味はありません。
gr

slider.pngを使うのでここでは2。

xywh

実際にスライダーとして動くパーツを選択します。スライダーの枠ではないのでちょっと注意。

divx_ div_y

IMAGE定義同様、アニメーションさせる場合のみ指定します。省略する場合はどちらも1。

cycle div分割アニメーション定義の場合のみ入力します。0で省略。
IMAGE定義同様、アニメーション周期を指定します。
timer

div分割アニメーション(cycle値)の動作開始timerを指定します。利用可能なtimer値はスキン関連ドキュメント内timer.txt参照。

muki

スライダーの移動方向を指定します。

0:上
1:右
2:下
3:左

※時間で変化する場合はスタート地点からどちらに進むか、値を変化させる場合は最小値から最大値までの向きです。

range

スライダーの移動範囲を指定します。
変更する値の最大値が決まっている場合はなるべくサイズを合わせた方が正確な動作になります。

※書いてて気付きましたが音量調整って0〜100までの「101段階」なんですね…綺麗に動かない訳だ…

type

スライダーの種別を指定します。利用可能な値は右表参照。

disable

マウスでの値の変更の可否を指定します。

0:変更可
1:変更不可

※値が変更可能なものに限ります。
※省略した場合は0扱いになります。

#DST_SLIDERのxy座標はスタート地点もしくは最小値の時の座標を指定します。
DST_whは拡縮を行わないのであればSRCと同じ値を指定します。(スライダーの移動幅はSRC側で定義するのでDST側では不要)
他は#DST_IMAGE同様。

SLIDER定義テンプレート

カンマ区切り

タブ区切り

#SRC_BARGRAPH

棒グラフ描画用です。スコア関連の視覚化に利用してください。

src_bargraph.png

(NULL) #IMAGEと同じです。BARGRAPH定義では0以外を入力しても意味はありません。
gr

bargraph.pngを使うのでここでは3。

xywh

グラフが100%のときの画像を指定します。
棒グラフである以上、ほぼ間違いなく縮小されるのでサンプルのように枠を付けてしまうと、値によってはきちんと表示されません。
どうしても枠が必要な場合は2px太くした黒グラフを1pxずらして下に重ねる方が確実です。
※ただしこの方法では透過が出来ません。

divx_ div_y

IMAGE定義同様、アニメーションさせる場合のみ指定します。省略する場合はどちらも1。

cycle div分割アニメーション定義の場合のみ入力します。0で省略。
IMAGE定義同様、アニメーション周期を指定します。
timer

div分割アニメーション(cycle値)の動作開始timerを指定します。利用可能なtimer値はスキン関連ドキュメント内timer.txt参照。

type

グラフ種別を指定します。利用可能な値は右表参照。

muki

グラフの伸びていく向きを指定します。

0:右
1:下

※スライダーのmukiと違い、方向が限定されています。向きを逆にしたい場合はDSTのwやhを負の値にします。
※こっちの方がしっくりくるのでデフォスキンの解説とちょっと表現変えてます。

#DST_BARGRAPHは省略。xywhはSRC同様100%状態の座標を指定します。wとhの値だけ注意しましょう。

BARGRAPH定義テンプレート

カンマ区切り

タブ区切り

#SRC_BUTTON

クリックすることにより、オプションの値等を変更することができ、また値によってボタンの画像を変えることが出来ます。
クリックを無効にすることにより、現在のオプション状態のみを表示、という使い方も可能です。
回転描画をさせてもクリック判定は回転していない状態となります。

※『現在のゲージ種別(HARDやEASY)』の値に応じて画像を切り替えられるのはボタン定義だけです。

src_button.png

(NULL) #IMAGEと同じです。BUTTON定義では0以外を入力しても意味はありません。
gr

button.pngを使うのでここでは4。

xywh

NUMBER定義同様、必要な全ボタン画像を指定し、div値で分割します。
必要なボタン個数(項目数)はボタンタイプによって異なるのでスキン関連ドキュメント内button.txtで事前にしっかり確認しましょう。

divx_ div_y

ボタンタイプによって個数が決まっていますが、分割方向に指定はありません。
項目数が奇数個の場合は縦か横に直列させるしかないので結構サイズ使います。

cycle

BUTTON定義では規定数の整数倍に分割してもdiv分割アニメーションを利用することが出来ません。
このため0以外を入力しても意味無いです。

※通常はONMOUSE定義を使います。
※どうしてもアニメーションさせたい場合は複数ボタン定義を重ねてtime切るしかありません。

timer

上記理由によりtimerも0固定になります。

type

ボタンタイプを指定します。利用可能な値は右表参照。

click

ボタンクリックによる値の変更の可否を指定します。

0:変更不可
1:変更可

※右半分クリックで値+、左半分クリックで値-です。

panel panelを指定すると、規定のパネルが出ているときのみクリック可能になります。
またpanel=-1の場合のみ、パネルがすべてオフのときのみクリック可能になります。
plusonly

何故か仕様書には記載されていませんが、plusonly=1で値+のみ、plusonly=-1で値-のみの動作になります。
この時のクリック判定はボタン全体になります。

※省略可能。

#DSTは省略。

BUTTON定義テンプレート

カンマ区切り

タブ区切り

#SRC_ONMOUSE

汎用定義で唯一、デフォスキンや仕様書に解説が存在しない定義です。
定義名からも分かる通り、マウスカーソルが重なった場合にのみパーツを表示します。

src_onmouse.png

(NULL) #IMAGEと同じです。ONMOUSE定義では0以外を入力しても意味はありません。
gr

onmouse.pngを使うのでここでは5。

xywh

#IMAGEと同様。表示する画像パーツを指定します。

divx_ div_y

IMAGE定義同様、アニメーションさせる場合のみ指定します。省略する場合はどちらも1。

cycle

div分割アニメーション定義の場合のみ入力します。0で省略。
IMAGE定義同様、アニメーション周期を指定します。

timer

div分割アニメーション(cycle値)の動作開始timerを指定します。利用可能なtimer値はスキン関連ドキュメント内timer.txt参照。

panel

panelを指定すると、規定のパネルが出ているときのみ表示されます。
またpanel=-1の場合のみ、パネルがすべてオフのときのみ表示となります。

x2y2w2h2

問題はここです。
ONMOUSE定義ではこれら4つの値でマウスの判定座標を指定しますが、
このx2y2はxyからの相対座標になります。ちなみにx2とy2では負の値も使えます。
試してませんがおそらくwhでも出来ると思います。

右図は赤の範囲をSRCで切り出す画像全体、
緑の範囲をマウス判定座標とした時の各値の関係です。
つまり 緑の範囲にマウスカーソルが重なると赤の範囲が表示されます。

この時の判定座標は切り出し画像内に無くても問題ありません。
(マウス判定のみ画面の反対側で行う、といったことも可能です)

表示するパーツがマウス判定座標と同じ位置・サイズであれば、
x2y2が0、w2h2はSRCと同じ値で済みますが、
サイズが異なる場合の方が多いのがこの定義の面倒くさいところ。

x2y2に緑範囲の左上座標点も含めて取ってしまいよく失敗しましたが、
x2y2には緑範囲(マウス判定範囲)は含まれません。注意しましょう。

onmouse_x2y2w2h2.png

#DSTは省略。

ONMOUSE定義テンプレート

カンマ区切り

タブ区切り

#SRC_TEXT

文字列定義です。
LR2スキン定義の中で唯一製作側の想定しないものを表示する可能性がある定義です。
表示文字列の横幅がDSTのw値を超えるサイズになった場合は自動的に縮小されます。このためほぼfilter必須。
また、回転描画には対応していません。

src_text.png

(NULL) #IMAGEと同じです。TEXT定義では0以外を入力しても意味はありません。
font

画像定義でのgrと同じです。#LR2FONTでの記述順番号を指定します。

st

参照文字列タイプを指定します。利用可能な値は右表参照。

align

文字の表示位置を指定します。alignによってDST行で指定するx座標の位置が変わるので注意。

0:左寄せ(xは文字列の左端を指定)
1:センタリング(同中央)
2:右寄せ(同右端)

※NUMBER定義のalignとは微妙に違うので注意。

edit

edit=1でクリック時の編集が可能になります。ただし対応しているもの以外は編集しても無意味です。

panel 指定のパネル起動中のみ編集できます。panel=-1でパネルが起動していないときのみ編集できます。

表示文字列のサイズはDST側のh値に依存します。

※文字の描画順序

DST_TEXTの文字の描画は左の文字から順に行われるようで、
lr2fontでの#Mを負の値で大きめに設定し、表示文字列が全て重なる状態で文字列「1234」を表示させると4が最前面になります。

※文字の表示サイズ

lr2fontファイル内で#SRC定義のように文字単位での切り出し座標が記述されており、
切り出された画像の高さが同じくlr2font内の#S値に合わせて拡縮され、更にDST_TEXTでのh値に拡縮されて表示されます。
(基本的に高さ基準です。横幅は最終的にDST側のw値依存になるので拡縮を完全に避けることは出来ません)

このため、lr2fontでの全文字のh値・S値・DST_TEXTのh値はすべて統一しておいた方が表示が綺麗になります。
が、 FontUtilで狙ったサイズを出力するのは難しいので、基本的にはlr2fontを作ってから文字定義を作りましょう。


TEXT定義テンプレート

カンマ区切り

タブ区切り