「変数・リスト」カテゴリー

変数

変数とは、値を1つだけセット(記憶)することができる、名前のついた入れ物です。 変数には、全ての型の値を入れる(記憶させる)ことができます。

変数は、作成された場所によって、「グローバル」「ローカル」に分けられます。

  • 作品共通」で作成された変数を「グローバル変数」と呼びます。
    グローバル変数の「変数名のブロック」は、「作品共通」以外の場所でも使うことができます。
  • 「作品共通」以外の場所(キャラクター・マップ・ウィンドウ・データベース・イベント)で 作成された変数を「ローカル変数」と呼びます。
    ローカル変数の「変数名のブロック」は、作成された場所の「動作」タブ中でのみ使用できます。

プレイ開始時の変数の値(初期値)は、「変数」タブで設定することができます。 何も設定しない場合、初期値は空文字列(長さ0の文字列)です。

💡 変数に入れることができる値は1つだけですが、変数に「リスト」や 「」を入れて、その「リスト」や「行」に複数の値を入れることにより、 複数の値を保持することができます。

変数名のブロック(ローカル)

キャラクター・マップ・ウィンドウ・データベース・イベントの「変数」タブや 「動作」タブで作成する変数です。ブロックには変数の名前が表記されています。

このブロックが「動作」タブのツールボックスに表示されるのは、 その変数を作成したキャラクター・マップ・ウィンドウ・データベース・イベントのみです。

ブロックが使用中であるにもかかわらず、「変数」タブで変数自体を削除した場合、変数は 無効となり、無効であることを示すアイコン(Disabledアイコン ) が表示されます。無効になった変数を使用する場合、常にその値は「値なし」となります。


変数名のブロック(グローバル)

「作品共通」の変数タブや「動作」タブで作成できる変数です。 ブロックには変数の名前が表記されています。 また、グローバルであることを示すアイコン(Globalアイコン )が表示されます。

このブロックは、「作品共通」だけではなく、全てのキャラクター・マップ・ ウィンドウ・データベース・イベントの「動作」タブのツールボックスに表示されます。

ブロックが使用中であるにもかかわらず、「変数」タブで変数自体を削除した場合、変数は 無効となり、無効であることを示すアイコン(Disabledアイコン ) が表示されます。無効になった変数を使用する場合、常にその値は「値なし」となります。


( )の( )という名前の変数

キャラクター・マップ・ウィンドウ・データベース・イベントの指定された名前の変数を取得します。
該当する名前の変数が存在しない場合、「値なし」となります。

  • 変数に値を入れるには、「( )に( )をセットする」ブロックを使用します。
  • 上記以外の場所で変数を使用する場合は、変数にセットされた値を得ます。
⚠️ このブロックを使って変数の監視をすることはできません。

( )に( )をセットする

指定した変数に、指定した値を入れます(記憶させます)。 変数として指定できるブロックは、以下の3種類のブロックのみです。

変数に値をセットしたとき、下記のブロックで指定された変数を監視していれば、そのブロックを呼び出します。

さらに、元々セットされていた値と新しくセットした値が異なっている場合、下記のブロックで指定された変数を監視していれば、そのブロックを呼び出します。

💡 実際には、「値なし」を除いて、変数にデータそのものを入れるのではなく、 データの位置情報(参照)だけを入れています。このことを意識することは 多くありませんが、特にリスト・行では意識することがあります。 詳しい説明や・例は、リスト行(レコード)を見てください。
💡 元々セットされていた値と新しくセットされた値を比較するとき、 等価性判定ルールを適用します。

( )の値が[ ▼]とき[ ▼]

変数を監視し、変数に値がセットされたとき、あるいは値が変更されたとき、後続のブロックの処理を開始します。

  • セットされた」を選択した場合、「( )に( )をセットする」ブロックが実行され、値がセットされたとき、実際に値が変更されたか否かに関わらず、このブロックが呼び出されます。
  • 変更された」を選択した場合、「( )に( )をセットする」ブロックが実行され、値がセットされたとき、元々の値と新しい値が異なっている場合のみ、このブロックが呼び出されます。

