はじめに
本記事では、Fortniteのクリエイティブで島を作り直すぞー! と意気込んでみたらえらい方向に行ってしまった話です。
背景
Fortniteのクリエイティブの島を持っているのですが、今の島では不便なことといったらならないので大改修をすることにしました。
発端
大改修の一環として、ビルボードにある文章を書き換えることにしました。
このビルボードで曲者なのは改行ができないこと。
CRやLFを打ち込んでも画面表示は改行されないまま。
Markupでも使うのかと思って調べてみたらそんなものは見つからず。
スペースをたくさん挟めばそれらしきことはできるのですが、なんというかスマートじゃない。
改行の方法が無いことはないのでは、ということで調査することに。
調査
ググってみると、こんなブログ記事を発見。
ここで紹介されているPastebinのページでコピペすれば改行できるよ! と書かれていて実際に改行できました。
…はて、どうして改行できるんだ???
何か文字を挿入しているのか!? Unicodeの特別な文字なのか???
と疑問が増えたところで、Redditの記事へのリンクも。
すると、リプライの一つにそのものズバリな答えが。
U+0085を入れればいいぜ
これではっきりしました。
U+0085とは?
U+0085は「NEL(Next Line)」という、Unicode独自の改行文字です。
基本的にUTF-8でコードや文章を書くときでも改行はCRLFやLFを使うのが専らですし、NELを使う時があるのは…記憶にない(汗)
ほとんど使うことが無いNELを使う機会がまさかのFortniteのクリエイティブというのは本当にレアケースだなぁと。
テキストエディタで挿入するぞ!
フォートナイトでの文字列を挿入したいときは、テキストエディタで編集してコピペしたほうが楽です(PC版の場合)。
秀丸の場合
コードを直接挿入するのも面倒くさいので、カーソル位置にU+0085を挿入するマクロを作りました。
insert "\u0085";
あとは適当なキーバインドにこのマクロを紐づければ楽に挿入できます。
VSCodeの場合
VSCodeではちょっと導入が手間ですが、比較的ラクな方法で。
Insert Unicode 拡張機能をインストール
「Unicode」で検索すれば引っかかりますので、選択してインストールします。
コマンドパレットを開いて、Insert Unicodeの機能を実行
「Insert Unicode: Insert from Hex Code」を選びます。
コードの入力ボックスに"0085"と入力してEnter
?文字ですが、これでU+0085が入力されています。
さて、検証
テキストファイルの中身はこうなっています。
空白部分にU+0085が挿入されています。
以下のサイトにも書かれていますが、UTF-8では0xC285がNELですので、文書中に0xC285が埋め込まれていれば成功です。
バイナリエディタ(VSCodeのHEX Editor)で確認してみると、たしかに0xC285が埋め込まれています。
試しに、このファイルの内容をFortniteにコピペしてみると、ビルボードの文字列が改行されていました。
さいごに
技術ブログの集まりであるQiitaですが、文字コードの話でもOKのようですので、この記事を執筆いたしました。
アウトプットしてみると、結構濃いことしてるなぁと思ってしまいました…。