ゲーム製作エンジン『吉里吉里』のスクリプトについて備忘録程度の小ネタのため全体公開にしてあります。
吉里吉里2KAG3にて検証済みですが、動作を保証するものではありません。
※適宜書き換えてご利用ください。報告は任意です。
※以前ブログで全体公開していたものを掲載しています。おまけ程度に御覧ください。
内容
・メッセージレイヤより上に前景レイヤ(立ち絵など)
・属性にニックネーム%|
・表情差分pimage
・左右反転マクロ
・変数の上限設定
・タイトル画面からロード(ボタン画像)
メッセージレイヤより上に前景レイヤ
[layopt layer=0 index=1000001 autohide=true]
[layopt layer=1 index=1001001 autohide=true]
index属性を付けてあげて、1000001から始まって1000ずつ増えてくはず。
属性にニックネーム%|
[macro name=立ち絵]
[backlay]
[image storage=%s layer=1 page=back visible=true top=0 left=0]
[trans time=%t|100 method=crossfade][wt]
[endmacro]
タグの属性には全てニックネームがつけられます。
マクロ内タグに画像や時間を指示する場合、本来なら
[立ち絵 storage=Mikasa time=300]
と打たなければなりません。
が、%を使えばstorageやtimeを好きなアルファベットに置き換えることができます。
storageだったらs、timeだったらtのように。で…
[立ち絵 s=Armin t=50]
こんな感じにできます。余計な情報がないので見やすいですね。
あと「|」(半角+Shift+¥キー)の後ろは特に指定がない場合に実行するファイル/数値です。
[立ち絵 s=Levi]
とすれば、トランジションのtimeは最初に指定した通り100で実行されます。imageタグにも|+ファイル名を加えておけば[立ち絵]だけできちんと立ち絵が表示されます。
表情差分pimage
[macro name=左]
[backlay]
[image storage=%s|K1 layer=1 page=back visible=true top=30 left=40]
[pimage storage=%m|K1def layer=1 page=back dx=0 dy=0];眉の差分レイヤ
[pimage storage=%e|K1def layer=1 page=back dx=0 dy=0];目の差分レイヤ
[pimage storage=%k|K1def layer=1 page=back dx=0 dy=0];口の差分レイヤ
[pimage storage=%s|none layer=1 page=back dx=0 dy=0];オプション(汗や照れ顔、メガネ等)レイヤ
[pimage storage=%s|none layer=1 page=back dx=0 dy=0];オプションレイヤ2
[trans time=%t|100 method=crossfade][wt]
[endmacro]
としておけば、[左]だけでデフォルトの表情のキャラを表示でき、かつ
[左 m=K1hachi k=K1close]
という風に眉と口だけ差分を指定することも可能です。
左右反転マクロ
[macro name=左右反転]
[eval exp="kag.getLayerFromElm(mp).flipLR()"]
[endmacro]
上下反転したい場合はflipLR()をflipUD()に書き換えるだけ。
実際には、
[backlay] (表示の準備)
[左 s=leo] (左側に表示したい立ち絵のファイル名を指定)
[左右反転 layer=1 page=back] (反転するレイヤ番号を指定)
[表示] (トランジションで表示)
な感じで使います。
変数の上限設定
iscriptタグで
f.変数名 = (int)Math.min(f.変数名+1, 100);
とすると上限が100になります。
f.変数名+1,の「1」はその変数の初期値。
変数を文字表示する直前にでも記述しておくといいみたいです。
タイトル画面からロード
吉里吉里に付属しているrclick_tjs.ksのロード画面を、
タイトル画面から呼び出したい!ってときに書くやつです。
ロードボタン(画像)をクリックして呼び出す方式。
[eval exp="kag.callExtraConductor('rclick_tjs.ks', '*rclick'); tf.sav=2;"]
( )内等、必要に応じて書き換えてください。