【ティラノスクリプト】マクロで名前ウインドウの表示・非表示切り替えをほんの少し楽にする

一応、自動で#の時にだけ出る……ようなことはできないけど、
ばか正直にタグを打っていくよりは簡単な方法が思いつけたので、
自分用のメモ程度に書いておきます。

詳細は続きへ。

ティラノスクリプトは、
名前を表示する時にだけ名前専用のウインドウが出る……
ような処理は残念ながら搭載されていません。

つまり、名前ウインドウ付きテキストウインドウを使うと、
ティラノ 名前ウインドウ出てる
誰かのセリフじゃない(名前がいらない)シーンにも、名前ウインドウが出てしまうわけです。
名前ウインドウがあってこれはかっこ悪いです。特に、本文と分離されていて、立ち絵も出ていると。

名前ウインドウの非表示は、不可能なわけではありません。


まず、名前用のウインドウを、本文用のウインドウとは別の画像として用意します。
名前用のウインドウは、本文用のウインドウが入っている場所と同じ場所に入れてください。
(data/imageフォルダ内)

そうしたら、名前ウインドウの設定をしましょう。
[position layer="message1" left="120" top="445" width="200" height="50" page="fore" visible="true"]
[position layer="message1" frame="(名前ウインドウのファイル名/拡張子まで)"]
レイヤーは、本文用とは分けます。
(本文のレイヤーは、message0にしてあると思います。)
上のタグは位置やサイズ設定とかなので、いい感じに設定してください。
visibleはtrueにしてね。(falseだと見えません。)

あとは、そのレイヤーが、キャラの名前が書かれるレイヤーだという設定をします。
[ptext name="chara_name_area" layer="message1" color="white" size="24" x="140" y="455"]
[chara_config ptext="chara_name_area"]
上のは位置などなので、これもいい感じに設定してください。
これで、準備は整いました。

あとは、名前が出るところ(つまりセリフ)に合わせて、レイヤーを表示・非表示にするだけです。
表示・非表示には、[layopt]タグを使います。
[layopt layer="message1" visible="true"]
visibleをtrueにすると表示、falseにすると非表示になります。


で。


つまり、これをやると、

[layopt layer="message1" visible="false"]
キーンコーンカーンコーン[p]

[layopt layer="message1" visible="true"]
#わたし
やっべ、遅刻遅刻~><[p]

[layopt layer="message1" visible="false"]
ガラッ[p]

[layopt layer="message1" visible="true"]
#わたし
まにあったよ~><[p]

#???
相変わらず、どたばたどたばた……。[l][r]
あと10分早く起きようとか思わないの?[p]

#わたし
あ、あかねちゃん![p]

#あかね
ほら、もう先生来るわよ。[p]


………………。

いちいち入れてらんないよ!
短いタグでもないんだから、そのうち間違えるに決まっている!
(なお、レイヤーそのものを表示しなくなるので、
#のみ……つまり、名前のクリアは入れていませんが、
本当は入れた方がいいかも。)


そこで、マクロにしてみることにしました。
マクロは、data/scenario/first.ksに書きます。
※[jump]タグより前に書きましょう。

; 名前ウインドウ表示
[macro name="nametrue"]
[layopt layer="message1" visible="true"]
[endmacro]

; 名前ウインドウ非表示
[macro name="namefalse"]
[layopt layer="message1" visible="false"]
[endmacro]


これで、[layopt layer="message1" visible="true"]は[nametrue]、
[layopt layer="message1" visible="false"]は[namefalse]で呼び出せるようになりました。
名前が短くなり、先ほどよりはバグの可能性も低くなりましたが……、
やっぱり、#があるかないかで、判断してほしいなー。

行先頭の文字が#かどうか判定して、その結果によって……できれば、いいんですが。
それは、ティラノスクリプト本体の内部処理も見ていく必要がありそうで、
気が遠くなってやめました。

なので、せめてもう少し、名前表示を楽できないか考えます。


まず、立ち絵があるキャラなら、
[chara_new name="akane" storage="akane/normal.png" jname="あかね"]
こんな風に、一応jnameも指定しておきましょう。
とはいえ、指定なしでも大丈夫です。
(正直、jnameは指定する意味あるのかと、若干思います…。名前が長いキャラ用かな?)

そして、以下のようにマクロを変更します。


; 名前ウインドウ表示
; ここは上のマクロと変わらず

[macro name="nametrue"]
[layopt layer="message1" visible="true"]
[endmacro]

; 名前ウインドウ非表示
; 非表示の前に、改ページクリック待ちの処理も追加

[macro name="namefalse"]
[p]
#
[layopt layer="message1" visible="false"]
[endmacro]

; あかね
; 名前ウインドウを呼び出し、あかね(akane)の名前を出す

[macro name="akanename"]
[nametrue]
#akane
[endmacro]

; わたし
; 名前ウインドウを呼び出し、“わたし”と表示する

[macro name="watashiname"]
[nametrue]
#わたし
[endmacro]



こうすると、さっきの遅刻しそうになってからのシーンは、

[namefalse]
キーンコーンカーンコーン[p]

[watashiname]
やっべ、遅刻遅刻~><[namefalse]
; セリフ終わり、[p]の代わりに必ず[namefalse]を入れるようにする

ガラッ[p]

[watashiname]
まにあったよ~><[namefalse]

; 名前登録していない一時的なキャラの名前のみ[nametrue]でウインドウのみ呼び出す
; さらに、#で改めて指定

[nametrue]
#???
相変わらず、どたばたどたばた……。[l][r]
あと10分早く起きようとか思わないの?[namefalse]

[watashiname]
あ、あかねちゃん![namefalse]

[akanename]
ほら、もう先生来るわよ。[namefalse]


このように記述することができます。
こうすると、少し楽になった……ような気がします。
一応、[layopt layer="message1" visible="false"]よりは短いタグになるので、容量も少しは減るしね。

何かの参考になれば幸いです。
そして、もっと楽で簡単な方法があったら、誰か教えてください……。

コメントの投稿

Secret

プロフィール

塗木ちおり

Author:塗木ちおり
★新着情報★
・現在の多忙度・
暇 ◆◇◇◇◇ 忙
このページをチップで応援
1000+(HP版)

塗木ちおり活動場所リンク
カテゴリ
検索フォーム
カレンダー
07 | 2017/08 | 09
- - 1 2 3 4 5
6 7 8 9 10 11 12
13 14 15 16 17 18 19
20 21 22 23 24 25 26
27 28 29 30 31 - -
ココナラ
招待コード「3vftk」
【なりきりオラクルカード占い】キャラクターと話してみませんか?【アドバイス】 【なりきりタロット占い】キャラクターと話してみませんか?【Yes・No】 似顔絵をお届けします キャラクター風? それともリアル風? 似顔絵がほしい方へ!
リンク
お世話になっている方やサイト様
彼岸花と無口少女。
Amazon.co.jpアソシエイト