NPCとの会話のシステム(2) 長い文字列を配列に変換する方法
「昨日のやつに少し手を加えて、変数に設定した文字列の最初の行だけ表示するようにした」
妹「1行だけ入れればいいのでは」
「そうなんだけど、この特定の行だけ取り出す方法っていうのが、文字列を使って何かする時の基本になる」
「これがウィジェットを表示する用のイベントで、昨日は変数に入ってる文字をそのまま表示してたところに、赤枠の部分を今日追加した部分」
妹「文字列を……文字列の配列にするの?」
「配列にするというか、文字列を分割するというか。Parse Into Arrayというノードを使う。例えばこれとこれは同じ結果が出力ピンから出てくる」
「結果が同じだけで、内部的な処理は違うだろうけど。こうするとピンをいっぱい作ったり、変数をたくさん用意したりしなくていい。全部1まとめに書いておいて、あとで分けて使うことが出来る」
妹「区切る文字を変えられるなら、改行以外にも使えそうだけど……」
「もちろん使える。まあ本文の中で使う文字だと、意図しないとこで分割されちゃうから、区切りに使う文字は、それ以外のところには使わないようにしないと駄目だけど。『,』とか『:』とかを使うことが多い。区切りは日本語でも複数の文字でもいい」
妹「これは凄い技術のような、そうでもないような……」
「Parse Into Array以外にも文字列を操作する関数というのが大量にあって、ユーティリティー -> ストリング の中にある」
「配列じゃなく2つのピンに分ける時はSplitだし、あと文字列をくっつけるAppendは今までに使ったことあった気がする。他にも指定の文字を他のに置き換えるとか、先頭から何文字目分だけ抜き出すとか、特定の文字が含まれているか調べるとか、そういうのが色々ある。正規表現も使えるし、一般的なプログラミングで使う文字列処理はだいたい使える」
妹「たくさんありすぎてわからん……」
「ゲーム作るのによく使う分はそんなにはないから。どういうことが出来るかだけ記憶しておいて、あとは使う時に探せばいい。いちばんよく使うのはやっぱりParse Into Arrayだと思う」