メインコンテンツまでスキップ

JavaScript 未経験者向けガイド

(全体的にほぼ未推敲)

風呂のコマンドは、JavaScript(に似た言語)で記述します。ただし、このページでは JavaScript を極力学ばずにコマンドを書く方法をごく簡単にですが解説します。

キャラクターコマンドの編集ボタンは、キャラクター編集モーダルの右下の方にあります。キャラクターコマンドは、キャラクターコマもしくは立ち絵コマを右クリックしたときに出るメニューから実行できます(将来、他の実行方法を提供するかもしれません)。

コマンド編集ウィンドウが開いたら、コマンドを新規作成します。そうするとコマンドを書き込むことができるようになります。

キャラクター名の変更

例えばキャラクター名を山田太郎に変更するコマンドの全文は下のようになります。

character.name = '山田太郎';

実際にcharacterを入力しようとしてみるとオートコンプリートメニューが出ることと、character.まで打つと様々な選択肢がメニューとして出てくるのが確認できると思います。メニューが表示されているときにキーボードの上下を押して Enter を押すと、自動入力されます。この機能を使うと打ち間違いが少なくコマンドを記述できるので便利です。また、これらのメニューの右端あたりにカーソルを合わせると>のようなマークが出てきますが、これをクリックすると各選択肢の解説が表示されます。これはドキュメント代わりになるので有用だと思います。

話を元に戻して、この JavaScript の大まかな意味ですが、「character.name山田太郎という文字列を代入する」といった感じになります。

"山田太郎"は山田太郎という文字列を表します。文字列はstringとも呼ばれ、先程のメニューにもname: stringのような文字を確認できると思います。これは name の値の種類が文字列であることを示します。文字列は string ということは知っておくとコマンドを書く上で役立つと思います。

"山田太郎"の左右の"は中身が文字列だということを示す記号です。そのため、このコマンドを実行すると、このキャラクターの名前は"山田太郎"ではなく山田太郎になります。ここで、もし例えばやっと"風呂"に入ることができるのように"という文字が含まれる文字列を書く場合は、"やっと\"風呂\"に入ることができる"のように\を用いてエスケープします。

ヒント

文字列は、"ではなく'などで囲んでも問題ありません。

数値

'山田太郎'で山田太郎という文字列を表すことを学びましたが、100-103.14のように書くことで数値を表すことができます。数値はnumberとも呼ばれます。JavaScript においては、数値と文字列は基本的には異なる値として扱われます。例えば100は数値ですが、'100'は文字列であり、これらは等しくありません1ので注意してください。

なお、先程のコマンドですが、もし文字列の代わりに下のように数値を代入しようとするとエラーとなります。これは、character.name は文字列のみを受け付けるため、数値などは代入できないからです。

character.name = 100;

真偽値

文字列、数値の仲間に真偽値というものもあります。真偽値はbooleanとも呼ばれます。真偽値はtruefalseの 2 つのみです。

注記

文字列、数値、真偽値の他にも様々な種類の型がありますが、ここでは解説しません。

キャラクター画像の変更

例えばキャラクター画像をhttps://example.com/foo.pngに変更するコマンドの全文は下のようになります。

character.icon = { sourceType: 'Default', path: 'https://example.com/foo.png' };

また、例えばキャラクター画像を Firebase Storage の/version/1/uploader/user-name/bar.pngというファイルに変更するコマンドの全文は下のようになります。なお、/version/1/uploader/user-name/bar.pngに相当する文字列は、アップローダーを開いてファイルの右のほうにあるメニュー開閉ボタンをクリックしパスをクリップボードにコピーから取得できます。

character.icon = {
sourceType: 'FirebaseStorage',
path: '/version/1/uploader/user-name/bar.png',
};

どちらの書き方も初見で完全に覚えるのは困難だと思いますが、オートコンプリート機能の助けを借りれば完全に覚えなくても書けるかなと思います。

path は任意の文字列を指定できます。sourceType のほうはDefaultFirebaseStorageのいずれかの文字列である必要があります。

この記法は、ファイルを変更する命令において原則として共通です。例えばキャラクターの立ち絵を変更するコマンドは下のようになります。

character.portrait = {
sourceType: 'Default',
path: 'https://example.com/foo.png',
};
character.portrait = {
sourceType: 'FirebaseStorage',
path: '/version/1/uploader/user-name/bar.png',
};

画像の他に BGM などでもこの記法は使われます。

パラメーターの変更

(書きかけ)

例えばこのコマンドで HP という名前の数値パラメーターの値を 2 増やせます。HP という名前の数値パラメーターが作られていない場合は何も起こりません。

character.numberParameters.incrementValue('HP', 2);

incrementValue の他にもいろいろあります。ただ、find は JavaScript 習得者向けの関数なのであまりおすすめできないかも(厳密なことを言うとこれは関数ではなくてメソッドだと思うが話がややこしくなるので以下略)。

numberParameters の他に maxNumberParameters と booleanParameters と stringParameters もあります。

1 つのコマンドに複数の命令を書く

(書きかけ)

普通に例えばこんな感じで複数行で書けば OK。セミコロンをちゃんと書けていれば改行はしなくてもいいですが、基本的には改行したほうが読みやすいと思います。

character.name = '山田太郎';
character.icon = { sourceType: 'Default', path: 'https://example.com/foo.png' };
character.numberParameters.incrementValue('HP', 2);
room.name = '新しい部屋の名前';

使用可能なコマンドを確認する

(書きかけ)

room.character.でキーボードの上下ボタンを押してみてコマンドを確認してみるのもいいかもしれません。

コマンド一覧を HTML としてこちらで出力することもできると思うが、多分読みにくいと思う。テキスト検索がしやすいというメリットはありそうだが。

コマンド編集画面でエラーが出ているならば高確率でそのコマンドは動きません。エラーが出ないならば多分動きます。

Footnotes

  1. ==演算子を用いる場合などを除く