フワフワソが「ソラとピヨちゃん」や「宮本県」を作るブログ(フワフワソ・ラウンジnew!)

ラノベとテクノを愛するふわふわがノベルゲームを作っています。あと日常のことやイベントの告知なども。スクリプト関連の記事は自分用の備忘録です

tipプラグインを使ってみた

自分で作ったtips画面がちょっと重いので、tipプラグインをお借りしてみました。

まず、そこに至った経緯。

 

1)ボタンを大量に表示させると重くなる

f:id:fuwafuwaso:20200502190513p:plain

自作tips画面です。

[image]や[button]を使って、既読未読の画像を切り替えながら、ボタンを40個くらい表示させてました。この自作tips画面とメイン画面とを行き来すると、さすがにもたつきが出ます

2)ティラノの仕様で、文字を瞬間表示させることができない

f:id:fuwafuwaso:20200502190512p:plain

これは意外なんですが、ティラノは、メッセージウィンドウで数行の文字表記をする、ギャルゲタイプのシステムしか想定していないと思われます。

この画面のようにノベル風に画面いっぱいに文字を大量に出そうとしても、瞬間表示ができません。[no_wait]というタグはありますが、ウェイトが0の瞬間表示になるのではなく、高速表記になるようです。

つまり、文字の表示される軌跡が見えるくらいのスピードです。

config.tjsをいじると、若干文字表示は早くなります。skipSpeed = 30となってるのを1にします。(0にしようとしたのですが、不具合報告を見かけたので1に)

// ◆ スキップスピード (ミリ秒/文字)
//スキップ時にどれくらいの早さで進むかを設定できる
;skipSpeed = 1;

しかしこれでもやはり瞬間にはなりません。文字表示の軌跡が見えます。

 

ではどうするか?

・解決法1

こちらのサイト様で瞬間表示用のプラグインが公開されています。

studio-overdrive.com

ただし、ティラノのバージョンが古く、現行のものではバックログが記録されなかったり、クリック待ち画像がうまく出なかったりします。

バックログはあきらめるとか、クリック待ち画像は設定で消すとかで、無理やり対応はできるかと思います。

・導入方法(バージョンが古いティラノ用なので、現行バージョンに入れるには以下のような工夫がいります):

boost_mode.ksの入ったboost_modeフォルダをscenarioフォルダに入れる。

boost_mode.jsの入ったboost_modeフォルダをothersフォルダに入れる。

first.ksで[call storage="boost_mode/boost_mode.ks"]

あとは[boost_mode_on][boost_mode_off]で高速化の切り替えができます。

ただ、やはりバックログやクリック待ちがないとだめ、というときには別の工夫がいります。

 

・解決法2

[ptext]を使う。

作者様のツイートされている方法です。

 [ptext]を使うと、大量の文字でも一瞬で表示できます。(ツイートでは[text]になってますが今はこのタグはリファレンスにないのかも?)

改行についてはhtmlの<br>タグを入れれば可能になります。

[ptext  text="あああああああ<br>ああああああ<br>あああああ<br>あああ" size=30 x=200 y=300 ]

 ただし、現行のバージョンでは改行タグが使用出来ない可能性があります。

私はv472を使用しているのですが、以降のバージョンではptext内の改行タグがそのまま<br>という文字で出力されてしまいます。(v501まで確認しましたが、解決していませんでした)

 ここは、ティラノをバージョンアップしないという手で行きたいと思います。

(今からティラノを入手される方は、公開されてる過去バージョンver475だとたぶんだめなので、ver461あたりを使用されるといいと思います)

 

・ptextで文章を作成する方法

 これが意外とめんどくさいです。

改行は<br>で解決するとしても、すべてのテキストを一行で書かなければいけません。

以下の書き方は大丈夫です

[ptext  text="古池や<br>かわず飛び込む<br>水の音<br>とかそんなことをいっぱい書く" size=30 x=200 y=300 ]

以下はダメです。タグが切れてしまいます。

[ptext  text="古池や<br>

かわず飛び込む<br>

水の音<br>

とかそんなことをいっぱい書く" size=30 x=200 y=300 ]

 つまり、作成中の文章の視認性をよくするためにテキストエディタ上で改行を入れると、もうそこでタグが切れてしまいます。これによって長い文章を作成する作業がとんでもなくめんどくさいです。(ここでいう改行は、<br>タグとは違うもの。エンターキーを押したときに入る、「↓」や「⏎」などで表示される不可視の改行コードのこと)

 

解決法として、エディタ上で長い文章を書いてから、一括で改行コードを削除すると若干楽になります。

サクラエディタの場合

置換→正規表現にチェック→改行コードを空白に置き換える

改行コードはLFの場合、\n になります。

たぶんティラノの場合LFだと思いますが、CRLFのときは、\r\n です。

これで文末の改行コードが削除され、長い文章が一行につながります。(もちろん<br>タグは残したままです!)

 

・TIPプラグインを導入

こういった試行錯誤の末、tipsプラグインをお借りしてみることにしました。

TIPプラグイン - めも調

htmlでtip画面をかぶせているので、私の自作tip画面より軽くて速いです。

冒頭の「1)ボタンを大量に表示させると重くなる」という問題はこれで解決できました。

工夫として、メイン画面から常にtips一覧を表示できるようにしました。

プラグイン公式では、ボタンの設定にexp="TYRANO.kag.menu.displayTiplist()"をするようになっています。

TIP一覧表示は [button] タグに exp="TYRANO.kag.menu.displayTiplist()" を指定してください。
例:[button x=0 y=0 fix=true graphic="button_tip.gif" exp="TYRANO.kag.menu.displayTiplist()"]

やってみたのですが、これだけだと、tips一覧からメイン画面に戻った時に、メッセージがワンクリックぶん進んでしまうので、バックログを取得して再表示させるようにしました。

初期設定。ボタン設定

[button x=1765 y=830 graphic="tips/mokuji/lhack-in.png" name="tipsall,tips12" fix="true" auto_next="false" preexp="12" exp="TYRANO.kag.menu.displayTiplist()" storage="lifehack.ks" target=*lifehack_tipver]

 

ボタンを押したらここに来る。

lifehack.ks内

*lifehack_tipver

[iscript]
f.loghukki = $(".current_span").html();
[endscript]
[er]
[nowait]
[emb exp="''+f.loghukki"]
[endnowait]
[return]

ちょっと変な使い方かもしれませんが、これで一応意図した動きはできました。

(ただし、これも現行のティラノではうまくいきません。バックログを取得すると変なタグが入ってしまいます。こういった事情もあって、古いバージョンのティラノを使い続けています)

ここの処理まるっといらなかったです! バックログが2重になるバグが出たので。

ワンクリックぶん勝手に進む謎はよくわからないうちにかいけつできました@_@;

ただの空returnにしたせい?

 

また、このプラグインのテキスト作成も、csv形式なので、一行ですべてを記述する必要があります。そのときには、上記のサクラエディタの場合」のやり方が役に立つと思います。

ptextだけでやるのと違ってhtmlタグを使ってTIPS内に画像も差し込めますし、全部画像にすることもできそうです。とてもすばらしいプラグインです。

テキスト表示もhtmlなんでしょうか。

2)ティラノの仕様で、文字を瞬間表示させることができない」

という問題もこのプラグインで解決できます。