監視する変数として指定できるのは、下記のブロックのみです。

このブロックが呼び出されると、後続のブロックの処理を開始します。

「実行する」と「並列実行する」の動作の違いについては、 「「実行する」と「並行実行する」の違いについて」を参照してください。


( )の値が( )に[ ▼]とき[ ▼]

変数を監視し、変数に値が指定の値にセットされたとき、あるいは値が指定の値に変更されたとき、後続のブロックの処理を開始します。

  • セットされた」を選択した場合、「( )に( )をセットする」ブロックが実行され、値がセットされたとき、実際に値が変更されたか否かに関わらず、このブロックが呼び出されます。
  • 変更された」を選択した場合、「( )に( )をセットする」ブロックが実行され、値がセットされたとき、元々の値と新しい値が異なっている場合のみ、このブロックが呼び出されます。

監視する変数として指定できるのは、下記のブロックのみです。

このブロックが呼び出されると、指定された値と変数の値を比較して、等しい場合に後続のブロックの処理を開始します。等しくない場合には、後続の処理は開始せず、処理を終了します。

💡 変数にセットされた値と指定した値を比較するとき、 等価性判定ルールを適用します。

リスト

リストは、0個以上の値を入れることができる入れ物です。
リストには、全ての型の値を入れることができます。
リストに入れた値のことを項目と呼びます。項目を入れていない(項目が0個の) リストのことを、特に「空リスト」と呼びます。

変数とは異なり、リスト自体には名前をつけることができません。何度も見る 必要がある場合は、変数にセットして使用します。

💡 変数にリストをセットする場合、リストそのものではなく、実際のリストのある場所だけ (参照)を記憶します。そのため、その変数を別の変数に再度セットすれば、2つの変数は 同じ場所のリストを参照している状態になります。

例えば、

(リスト変数1)に ((くま)だけのリスト)をセットする
(リスト変数2)に (リスト変数1)をセットする
(リスト変数2)に(りす)を追加する

とした場合、2つの変数(「リスト変数1」「リスト変数2」)の内容は、 同じ場所を参照しているため、共に[くま、りす]となります。

一方で、「演算」カテゴリーにある各種のブロックは、リストの演算をするとき、 実行する毎に別のリストを作ります。

例えば、

(リスト変数1)に ((くま)だけのリスト)をセットする
(リスト変数2)に ((リスト変数1)+(りす))をセットする

とした場合、「(リスト変数1)+(りす)」の部分で別のリストを作成しているため、 (2つの変数(「リスト変数1」「リスト変数2」)の内容は 異なるリストを参照しています。結果は、リスト変数1が[くま]、 リスト変数2が[くま、りす]となります。

👉 「( )=( )」ブロックは、リストや行(レコード)を比較する場合、 内容が一致するかではなく、2つの値が同じ場所を指しているかを判定します。 (等価性判定ルール参照)


新しい空リスト

項目を持たない(長さが0の)リストを作ります。


( )だけのリスト

指定した値の項目だけを持つ(長さが1の)リストを作ります。


( )に( )を追加する

リストに値を追加します。リストの長さは1増加します。

💡 このブロックは、元のリストに値を追加します。新しいリストを作りません。

( )の( )番目に( )を挿入する

リストの指定した位置に、指定した値を挿入します。リストの長さは1増加します。

💡 このブロックは、元のリストに値を挿入します。新しいリストを作りません。

( )の( )番目を( )に変更する

リストの指定した位置の値を、指定した値に変更します。

💡 このブロックは、元のリストの項目を変更します。新しいリストを作りません。

( )から( )番目を取り除く

リストの指定した位置の値を削除します。リストの長さは1減少します。

💡 このブロックは、元のリストの項目を削除します。新しいリストを作りません。

( )から全ての項目を取り除く

リストから全ての項目を取り除き、長さ0のリストにします。

💡 このブロックは、元のリストの項目を削除します。新しいリストを作りません。