KAGマクロ集

Last-modified: 2016-03-28 (月) 11:47:49

汎用性の高いもの、シンプルなもの中心。
いずれもKAG3/KAG2互換モードに対応している…と思うが、真面目に検証していないので一部KAG2互換モードでは正しく動作しないものがあるかも知れない。
cond属性については説明を省略。
また、layerExImage.dllおよびperspective.dllで説明しているマクロも参照のこと。

システム関連

touchimages

説明

機能概要
画像データをキャッシュする(必ずキャッシュするとは限らない)
属性
storages…キャッシュする画像ファイル名。複数指定時は ; で区切る。指定必須
備考
‐複数指定時は、先頭に書いた画像ファイルほど優先的にキャッシュされる
‐ルール画像ファイル、領域指定画像ファイルはキャッシュの対象にできない
‐内部的には一時変数tf.___tifを使用している

マクロ定義

@macro name=touchimages
  @eval exp="System.touchImages(tf.___tif=mp.storages.split(';')), invalidate tf.___tif"
@endmacro

使用例

; ↓拡張子は省略可
[touchimages storages="foo.jpg;goo.png;hoo.tlg"]

レイヤ関連

blur

説明

機能概要
レイヤ画像をぼかす(ブラー)
属性
layer…対象のレイヤ(base/0,1,2…)。指定必須
page…表画面か裏画面かを指定する(fore/back)。省略時fore
x…横方向のブラーの範囲(ピクセル)
y…縦方向のブラーの範囲(ピクセル)
備考
メッセージレイヤにも適用可能だが、フレーム(メッセージ枠)画像を読み込んでおく必要がある

マクロ定義

@macro name=blur
  @eval exp="kag.getLayerFromElm(mp).doBoxBlur(+mp.x, +mp.y)"
@endmacro

flip_ud

説明

機能概要
レイヤ画像を上下反転
属性
layer…対象のレイヤ(base/0,1,2…)。指定必須
page…表画面か裏画面かを指定する(fore/back)。省略時fore
備考
メッセージレイヤにも適用可能だが、フレーム(メッセージ枠)画像を読み込んでおく必要がある

マクロ定義

@macro name=flip_ud
  @eval exp="kag.getLayerFromElm(mp).flipUD()"
@endmacro

flip_lr

説明

機能概要
レイヤ画像を左右反転
属性
layer…対象のレイヤ(base/0,1,2…)。指定必須
page…表画面か裏画面かを指定する(fore/back)。省略時fore
備考
メッセージレイヤにも適用可能だが、フレーム(メッセージ枠)画像を読み込んでおく必要がある

マクロ定義

@macro name=flip_lr
  @eval exp="kag.getLayerFromElm(mp).flipLR()"
@endmacro

move2

説明

機能概要
moveタグの改造版。path属性に配列を指定できるようにしたもの
属性
path…X座標、Y座標、不透明度の順で繰り返し並ぶ配列(要素数は3の倍数であること)
それ以外はmoveタグの属性と同じ
備考
‐自動移動の終了待ちにはwmタグを使う
‐エラーチェックはしていない

マクロ定義

@macro name=move2
  @move * path="&(mp.path!).join(',')"
@endmacro

使用例

; path属性値に配列tf.arrを指定
[eval exp="tf.arr = [0,0,255, 50,50,255, 150,50,255, 50,150,255]"]
[move2 layer=0 page=fore path="tf.arr" time=500]
[wm]
; こういう書き方もできる
[move2 layer=0 page=fore path="[0,0,255, 50,50,255, 150,50,255, 50,150,255]" time=500]
[wm]

メッセージ関連

dash2

説明

機能概要
「―」2文字を綺麗に繋げて表示する
属性
なし
備考
‐フォントやスタイル設定によりpitch属性値から引く値(-1)を調節すること
‐袋文字では綺麗に繋がらないので、インライン画像を使った方が良い
‐履歴に関しては何も考慮していない
‐内部的には一時変数tf.___pitchを使用している

マクロ定義

@macro name=dash2
  @eval exp="tf.___pitch = kag.current.pitch"
  @style pitch="&tf.___pitch-1"
  @ch text="―"
  @ch text="―"
  @style pitch="&tf.___pitch"
@endmacro

各種シンボル

説明

いずれも属性なし。
テスト実績はWindowsXP SP2の「MS ゴシック」「MS Pゴシック」「MS 明朝」「MS P明朝」フォントのみ。
使用しているフォント(やバージョン)によっては正しく表示できないことがあるので注意。

マクロ定義

;
; ●天気
;
; 晴れ
@macro name=clearweather
  @ch text="&$0x2600"
@endmacro
; 曇り
@macro name=cloud
  @ch text="&$0x2601"
@endmacro
; 雨
@macro name=rain
  @ch text="&$0x2602"
@endmacro
; 雪
@macro name=snow
  @ch text="&$0x2603"
@endmacro
;
; ●危険
;
; 骨
@macro name=bone
  @ch text="&$0x2620"
@endmacro
; 放射能
@macro name=radioactive
  @ch text="&$0x2622"
@endmacro
; バイオハザード
@macro name=biohazard
  @ch text="&$0x2623"
@endmacro
;
; ●トランプ
;
; スペード(白抜き)
@macro name=spade1
  @ch text="&$0x2664"
@endmacro
; スペード(塗りつぶし)
@macro name=spade2
  @ch text="&$0x2660"
@endmacro
; ハート(白抜き)
@macro name=heart1
  @ch text="&$0x2661"
@endmacro
; ハート(塗りつぶし)
@macro name=heart2
  @ch text="&$0x2665"
@endmacro
; ダイヤ(白抜き)
@macro name=dia1
  @ch text="&$0x2662"
@endmacro
; ダイヤ(塗りつぶし)
@macro name=dia2
  @ch text="&$0x2666"
@endmacro
; クローバー(白抜き)
@macro name=clover1
  @ch text="&$0x2667"
@endmacro
; クローバー(塗りつぶし)
@macro name=clover2
  @ch text="&$0x2663"
@endmacro
;
; ●著作権・商標
;
; コピーライト
@macro name=maru_c
  @ch text="&$0x00a9"
@endmacro
; 登録商標
@macro name=maru_r
  @ch text="&$0x00ae"
@endmacro
; 商標
@macro name=tm
  @ch text="&$0x2122"
@endmacro
;
; ●その他
;
; 温泉
@macro name=hotspring
  @ch text="&$0x2668"
@endmacro

ラベル・ジャンプ関連

button_chgimage

説明

機能概要
グラフィカルボタンの画像を変更する
属性
num…グラフィカルボタンの番号。省略時0
graphic…ボタンの画像ファイル名。指定必須
graphickey…カラーキー
備考
num属性に指定する値は、カレントのメッセージレイヤのクリア後、作成したグラフィカルボタンの順番(0オリジン)であること。この値は、ハイパーリンク、チェックボックス、エディットボックスもカウントの対象となっているので注意

マクロ定義

@macro name=button_chgimage
  @eval exp="kag.current.links[+mp.num].object.loadImages(mp.graphic, mp.graphickey)"
@endmacro

使用例

; クリックすると、自身の画像をbutton2.pngに置き換える
[cm]
[button graphic="button1.png" target=*click]
[s]
*click
[unlocklink]
[button_chgimage graphic="button2.png"]
[s]