OREFOLDER

KLWPでテキストファイルを使ってランダムにセリフを喋らせる

KLWPで、画面上にランダムなテキストを表示する方法です。見るたびに違う名言や格言を表示させたり、画面のキャラのセリフをランダム表示するといったことができます。

以前同じような内容で方法を書いたのですが、また別の方法を使ってみます。おそらく今回のほうがちゃんとしたものができると思います。

  • 本記事は広告およびアフィリエイトプログラムによる収益を得ています。

0.概要

まず、簡単に今回のやり方を書いておきます。
今回はローカル環境でrssのファイルを用意し、その中身を表示するテキストとし、それを表示させます。rssならランダムに表示することも簡単です。

1.テキストファイルを用意する

今回も、表示するテキストを別のテキストファイルとして用意します。そして今回は上図の通り、単純なテキストではなく、ちょっとしたコードとして記述します。

これは、以下のようなコードになります。

<?xml version='1.0' encoding='UTF-8'?>
<rss version='2.0'>
	<channel>
		<title>タイトル</title>
		<link>URL</link>
		<description>説明</description>
<item><title>テキスト1</title></item>
<item><title>テキスト2</title></item>
<item><title>テキスト3</title></item>
<item><title>テキスト4</title></item>
<item><title>テキスト5</title></item>
	</channel>
</rss>

これはrssの書式です。つまり、KLWPでrssとしてテキストファイルを読み込ませようということです。
最初の方の「タイトル」「URL」「説明」の部分は適当で大丈夫です。<item><title>テキスト1</title></item>の部分の内容を書き換えたり、必要に応じて増減してください。

そしてこれをとりあえず「text0.txt」という名前で保存します。文字コードはUTF-8にしましょう。

2.KLWPで表示する

KLWPのテキストで次のように入力します。

$wg("file://storage/emulated/0/Kustom/txt/test0.txt", rss, tu(rnd, 0.1, 0, 14), title)$

青字の部分は作成したテキストファイルの位置です。それぞれの環境に合わせて書き換えます。
赤字の部分は何番目を表示するかという部分で、$tu(rnd)$を使って「0.1分ごとに0から14の中からランダムに表示」としています。

これで、あとは自分のホーム画面に合わせて数値などを変更すればいいでしょう。rssは普通はウェブサイトの更新情報などを表示するために使うものですが、KLWPでは同じ形式で作成すればローカル(スマホ内)にファイルがあっても読み込むことができます。実際のコードがちょっと面倒ですが、それ以外は使いやすいと思います。

3.タップでランダムにセリフを変更

応用として、同じrssのファイルを使って、画像をタップするたびにランダムで表示するようにしてみます。

グローバル変数の作成

まずグローバル変数を1つ作成します。タイプは「テキスト」にし、初期値として「$tu(rnd, 0.1, 0, 14)$」を入れます。先ほどと同じ式で、更新間隔を0.1分、つまり6秒にしていますが、これは動作確認用なので実際はもっと長いほうがいいと思います。

スイッチの作成

続いて、スイッチとなる部分の作成です。今回は女の子の画像をタップするとテキスト(セリフ)が変わるようにしています。

スイッチとなる画像の「タッチ」設定で、アクションを「グローバル切り替え」、スイッチを先ほど作成したグローバル変数、テキストは「$mu(rnd, 0, 14)$」と入力します。

これで、スイッチとなる画像をタッチするたびにグローバル変数の値がランダムに変化します。

テキストを表示する

テキスト部分は最初の例をちょっと改造しただけで大丈夫です。

$wg("file://storage/emulated/0/Kustom/txt/test0.txt", rss, gv(rtxt, 0), title)$

赤字部分をグローバル変数に置き換えただけです。これで画像をタップするごとにグローバル変数が変化し、それに伴ってテキストの内容も変化します。

なお、画像をタップするまでは$tu(rnd, 0.1, 0, 14)$で時間経過でランダムに切り替わるのですが、一度タップしてテキストを切り替えるとあとは時間経過での変化はしなくなります。

まとめ

ランダムにセリフを表示、ということでは前回の方法よりも使いやすいんじゃなかと思います。KLWPでrssの読み込み先として端末内のファイルも指定できると気付けば簡単な話でした。こんなことにrssの書式を使うのはいいことではないのかもしれませんが、まぁ自分の端末内で済んでいるので大丈夫だと思います。

KLWPの使い方についてはこちらのページにてまとめています。使い方に困ったときなど、こちらのページも参考にしてください。

モバイルバージョンを終了