Baba Is You (WIP)

Baba Is You (WIP)

はじめに

これは攻略ガイドではありません。

ネタバレなしのルールの説明は次のガイドを見てください。https://steamcommunity.com/sharedfiles/filedetails/?id=1856999354

このガイドは多くのネタバレを含むため、

クリア後の閲覧をおすすめします。

このガイドはβ版エディター(ver.383~)での調査結果を元に作成しています。

このガイドの情報は、現在の正式安定版(ver.277)の仕様とは異なります。

このガイドは作成中です。誤った情報を含む可能性があります。

このガイドの記法

大文字のアルファベット文字は、任意の名前を代入できる変数です。同じ文中では、同じ文字には同じ名前を当てはめて考えます。

あるアルファベット文字とそれ以外の文字に同じ名前を当てはめても構いません(A = Bは可)。

例:

A IS Bに当てはめる名前は

BABA IS KEKE、KEKE IS BABA、BABA IS BABA、KEKE IS KEKE

のいずれでも構いません。

A IS Aに当てはめる名前は

BABA IS BABA、KEKE IS KEKE

のいずれでも構いません。大文字のアルファベット文字は、ルール中では、その名前の名詞を意味します。

例:次の説明文について考えてみます。

A IS B

AはBに変化します。ここで、AをBABA、BをKEKEとするとき、「A IS B」はを意味します。大文字のアルファベット文字、または、タイルの下位分類の分類名(例:無、オブジェクト)は、ルール外では、その名前を持つ任意の1つのタイルを代入できる変数です。

同じ変数が同じ文中で複数現れたとき、それぞれに別のタイルを当てはめても構いません。

例:次の説明文について考えてみます。

A IS LEVEL

Aはレベルアイコンに変化します。ここで、AをBABAとするとき、「Aはレベルアイコンに変化します。」は「はに変化します。」を意味します。形容詞 +「er」は、その形容詞の状態の任意の1つのオブジェクトを意味します。

例:YOUerはYOU状態の任意の1つのオブジェクトを意味します。タイルを代入できる変数に番号を付けたとき(例:オブジェクト1、A2、YOUer1)、それは、同じ文中では同じタイルを意味します。

ある番号付きの変数と、別の番号付きの変数に、同じタイルを当てはめて考えてはいけません(A1 = A2は不可)。

例:今、3体のBABAがいて、それぞれをBABA1、BABA2、BABA3と呼ぶことにします。

次の説明文について考えます。

A HAS B

A1が破壊されたとき、そのマスにA1と同じ向きでB1を生成します。ここでAにBABAを当てはめるとき、A1には任意の1つのBABAを当てはめることができます。

つまり、上の説明文は次のいずれかのように解釈できます。

BABA HAS B

BABA1が破壊されたとき、そのマスにBABA1と同じ向きでB1を生成します。

BABA HAS B

BABA2が破壊されたとき、そのマスにBABA2と同じ向きでB1を生成します。

BABA HAS B

BABA3が破壊されたとき、そのマスにBABA3と同じ向きでB1を生成します。ある種類の品詞に番号を付けたとき(例:動詞1、補語1)、それは、その種類の任意の品詞を代入できる変数です。同じ文中では、同じ番号付きの品詞には同じ単語を当てはめて考えます。

ある番号付きの品詞と別の番号付きの品詞に同じ単語を当てはめても構いません(動詞1 = 動詞2は可)。

例:次の説明文について考えてみます。

A 動詞1 NOT 補語1

A 動詞1 補語1を無効化します。ここで、動詞1にISを、補語1にYOUを当てはめたとき、上の説明文は次のように解釈します。

A IS NOT YOU

A IS YOUを無効化します。それぞれの動詞1に当てはめる動詞は同一である必要があります。

1番目の動詞1にISを、2番目の動詞1にHASを当てはめて解釈するのは間違いです。オブジェクトを名前で呼ぶと曖昧な場合、名前の後に(テキスト)や(エンティティ)を付けます。

例:BABAと表記すると曖昧な場合、BABA(テキスト)やBABA(エンティティ)と表記します。「数 X 」が先頭についたルールは、その数の分、そのルールが成立していることを表します。

例:3 X BABA IS YOUは、次と同じです。

BABA IS YOU、BABA IS YOU、BABA IS YOUルールについて

(任意の文字列)

を使ったとき、それは「任意の文字列」を0または1つ置いてもよいことを意味します。

例:SF = 「♯、♭」の文字の内いずれか1つ

とするとき、

(SF)

♭のように解釈できます。(最初の項目は空文字列です。)ルールについて

(任意の文字列)...

を使ったとき、それは「任意の文字列」をいくつでも連続で並べてもよいことを意味します。

例:A (AND 名詞)...

A

A AND B

A AND B AND C

A AND B AND C AND Dのように解釈できます。(解釈はこれらに限りません。)

このガイドの用語


Baba Is You (WIP) image 65
Baba Is You (WIP) image 66
Baba Is You (WIP) image 67

このガイドでは、次のように用語を定めます。

公式の用語ではありません。

レベルタイル無オブジェクトエンティティレベルアイコンテキスト文字名詞特殊な名詞演算子動詞条件指定子前置詞形容詞対応するセクションを参照。

PATHオブジェクトレベル作成時にPATHとして配置されたオブジェクトです。

カーソルは、HIDE状態でないPATHオブジェクトの上を移動できます。また、PATHオブジェクトが変化したオブジェクトの上も移動できます。

PATHオブジェクトは、初めから見えている状態(VISIBLE)または隠し状態(HIDDEN)として配置することができ、隠し状態として配置する場合は、解放される条件を設定可能です。

隠し状態のPATHオブジェクトは、解放されるまで出現しません。

レベルメタデータあるレベルを指す情報のことです。

1つのオブジェクトは1つのレベルメタデータを持つことができます。

エディターでレベルアイコンを配置するとき、そのレベルアイコンがどのレベルと対応しているかを指定しますが、それがレベルメタデータです。

ファイルを直接改変することで、任意のオブジェクトにレベルメタデータを持たせることが可能なようです。

上位レベル(親レベル)あるレベルの上位レベルとは、そのレベルをプレイ中、メニュー画面から「RETURN TO MAP」を選択した時の遷移先のレベルです。言い換えれば、そのレベルに入ってきた元のレベルです。

上位レベルを持たない、全てのレベルの最上位にあるレベルは最上位レベル(根レベル?)と呼びます。

例:「1. THE LAKE」の上位レベルは「MAP」です。

また、「LEVEL LAKE-1」の上位レベルは「1. THE LAKE」です。

「MAP」は最上位レベルであり、上位レベルを持ちません。

下位レベル(子レベル)あるレベルの下位レベルとは、そのレベルに存在するレベルアイコンを選択した時の遷移先のレベルです。

例:「MAP」の下位レベルには「LEVEL 0 BABA IS YOU」や「1. THE LAKE」などがあります。

また、「1. THE LAKE」の下位レベルには「LEVEL LAKE-1 ICY WATERS」や「LEVEL LAKE-2 TURNS」などがあります。

単語構文上の最小単位です。

例えば、BABA、IS、YOU、ON、AND、NOT等は単語です。

また、文字EとKで作ったK E K Eという文字列は、名詞KEKEと同様に働くため単語であるとみなせます。

しかし、文字Kは単語ではありません。

主語ルールの先頭部分の名詞です。

BABA IS YOUで言えば、BABAに相当する部分です。

主語に対応する物は、ルールの効果の対象になります。

補語ルール中の動詞より後にある、名詞または形容詞を指します。

BABA IS YOUで言えば、YOUに相当する部分です。

前置詞句次のように定義するとき、

(ルールの一部)...

=任意の数の「ルールの一部」

NorD

=名詞、またはDIRs次のいずれかを指します。

前置詞 名詞 (AND 名詞)...

ここで、前置詞はFACINGとFEELINGを除きます。FACING NorD (AND NorD)...

FEELING 形容詞 (AND 形容詞)...

方向を指定する形容詞DIRsRIGHT、UP、LEFT、DOWNを指します。

FALLsFALL、FALL (RIGHT)、FALL (UP)、FALL (LEFT)を指します。

NUDGEsNUDGE (DOWN)、NUDGE (RIGHT)、NUDGE (UP)、NUDGE (LEFT)を指します。

TURNsTURN RIGHT、TURN LEFTを指します。

LOCKEDsLOCKED (DOWN)、LOCKED (RIGHT)、LOCKED (UP)、LOCKED (LEFT)を指します。

COLORsCOLOURsRED

ORANGE

YELLOW

LIME

GREEN

CYAN

BLUE

PURPLE

PINK

ROSY

BLACK

GREY

SILVER

WHITE

BROWN

を指します。

進入不可STOP、PUSH、PULLのいずれかによって与えられる特性です。

タイルはこの特性を持つタイルに移動できません。

壁あるタイルから見た壁とは、そのタイルの移動を阻止するマスを意味します。

通常は、進入不可タイル、または、レベル境界があるマスを指します。

移動者がPHANTOM状態であるとか、移動先のタイルの進入不可が無効化されている(例えばWEAK状態によって)などの場合、移動先は壁ではありません。

LOCKEDsやSTILLにより移動できないマスは壁ではありません。

浮遊状態タイルまたはレベルが浮遊しているか否かの状態です。

タイルまたはレベルがFLOAT状態でないとき浮遊していません。

タイルまたはレベルがFLOAT状態であるとき浮遊しています。

重なる浮遊状態の同じ複数のオブジェクトは、同じマスにあるとき重なっています。

浮遊状態の同じタイルとレベルは重なっています。

隣接する次の画像で、全てのKEKEはBABAに隣接しています。

AとBがそれぞれこの画像のBABAとKEKEと同様の位置関係にあるとき、BはAに隣接しているといいます。

周囲にある次の画像で、全てのKEKEはBABAの周囲にあります。

AとBがそれぞれこの画像のBABAとKEKEと同様の位置関係にあるとき、BはAの周囲にあるといいます。

消失物が消えることを消失と呼びます。

レベルが消失すると、レベル中の全てのオブジェクトが消失します。

消失は破壊ではありません。そのため、HASのトリガーになりません。

破壊DEFEATやMELTなどの原因で物が消えることを破壊と呼びます。

タイルが破壊されると消失します。

レベルが破壊されると、レベル中の全てのオブジェクトが消失します。

破壊は消失を含みますが、消失ではありません。

一部のルールは破壊を防いだり(SAFE)、タイルの破壊に反応して効果を発揮します(HAS)。

分類

分類ツリー物 ├ レベル └ タイル   ├ 無   └ オブジェクト     ├ エンティティ     │ └ カーソル     ├ レベルアイコン     └ テキスト       ├ 文字       ├ 名詞       │ ├ 通常の名詞       │ └ 特殊な名詞       │   ├ TEXT       │   ├ EMPTY       │   ├ ALL       │   ├ LEVEL       │   ├ GROUP       │   ├ CURSOR       │   └ IMAGE       ├ 演算子       │ ├ 動詞       │ │ ├ IS       │ │ ├ HAS       │ │ ├ MAKE       │ │ ├ EAT       │ │ ├ FEAR       │ │ ├ FOLLOW       │ │ ├ MIMIC       │ │ └ PLAY       │ ├ 条件指定子       │ │ ├ Prefixな条件指定子       │ │ │ ├ LONELY       │ │ │ ├ IDLE       │ │ │ ├ OFTEN       │ │ │ ├ SELDOM       │ │ │ └ POWERED       │ │ └ 前置詞(Infixな条件指定子)       │ │   ├ NEAR       │ │   ├ ON       │ │   ├ FACING       │ │   ├ WITHOUT       │ │   ├ ABOVE       │ │   ├ BELOW       │ │   └ FEELING       │ ├ AND       │ └ NOT       └ 形容詞

ルールの基本


Baba Is You (WIP) image 151
Baba Is You (WIP) image 152
Baba Is You (WIP) image 153

構文名詞 動詞 補語

を、左から右へ、または上から下へ、直線に並べることでルールを作ります。

ルール先頭部分の名詞は主語となり、主語に対応する物はルールの効果の対象になります。

動詞以後の部分はルールの効果を決定します。

動詞がISのとき、補語には名詞または形容詞を取ることができます。

動詞がそれ以外のとき、補語には名詞のみを取ることができます。

一部のテキストは他のテキストを修飾でき、ルールの構造を変化させることができます。

例えば、というルールについて説明すると、

このルールの主語はです。

に対応する物はなので、がルールの効果の対象となります。

(名詞と物の対応関係については名詞のセクションを参照。)

このルールの動詞はで、動詞以後の部分はルールの効果を表しています。

は形容詞です。

ルールが

A IS 形容詞

の形のとき、Aに対応する物が形容詞の特性を得ると決まっています。

(ルールの形については動詞のセクションを参照。)

形容詞の特性は、「主語に対応する物はプレイヤーの入力に応じて移動する」というものです。

(形容詞の特性については形容詞のセクションを参照。)

最終的に、このルールの意味は「はプレイヤーの入力に応じて移動する」となります。

成立しているルールの確認ポーズ画面には、今成立しているルールが表示されます。

ただし、あるルールを構成しているテキストが全てHIDE状態の場合、そのルールは表示されません。

同種のオブジェクトの重複は6つまでレベルメタデータを持たない同種のオブジェクトは、同じマスに6つまで存在できます。それより多くのオブジェクトが同じマスに置かれた場合、6つを残して消失します。

レベルメタデータを持つオブジェクトは、同じマスに6つよりも多く存在できます。(上限は不明。TODO:要検証)

同種であっても、レベルメタデータを持つオブジェクトと、レベルメタデータを持たないオブジェクト同士の数は合算されません。

レベルメタデータを持たないなら、レベルアイコンも6つまでしか重複できません。

移動移動とは

タイルは上下左右のいずれかの方向へ移動することができます。

タイルがある方向へ移動すると、その位置は今あるマスからその方向の隣接するマスに変化します。

タイルは移動しようとした方向を向きます。(ただし、NUDGEsによる移動は例外です。)

タイルの移動先に進入不可タイルやレベル境界があるなら、移動は阻止され、位置は変化しません。移動が阻止された場合でも、向きの変化は起こります。

特定の状況では、タイルは進入不可タイルやレベル境界に移動できます(後述)。

タイルの移動先にある進入不可タイルもまた同じタイミングで移動するなら、移動は阻止されません。

例:BABA IS MOVE AND STOPで、2体のBABAが隣接して互いに向き合っているとき、どちらの移動も妨げられることはなく、「すれ違う」ことができます。

移動は1マスずつ

タイルは多重にMOVE状態になるなどして1ターンに複数回移動することができます。

この時タイルは一度に複数マス移動しているように見えますが、実際にはタイルは1マスずつ移動します。

例:BABA IS YOU、BABA IS MOVE、SKULL IS SWAPのとき、BABAが2マス移動してSKULLのあるマスに移動しても、SKULLが1マス分しか入れ替わらないのは、BABAが1マスずつ移動しているからです。

移動の原因

移動の原因には、次があります。

YOU、YOU2、MOVE、SHIFT、AUTO、CHILL、NUDGEs、FEAR、PUSH、PULL。

NUDGEsのみ、例外的に、移動時のタイルの向きの変化が起こりません。

PUSH、PULLの移動は、他のタイルの移動に付随して起こります。

TELE、FALLs、SELECT、SWAP、BACKによるタイルの位置の変化は移動ではありません。

しかしながら、FALLs、SELECTは移動と似通った特徴を持ちます。

同じ種類の移動の順番

同じ原因で移動する複数のタイル(例えばMOVE状態のBABAとKEKE)は、IDの若い物から順に移動します。

例:

//TODO:何か書く

異なる種類の移動の順番

異なる種類の移動は、一部を除き、異なるタイミングで起こります。異なる種類の移動は一定の順番で起こります。

その順は、日本語wiki[w.atwiki.jp] によれば、次の通りです。

YOU、YOU2

MOVE、AUTO、CHILL

NUDGEs

NUDGE (RIGHT)

NUDGE (UP)

NUDGE (LEFT)

NUDGE (DOWN)FEAR

SHIFT例:YOUで移動するオブジェクトとMOVEで移動するオブジェクトが同じROCKを押そうとしたとき、YOU状態のオブジェクトが先にROCKを押します。

移動に反応する効果

一部のルールの効果は、タイルの移動に付随して発揮されます。

PUSH状態のタイルは、他のタイルに押されて移動します。

PULL状態のタイルは、他のタイルに引かれて移動します。

SHUT状態のタイルは、OPEN状態のタイルに移動されたとき破壊されます。

OPEN状態のタイルは、SHUT状態のタイルに移動されたとき破壊されます。

A EAT Bのとき、AがBに移動すると、AはBを破壊します。

SWAP

タイルが移動したとき、移動先のマスにあるSWAP状態のオブジェクトが移動元のマスに置かれます。

SWAP状態のタイルが移動した時、移動先のマスにあるオブジェクトが移動元のマスに置かれます。WEAK状態の無は、他のタイルに移動されたとき破壊されます。

注:WEAK状態のオブジェクトの破壊は、移動時ではなく、移動が終わった後の重なり判定のタイミングで起こります。

進入不可タイルに移動できる状況

特定の状況では、タイルは進入不可タイルに移動できます。

Bを1つの進入不可タイルとするとき、

タイルは、同じ浮遊状態のWEAK状態のBへ移動できます。

XとYをPULL状態のタイルとするとき:

あるタイルがXを引いて移動し、さらにXがYを引いて移動した時、YはBへ移動できます。

OPEN状態のタイルは、同じ浮遊状態のSAFE状態でないSHUT状態のBへ移動できます。

SHUT状態のタイルは、同じ浮遊状態のSAFE状態でないOPEN状態のBへ移動できます。

SWAP状態のタイルはBへ移動できます。

タイルはSWAP状態のBへ移動できます。

PHANTOM状態のタイルはBへ移動できます。

A EAT Bのとき、Aは、同じ浮遊状態のSAFE状態でないBへ移動できます。タイルの移動先のマスに複数のオブジェクトが存在するなら、それら全てのオブジェクトに移動できるときのみ、タイルは移動できます。

例:KEY IS OPEN、DOOR IS SHUT、DOOR AND WALL IS STOPのとき、KEYはDOORとWALLが重なったマスに移動することはできません。

WALLが無ければ、KEYはDOORに移動できます。

レベル境界に移動できる状況

PHANTOM状態のタイルは、レベル境界に移動できます。

暗黙のルール(基本ルール)このゲームには、明示されていないが常に成立しているルールが3つ存在します。

TEXT IS PUSH

LEVEL IS STOP

CURSOR IS SELECT

レベル


Baba Is You (WIP) image 246

レベルそのものです。

レベルは名詞LEVELに対応します。

レベルは次のような特徴を持ちます。

マス目

レベルはタイルを配置することができるマス目を持ちます。

マス目はレベルの外側にも広がっているものと考えられます。(下記のコラム「PU」を参照)

レベル境界

レベル境界は、レベルの外周にある、タイルが進入できない1マス幅の空間です。

通常、タイルはレベル境界に移動することができませんが、PHANTOM状態のタイルは移動できます。

レベル境界にあるオブジェクトは破壊され、完全に消失します。

この破壊に対しHASは機能しません(実際の処理は不明)。

この破壊は移動より後に起こります。(そのターン中に移動が終わるなら、オブジェクトはレベルの外側へ移動した後、破壊されずにレベル内に戻ってくる事が可能です。)

浮遊状態

レベルは浮遊状態を持ちます。

FLOAT状態のレベルはそうでないタイルとは重なっていませんし、FLOAT状態のレベルとFLOAT状態のタイルは重なっています。

向き

レベルは向きを持ちます。

向きは上下左右の4通りあります。

レベル開始時、レベルは下向きです。

レベルの向きは、次の方法で変化させることができます。

LEVEL IS DIRs

LEVEL IS TURNs

レベルの移動(LEVEL IS YOU、LEVEL IS PUSH、LEVEL IS PULLなど)レベルの向きは、見た目上の向きとは別の概念で、それらが常に一致するとは限りません。

見た目上の向き

レベルは見た目上の向きを持ちます。

見た目上の向きは上下左右の4通りあります。

レベル開始時、レベルの見た目上の向きは下向きです。

レベルの見た目上の向きが変化すると、レベルの下部が画面のその方向に向くように、レベルが回転します。

これは完全に見た目上の演出であり、レベル内のタイルに影響を与えません。

見た目上の位置

レベルは見た目上の位置を持ちます。

レベルが移動することで、レベルの画面上の位置が変化します。

これは完全に見た目上の演出であり、レベル内のタイルに影響を与えません。

ver.393時点では、設定から「ZOOM MODE」を変更すると、レベルの見た目上の位置がリセットされる(バグ?)が存在します。

レベル外の構造

「トラップ」ゾーン

レベル上端から1マス上の行、または、レベル左端から1マス左の列に進入したオブジェクトは、移動できなくなります。

レベル外側

レベル外側にあるオブジェクトは、破壊され、完全に消失します。

この破壊に対しHASは機能しません(実際の処理は不明)。

この破壊は移動より後に起こります。(そのターン中に移動が終わるなら、オブジェクトはレベルの外側へ移動した後、破壊されずにレベル内に戻ってくる事が可能です。)

レベル境界が進入不可であるのに対し、レベル外側は進入不可ではありません。(この事実は、ver.385では検証可能でしたが、ver.386以降は検証不可能になりました。)(HASがレベル外側による破壊に対しても有効だったため、A IS PHANTOM、A HAS Aでレベル外側を自由に移動できた)

(うろ覚えなので間違ってるかも)

PU(parallel universe、平行世界、並行宇宙)PU

レベルの右側には、「偽のレベル」が1マス上にずれて隣接しています。

「偽のレベル」の右側には、同じく「偽のレベル」がさらに1マス上にずれて隣接しています。その右にもさらに「偽のレベル」があり…「偽のレベル」の下端がレベルの上端と同じ高さに来るまでこれが繰り返されます。

これら「偽のレベル」をPU(parallel universe、平行世界、並行宇宙)と呼びます。

PUは仮想の存在で、実際には存在せず、見ることはできません。

注意点として、レベルはレベル境界を含みます。つまり、レベルとPU、またはPU同士は、レベル境界で接しています。

なぜこのようなことが起こるかは、英wikiの「Parallel Universes」[babaiswiki.fandom.com] で解説されています。

それによれば、レベルのマス目は、各マスが「x座標 + (y座標 × レベルの幅)」の値を持つ1つの配列で表現されているため、この現象が起こるそうです。

PU上のオブジェクト & 偽のオブジェクト

PU上のあるマスにオブジェクトが存在すると、そのマスに対応する「真のレベル」のマスに、「偽のオブジェクト」が現れます。

「偽のオブジェクト」もまた仮想の存在で、実際には存在せず、見ることはできません。しかしながら、PU上の「真のオブジェクト」は、自身が「偽のオブジェクト」のあるマスに実際に存在するかのように、他のオブジェクトと相互作用します。

例えば、他のオブジェクトをSHIFTで移動させたり、ONの条件を満たすことが可能です。

原理は異なりますが、これは、スーパーマリオ64のスピードランで利用されるPUと似た現象であると言えそうです。

PUを実演している動画

https://discord.com/channels/413458938869055490/557819174295044098/793974481541791805PUの説明画像

タイル

タイルは、レベル中のマス目に沿って配置される全ての物体です。

タイルは以下のいずれかに分類できます。

オブジェクト

タイルは以下の特徴を持ちます。

タイルはいずれかのマスに存在できます。

タイルは(ルールが可能にするなら)今あるマスから別のマスに移動できます。

タイル - 無


Baba Is You (WIP) image 314

無はタイルの一種です。

無は名詞EMPTYに対応します。

無はタイルが持つ特徴に加え、以下の特徴を持ちます。

無はオブジェクトが存在しないマスに常に1つ存在します。

無はオブジェクトが存在するマスには存在しません。(無があるマスをオブジェクトが占有した場合、無は消失します。)

無はどんなタイルとも重なりません。無同士も重なりません。

無とレベルは重なることがあります。

無は向きを持ちません。向きが必要な時にはランダムで決まります。

タイル - オブジェクト

オブジェクトは無以外のタイルです。

オブジェクトは以下のいずれかに分類できます。

エンティティ

レベルアイコン

テキストカーソルは、暗黙のルールCURSOR IS SELECTが存在するという点と、HIDE状態でも不可視にならない点を除いて、エンティティと同じ性質を持ちます。つまり、レベルアイコンやテキストのような特殊な性質を持ちません。

オブジェクトはタイルが持つ特徴に加え、以下の特徴を持ちます。

浮遊状態

オブジェクトは浮遊状態を持ちます。

向き

オブジェクトは向きを持ちます。

上下左右のいずれかの方向を向きます。

同種のオブジェクトの重複は6つまで

レベルメタデータを持たない同種のオブジェクトは、同じマスに6つまで存在できます。

6つより多くのオブジェクトが同じマスに存在する場合、6つを残して消失します。

オブジェクト - エンティティ


Baba Is You (WIP) image 339
Baba Is You (WIP) image 340
Baba Is You (WIP) image 341

エンティティはオブジェクトの分類の一つです。

エンティティはレベルアイコンとテキスト以外の全ての種類のオブジェクトです。

つまり、エンティティは通常の名詞、またはCURSORに対応します。

エンティティという区分は、ALLで指される範囲です。

エンティティ - カーソル


Baba Is You (WIP) image 347

カーソルはエンティティの一種です。

カーソルは名詞CURSORに対応します。

カーソルは、エンティティが持つ特徴に加え、以下の特徴を持ちます。

暗黙のルール、CURSOR IS SELECTが存在します。

これにより、カーソルはSELECT状態です。

カーソルはHIDEにより不可視になりません。

カーソルは、特殊な名詞に対応する物の中で、ALLに含まれる唯一の物です。

CURSOR IS SELECTに言及する開発者の発言

https://steamcommunity.com/app/736260/discussions/0/1639789306567572957/#c1639789306587684151

Originally posted by Hempuli:The inherent rule related to Cursor is "Cursor Is Select", and this gives it controllability that isn't just "very specifically conditional You"; the movement of a Cursor can't push or pull, for example, [後略]

オブジェクト - レベルアイコン


Baba Is You (WIP) image 359

レベルアイコンはレベルを表す特殊なオブジェクトです。

レベルアイコンは名詞LEVELに対応します。

レベルアイコンは、オブジェクトが持つ特徴に加え、以下の特徴を持ちます。

レベルアイコンはSTOP状態です。

この特性は、暗黙のルール、LEVEL IS STOPによって与えられています。

隠しレベルのレベルアイコンは、STOP状態であっても進入不可ではありません。解放されたレベルアイコンが対応するレベルを持つ場合、カーソルで選択することでそのレベルに遷移することができます。

カーソルは解放されたレベルアイコンの上を移動することができます。

レベルアイコンは、パーティクル、色、HIDEなど、自身の見た目を変化させる形容詞の効果を受けません。

レベルアイコンには解放済み(opened)、ロック中(normal)、隠しレベル(hidden)の3つの状態があります。

隠しレベルのレベルアイコンは、STOP状態であっても進入不可ではありません。

進入不可ではないがSTOP状態であることはFEELINGを使って確かめることができます。隠しレベルのレベルアイコンは見えませんが、存在はしています。そのため、LEVEL IS PUSHなどのルールの効果を受けます。

隠しレベルのレベルアイコンはHIDEによって見えなくなっているわけではないので、LEVEL IS NOT HIDEでも見えません。

オブジェクト - テキスト


Baba Is You (WIP) image 373

テキストはルールを構成する特殊なオブジェクトです。

テキストは名詞TEXTに対応します。

テキストは以下のいずれかに分類できます。

名詞

演算子

形容詞

文字

テキストは、オブジェクトが持つ特徴に加え、以下の特徴を持ちます。

暗黙のルール、TEXT IS PUSHが存在します。

これにより、テキストはPUSH状態です。

テキストはWORDの効果を受けません。

テキスト - 文字


Baba Is You (WIP) image 386

文字はテキストの一種です。

文字には、A~Zのアルファベット、0~9の数字、♯、♭が存在します。

文字を既存の単語と同じ綴りで直線に並べると、その単語と同じ働きをします。

有効な単語はプレイ中のレベルのオブジェクトリストに含まれている単語に限ります。

(ただし、一部の単語は基本のオブジェクトとみなされているのか、オブジェクトリストに含まれていなくても機能します。)

テキスト - 名詞


Baba Is You (WIP) image 393通常の名詞
Baba Is You (WIP) image 395
Baba Is You (WIP) image 396
Baba Is You (WIP) image 397
Baba Is You (WIP) image 398特殊な名詞

名詞はテキストの一種です。

名詞をルール中で使用することで、その名詞と同じ名前の物を指すことができます。

名詞は次の2種類に分類できます。

は同じ名前を持つエンティティに対応します。

をルール中で使用することで、その名詞と同じ名前のエンティティを指すことができます。

例えば、とはどちらも同じ名前「BABA」を持ちます。

そのため、はルール中でを指します。

LINELINEは線を指します。

通常、LINE(エンティティ)はその上をカーソルが移動することができる特殊な性質を持ちますが、これはLINE特有の性質ではなく、LINE自体はではありません。

レベル作成時にPATHとしてオブジェクトを配置すると、この性質を与えることができます。

1つのレベルに、PATHオブジェクトとしてのLINEと、通常のオブジェクトとしてのLINEを混在させることもできます。その場合後者の上をカーソルが移動することはできません。

はでは指定できない物を指したり、複数の種類の物を指したりできます。

特殊な名詞 - TEXT


Baba Is You (WIP) image 413

TEXTは特殊な名詞です。

TEXTが、動詞がIS、HAS、MAKEのルールの補語として用いられた場合、主語を指します。

TEXTがそれ以外で用いられた場合、テキストを指します。

例:BABA IS TEXT、BABA HAS TEXT、BABA MAKE TEXT、これらのルールのTEXTは、名詞BABAを指します。

このゲームには、暗黙のルール、TEXT IS PUSHが存在します。

テキストはWORDの効果を受けません。

特殊な名詞 - EMPTY


Baba Is You (WIP) image 421

EMPTYは特殊な名詞です。

EMPTYは無を指します。

無はオブジェクトが存在しないマスに常に1つ存在します。

無はオブジェクトが存在するマスには存在しません。(無があるマスをオブジェクトが占有した場合、無は消失します。)

無はどんなタイルとも重なりません。無同士も重なりません。

無とレベルは重なることがあります。

無は向きを持ちません。向きが必要な時にはランダムで決まります。

ただし、EMPTY IS DIRsやEMPTY FOLLOW Bなど、向きを指定するルールの効果を受けた場合は、無は向きを持ちます。

無が向きを持たない時、次のルールは条件を満たしません。

EMPTY FACING A 動詞 補語

EMPTY FACING DIRs 動詞 補語無に対する向きの指定は、効果があるルールとないルールが存在します。

効果がある:

EMPTY IS A

出現したAは無の方向を向きます。

EMPTY MAKE A

出現したAは無の方向を向きます。

EMPTY FACING A 動詞 補語

Aに向いている無にEMPTY 動詞 補語が適用されます。

EMPTY FACING DIRs1 動詞 補語

DIRs1の方向を向いている無に対してのみ、EMPTY 動詞 補語が適用されます。

EMPTY IS MOVE

EMPTY IS AUTO

EMPTY IS CHILL

無は自身が向いている方向に移動します。効果がない:

EMPTY IS ALL

無が生成するエンティティは必ず右を向きます。(バグ?)

EMPTYと動詞、NOTEMPTYと条件指定子EMPTYと形容詞対応するセクションを参照。

特殊な名詞 - ALL


Baba Is You (WIP) image 450
Baba Is You (WIP) image 451

ALLは特殊な名詞です。

ALLは、レベル中に一度でも存在したことのある

通常の名詞、CURSOR

エンティティ、カーソルを全て列挙し、それらを同じ名前につき1つ名詞化し、ANDで繋げたものとして働きます。

例えば、TEXT、CURSOR、BABA(エンティティ)、KEKE(テキスト)、WALL(エンティティ)、LEVEL、EMPTYが存在するレベルでは、

ALL = CURSOR AND BABA AND KEKE AND WALL

です。例えば、レベル中にMEが存在しない場合、MEはALLに含まれませんが、文字M、Eを使いME(名詞)を作ると、それ以降MEはALLに含まれます。

レベルをリスタートしない限りMEはALLに含まれたままです。

一部のルールでは、ALLは通常とは異なる振る舞いをします。

NOT ALL

TEXT AND EMPTYと同じです。

A IS ALL

全てのA1は、そのマスに無ければ、そのマスにA1と同じ向きで、ALLに含まれる各種エンティティをそれぞれ1つ生成します。

A IS ALLはA IS Aによって無効化されます。

A IS ALLはA IS NOT Bによって部分的に無効化されます。

A IS ALLはA IS Bを無効化しません。

A IS ALLの効果は重複しません。

例:A IS ALL AND ALLの効果はA IS ALLと同じです。A IS ALLとして使った時のみ特殊な働きをすることに注意してください。

A IS ALLはA MAKE ALLのような働きをする(しかしA IS A、A IS NOT B、A IS NOT ALLで無効化できる)ルールだと考えてください。

特殊な名詞 - LEVEL


Baba Is You (WIP) image 472
Baba Is You (WIP) image 473

LEVELは特殊な名詞です。

LEVELはレベルもしくはレベルアイコンを指します。

このゲームには、暗黙のルール、LEVEL IS STOPが存在します。

LEVELと動詞、名詞、NOTLEVELと条件指定子LEVELと形容詞対応するセクションを参照。

特殊な名詞 - GROUP


Baba Is You (WIP) image 479
Baba Is You (WIP) image 480

GROUPは特殊な名詞です。

GROUPは特定の対応する物を持ちませんが、代わりに、GROUPはそれに含まれる全ての物、または、それに含まれる全ての名詞を指します。

GROUPは名詞ですが、A IS GROUP型で使われた時に限り、形容詞的な働きをします。

A IS GROUP

このルールが条件付きでない場合:

全てのAがグループに含まれます。

1つの名詞Aが名詞グループに含まれます。

このルールが条件付きの場合:

条件を満たすAがグループに含まれます。

条件を満たすAが存在するなら、1つの名詞Aが名詞グループに含まれます。例:LONELY BABA IS GROUPのとき、他のオブジェクトと同じマスにないBABAのみグループに含まれます。

他のオブジェクトと同じマスにないBABAが存在するなら、名詞BABAが1つ名詞グループに含まれます。例:BABA IS GROUP、KEKE IS GROUP、ME IS GROUP、GROUP IS MOVEのとき、

全てのBABA、KEKE、MEがグループに含まれ、それら全てがMOVE状態になります。EMPTY IS GROUP

ver.421c

このルールが条件付きでない場合:

全ての無がグループに含まれます。

1つの名詞EMPTYが名詞グループに含まれます。

このルールが条件付きの場合:

条件を満たす無がグループに含まれます。ver.421c

条件付きEMPTY IS GROUPは、名詞EMPTYを名詞グループに追加しません。

例:EMPTY IS GROUP、GROUP IS BESTのとき、全ての無はBEST状態になります。

このとき、BABA NEAR GROUP IS EMPTYは有効で、BABAは無と同じマスまたは周囲8マスにあるとき消失します。

例:EMPTY NEAR BABA IS GROUP、GROUP IS BESTのとき、BABAの周囲にある無はBEST状態になります。

このとき、BABA NEAR GROUP IS EMPTYは無効で、BABAは無と同じマスまたは周囲8マスにあっても消失しません。

例:EMPTY NEAR LEVEL IS GROUP、GROUP IS BESTのとき、全ての無はBEST状態になります。

このとき、BABA NEAR GROUP IS EMPTYは無効で、BABAは無と同じマスまたは周囲8マスにあっても消失しません。LEVEL IS GROUP

ver.421c

レベルについて:

このルールが条件付きでない場合:

レベルがグループに含まれます。

1つの名詞LEVELが名詞グループに含まれます。

このルールが条件付きの場合:

条件を満たすレベルがグループに含まれます。

ver.421c

条件付きLEVEL IS GROUPは、通常、名詞LEVELを名詞グループに追加しません。

しかし、ON LEVELなどの(常に真の?)条件付きの場合は名詞LEVELを名詞グループに追加します。

例:LEVEL IS GROUP、BABA ON GROUP IS EMPTYのとき、BABAは消失します。

LEVEL ON BABA IS GROUP、BABA ON GROUP IS EMPTYのとき、BABAは消失しません。

例:LEVEL IS GROUP、BABA MAKE GROUPのとき、BABAはレベルアイコンを生成します。

LEVEL ON BABA IS GROUP、BABA MAKE GROUPのとき、BABAはレベルアイコンを生成しません。レベルアイコンについて:

A IS GROUPと同様です。名詞グループに追加される名詞LEVELは、1つのルールにつき1つまでです。(レベルとレベルアイコンの両方が計2つの名詞LEVELを追加する、ということはありません。)

名詞としてのGROUPには2種類の異なる振る舞いが存在します。

それぞれの種類のGROUPは異なるものを指します。種類はルール内でGROUPを置く位置によって変わります。

GROUPを主語として用いた場合:

GROUPは、グループに含まれる全ての物を指します。

例:LONELY BABA IS GROUP、GROUP IS YOUのとき、「GROUP IS YOU」のGROUPは主語であるため、グループに含まれる全ての物、つまり他のオブジェクトと同じマスにないBABAを指します。GROUPを、A IS GROUP型を除く、主語以外の位置に置いた場合:

GROUPは、名詞グループに含まれる全ての名詞をANDで繋げたものとして働きます。

例:LONELY BABA IS GROUP、BABA FACING BABA IS GROUP、KEKE HAS GROUPのとき、「KEKE HAS GROUP」のGROUPは主語ではないため、名詞グループに含まれる全ての名詞をANDで繋げたものとして働きます。

LONELY BABA IS GROUP、BABA FACING BABA IS GROUPは、どちらも条件付きA IS GROUP型なので、それぞれのルールについて、1つ以上のBABAが条件を満たすなら、1つの名詞BABAが名詞グループに含まれます。

場合分けすると次のようになります。

一方のルールの条件を満たすBABAがあり、他方の条件を満たすBABAもあるとき:

「KEKE HAS GROUP」のGROUP = BABA AND BABAです。

一方のルールの条件を満たすBABAがあるが、他方の条件を満たすBABAがないとき:

「KEKE HAS GROUP」のGROUP = BABAです。

どのBABAも両方のルールの条件を満たさないとき:

「KEKE HAS GROUP」のGROUPは何も指しません。

一部のルールでは、GROUPは通常とは異なる振る舞いをします。

NOT GROUP

主語として用いる場合と、前置詞句内で用いる場合とで効果が異なります。

主語として用いた場合

ALLから名詞グループに含まれている名詞を除いたものと同じです。

例:ALL = A AND B AND Cとします。

A、B、Cのいずれも名詞グループに含まれていないとき、NOT GROUP = A AND B AND C

A IS GROUPのとき、NOT GROUP = B AND C

A AND B IS GROUPのとき、NOT GROUP = C

A AND B AND C IS GROUPのとき、NOT GROUPは何も指さない前置詞句内で用いた場合

ver.421c

名詞グループからLEVEL、EMPTY、TEXT以外の名詞を抜き出し、それぞれにNOTを付けてANDで繋いだものと同じです。

名詞グループにLEVEL、EMPTY、TEXT以外の名詞が含まれていない場合、ALLと同じです。

例:名詞グループ = (BABA, KEKE)のとき、前置詞句内におけるNOT GROUP = NOT BABA AND NOT KEKE

例:名詞グループ = (BABA, KEKE, TEXT, EMPTY)のとき、前置詞句内におけるNOT GROUP = NOT BABA AND NOT KEKE

例:名詞グループ = (TEXT, EMPTY)のとき、前置詞句内におけるNOT GROUP = ALL前置詞句内では、NOT Aと、NOT GROUPによるNOT Aは異なる物を指します。

例:BABA IS GROUPとします。

・BABA NEAR NOT GROUP IS BESTのとき、BABAはBABA以外のエンティティと同じマスか周囲8マスにあるときBEST状態になります。

・BABA NEAR NOT BABA IS BESTのとき、BABAはBABA以外のエンティティまたはレベルアイコンと同じマスか周囲8マスにあるときBEST状態になります。GROUP IS GROUP

グループに含まれる任意の物を物1、それに対応する名詞を名詞1とするとき、全ての物1は、名詞1 IS 名詞1の効果を受けます。

例:LONELY LEVEL IS GROUP、GROUP IS GROUPで、他のオブジェクトと同じマスにないレベルアイコンが存在するとき、それらはグループに含まれ、LEVEL IS LEVELの効果を受けます。

一方で、他のオブジェクトと同じマスにあるレベルアイコンはグループに含まれていないため、LEVEL IS LEVELの効果を受けません。

また、レベルはグループに含まれていないためLEVEL IS LEVELの効果を受けません。そのため、LEVEL IS Aなどのルールによるレベルの変化は起こります。GROUP IS NOT GROUP

ver.421c

グループにオブジェクトが含まれる場合、無限ループが発生します。

例:BABA IS GROUP、GROUP IS NOT GROUP、BABAが存在するとき無限ループ。

例:条件付きBABA IS GROUP、GROUP IS NOT GROUP、条件を満たすBABAが存在するとき無限ループ。条件を満たすBABAが存在しないとき何も起きない。

例:TEXT IS GROUP、GROUP IS NOT GROUPのとき無限ループ。

例:EMPTY IS GROUP、GROUP IS NOT GROUPのとき何も起きない。(無について効果がない。)

例:LEVEL IS GROUP、GROUP IS NOT GROUPのとき何も起きない。(レベルについて効果がない。)

例:LEVEL IS GROUP、GROUP IS NOT GROUP、レベルアイコンが存在するとき無限ループ。

GROUPは無限ループの作成に利用できます。ver.421d

A MAKE GROUP、条件付きB IS GROUPは(バグ?)っぽいようです。

これらルールの効果は期待通り発揮されます。

(Bが条件を満たすとき、B IS GROUPが有効となり、A MAKE GROUPによりグループ・名詞グループに対応する物が生成される)

しかし、それに加えて次の現象も起こります。

(Aが条件を満たすとき、Bが名詞グループに加えられ、A MAKE GROUPによりグループ・名詞グループに対応する物が生成される)

特殊な名詞 - CURSOR


Baba Is You (WIP) image 574

CURSORは特殊な名詞です。

CURSORはカーソルを指します。

このゲームには、暗黙のルール、CURSOR IS SELECTが存在します。

CURSORは、特殊な名詞の中で、ALLに含まれる唯一の名詞です。

CURSOR IS SELECTに言及する開発者の発言

https://steamcommunity.com/app/736260/discussions/0/1639789306567572957/#c1639789306587684151

Originally posted by Hempuli:The inherent rule related to Cursor is "Cursor Is Select", and this gives it controllability that isn't just "very specifically conditional You"; the movement of a Cursor can't push or pull, for example, [後略]

特殊な名詞 - IMAGE


Baba Is You (WIP) image 583

IMAGEは特殊な名詞です。

IMAGEはゲーム本編のレベル「GALLERY」にのみ登場します。

文字を使って番号を綴り、IMAGE IS 番号とすることで、番号に対応する画像を表示します。また、IMAGE IS WINとすると、画像の領域全体がWIN状態になります。

その他の振る舞いは不明です。

(このガイドでは詳細について調べません…IMAGEはGALLERY専用の仕掛けであり、他のレベルでも使える発見が無いためです。)

演算子

演算子はテキストの一種です。

演算子は、ルールの構成要素同士を結んだり、また、ルールの構成要素の前や後に付いて、ルールの意味を変化させます。

演算子は以下のいずれかに分類できます。

動詞

条件指定子

AND

NOT

動詞

本編に登場する動詞
Baba Is You (WIP) image 599
Baba Is You (WIP) image 600
Baba Is You (WIP) image 601

このセクションはver.386、ver.387、ver.389に基づいて作られています。

動詞は演算子の一種です。

動詞はルールの効果と構造を決定します。

動詞は主語となる名詞と、特定の種類の単語を結ぶことでルールを構成します。

どの種類の単語を結べるかは、動詞によって異なります。

IS

ISは名詞と補語を結びます。

A IS 形容詞1

Aは形容詞1の特性を得ます。

A IS A

Aの変化を無効化します。

A IS B (ただしA ≠ B)

AはBに変化します。

A IS B AND C (AND D)... (ただしA ≠ B、A ≠ C、(A ≠ D)...)

AはBとC(とD)...に変化します。A IS TEXT

Aは自身に対応するテキスト(名詞A)に変化します。

A IS EMPTY

Aは無に変化します。

(Aは消失します。)

A IS LEVEL

Aはレベルアイコンに変化します。

A IS ALL

Aは、そのマスに自身と同じ向きで、そのマスに無い種類のALLに含まれるエンティティをそれぞれ1つ生成します。

A MAKE ALLとよく似た効果です。ただし、A IS ALLの効果は重複しません。

例:A IS ALL AND ALLのとき、AはALLに含まれる各種エンティティをそれぞれ1つ生成します。

一方で、A MAKE ALL AND ALLのとき、AはALLに含まれる各種エンティティをそれぞれ2つ生成します。TEXT IS ALL

テキストは、そのマスにALLに含まれるエンティティが1種類でも無ければ、そのマスに自身と同じ向きで、そのマスに無いALLに含まれる各種エンティティをそれぞれ1つ生成し、自身を消失させます。

(TEXT NOT ON ALL IS ALL AND EMPTYのような働きをするのは仕様なのだろうか?)

(一見変化に見えるが、A IS ALLと同様、変化ではないらしい。REVERTで戻せないし、変化の「縦に縮んでから伸びる」演出も無い。)

LEVEL IS ALL(レベルアイコンについて)

TEXT IS ALLの説明のテキストを、レベルアイコンに置き換えたものと同じです。A IS GROUP

GROUPのセクションを参照。

HAS

HASは名詞と名詞を結びます。

A HAS B

Aが破壊されたとき、そのマスに自身と同じ向きでBを1つ生成します。A HAS TEXT

Aが破壊されたとき、そのマスに自身と同じ向きで、Aに対応するテキスト(名詞A)を1つ生成します。

A HAS EMPTY

効果なし。(無を生成してもわかりません。)

A HAS LEVEL

Aが破壊されたとき、そのマスに自身と同じ向きでレベルアイコンを1つ生成します。

生成されるレベルアイコンは元のAのレベルメタデータを保持します。

A HAS ALL

Aが破壊されたとき、そのマスに自身と同じ向きで、ALLに含まれる各種エンティティをそれぞれ1つ生成します。

A HAS GROUP

Xをグループに含まれる任意の名詞とするとき、全てのXについて、A HAS Xの効果。

MAKE

MAKEは名詞と名詞を結びます。

A MAKE B

Aは、そのマスにBが無ければ、そのマスに自身と同じ向きでBを1つ生成します。

MAKEによる複数のオブジェクトの生成は同時に起こります。

例:2 X A MAKE Cのとき、Cの無いマスにあるAは、2つのCを生成します。

また、A MAKE C、B MAKE C(ただしA ≠ B)で、AとBが共にCの無い同じマスにあるなら、AとBは1つずつCを生成します。

どちらの場合も、既にCがあるマスでは、Cは生成されません。A MAKE TEXT

Aは、そのマスにテキストが無ければ、そのマスに自身と同じ向きで、Aに対応するテキスト(名詞A)を1つ生成します。

テキストの種類を問わず、Aと同じマスにテキストがあるなら、Aは名詞Aを生成しません。A MAKE EMPTY

効果なし。(無を生成してもわかりません。)

A MAKE LEVEL

Aは、そのマスにレベルアイコンが無ければ、そのマスに自身と同じ向きでレベルアイコンを1つ生成します。

生成されるレベルアイコンは元のAのレベルメタデータを保持します。

A MAKE ALL

Aは、そのマスに自身と同じ向きで、そのマスに無い種類のALLに含まれるエンティティをそれぞれ1つ生成します。

A IS ALLとよく似た効果です。ただし、A IS ALLの効果は重複しません。A MAKE GROUP

Xをグループに含まれる任意の名詞とするとき、全てのXについて、A MAKE Xの効果。

動詞2

本編に登場しない動詞
Baba Is You (WIP) image 668
Baba Is You (WIP) image 669
Baba Is You (WIP) image 670

このセクションはver.386、ver.387、ver.389に基づいて作られています。

EAT

EATは名詞と名詞を結びます。

A EAT B

各Aは次の効果を受けます。

A1とB1の浮遊状態が同じ、かつ、B1がSAFE状態でないとき:

A1は、進入不可なB1に移動できます。

例:BABA EAT B、WALL IS STOPのとき、BABAはWALLに移動できます。

ここで、更にBABA IS FLOATのとき、BABAはWALLに移動できません。Aは、浮遊状態の同じB1に移動するとき、B1を破壊します。

例:BABA EAT BABAのとき、BABA1がBABA2に移動すると、BABA2が破壊されます。Aに重なった全てのBは破壊されます。

例:BABA EAT BABAのとき、複数のBABAを重ねるとそれらは全て破壊されます。他のルールとの関係

EATはPUSHに優先します。

ただし、EATの進入不可の無効化の条件を満たさない場合は押すことができます。

例:A EAT B、B IS PUSHのとき、AがBに移動しても、Bを押すことはできず、Bを破壊します。

ここで、更にA IS FLOATのとき、AがBに移動すると、AはBを押すことができます。EATはSWAPに優先します。

ただし、EATの進入不可の無効化の条件を満たさない場合は入れ替えできます。

例:A EAT B、B IS SWAPのとき、AがBに移動しても、入れ替えは起こらず、Bを破壊します。

ここで、更にB IS SAFEのとき、AがBに移動すると、入れ替えが起こります。OPEN & SHUTはEATに優先します。

これは移動時と重なりのどちらについても当てはまります。

BROKEN状態のBに対して、重なりによるBの破壊効果は発揮されません。

A EAT TEXT

A EAT Bの説明のBを、テキストに置き換えたものと同じです。

A EAT EMPTY

A EAT Bの説明のBを、無に置き換えたものと同じです。

A EAT LEVEL

(ver.431d)

レベルに対して:

レベルが破壊されます。

Aとレベルの浮遊状態を無視して効果を発揮します。(バグ?)

「A IS HOT、LEVEL IS MELT」のようなルールではAとレベルの浮遊状態が影響することを考えると少し奇妙です。レベルアイコンに対して:

A EAT Bの説明のBを、レベルアイコンに置き換えたものと同じです。A EAT ALL

A EAT Bの説明のBを、ALLに含まれる各種エンティティに置き換えたものと同じです。

A EAT GROUP

Xをグループに含まれる任意の名詞とするとき、全てのXについて、A EAT Xの効果。

FEAR

FEARは名詞と名詞を結びます。

A FEAR 名詞

各Aは次の効果を受けます。

用語(恐怖対象名詞、恐怖対象、恐怖量、移動量)

A1に有効な全ての

A FEAR 名詞

の全ての名詞をA1の「恐怖対象名詞」とします。

例:A FEAR B、2 X A FEAR Cのとき、恐怖対象名詞はB、C、C恐怖対象名詞に対応する全てのタイルをA1の「恐怖対象」とします。

A1に隣接する各マスについて、次を行います:

このマスにある恐怖対象に対応する恐怖対象名詞の数を合計する。

例:恐怖対象名詞がB、C、Cのとき、このマスにBもCもないなら0、BがありCがないなら1、BがなくCがあれば2、BとCがあれば3

同じ恐怖対象が複数個あっても多重に加算しない。恐怖対象があるかないかだけが計算に影響する。あるマスの値をそのマスの「恐怖量」とします。

4マス全ての恐怖量の内、最大値を「移動量」とします。移動

A1に隣接する4マスの内、恐怖量が最大の方向が1マス:

A1は、左、正面、右、後方の順に、隣接するマスに恐怖対象があるか探し、最も早く見つかった方向と逆方向へ移動量だけ移動する

A1に隣接する4マスの内、恐怖量が最大の方向が2マス以上:

かつ、移動量が1:

A1は、正面、右、左、後方の順に、隣接するマスについて次を判定し、最も早く条件を満たした方向へ移動量だけ移動する:

恐怖対象がない、かつ、移動できる

かつ、移動量が2以上:

A1は、正面、右、左、後方の順に、隣接するマスについて次を判定し、最も早く条件を満たした方向へ移動量だけ移動する:

移動できるBROKEN状態のタイルは恐怖対象になりません。

例:A FEAR B、B IS BROKENのとき、AはBに隣接しても移動しません。FEARの効果は重複します(が、見ての通り少し奇妙な振る舞いです)。わかりづらいかと思うので補足

恐怖量が最大の方向が1マスのとき、Aは必ず移動します。(これはA IS WEAKで確認できます。移動先が壁なら破壊されます。)

恐怖量が最大の方向が2マス以上のとき、状況によっては、Aは移動しません。(同じくA IS WEAKで確認できます。)

多重FEARでは「恐怖対象に向かって移動しない」という性質が消えます。移動できるなら、恐怖対象を通過してでも移動しようとします。

A FEAR TEXT

A FEAR 名詞と同じです。

A FEAR EMPTY

A FEAR 名詞と同じです。

ただし、レベル境界は無だとみなされます。(バグ?)

A FEAR LEVEL

レベルに対して:

効果なし。

レベルアイコンに対して:

A FEAR 名詞と同じです。A FEAR ALL

XをALLに含まれる任意の名詞とするとき、全てのXについて、A FEAR Xの効果。

A FEAR GROUP

Xをグループに含まれる任意の名詞とするとき、全てのXについて、A FEAR Xの効果。FEARによる移動は、MOVEやNUDGEより後、SHIFTより先に起こります。

FOLLOW

FOLLOWは名詞と名詞を結びます。

A FOLLOW B

ここで、AとBの間の距離とは、マンハッタン距離[ja.wikipedia.org] を指します。

各Aは次の効果を受けます。

A1にBが隣接しているとき:

A1は、正面、左、右、後方の順に、隣接するマスにBがあるか探し、最も早く見つかった方向を向きます。

A1にBが隣接していないとき:

A1は最も近いBの方向を向きます。ただし、A1と同じマスにあるBは対象になりません。

A1とBの位置関係が斜め45°のとき、A1は上下どちらかの内Bに近い方向を向きます。

A1から等距離に複数のBがある場合、向きの優先順位はBの内部IDに依存します。

例:BABA FOLLOW KEKEのとき、BABA1、KEKE1、KEKE2があるとします。

BABA1から見てKEKE1とKEKE2が等距離にあるとき、BABA1がKEKE1とKEKE2のどちらを向くかは、それらKEKEの内部IDによって決まります。Bが存在しない場合、効果はありません。

BROKEN状態のBは、Aの追尾対象になりません。

この画像はSKULL FOLLOW BABAとしたときにSKULLの向く方向を示しています。

BABAの描かれたマスの内1つだけBABAを配置すると仮定したとき、SKULLはそのマスのBABAと同じ向きを向きます。

SKULLとBABAが同じマスにいるとき、SKULLの向きは変化しません。

A FOLLOW B AND C (AND D)...

A FOLLOW Bの説明のBを、BまたはC(またはD)...に置き換えたものと同じです。

全てのBまたはC(またはD)...は対等に扱われます。

(A FOLLOW B、A FOLLOW C、(A FOLLOW D)...のルールは同時に処理され、各ルールの処理順による向きの上書きは発生しないということです。)

A FOLLOW TEXT

A FOLLOW Bの説明のBを、テキストに置き換えたものと同じです。

A FOLLOW EMPTY

効果なし。

A FOLLOW LEVEL

A EAT Bの説明のBを、レベルアイコンに置き換えたものと同じです。

A FOLLOW ALL

A FOLLOW Bの説明のBを、ALLに含まれる各種エンティティに置き換えたものと同じです。

A FOLLOW GROUP

Xをグループに含まれる任意の名詞とするとき、全てのXについて、A FOLLOW Xの効果。

MIMICMIMICは名詞と名詞を結びます。

A MIMIC B

Bを主語とする全てのルールについて、主語Bを名詞Aに置き換えたルールを新しく作ります。

MIMICにより作られたルールはポーズ画面で後ろに「 (MIMIC)」が付いて表示されます。

動詞がMIMICのルールはコピーしません。

MIMICによって作られたルールはコピーしません。

暗黙のルールもコピーします。

例:BABA MIMIC LEVELはBABA IS STOP (MIMIC)を作ります。A MIMIC Bに条件が付いているなら、新しく作られるルールにもその条件が付きます。

例:BABA NEAR KEKE MIMIC SKULL、SKULL IS DEFEATは、BABA NEAR KEKE IS DEFEAT (MIMIC)を作ります。

例:BABA NEAR KEKE MIMIC SKULL、SKULL ON BABA IS DEFEATは、BABA ON BABA & NEAR KEKE IS DEFEAT (MIMIC)を作ります。A MIMIC Bと同時に条件付きA MIMIC NOT Bが存在するなら、新しく作られるルールには、その条件を否定した条件が付きます。否定された条件は「()」で囲われます。

例:BABA MIMIC ME、LONELY BABA MIMIC NOT ME、ME IS STOPは、(NOT LONELY) BABA IS STOP (MIMIC)を作ります。

例:BABA NOT ON KEKE MIMIC ME、BABA ON KEKE MIMIC NOT ME、ME IS STOPは、BABA NOT ON KEKE & (NOT ON) KEKE IS STOP (MIMIC)を作ります。

動詞3

PLAYこの項目はver.419.68に基づいて記述されています。

PLAYは名詞と文字列を結びます。

X PLAY 文字列1(ただし文字列1は有効な文字列に限る)

Xは文字列1の音名の音を鳴らします。

次の2点を満たす文字列は有効です。

次の形式を満たす

Let (SF) (Num)

説明は次の通りです。

(文字1)

= 文字1は省略可能

Let

= 「A、B、C、D、E、F、G」の文字の内いずれか1つ

SF

= 「♯、♭」の文字の内いずれか1つ

Num

= 「3、4、5、6」の文字の内いずれか1つ音名が次の範囲に収まる

A♭3 から G♯6

文字列の「Num」が省略された場合、「5」を当てはめたのと同じです。文字を使用して、♯ = SHARP、♭ = FLATへの置き換えが可能です。

X PLAY NOT 文字列はX PLAY 文字列を無効化しますが、X PLAY NOT 文字列自体がA音を鳴らします。(バグ?)

特定のオブジェクトは固有の音色を持ちます。

名前 音色 values.lua(block.lua)での音の名前 BABA 多重ノコギリ波 beep3, beep4, beep5, beep6 BOX バスドラム drum_kick ROCK スネアドラム drum_snare KEY クローズドハイハット drum_hat KEKE 間の抜けた音 tune_blop SKULL シンセ音 tune_short2 PIANO ピアノ piano2 GUITAR ギター guitar2 SAX サックス sax2 DRUM スネアドラム drum_snare HIHAT クローズドハイハット drum_hat TRUMPET トランペット trumpet FROG 蛙の鳴き声 frog FIRE 燃える音 burn6 LAVA 燃える音(FIREより少し低い) burn5 CRYSTAL カンという音 clink GEM カンという音 clink SHELL カンという音 clink VASE カンという音 clink MIRROR カンという音 clink CAR クラクション honk WATER 水飛沫の音 splash FISH 水飛沫の音 splash BUBBLE 水飛沫の音 splash CRAB 水飛沫の音 splash BOTTLE 水飛沫の音 splash その他 ノコギリ波 beep 次のオブジェクトの音は同じです。

ROCK、DRUM

KEY、HIHAT

CRYSTAL、GEM、SHELL、VASE、MIRROR

WATER、FISH、BUBBLE、CRAB、BOTTLEver.398

(バグ?)

一部の音名の音高がずれています。

動詞とEMPTY

本編に登場する動詞本編に登場しない動詞

このセクションはver.389、ver.390に基づいて作られています。

ISEMPTY IS 形容詞

無は形容詞の特性を得ます。

EMPTY IS EMPTY

無の変化を無効化します。

EMPTY IS B(ただしB ≠ EMPTY)

無はBに変化します。

無が変化して出現する各Bの向きはランダムです。

ただし、DIRs状態の無が変化して出現するBは対応する方向を向きます。

複数種のDIRsが適用されているとき、最後に処理されるDIRsのみ有効です。

EMPTY IS TEXT

無は自身に対応するテキスト(名詞EMPTY)に変化します。

EMPTY IS LEVEL

無はレベルアイコンに変化します。

EMPTY IS ALL

無は、そのマスに、ALLに含まれる各種エンティティをそれぞれ1つ生成します。

生成されるエンティティは必ず右を向きます。(バグ?)

EMPTY IS GROUP

GROUPのセクションを参照。

HASEMPTY HAS B

任意の無について、無1が破壊されたとき、そのマスにBを1つ生成します。

無1が破壊されて生成されるBの向きはランダムです。

ただし、無1がDIRs状態なら、生成されるBは対応する方向を向きます。

複数種のDIRsが適用されているとき、最後に処理されるDIRsのみ有効です。

EMPTY HAS TEXT

EMPTY HAS Bの説明のBを、無に対応する単語(名詞EMPTY)に置き換えたものと同じです。

EMPTY HAS EMPTY

効果なし。(無を生成してもわかりません。)

EMPTY HAS LEVEL

EMPTY HAS Bの説明のBを、レベルアイコンに置き換えたものと同じです。

EMPTY HAS ALL

任意の無について、無1が破壊されたとき、そのマスに、ALLに含まれる各種エンティティをそれぞれ1つ生成します。

無1が破壊されて生成される各種エンティティの向きはランダムです。

ただし、無1がDIRs状態なら、生成される各種エンティティは対応する方向を向きます。

複数種のDIRsが適用されているとき、最後に処理されるDIRsのみ有効です。

EMPTY HAS GROUP

Xをグループに含まれる任意の名詞とするとき、全てのXについて、EMPTY HAS Xの効果。

MAKEEMPTY MAKE B

任意の無について、無1はそのマスにBを1つ生成します。

生成されるBの向きはランダムです。

ただし、無1がDIRs状態なら、生成されるBは対応する方向を向きます。

複数種のDIRsが適用されているとき、最後に処理されるDIRsのみ有効です。

MAKEによる複数のオブジェクトの生成は同時に起こります。

例:2 X EMPTY MAKE Bのとき、無は2つのBを生成します。EMPTY MAKE TEXT

EMPTY MAKE Bの説明のBを、対応する単語(名詞EMPTY)に置き換えたものと同じです。

EMPTY MAKE EMPTY

効果なし。(無を生成してもわかりません。)

EMPTY MAKE LEVEL

EMPTY MAKE Bの説明のBを、レベルアイコンに置き換えたものと同じです。

EMPTY MAKE ALL

任意の無について、無1はそのマスに、ALLに含まれる各種エンティティをそれぞれ1つ生成します。

生成される各種エンティティの向きはランダムです。

ただし、無1がDIRs状態なら、生成される各種エンティティは対応する方向を向きます。

複数種のDIRsが適用されているとき、最後に処理されるDIRsのみ有効です。

EMPTY MAKE GROUP

Xをグループに含まれる任意の名詞とするとき、全てのXについて、EMPTY MAKE Xの効果。

EATEMPTY EAT B

各無は次の効果を受けます。

無1とB1の浮遊状態が同じ、かつ、B1がSAFE状態でないとき:

全ての無1は、進入不可なB1に移動できます。

全ての無は、浮遊状態の同じB1に移動するとき、B1を破壊します。

EATはPUSHに優先します。

ただし、EATの進入不可の無効化の条件を満たさない場合は押すことができます。

EATはSWAPに優先します。

ただし、EATの進入不可の無効化の条件を満たさない場合は入れ替えできます。

OPEN & SHUTはEATに優先します。EMPTY EAT TEXT

EMPTY EAT Bの説明のBを、テキストに置き換えたものと同じです。

EMPTY EAT EMPTY

無2がSAFE状態でないとき:

全ての無は、進入不可な無2に移動できます。

全ての無は、無2に移動するとき、無2を破壊します。

EATはPUSHに優先します。

ただし、EATの進入不可の無効化の条件を満たさない場合は押すことができます。

EATはSWAPに優先します。

ただし、EATの進入不可の無効化の条件を満たさない場合は入れ替えできます。

OPEN & SHUTはEATに優先します。無同士の浮遊状態は無視されます。(バグ?)

EMPTY EAT LEVEL

(ver.431d)

レベルに対して:

レベルが破壊されます。

無とレベルの浮遊状態を無視して効果を発揮します。(バグ?)

「EMPTY IS HOT、LEVEL IS MELT」のようなルールでは無とレベルの浮遊状態が影響することを考えると少し奇妙です。レベルアイコンに対して:

EMPTY EAT Bの説明のBを、レベルアイコンに置き換えたものと同じです。EMPTY EAT ALL

EMPTY EAT Bの説明のBを、ALLに含まれる各種エンティティに置き換えたものと同じです。

EMPTY EAT GROUP

Xをグループに含まれる任意の名詞とするとき、全てのXについて、EMPTY EAT Xの効果。

FEAR//TODO:詳細を調べるEMPTY FEAR B

無は、成立しているEMPTY FEAR Bの数に関わらず、一度だけ移動します。((仕様?)EMPTYは同じ移動ステップで1マスしか移動できない?EMPTY IS MOVEも重複しないし)

無がDIRs状態でないなら:

隣接する1マスにBがあるような、全ての無は、Bの反対側に移動します。

隣接する2から4マスにBがあるような、全ての無は、ランダムな方向に移動します。無がDIRs状態なら:

隣接する1マスにBがあるような、全ての無は、Bの反対側に移動します。

隣接する2から3マスにBがあるような、全ての無1は、Bの無い、無1から見てより優先順位が高い方向に移動できるか確認し、移動できるならその方向へ移動します。

移動する方向の優先順位は、高い方から、無1が向いている方向から見て正面、右(時計回り)、左(反時計回り)、後ろ(反転)です。

隣接する4マスにBがあるような、全ての無は、何もしません。複数種のDIRsが適用されているとき、最後に処理されるDIRsのみ有効です。EMPTY FEAR TEXT

EMPTY FEAR Bの説明のBを、テキストに置き換えたものと同じです。

EMPTY FEAR EMPTY

EMPTY FEAR Bの説明のBを、無に置き換えたものと同じです。

ただし、レベル境界は無だとみなされます。(バグ?)

EMPTY FEAR LEVEL

EMPTY FEAR Bの説明のBを、レベルアイコンに置き換えたものと同じです。

EMPTY FEAR ALL

EMPTY FEAR Bの説明のBを、ALLに含まれる各種エンティティに置き換えたものと同じです。

EMPTY FEAR GROUP

Xをグループに含まれる任意の名詞とするとき、全てのXについて、EMPTY FEAR Xの効果。

FOLLOWEMPTY FOLLOW B

ここで、無とBの間の距離とは、マンハッタン距離[ja.wikipedia.org] を指します。

各無は次の効果を受けます。

Bが存在するとき、無は向きを持ちます。

無1にBが隣接しているとき:

無1は自身に隣接するBの方向を向きます。

無1に隣接するBが複数あるとき、無1は、より優先順位が高い方向にあるBに向きます。優先順位は、高い方から、右、下、上、左です。無1にBが隣接していないとき:

無1は最も近いBの方向を向きます。

無1とBの位置関係が斜め45°のとき、無1は上下どちらかの内Bに近い方向を向きます。

無1から等距離に複数のBがある場合、向きの優先順位はBの内部IDに依存します。Bが存在しない場合、効果はありません。EMPTY FOLLOW B AND C (AND D)...

(要検証)

無はルールの処理順に従い、EMPTY FOLLOW B、EMPTY FOLLOW C(、EMPTY FOLLOW D...)を実行します。これらによる向きの設定は1ターンに1度のみ起こります。

これはつまり、Bが存在すれば、無はC(、D...)に向くことはなく、また、Bが存在しなければEMPTY FOLLOW Bには効果がないため、無はC(、D...)に向くことがあるということです。

EMPTY IS Aのような無の変化が起こるとき、各無の変化ごとに各無の向きが再計算されるようです。

例:EMPTY FOLLOW A AND B(A→Bの順に処理)、EMPTY IS A、レベル中にBのみが存在するとき、最初に無が変化して出現したAは最も近いBに向きます。Aが出現したために、それ以降に出現するAは最も近いAに向きます。EMPTY FOLLOW ALLもこれに従いますが、ALLに名詞が登録される順番はオブジェクトの配置やルールによって変化するようで、ルールやオブジェクトが同じでも、レベル製作時の配置によってはEMPTYの向きの優先順位が変化します。無の向きを指定するルール(EMPTY FOLLOW B、EMPTY IS DIRs)同士の処理順は、ある要因(おそらくルール文頭のテキストの内部ID)によって変化します。

無の向きは、より後に処理されるルールによって上書きされます。(無の向きを指定するルールは、最後に処理される物のみが有効です。)EMPTY FOLLOW TEXT

EMPTY FOLLOW Bの説明のBを、テキストに置き換えたものと同じです。

EMPTY FOLLOW EMPTY

効果なし。(仕様?)

EMPTY FOLLOW LEVEL

効果なし。(仕様?)

EMPTY FOLLOW ALL

レベル中に1種類(B)のエンティティのみが存在するとき、EMPTY FOLLOW Bと同じです。

レベル中に2種類以上のエンティティが存在するとき、EMPTY FOLLOW B AND C (AND D)...と同じです。EMPTY FOLLOW GROUP

Xをグループに含まれる任意の名詞とするとき、全てのXについて、EMPTY FOLLOW Xの効果。

MIMICEMPTY MIMIC B

正しく働きます。

A MIMIC Bを参照。

PLAYEMPTY PLAY 文字列

正しく働きます。

X PLAY 文字列1を参照。

動詞とLEVEL

本編に登場する動詞本編に登場しない動詞

このセクションはver.389に基づいて作られています。

ISLEVEL IS 形容詞

レベルについて:

レベルは形容詞の特性を得ます。

レベルアイコンについて:

レベルアイコンは形容詞の特性を得ます。LEVEL IS LEVEL

レベルについて:

レベルの変化を無効化します。

レベルアイコンについて:

レベルアイコンの変化を無効化します。LEVEL IS B(ただしB ≠ LEVEL)

(ver.431d)

レベルについて:

プレイ中のレベルを抜け、上位レベルに遷移します。

上位レベルに存在する、プレイ中のレベルに対応する全てのレベルアイコン(それらが変化していたオブジェクトを含む)がBに変化します(解放状態を問わない)。この変化はセーブされます。

上位レベル以外のレベルに存在する、プレイ中のレベルに対応するレベルアイコンは変化しません。

例:3種類のレベル「root」「child」「the level」が次のような階層構造になっているとします。

root ├ the level └ child ├ the level └ the level このとき、「child」下の片方の「the level」をプレイ中にLEVEL IS BABAを作ると、「child」下の両方の「the level」がBABAに変化します。しかし「root」下の「the level」はBABAに変化しません。変化先として有効なBは、上位レベルのオブジェクトパレットに含まれているオブジェクトか、基本オブジェクトに限ります。それ以外のオブジェクトに変えようとしたとき、レベルアイコン(が変化していたオブジェクト)はレベルアイコンに変化します。(LEVEL IS REVERTのように。)

レベルの変化は、タイルの変化より後に起こります。(TODO:要検証)レベルアイコンについて:

レベルアイコンはBに変化します。

変化後のBは元のレベルアイコンのレベルメタデータを保持します。

隠しレベルも変化します。(結果としてその存在が明かされます。)

解放済みのレベルアイコンが変化してできたBはSELECT状態のオブジェクトで選択できます。隠しレベルやロック中のレベルアイコンが変化してできたBは選択できません。

ただし、このBをREVERTで戻してできたレベルアイコンは解放済みと同じ状態になり、一時的に選択可能になります。(バグ?)

このレベルを選択後クリアせずに抜けると、その状態は元に戻ります。レベルをクリアするとクリア済みとなり、恒久的に選択可能になります。LEVEL IS TEXT

LEVEL IS Bの説明のBを、レベル、またはレベルアイコンに対応するテキスト(名詞LEVEL)に置き換えたものと同じです。

LEVEL IS EMPTY

レベルについて:

レベルが消失します。

(全てのオブジェクトが消失します。)

レベルアイコンについて:

LEVEL IS Bの説明のBを、無に置き換えたものと同じです。LEVEL IS ALL

レベルについて:

LEVEL IS Bの説明のBを、ALLに含まれる各種エンティティに置き換えたものと同じです。

レベルアイコンについて:

レベルアイコンは、そのマスにALLに含まれるエンティティが1種類でも無ければ、そのマスに自身と同じ向きで、そのマスに無い種類のALLに含まれるエンティティをそれぞれ1つ生成し、自身を消失させます。

これは一見変化に見えますが、実際にはA IS ALLと同様に変化ではないようです。

REVERTで戻せないことが理由です。(さらに、変化の「縦に縮んでから伸びる」演出もありません。)

(LEVEL NOT ON ALL IS ALL AND EMPTYのような働きをするのは仕様なのだろうか?)LEVEL IS GROUP

GROUPのセクションを参照。

HASLEVEL HAS B

レベルについて:

効果なし。

(レベルが破壊されると、このルールを含む全てのオブジェクトが破壊されるため無意味です。)

レベルアイコンについて:

レベルアイコンが破壊されたとき、そのマスに自身と同じ向きでBを1つ生成します。LEVEL HAS TEXT

LEVEL HAS Bの説明のBを、レベル、またはレベルアイコンに対応するテキスト(名詞LEVEL)に置き換えたものと同じです。

LEVEL HAS EMPTY

効果なし。(無を生成してもわかりません。)

LEVEL HAS LEVEL

LEVEL HAS Bの説明のBを、レベルアイコンに置き換えたものと同じです。

生成されたレベルアイコンは、元のレベルアイコンのレベルメタデータを保持します。

LEVEL HAS ALL

レベルアイコンが破壊されたとき、そのマスに自身と同じ向きで、ALLに含まれる各種エンティティをそれぞれ1つ生成します。

LEVEL HAS GROUP

Xをグループに含まれる任意の名詞とするとき、全てのXについて、LEVEL HAS Xの効果。

MAKELEVEL MAKE B

レベルについて:

効果なし。

レベルアイコンについて:

レベルアイコンは、そのマスにBが無ければ、そのマスに自身と同じ向きでBを1つ生成します。

MAKEによる複数のオブジェクトの生成は同時に起こります。

例:2 X LEVEL MAKE Bのとき、Bの無いマスにあるレベルアイコンは、2つのBを生成します。LEVEL MAKE TEXT

レベルについて:

効果なし。

レベルアイコンについて:

レベルアイコンは、そのマスにテキストが無ければ、そのマスに自身と同じ向きで自身に対応するテキスト(名詞LEVEL)を1つ生成します。

テキストの種類を問わず、レベルアイコンと同じマスにテキストがあるなら、レベルアイコンは名詞LEVELを生成しません。LEVEL MAKE EMPTY

効果なし。(無を生成してもわかりません。)

LEVEL MAKE LEVEL

効果なし。

(条件から、レベルアイコンがレベルアイコンを生成することはありえません。)

LEVEL MAKE ALL

レベルアイコンは、そのマスに自身と同じ向きで、そのマスに無い種類のALLに含まれるエンティティをそれぞれ1つ生成します。

LEVEL MAKE GROUP

Xをグループに含まれる任意の名詞とするとき、全てのXについて、LEVEL MAKE Xの効果。

EATLEVEL EAT B

レベルについて:

全てのBは破壊されます。(浮遊状態を無視します。)(仕様?)

レベルアイコンについて:

A EAT Bの説明のAを、レベルアイコンに置き換えたものと同じです。

A EAT Bを参照。LEVEL EAT TEXT

LEVEL EAT Bの説明のBを、テキストに置き換えたものと同じです。

LEVEL EAT EMPTY

LEVEL EAT Bの説明のBを、無に置き換えたものと同じです。

LEVEL EAT LEVEL

(ver.431d)

レベルについて:

レベルアイコンが存在するとき、レベルが破壊されます。(バグ?)

この破壊に対し、SAFEは有効です。

また、全てのレベルアイコンが破壊されます。(浮遊状態を無視します。)

例:LEVEL EAT LEVELのとき:

レベル中にレベルアイコンが存在しないなら何も起きません。

レベル中にレベルアイコンが存在するならレベルが破壊されます。

レベルがSAFE状態ならレベルの破壊は防がれます。

レベルアイコンがSAFE状態でないならレベルアイコンが破壊されます。レベルアイコンについて:

レベルに対して:

効果なし。(バグ?)

ルール「LEVEL NOT ON EMPTY EAT LEVEL」は、レベル中に無が存在するとき

レベルアイコン →EAT→ レベル&レベルアイコン

の効果を持つルールのはずですが、レベルに対して効果を発揮しません。レベルアイコンに対して:

A EAT Bの説明のAとBを、レベルアイコンに置き換えたものと同じです。

A EAT Bを参照。

ルール「LEVEL NOT ON EMPTY EAT LEVEL」は、レベル中に無が存在するとき

レベルアイコン →EAT→ レベル&レベルアイコン

の効果を持つルールのはずですが、レベルに対して効果を発揮しないため、

レベルアイコン →EAT→ レベルアイコン

のルールとして使えます。(ちょうどA EAT Aのように。)LEVEL EAT ALL

LEVEL EAT Bの説明のBを、ALLに含まれる各種エンティティに置き換えたものと同じです。

LEVEL EAT GROUP

Xをグループに含まれる任意の名詞とするとき、全てのXについて、LEVEL EAT Xの効果。

FEARLEVEL FEAR B

レベルについて:

効果なし。

レベルアイコンについて:

A FEAR Bの説明のAを、レベルアイコンに置き換えたものと同じです。LEVEL FEAR TEXT

LEVEL FEAR Bの説明のBを、テキストに置き換えたものと同じです。

LEVEL FEAR EMPTY

LEVEL FEAR Bの説明のBを、無に置き換えたものと同じです。

ただし、レベル境界は無だとみなされます。(バグ?)

LEVEL FEAR LEVEL

LEVEL FEAR Bの説明のBを、レベルアイコンに置き換えたものと同じです。

LEVEL FEAR ALL

LEVEL FEAR Bの説明のBを、ALLに含まれる各種エンティティに置き換えたものと同じです。

LEVEL FEAR GROUP

Xをグループに含まれる任意の名詞とするとき、全てのXについて、LEVEL FEAR Xの効果。

FOLLOWLEVEL FOLLOW B

レベルについて:

効果なし。

レベルアイコンについて:

A FOLLOW Bの説明のAを、レベルアイコンに置き換えたものと同じです。LEVEL FOLLOW TEXT

LEVEL FOLLOW Bの説明のBを、テキストに置き換えたものと同じです。

LEVEL FOLLOW EMPTY

効果なし。

LEVEL FOLLOW LEVEL

LEVEL FOLLOW Bの説明のBを、レベルアイコンに置き換えたものと同じです。

LEVEL FOLLOW ALL

LEVEL FOLLOW Bの説明のBを、ALLに含まれる各種エンティティに置き換えたものと同じです。

LEVEL FOLLOW GROUP

Xをグループに含まれる任意の名詞とするとき、全てのXについて、LEVEL FOLLOW Xの効果。

MIMICLEVEL MIMIC B

正しく働きます。

A MIMIC Bを参照。

PLAYLEVEL PLAY 文字列

レベルについて:

効果なし。

レベルアイコンについて:

正しく働きます。

X PLAY 文字列1を参照。

条件指定子

このセクションはver.390に基づいて作られています。

条件指定子は演算子の一種です。

条件指定子は次の2種類に分類できます。

Prefixな条件指定子

前置詞(Infixな条件指定子)

条件指定子は、ルールに条件を付けて、ルールが適用される対象を限定します。

1つのルールにはいくつでも条件を付けることができます。

条件付きルールは全ての条件を満たす物にのみ適用されます。

例:NOT LONELY BABA FACING UP AND NEAR FLAG IS WINは、3つの条件「NOT LONELY」、「FACING UP」、「NEAR FLAG」を満たすBABAにのみ適用されます。

ある物が、物を条件判定の対象に取る時、その物自身は対象になりません。

例:条件「NOT LONELY BABA」の意味は「BABAと同じマスにオブジェクトがあるとき真」ですが、BABA1にとって、BABA1自身は「同じマスにあるオブジェクト」の対象になりません。

BABA1とは別のBABA2は対象になります。

例:「BABA WITHOUT BABA」の意味は「レベル中に1つ以上のBABAがないとき真」ですが、BABA1にとって、BABA1自身は「レベル中にあるオブジェクト」の対象になりません。

つまり、レベル中に1体だけBABAがいるなら、そのBABAはこの条件を満たします。ただし、LEVEL WITHOUT LEVELは例外です。(仕様?)

レベル中にレベルが1つだけあることは自明ですが、レベルのレベルについての条件「LEVEL WITHOUT LEVEL」は条件を満たしません。

(「BABA WITHOUT BABA」のとき、レベル中に1体だけBABAがいるなら、そのBABAはこの条件を満たすことと比較すると、少し奇妙です。)

条件は真偽値を持ちます。条件を満たすとき真であり、条件を満たさないとき偽です。

条件指定子の直前にNOTを付けることで、条件の真偽を反転することができます。ただし、WITHOUT、FEELINGは例外で、単純な反転ではありません。(詳細はセクション「前置詞の補足」を参照。)

条件指定子 - Prefixな条件指定子


Baba Is You (WIP) image 1126

このセクションはver.390に基づいて作られています。

Prefixな条件指定子は最初の主語の前に付きます。

1つのPrefixな条件指定子は1つの条件になります。

Prefixな条件指定子同士はANDで結ぶことができます。

例:LONELY AND POWERED BABA IS YOU

LONELY

LONELY A

Aと同じマスにオブジェクトがないとき真

NOT LONELY A

Aと同じマスにオブジェクトがあるとき真LONELY EMPTY

常に真

NOT LONELY EMPTY

常に偽LONELY LEVEL

レベルについて:

常に偽

レベルアイコンについて:

レベルアイコンが他のオブジェクトと同じマスにないとき真NOT LONELY LEVEL

レベルについて:

常に真

レベルアイコンについて:

レベルアイコンが他のオブジェクトと同じマスにあるとき真例:

LONELY A 動詞 補語

他のオブジェクトと同じマスにないAにA 動詞 補語が適用されます。

NOT LONELY A 動詞 補語

他のオブジェクトと同じマスにあるAにA 動詞 補語が適用されます。

IDLE(本編未登場)IDLE 名詞

待機したとき真

NOT IDLE 名詞

待機しなかったとき真例:

IDLE A 動詞 補語

待機したとき、全てのAにA 動詞 補語が適用されます。

NOT IDLE A 動詞 補語

待機しなかったとき、全てのAにA 動詞 補語が適用されます。LEVEL IS AUTOによるターンの自動経過は待機とみなされ、IDLEは真となります。

特に、IDLE LEVEL IS AUTOのとき待機すると、次に移動入力するまでターンが自動経過しつづけます。IDLE LEVEL IS AUTOでターンを自動経過させるには、2回連続で待機する必要があります。(仕様?)

ただし、レベル開始時は1回の待機でターンが自動経過し始めます。NOT IDLE LEVEL IS AUTOのとき、レベル開始時に自動で1ターン経過します。(バグ?)

OFTEN(本編未登場)OFTEN 名詞

3/4の確率で真

NOT OFTEN 名詞

1/4の確率で真例:

OFTEN A 動詞 補語

それぞれのAについて、3/4の確率でA 動詞 補語が適用されます。

NOT OFTEN EMPTY 動詞 補語

それぞれの無について、1/4の確率でEMPTY 動詞 補語が適用されます。

OFTEN AND NOT OFTEN A 動詞 補語

それぞれのAについて、3/16の確率でA 動詞 補語が適用されます。

SELDOM(本編未登場)SELDOM 名詞

1/6の確率で真

NOT SELDOM 名詞

5/6の確率で真例:

SELDOM A 動詞 補語

それぞれのAについて、1/6の確率でA 動詞 補語が適用されます。

NOT SELDOM LEVEL 動詞 補語

レベルと、それぞれのレベルアイコンについて、5/6の確率でLEVEL 動詞 補語が適用されます。「条件付きルールは全ての条件指定子の条件を満たすときのみ適用される」という性質から、OFTEN、SELDOMはANDで複数繋いだとき確率を乗算します。

例:OFTEN AND SELDOM A IS YOUは、3/4 * 1/6 = 1/8の確率で効果を発揮します。効果が重複しないルールであれば、OFTENまたはSELDOM付きのルールを複数作ることで、確率を1に近づけることができます。

例:2 X OFTEN A IS YOUのとき、それぞれのAについて、

9/16の確率で2 X A IS YOUが適用され

6/16の確率でA IS YOUが適用され

1/16の確率でA IS YOUが適用されない

ことになりますが、A IS YOUの効果は重複しないため、結果として15/16の確率でA IS YOUが適用と同じになります。

POWERED(本編未登場)POWERED 名詞

レベル中にPOWER状態の物が存在するとき真

NOT POWERED 名詞

レベル中にPOWER状態の物が存在しないとき真例:

POWERED A 動詞 補語

レベル中にPOWER状態の物が存在するとき、全てのAにA 動詞 補語が適用されます。(バグ?)

LEVEL IS POWERはレベルアイコンについて効果がありません。(条件付きLEVEL IS POWERがおかしい?)

例:LONELY LEVEL IS POWER、POWERED BABA IS YOUで、他のオブジェクトと重なっていないレベルアイコンがあっても、BABAはYOU状態になりません。

条件指定子 - 前置詞


Baba Is You (WIP) image 1195
Baba Is You (WIP) image 1196
Baba Is You (WIP) image 1197

このセクションはver.390に基づいて作られています。

前置詞は、後ろに単語を伴って、最後の主語の後に付きます。

前置詞により、後ろに置ける単語の種類は異なります。

FACINGの後ろには名詞またはDIRs、

FEELINGの後ろには形容詞、

それ以外の前置詞の後ろには名詞を置くことができます。

前置詞の後ろに続く単語同士はANDで結ぶことができます。

例:KEKE NEAR BABA AND ME IS MELT

前置詞と後ろに続く単語をまとめて前置詞句と呼びます。

例:次のルールの下線部は前置詞句です。

BABA ON FLAG IS WIN

KEKE NEAR BABA AND ME IS MELT1つの前置詞句は、全体として1つの条件になります。

前置詞句は、後ろに続く単語1種につき1つの「小条件」を作ります。

主語に対応する物は、ある前置詞句の全ての小条件を満たすときのみ、その前置詞句全体の条件を満たします。

1つの前置詞句の中に同じ単語が複数あるとき、その単語の小条件は、その単語の数だけ条件を満たすときのみ満たされます。

詳細についてはセクション「前置詞の補足」を参照。

例:BABA ON FLAG AND KEKE IS WINのとき、1つ以上のFLAGと1つ以上のKEKEと同じマスにあるBABAにのみ、BABA IS WINが適用されます。

例:BABA ON FLAG AND FLAG IS WINのとき、2つ以上のFLAGと同じマスにあるBABAにのみ、BABA IS WINが適用されます。

前置詞句同士はANDで結ぶことができます。

例:次のルールの下線部は前置詞句です。

BABA ON LADDER AND FACING UP IS MOVE

ON

A ON B

Aと同じマスに1つ以上のBがあるとき真

A NOT ON B

Aと同じマスに1つ以上のBがないとき真A ON EMPTY

常に偽

A NOT ON EMPTY

常に真A ON LEVEL

レベルについて:

常に真

レベルアイコンについて:

A ON Bを参照。

A NOT ON LEVEL

レベルについて:

常に偽

レベルアイコンについて:

A NOT ON Bを参照。A ON 名詞1 AND 名詞1

Aが2つ以上の名詞1に対応する物に対して条件を満たすとき真

A NOT ON 名詞1 AND 名詞1

Aが2つ以上の名詞1に対応する物に対して条件を満たさないとき真A ON 名詞1 AND 名詞2

Aが1つ以上の名詞1に対応する物に対して条件を満たす、

かつ、

Aが1つ以上の名詞2に対応する物に対して条件を満たすとき真

A NOT ON 名詞1 AND 名詞2

Aが1つ以上の名詞1に対応する物に対して条件を満たさない、

または、

Aが1つ以上の名詞2に対応する物に対して条件を満たさないとき真例:

A ON B 動詞 補語

同じマスに1つ以上のBがあるA1にA 動詞 補語が適用されます。

A1自身は判定の対象になりません。

NEAR

A NEAR B

Aと同じマスか、周囲8マスに1つ以上のBがあるとき真

A NOT NEAR B

Aと同じマスか、周囲8マスに1つ以上のBがないとき真A NEAR EMPTY

Aと同じマスか、周囲8マスに1つ以上の無があるとき真

A NOT NEAR EMPTY

Aと同じマスか、周囲8マスに1つ以上の無がないとき真A NEAR LEVEL

レベルについて:

常に真

レベルアイコンについて:

A NEAR Bを参照。

A NOT NEAR LEVEL

レベルについて:

常に偽

レベルアイコンについて:

A NOT NEAR Bを参照。A NEAR 名詞1 AND 名詞1

Aが2つ以上の名詞1に対応する物に対して条件を満たすとき真

A NOT NEAR 名詞1 AND 名詞1

Aが2つ以上の名詞1に対応する物に対して条件を満たさないとき真A NEAR 名詞1 AND 名詞2

Aが1つ以上の名詞1に対応する物に対して条件を満たす、

かつ、

Aが1つ以上の名詞2に対応する物に対して条件を満たすとき真

A NOT NEAR 名詞1 AND 名詞2

Aが1つ以上の名詞1に対応する物に対して条件を満たさない、

または、

Aが1つ以上の名詞2に対応する物に対して条件を満たさないとき真例:

A NEAR B 動詞 補語

同じマスか、周囲8マスに1つ以上のBがあるA1にA 動詞 補語が適用されます。

A1自身は判定の対象になりません。

FACING

A FACING B

Aが隣接する1つ以上のBに向いているとき真

A NOT FACING B

Aが隣接する1つ以上のBに向いていないとき真A FACING DIRs1

AがDIRs1の方向を向いているとき真

A NOT FACING DIRs1

AがDIRs1の方向を向いていないとき真DIRs1の代わりにNOT DIRs1を使うこともできます。

NOT DIRs1はDIRs1以外の方向を指します。A FACING EMPTY

Aが隣接する無に向いているとき真

A NOT FACING EMPTY

Aが隣接する無に向いていないとき真注:Aが向いている無の数は条件に影響しません。Aが無に向いているか否かだけが条件に影響します。(仕様?)A FACING LEVEL

レベルについて:

常に真

レベルアイコンについて:

A FACING Bを参照。

A NOT FACING LEVEL

レベルについて:

常に偽

レベルアイコンについて:

A NOT FACING Bを参照。A FACING 単語1 AND 単語1

Aが2つ以上の単語1に対応する物に対して条件を満たすとき真

A NOT FACING 単語1 AND 単語1

Aが2つ以上の単語1に対応する物に対して条件を満たさないとき真A FACING 単語1 AND 単語2

Aが1つ以上の単語1に対応する物に対して条件を満たす、

かつ、

Aが1つ以上の単語2に対応する物に対して条件を満たすとき真

A NOT FACING 単語1 AND 単語2

Aが1つ以上の単語1に対応する物に対して条件を満たさない、

または、

Aが1つ以上の単語2に対応する物に対して条件を満たさないとき真例:

A FACING B 動詞 補語

隣接する1つ以上のBに向いているAにA 動詞 補語が適用されます。

A FACING DIRs1 動詞 補語

DIRs1の方向を向いているAにA 動詞 補語が適用されます。

WITHOUT(本編未登場)A WITHOUT B

レベル中に1つ以上のBが存在しないとき真

A NOT WITHOUT B

レベル中に1つ以上のBが存在するとき真A WITHOUT EMPTY

レベル中に1つ以上の無が存在しないとき真

A NOT WITHOUT EMPTY

レベル中に1つ以上の無が存在するとき真A WITHOUT LEVEL

レベルについて:

常に偽

レベルアイコンについて:

A WITHOUT Bを参照。

A NOT WITHOUT LEVEL

レベルについて:

常に真

レベルアイコンについて:

A NOT WITHOUT Bを参照。A WITHOUT 名詞1 AND 名詞1

Aが2つ以上の名詞1に対応する物に対して条件を満たすとき真

A NOT WITHOUT 名詞1 AND 名詞1

Aが2つ以上の名詞1に対応する物に対して条件を満たさないとき真A WITHOUT 名詞1 AND 名詞2

Aが1つ以上の名詞1に対応する物に対して条件を満たす、

かつ、

Aが1つ以上の名詞2に対応する物に対して条件を満たすとき真

A NOT WITHOUT 名詞1 AND 名詞2

Aが1つ以上の名詞1に対応する物に対して条件を満たさない、

かつ、

Aが1つ以上の名詞2に対応する物に対して条件を満たさないとき真

注:他の前置詞と異なり、WITHOUTを否定したとき、小条件同士のつながりはand的です。例:

A WITHOUT B 動詞 補語

レベル中に1つ以上のBが存在しないとき、全てのA1にA 動詞 補語が適用されます。

A1自身は判定の対象になりません。

ABOVE(本編未登場)A ABOVE B

Aが1つ以上のBの上方にあるとき真

A NOT ABOVE B

Aが1つ以上のBの上方にないとき真A ABOVE EMPTY

Aが1つ以上の無の上方にあるとき真

A NOT ABOVE EMPTY

Aが1つ以上の無の上方にないとき真A ABOVE LEVEL

レベルについて:

常に真

レベルアイコンについて:

A ABOVE Bを参照。

A NOT ABOVE LEVEL

レベルについて:

常に偽

レベルアイコンについて:

A NOT ABOVE Bを参照。A ABOVE 名詞1 AND 名詞1

Aが2つ以上の名詞1に対応する物に対して条件を満たすとき真

A NOT ABOVE 名詞1 AND 名詞1

Aが2つ以上の名詞1に対応する物に対して条件を満たさないとき真A ABOVE 名詞1 AND 名詞2

Aが1つ以上の名詞1に対応する物に対して条件を満たす、

かつ、

Aが1つ以上の名詞2に対応する物に対して条件を満たすとき真

A NOT ABOVE 名詞1 AND 名詞2

Aが1つ以上の名詞1に対応する物に対して条件を満たさない、

または、

Aが1つ以上の名詞2に対応する物に対して条件を満たさないとき真例:

A ABOVE B 動詞 補語

1つ以上のBの上方にあるAにA 動詞 補語が適用されます。

BELOW(本編未登場)A BELOW B

Aが1つ以上のBの下方にあるとき真

A NOT BELOW B

Aが1つ以上のBの下方にないとき真A BELOW EMPTY

Aが1つ以上の無の下方にあるとき真

A NOT BELOW EMPTY

Aが1つ以上の無の下方にないとき真A BELOW LEVEL

レベルについて:

常に真

レベルアイコンについて:

A BELOW Bを参照。

A NOT BELOW LEVEL

レベルについて:

常に偽

レベルアイコンについて:

A NOT BELOW Bを参照。A BELOW 名詞1 AND 名詞1

Aが2つ以上の名詞1に対応する物に対して条件を満たすとき真

A NOT BELOW 名詞1 AND 名詞1

Aが2つ以上の名詞1に対応する物に対して条件を満たさないとき真A BELOW 名詞1 AND 名詞2

Aが1つ以上の名詞1に対応する物に対して条件を満たす、

かつ、

Aが1つ以上の名詞2に対応する物に対して条件を満たすとき真

A NOT BELOW 名詞1 AND 名詞2

Aが1つ以上の名詞1に対応する物に対して条件を満たさない、

または、

Aが1つ以上の名詞2に対応する物に対して条件を満たさないとき真例:

A BELOW B 動詞 補語

1つ以上のBの下方にあるAにA 動詞 補語が適用されます。

BESIDE←

BESIDELEFT(本編未登場)この見出し下の内容は、ver.417に基づいて記述しています。

A BESIDELEFT B

Aが1つ以上のBの左方にあるとき真

A NOT BESIDELEFT B

Aが1つ以上のBの左方にないとき真

BESIDE→

BESIDERIGHT(本編未登場)この見出し下の内容は、ver.417に基づいて記述しています。

A BESIDERIGHT B

Aが1つ以上のBの右方にあるとき真

A NOT BESIDERIGHT B

Aが1つ以上のBの右方にないとき真

FEELING(本編未登場)A FEELING 形容詞1

Aに1つ以上の形容詞1が適用されているなら真

A NOT FEELING 形容詞1

Aに1つ以上の形容詞1が適用されていないなら真形容詞1の代わりにNOT 形容詞1を使うこともできます。

NOT 形容詞1は、形容詞1以外の形容詞を指します。A FEELING 形容詞1 AND 形容詞1

Aに2つ以上の形容詞1が適用されているなら真

A NOT FEELING 形容詞1 AND 形容詞1

Aに2つ以上の形容詞1が適用されていないなら真A FEELING 形容詞1 AND 形容詞2

Aに1つ以上の形容詞1が適用されている、

かつ、

Aに1つ以上の形容詞2が適用されているなら真

A NOT FEELING 形容詞1 AND 形容詞2

Aに1つ以上の形容詞1が適用されていない、

かつ、

Aに1つ以上の形容詞2が適用されていないなら真

注:他の前置詞と異なり、FEELINGを否定したとき、小条件同士のつながりはand的です。例:

A FEELING 形容詞1 動詞 補語

1つ以上の形容詞1が適用されているAにA 動詞 補語が適用されます。

A FEELING NOT 形容詞1 動詞 補語

1つ以上の形容詞1でない形容詞が適用されているAにA 動詞 補語が適用されます。FEELINGは無限ループの作成に利用できます。

条件指定子 - 前置詞の補足

このセクションはver.390に基づいて作られています。

前置詞以後の部分は主語ではありません。

「A 前置詞1 B AND C 前置詞2 D 動詞1 補語1」は

「A 前置詞1 B 動詞1 補語1」「C 前置詞2 D 動詞1 補語1」のようには解釈されず、

「C 前置詞2 D 動詞1 補語1」として解釈されます。

「A 前置詞1 B AND」の部分は無効です。ランダム性を持たない同じ条件を複数含むルールは、重複する条件を省いたルールと同じ意味になります。

これは、ランダム性を持たない同じ条件は、ある状況では、常に同じ真偽値を返すためです。

例:A ON B AND ON B IS YOUは、重複する「ON B」を省いたA ON B IS YOUと同じ意味です。前置詞句内のALLは、前置詞句にまだ含まれていない、ALLに含まれる各単語を1つ追加します。

例:ALLにBABA、KEKE、MEが含まれるとき、A ON BABA AND ALLは、A ON BABA AND KEKE AND MEと同じです。(ALLは前置詞句にKEKEとMEを追加します。)

同じ条件で、A ON BABA AND BABA AND KEKE AND ALLは、A ON BABA AND BABA AND KEKE AND MEと同じです。(ALLは前置詞句にMEを追加します。)

例:A ON ALL AND ALLは、A ON ALLと同じです。(1つ目のALLは全ての単語を追加し、2つ目のALLは何も追加しません。)ver.390現在、バグにより、前置詞句内のALLは、名詞EMPTYまたは名詞LEVELがレベル中に一度でも存在したなら、それを含みます。

小条件の補足この欄の内容は推測です。

この欄の内容は抽象的で難解なため、興味がなければ読み飛ばすことをおすすめします。

ただ、前置詞の理解の助けになるかもしれません。

前置詞句は、全体として1つの条件(大条件)を作ります。

「大条件」は1つ以上の「小条件」を持ちます。通常は、全ての「小条件」が真のときのみ、「大条件」も真になります。

大条件 = 小条件1∧小条件2∧...∧小条件x

のような感じです。

「小条件」は前置詞句が含む単語1種について1つ作られます。

「小条件」は、主語に対応する物のそれぞれと、前置詞句内のある種の単語に関する「何か」とを、前置詞の条件で対応づけます。

「何か」が具体的に何を指すかは、前置詞の種類と、単語の種類によって決まります。

例:A ON 名詞1では、「何か」は、名詞1に対応する物です。

また、A FACING DIRs1では、「何か」は、DIRs1に対応する方向です。

また、A FEELING 形容詞1では、「何か」は、Aに適用されている形容詞1です。例:A ON 名詞1の小条件は、「A」と「1つ以上」の「名詞1に対応する物」が同じマスにあるとき真というものです。

この例では、小条件が1つのみ含まれているため、大条件と小条件は全く同じです。前置詞句に複数種の単語が含まれているとき、それぞれの種類の単語について「小条件」が作られます。

例:A ON B AND Cでは、前置詞句にBとCの2種類の単語が含まれているので、BとCのそれぞれについて、計2つの小条件が作られます。前置詞句に同じ種類の単語が複数含まれているなら、その単語についての「小条件」の「数」が増加します。

「小条件」は「数」を持ちます。「数」は、前置詞句に含まれるその種類の単語の数に設定されます。

例:A ON B AND B AND Bのとき、AのBについての小条件の数は3です。

A FEELING 形容詞1 AND 形容詞1のとき、Aの形容詞1についての小条件の数は2です。数がどのような使われ方をするかは前置詞によって決まります。

例:ONなら、「nつ以上の物と同じマスにあるとき…」のように使われます。

FEELINGなら、「Aに適用されている形容詞1の数がn以上なら…」のように使われます。

WITHOUT、FEELINGの否定は、その他の前置詞の否定と異なる通常、条件の否定はその真偽を反転します。しかしながら、一部の前置詞句の条件の否定は例外的に、単純な真偽の反転ではありません。

WITHOUT、FEELINGの否定に限り、前置詞の後の単語のつながりはor的ではなくand的です。

例としてNEARについて考えてみます。

A NEAR B AND C

= Aと同じマスか周囲8マスに1つ以上のBがある、かつ、Aと同じマスか周囲8マスに1つ以上のCがあるこの条件を否定してみます。

A NOT NEAR B AND C

= (Aと同じマスか周囲8マスに1つ以上のBがある、かつ、Aと同じマスか周囲8マスに1つ以上のCがある)の否定これは、ド・モルガンの法則[ja.wikipedia.org] から、次のように言い換えできます。

= Aと同じマスか周囲8マスに1つ以上のBがない、または、Aと同じマスか周囲8マスに1つ以上のCがない次の画像の例から、上の考えは正しいと言えそうです。

//TODO:画像

WITHOUTについても同様に考えてみます。

A WITHOUT B AND C

= レベル中に1つ以上のBが存在しない、かつ、レベル中に1つ以上のCが存在しない先程のNEARの例と同様に、WITHOUTの否定は次のように考えられそうですが、これは正しくありません。

A NOT WITHOUT B AND C

= (レベル中に1つ以上のBが存在しない、かつ、レベル中に1つ以上のCが存在しない)の否定

= レベル中に1つ以上のBが存在する、または、レベル中に1つ以上のCが存在する次の画像の例から、上の考えは正しくないことがわかります。

//TODO:画像

実際には次のように働いているようです。

A NOT WITHOUT B AND C

= レベル中に1つ以上のBが存在する、かつ、レベル中に1つ以上のCが存在する

WITHOUT、FEELINGを使った否定形のルールは、本来無効化するべきでないルールを無効化することがある(バグ?)

次の2つのルールが成立しているとき、

BABA WITHOUT KEKE AND FLAG IS NOT BEST

BABA IS BEST1. の意味は「レベル中に1つ以上のKEKEがなく、かつ、レベル中に1つ以上のFLAGがないとき、BABAはBEST状態ではない」のはずです。

そのため、BABAがBEST状態になるのは、次の時であるように思えます。

KEKEがあるKEKEがないFLAGがある○○FLAGがない○×

しかしながら、これは実際には正しくありません。

実際にBABAがBEST状態になるのは、次の時です。

KEKEがあるKEKEがないFLAGがある○×FLAGがない××

原因の考察

これが起こる原因は、次の2点であると推測します。

WITHOUT、FEELINGの否定は、単純な真偽値の反転ではない

ルールの否定は、否定形のルールに付いている条件を反転して、対応するルールに加えることで実現されている1. は、WITHOUT(FEELING)とその否定が次のような関係になっているというものです。

A WITHOUT B AND C

= レベル中に1つ以上のBがない、かつ、レベル中に1つ以上のCがない

A NOT WITHOUT B AND C

= レベル中に1つ以上のBがある、かつ、レベル中に1つ以上のCがある2. については、開発者のDiscordで次のような発言を見つけることができます。

Hempuli 氏の発言から引用

When you say "Baba Is Not X", the game searches through all instances of "Baba Is X" and adds to their conditionals the inverse of "Baba Is Not X"'s conditional

so "Baba On Grass Is Not X" means that "Baba Is X" becomes "Baba Not On Grass Is X"

https://discord.com/channels/413458938869055490/413467461648646155/741121027383361597

つまり、ルールの否定の際、WITHOUTとその否定NOT WITHOUT(またはFEELINGとNOT FEELING)は、実際には真偽の反転した関係ではないのに、真偽の反転した関係だとして元のルールに加えられることで、この問題が起こっています。

同じルール&物があっても、前置詞の条件判定の結果が変わることがある(バグ?)

前置詞 NOT A AND NOT Bの形で前置詞句を作ると、レベル中に存在する物とその処理順によっては、前置詞の条件判定の結果が変わることがあります。

ONの例

次の配置のレベルでは、BABAは条件を満たしません。

一方で、次の配置のレベルでは、条件を満たします。

NEARの例

次のレベルでは、KEKEとWALLが初期配置のとき、BABAは条件を満たしません。

しかし、KEKEがWALLより右側、または下側に位置するとき条件を満たします。

FEELINGの例

(報告済みのバグ)

次のレベルでは、BABAは条件を満たしますが、GHOSTは条件を満たしません。

原因の考察

ONの例を使って説明します。

このゲームでは、各オブジェクトは内部IDを持ち、それは処理順に影響します。

BABA ON NOT FLAG AND NOT WALL IS CYANの条件判定の処理は、次のようであると考えられます。

まず、全てのオブジェクトを内部IDの若い物から順に見て、NOT FLAGに該当するオブジェクトを探します。

次に、NOT WALLに該当するオブジェクトを同様に探します。

この画像のケースでは、KEKEはWALLより内部IDが若いと推測されます。

このとき、

NOT FLAGに対してはKEKEが当てはめられ

NOT WALLに対しては残りのWALLを当てはめることができず条件判定は偽となります。

一方で、この画像のケースでは、KEKEはWALLより内部IDが古いと推測されます。

このとき、

NOT FLAGに対してはWALLが当てはめられ

NOT WALLに対しては残りのKEKEを当てはめられるため条件判定は真となります。

条件指定子 - 前置詞と無

このセクションはver.390に基づいて作られています。

ONEMPTY ON B

常に偽

EMPTY NOT ON B

常に真EMPTY ON EMPTY

常に偽

EMPTY NOT ON EMPTY

常に偽(バグ?)EMPTY ON LEVEL

レベルについて:

常に真

レベルアイコンについて:

EMPTY ON Bを参照。

EMPTY NOT ON LEVEL

レベルについて:

常に偽

レベルアイコンについて:

EMPTY NOT ON Bを参照。EMPTY ON 名詞1 AND 名詞1

無が2つ以上の名詞1に対応する物に対して条件を満たすとき真

EMPTY NOT ON 名詞1 AND 名詞1

無が2つ以上の名詞1に対応する物に対して条件を満たさないとき真EMPTY ON 名詞1 AND 名詞2

無が1つ以上の名詞1に対応する物に対して条件を満たす、

かつ、

無が1つ以上の名詞2に対応する物に対して条件を満たすとき真

EMPTY NOT ON 名詞1 AND 名詞2

無が1つ以上の名詞1に対応する物に対して条件を満たさない、

または、

無が1つ以上の名詞2に対応する物に対して条件を満たさないとき真例:

EMPTY ON B 動詞 補語

常に適用されません。

NEAREMPTY NEAR B

無と同じマスか、周囲8マスに1つ以上のBがあるとき真

EMPTY NOT NEAR B

無と同じマスか、周囲8マスに1つ以上のBがないとき真EMPTY NEAR EMPTY

無と同じマスか、周囲8マスに1つ以上の無があるとき真

EMPTY NOT NEAR EMPTY

無と同じマスか、周囲8マスに1つ以上の無がないとき真EMPTY NEAR LEVEL

レベルについて:

常に真

レベルアイコンについて:

EMPTY NEAR Bを参照。

EMPTY NOT NEAR LEVEL

レベルについて:

常に偽

レベルアイコンについて:

EMPTY NOT NEAR Bを参照。EMPTY NEAR 名詞1 AND 名詞1

無が2つ以上の名詞1に対応する物に対して条件を満たすとき真

EMPTY NOT NEAR 名詞1 AND 名詞1

無が2つ以上の名詞1に対応する物に対して条件を満たさないとき真EMPTY NEAR 名詞1 AND 名詞2

無が1つ以上の名詞1に対応する物に対して条件を満たす、

かつ、

無が1つ以上の名詞2に対応する物に対して条件を満たすとき真

EMPTY NOT NEAR 名詞1 AND 名詞2

無が1つ以上の名詞1に対応する物に対して条件を満たさない、

または、

無が1つ以上の名詞2に対応する物に対して条件を満たさないとき真例:

EMPTY NEAR B 動詞 補語

同じマスか、周囲8マスに1つ以上のBがある無1にEMPTY 動詞 補語が適用されます。

無1自身は判定の対象になりません。

EMPTY NEAR ALL 動詞 補語

ALLに含まれる全種類の物と、無とについて、全て条件を満たす無1にEMPTY 動詞 補語が適用されます。

(「前置詞句内のALLは、名詞EMPTYまたはLEVELが一度でも存在したならそれを含む」というバグにより、ALLは無を含みます。)

無1自身は判定の対象になりません。

FACING無は向きを持たないため、方向を指定されない限り条件を満たしません。

EMPTY FACING B

無が隣接する1つ以上のBに向いているとき真

EMPTY NOT FACING B

無が隣接する1つ以上のBに向いていないとき真EMPTY FACING DIRs1

無がDIRs1の方向を向いているとき真

EMPTY NOT FACING DIRs1

無がDIRs1の方向を向いていないとき真DIRs1の代わりにNOT DIRs1を使うこともできます。

NOT DIRs1はDIRs1以外の方向を指します。EMPTY FACING EMPTY

無が隣接する無に向いているとき真

EMPTY NOT FACING EMPTY

無が隣接する無に向いていないとき真注:無が向いている無の数は条件に影響しません。無が無に向いているか否かだけが条件に影響します。EMPTY FACING LEVEL

レベルについて:

常に真

レベルアイコンについて:

EMPTY FACING Bを参照。

EMPTY NOT FACING LEVEL

レベルについて:

常に偽

レベルアイコンについて:

EMPTY NOT FACING Bを参照。EMPTY FACING 単語1 AND 単語1

無が2つ以上の単語1に対応する物に対して条件を満たすとき真

EMPTY NOT FACING 単語1 AND 単語1

無が2つ以上の単語1に対応する物に対して条件を満たさないとき真EMPTY FACING 単語1 AND 単語2

無が1つ以上の単語1に対応する物に対して条件を満たす、

かつ、

無が1つ以上の単語2に対応する物に対して条件を満たすとき真

EMPTY NOT FACING 単語1 AND 単語2

無が1つ以上の単語1に対応する物に対して条件を満たさない、

または、

無が1つ以上の単語2に対応する物に対して条件を満たさないとき真例:

EMPTY FACING B 動詞 補語

隣接する1つ以上のBに向いている無にEMPTY 動詞 補語が適用されます。

無の方向が指定されていない場合、条件を満たすことはありません。

EMPTY NOT FACING DIRs1 動詞 補語

DIRs1の方向を向いていない無にEMPTY 動詞 補語が適用されます。

無の方向が指定されていない場合、条件を満たすことはありません。

WITHOUT(本編未登場)EMPTY WITHOUT B

レベル中に1つ以上のBが存在しないとき真

EMPTY NOT WITHOUT B

レベル中に1つ以上のBが存在するとき真EMPTY WITHOUT EMPTY

レベル中に1つ以上の無が存在しないとき真

EMPTY NOT WITHOUT EMPTY

レベル中に1つ以上の無が存在するとき真EMPTY WITHOUT LEVEL

レベルについて:

常に偽

レベルアイコンについて:

EMPTY WITHOUT Bを参照。

EMPTY NOT WITHOUT LEVEL

レベルについて:

常に真

レベルアイコンについて:

EMPTY NOT WITHOUT Bを参照。EMPTY WITHOUT 名詞1 AND 名詞1

無が2つ以上の名詞1に対応する物に対して条件を満たすとき真

EMPTY NOT WITHOUT 名詞1 AND 名詞1

無が2つ以上の名詞1に対応する物に対して条件を満たさないとき真EMPTY WITHOUT 名詞1 AND 名詞2

無が1つ以上の名詞1に対応する物に対して条件を満たす、

かつ、

無が1つ以上の名詞2に対応する物に対して条件を満たすとき真

EMPTY NOT WITHOUT 名詞1 AND 名詞2

無が1つ以上の名詞1に対応する物に対して条件を満たさない、

かつ、

無が1つ以上の名詞2に対応する物に対して条件を満たさないとき真

注:他の前置詞と異なり、WITHOUTを否定したとき、小条件同士のつながりはand的です。例:

EMPTY WITHOUT B 動詞 補語

レベル中に1つ以上のBが存在しないとき、全ての無1にEMPTY 動詞 補語が適用されます。

無1自身は判定の対象になりません。

ABOVE(本編未登場)EMPTY ABOVE B

無が1つ以上のBの上方にあるとき真

EMPTY NOT ABOVE B

無が1つ以上のBの上方にないとき真EMPTY ABOVE EMPTY

無が1つ以上の無の上方にあるとき真

EMPTY NOT ABOVE EMPTY

無が1つ以上の無の上方にないとき真ABOVEについて、前置詞句内のNOT EMPTYは非常にバグっぽい挙動です。

最下段以外のマスでは条件を満たします。(バグ?)EMPTY ABOVE LEVEL

レベルについて:

常に真

レベルアイコンについて:

EMPTY ABOVE Bを参照。

EMPTY NOT ABOVE LEVEL

レベルについて:

常に偽

レベルアイコンについて:

EMPTY NOT ABOVE Bを参照。EMPTY ABOVE 名詞1 AND 名詞1

無が2つ以上の名詞1に対応する物に対して条件を満たすとき真

EMPTY NOT ABOVE 名詞1 AND 名詞1

無が2つ以上の名詞1に対応する物に対して条件を満たさないとき真EMPTY ABOVE 名詞1 AND 名詞2

無が1つ以上の名詞1に対応する物に対して条件を満たす、

かつ、

無が1つ以上の名詞2に対応する物に対して条件を満たすとき真

EMPTY NOT ABOVE 名詞1 AND 名詞2

無が1つ以上の名詞1に対応する物に対して条件を満たさない、

または、

無が1つ以上の名詞2に対応する物に対して条件を満たさないとき真例:

EMPTY ABOVE B 動詞 補語

1つ以上のBの上方にある無にEMPTY 動詞 補語が適用されます。

BELOW(本編未登場)EMPTY BELOW B

無が1つ以上のBの下方にあるとき真

EMPTY NOT BELOW B

無が1つ以上のBの下方にないとき真EMPTY BELOW EMPTY

無が1つ以上の無の下方にあるとき真

EMPTY NOT BELOW EMPTY

無が1つ以上の無の下方にないとき真EMPTY BELOW LEVEL

レベルについて:

常に真

レベルアイコンについて:

EMPTY BELOW Bを参照。

EMPTY NOT BELOW LEVEL

レベルについて:

常に偽

レベルアイコンについて:

EMPTY NOT BELOW Bを参照。EMPTY BELOW 名詞1 AND 名詞1

無が2つ以上の名詞1に対応する物に対して条件を満たすとき真

EMPTY NOT BELOW 名詞1 AND 名詞1

無が2つ以上の名詞1に対応する物に対して条件を満たさないとき真EMPTY BELOW 名詞1 AND 名詞2

無が1つ以上の名詞1に対応する物に対して条件を満たす、

かつ、

無が1つ以上の名詞2に対応する物に対して条件を満たすとき真

EMPTY NOT BELOW 名詞1 AND 名詞2

無が1つ以上の名詞1に対応する物に対して条件を満たさない、

または、

無が1つ以上の名詞2に対応する物に対して条件を満たさないとき真例:

EMPTY BELOW B 動詞 補語

1つ以上のBの下方にある無にEMPTY 動詞 補語が適用されます。

FEELING(本編未登場)EMPTY FEELING 形容詞1

無に1つ以上の形容詞1が適用されているなら真

EMPTY NOT FEELING 形容詞1

無に1つ以上の形容詞1が適用されていないなら真NOT 形容詞1は、形容詞1以外の形容詞を指します。

例:A FEELING NOT 形容詞1は、Aに形容詞1でない形容詞が適用されているとき真になります。EMPTY FEELING 形容詞1 AND 形容詞1

無に2つ以上の形容詞1が適用されているなら真

EMPTY NOT FEELING 形容詞1 AND 形容詞1

無に2つ以上の形容詞1が適用されていないなら真EMPTY FEELING 形容詞1 AND 形容詞2

無に1つ以上の形容詞1が適用されている、

かつ、

無に1つ以上の形容詞2が適用されているなら真

EMPTY NOT FEELING 形容詞1 AND 形容詞2

無に1つ以上の形容詞1が適用されていない、

かつ、

無に1つ以上の形容詞2が適用されていないなら真

注:他の前置詞と異なり、FEELINGを否定したとき、小条件同士のつながりはand的です。例:

A FEELING 形容詞1 動詞 補語

1つ以上の形容詞1が適用されている無にEMPTY 動詞 補語が適用されます。FEELINGは無限ループの作成に利用できます。

条件指定子 - 前置詞とレベル

このセクションはver.390に基づいて作られています。

ON、NEAR、FACINGに限り、あるレベルに入る際に選択したレベルアイコンの周囲にあるオブジェクトも、そのレベル内での条件判定に影響します。(オブジェクトのみが判定に関わります。無とレベルと、選択したレベルアイコンの向きは関わりません。)

例:あるレベルアイコンを選択してレベルに入ったとき、そのレベルアイコンがMEと同じマスにあるなら、そのレベルではLEVEL ON MEは常に条件を満たします。条件判定は選択したレベルアイコンについてのみ行われます。

例:「THE MAP」というレベルに、「THE LEVEL」というレベルに対応するレベルアイコンが3つあり、その内1つを選択したとき、選択したレベルアイコン以外は判定に関わりません。LEVEL ON TEXTは、未確認。(テキストスタッキングで組み合わせを増やさないと確かめられなさそう)

LEVEL ON LEVELは、レベルアイコンについて正しく働きます。

LEVEL NEAR TEXTは、未確認。(テキストスタッキングで組み合わせを増やさないと確かめられなさそう)

LEVEL NEAR LEVELは、レベルアイコンについて正しく働きます。

LEVEL FACING TEXTは、正しく働きます。

LEVEL FACING LEVELは、レベルアイコンについて正しく働きます。

LEVEL NEAR EMPTYと、それの否定は働きません。

LEVEL FACING EMPTY、LEVEL FACING DIRsと、それらの否定は働きません。

LEVEL FACING LEVEL、LEVEL FACING DIRsは働きません。

ONLEVEL ON B

レベル内に1つ以上のBがあるとき真

LEVEL NOT ON B

レベル内に1つ以上のBがないとき真LEVEL ON EMPTY

レベル内に1つ以上の無があるとき真

LEVEL NOT ON EMPTY

レベル内に1つ以上の無がないとき真LEVEL ON LEVEL

レベルについて:

常に偽

レベルアイコンについて:

レベル内に1つ以上のレベルアイコンがあるとき真

LEVEL NOT ON LEVEL

レベルについて:

常に真

レベルアイコンについて:

レベル内に1つ以上のレベルアイコンがないとき真LEVEL ON 名詞1 AND 名詞1

レベルが2つ以上の名詞1に対応する物に対して条件を満たすとき真

LEVEL NOT ON 名詞1 AND 名詞1

レベルが2つ以上の名詞1に対応する物に対して条件を満たさないとき真LEVEL ON 名詞1 AND 名詞2

レベルが1つ以上の名詞1に対応する物に対して条件を満たす、

かつ、

レベルが1つ以上の名詞2に対応する物に対して条件を満たすとき真

LEVEL NOT ON 名詞1 AND 名詞2

レベルが1つ以上の名詞1に対応する物に対して条件を満たさない、

または、

レベルが1つ以上の名詞2に対応する物に対して条件を満たさないとき真例:

LEVEL ON B 動詞 補語

1つ以上のBがあるレベルにLEVEL 動詞 補語が適用されます。

LEVEL ON LEVEL 動詞 補語

1つ以上のレベルアイコンがあるレベルにLEVEL 動詞 補語が適用されます。

(レベル自身は対象にならないためです。)

LEVEL ON ALL 動詞 補語

ALLに含まれる全種類の物とレベルアイコンが全て1つ以上あるレベルにLEVEL 動詞 補語が適用されます。

(「前置詞句内のALLは、名詞EMPTYまたはLEVELが一度でも存在したならそれを含む」というバグにより、ALLはLEVELを含みます。)

NEARLEVEL NEAR B

レベル内に1つ以上のBがあるとき真

LEVEL NOT NEAR B

レベル内に1つ以上のBがないとき真LEVEL NEAR EMPTY

レベル内に1つ以上の無があるとき真

LEVEL NOT NEAR EMPTY

レベル内に1つ以上の無がないとき真LEVEL NEAR LEVEL

レベルについて:

小条件の数によらず、常に真(ver.398)(バグ?)

レベルアイコンについて:

常に偽(バグ?)

(ver.398では確認する方法がない)

LEVEL NOT NEAR LEVEL

レベルについて:

小条件の数によらず、常に偽(ver.398)(バグ?)

レベルアイコンについて:

レベル内に1つ以上のレベルアイコンがないとき真

(ver.398では確認する方法がない)LEVEL NEAR 名詞1 AND 名詞1

レベルが2つ以上の名詞1に対応する物に対して条件を満たすとき真

LEVEL NOT NEAR 名詞1 AND 名詞1

レベルが2つ以上の名詞1に対応する物に対して条件を満たさないとき真LEVEL NEAR 名詞1 AND 名詞2

レベルが1つ以上の名詞1に対応する物に対して条件を満たす、

かつ、

レベルが1つ以上の名詞2に対応する物に対して条件を満たすとき真

LEVEL NOT NEAR 名詞1 AND 名詞2

レベルが1つ以上の名詞1に対応する物に対して条件を満たさない、

または、

レベルが1つ以上の名詞2に対応する物に対して条件を満たさないとき真例:

LEVEL NEAR B 動詞 補語

1つ以上のBがあるレベルにLEVEL 動詞 補語が適用されます。

LEVEL NEAR ALL 動詞 補語

レベルには常に適用されません。

(「前置詞句内のALLは、名詞EMPTYまたはLEVELが一度でも存在したならそれを含む」というバグにより、ALLはLEVELを含みます。しかし、レベルはNEAR LEVELの条件を絶対に満たさないので、前置詞句全体の条件が常に偽となります。)

FACINGLEVEL FACING B

常に偽

LEVEL NOT FACING B

常に真LEVEL FACING DIRs1

常に偽

LEVEL NOT FACING DIRs1

常に真DIRs1の代わりにNOT DIRs1を使うこともできます。

NOT DIRs1はDIRs1以外の方向を指します。

(見ての通り、レベルにとっては全く意味がありませんが。)LEVEL FACING EMPTY

常に偽

LEVEL NOT FACING EMPTY

常に真LEVEL FACING LEVEL

レベルについて:

常に偽

レベルアイコンについて:

常に偽

LEVEL NOT FACING LEVEL

レベルについて:

常に真

レベルアイコンについて:

常に真LEVEL FACING 単語1 AND 単語1

常に偽

LEVEL NOT FACING 単語1 AND 単語1

常に真LEVEL FACING 単語1 AND 単語2

常に偽

LEVEL NOT FACING 単語1 AND 単語2

常に真例:

LEVEL FACING B 動詞 補語

レベルには常に適用されません。

LEVEL NOT FACING NOT UP AND NOT DOWN 動詞 補語

常にレベルにLEVEL 動詞 補語が適用されます。

WITHOUT(本編未登場)LEVEL WITHOUT B

レベル中に1つ以上のBがないとき真

LEVEL NOT WITHOUT B

レベル中に1つ以上のBがあるとき真LEVEL WITHOUT EMPTY

レベル中に1つ以上の無がないとき真

LEVEL NOT WITHOUT EMPTY

レベル中に1つ以上の無があるとき真LEVEL WITHOUT LEVEL

小条件の数が1のとき:

常に偽

それ以外:

レベルについて:

常に偽

レベルアイコンについて:

レベル中に1つ以上のレベルアイコンがないとき真LEVEL NOT WITHOUT LEVEL

小条件の数が1のとき:

常に真

それ以外:

レベルについて:

常に偽

レベルアイコンについて:

レベル中に1つ以上のレベルアイコンがあるとき真LEVEL WITHOUT 名詞1 AND 名詞1

レベルが2つ以上の名詞1に対応する物に対して条件を満たすとき真

LEVEL NOT WITHOUT 名詞1 AND 名詞1

レベルが2つ以上の名詞1に対応する物に対して条件を満たさないとき真LEVEL WITHOUT 名詞1 AND 名詞2

レベルが1つ以上の名詞1に対応する物に対して条件を満たす、

かつ、

レベルが1つ以上の名詞2に対応する物に対して条件を満たすとき真

LEVEL NOT WITHOUT 名詞1 AND 名詞2

レベルが1つ以上の名詞1に対応する物に対して条件を満たさない、

かつ、

レベルが1つ以上の名詞2に対応する物に対して条件を満たさないとき真

注:他の前置詞と異なり、WITHOUTを否定したとき、小条件同士のつながりはand的です。例:

LEVEL WITHOUT B 動詞 補語

レベル中に1つ以上のBがないとき、レベルにLEVEL 動詞 補語が適用されます。

LEVEL WITHOUT LEVEL 動詞 補語

レベルには常に適用されません。

LEVEL WITHOUT LEVEL AND LEVEL 動詞 補語

レベル中に2つ以上のレベルアイコンがないとき、レベルにLEVEL 動詞 補語が適用されます。

レベルのレベルについての条件は常に偽であるため、条件に関わりません。

LEVEL NOT WITHOUT LEVEL 動詞 補語

常にレベルにLEVEL 動詞 補語が適用されます。

LEVEL NOT WITHOUT LEVEL AND LEVEL 動詞 補語

レベル中に2つ以上のレベルアイコンがあるとき、レベルにLEVEL 動詞 補語が適用されます。

レベルのレベルについての条件は常に偽であるため、条件に関わりません。

ABOVE(本編未登場)LEVEL ABOVE B

レベル内に1つ以上のBがあるとき真

LEVEL NOT ABOVE B

レベル内に1つ以上のBがないとき真LEVEL ABOVE EMPTY

常に偽

(バグ?)

LEVEL NOT ABOVE EMPTY

レベル内に1つ以上の無がないとき真LEVEL ABOVE LEVEL

レベルについて:

常に偽

レベルアイコンについて:

常に偽

(バグ?)

LEVEL NOT ABOVE LEVEL

レベルについて:

常に真

レベルアイコンについて:

レベル内に1つ以上のレベルアイコンがないとき真LEVEL ABOVE 名詞1 AND 名詞1

レベルが2つ以上の名詞1に対応する物に対して条件を満たすとき真

LEVEL NOT ABOVE 名詞1 AND 名詞1

レベルが2つ以上の名詞1に対応する物に対して条件を満たさないとき真LEVEL ABOVE 名詞1 AND 名詞2

レベルが1つ以上の名詞1に対応する物に対して条件を満たす、

かつ、

レベルが1つ以上の名詞2に対応する物に対して条件を満たすとき真

LEVEL NOT ABOVE 名詞1 AND 名詞2

レベルが1つ以上の名詞1に対応する物に対して条件を満たさない、

または、

レベルが1つ以上の名詞2に対応する物に対して条件を満たさないとき真例:

LEVEL ABOVE B 動詞 補語

1つ以上のBがあるレベルにLEVEL 動詞 補語が適用されます。

LEVEL ABOVE ALL 動詞 補語

レベルには常に適用されません。

(「前置詞句内のALLは、名詞EMPTYまたはLEVELが一度でも存在したならそれを含む」というバグにより、ALLはLEVELを含みます。しかし、レベルはABOVE LEVELの条件を絶対に満たさないので、前置詞句全体の条件が常に偽となります。)

BELOW(本編未登場)LEVEL BELOW B

レベル内に1つ以上のBがあるとき真

LEVEL NOT BELOW B

レベル内に1つ以上のBがないとき真LEVEL BELOW EMPTY

レベル内に1つ以上の無があるとき真

LEVEL NOT BELOW EMPTY

レベル内に1つ以上の無がないとき真LEVEL BELOW LEVEL

レベルについて:

常に偽

レベルアイコンについて:

ver.413

常に偽(バグ?)

レベル内に1つ以上のレベルアイコンがあるとき真

LEVEL NOT BELOW LEVEL

レベルについて:

常に真

レベルアイコンについて:

レベル内に1つ以上のレベルアイコンがないとき真LEVEL BELOW 名詞1 AND 名詞1

レベルが2つ以上の名詞1に対応する物に対して条件を満たすとき真

LEVEL NOT BELOW 名詞1 AND 名詞1

レベルが2つ以上の名詞1に対応する物に対して条件を満たさないとき真LEVEL BELOW 名詞1 AND 名詞2

レベルが1つ以上の名詞1に対応する物に対して条件を満たす、

かつ、

レベルが1つ以上の名詞2に対応する物に対して条件を満たすとき真

LEVEL NOT BELOW 名詞1 AND 名詞2

レベルが1つ以上の名詞1に対応する物に対して条件を満たさない、

または、

レベルが1つ以上の名詞2に対応する物に対して条件を満たさないとき真例:

LEVEL BELOW B 動詞 補語

1つ以上のBがあるレベルにLEVEL 動詞 補語が適用されます。

FEELING(本編未登場)LEVEL FEELING 形容詞1

レベルに1つ以上の形容詞1が適用されているなら真

LEVEL NOT FEELING 形容詞1

レベルに1つ以上の形容詞1が適用されていないなら真NOT 形容詞1は、形容詞1以外の形容詞を指します。

例:A FEELING NOT 形容詞1は、Aに形容詞1でない形容詞が適用されているとき真になります。LEVEL FEELING 形容詞1 AND 形容詞1

レベルに2つ以上の形容詞1が適用されているなら真

LEVEL NOT FEELING 形容詞1 AND 形容詞1

レベルに2つ以上の形容詞1が適用されていないなら真LEVEL FEELING 形容詞1 AND 形容詞2

レベルに1つ以上の形容詞1が適用されている、

かつ、

レベルに1つ以上の形容詞2が適用されているなら真

LEVEL NOT FEELING 形容詞1 AND 形容詞2

レベルに1つ以上の形容詞1が適用されていない、

かつ、

レベルに1つ以上の形容詞2が適用されていないなら真

注:他の前置詞と異なり、FEELINGを否定したとき、小条件同士のつながりはand的です。例:

LEVEL FEELING 形容詞1 動詞 補語

1つ以上の形容詞1が適用されているレベルにLEVEL 動詞 補語が適用されます。FEELINGは無限ループの作成に利用できます。

条件指定子 - 前置詞とレベルアイコン

このセクションはver.390に基づいて作られています。

ONLEVEL ON B

レベルアイコンと同じマスに1つ以上のBがあるとき真

LEVEL NOT ON B

レベルアイコンと同じマスに1つ以上のBがないとき真LEVEL ON EMPTY

常に偽

LEVEL NOT ON EMPTY

常に真LEVEL ON LEVEL

レベルについて:

常に真

レベルアイコンについて:

LEVEL ON Bを参照。

LEVEL NOT ON LEVEL

レベルについて:

常に偽

レベルアイコンについて:

LEVEL NOT ON Bを参照。LEVEL ON 名詞1 AND 名詞1

レベルアイコンが2つ以上の名詞1に対応する物に対して条件を満たすとき真

LEVEL NOT ON 名詞1 AND 名詞1

レベルアイコンが2つ以上の名詞1に対応する物に対して条件を満たさないとき真LEVEL ON 名詞1 AND 名詞2

レベルアイコンが1つ以上の名詞1に対応する物に対して条件を満たす、

かつ、

レベルアイコンが1つ以上の名詞2に対応する物に対して条件を満たすとき真

LEVEL NOT ON 名詞1 AND 名詞2

レベルアイコンが1つ以上の名詞1に対応する物に対して条件を満たさない、

または、

レベルアイコンが1つ以上の名詞2に対応する物に対して条件を満たさないとき真例:

LEVEL ON B 動詞 補語

同じマスに1つ以上のBがあるレベルアイコンにLEVEL 動詞 補語が適用されます。

NEARLEVEL NEAR B

レベルアイコンと同じマスか、周囲8マスに1つ以上のBがあるとき真

LEVEL NOT NEAR B

レベルアイコンと同じマスか、周囲8マスに1つ以上のBがないとき真LEVEL NEAR EMPTY

レベルアイコンと同じマスか、周囲8マスに1つ以上の無があるとき真

LEVEL NOT NEAR EMPTY

レベルアイコンと同じマスか、周囲8マスに1つ以上の無がないとき真LEVEL NEAR LEVEL

レベルについて:

常に真

レベルアイコンについて:

LEVEL NEAR Bを参照。

LEVEL NOT NEAR LEVEL

レベルについて:

常に偽

レベルアイコンについて:

LEVEL NOT NEAR Bを参照。LEVEL NEAR 名詞1 AND 名詞1

レベルアイコンが2つ以上の名詞1に対応する物に対して条件を満たすとき真

LEVEL NOT NEAR 名詞1 AND 名詞1

レベルアイコンが2つ以上の名詞1に対応する物に対して条件を満たさないとき真LEVEL NEAR 名詞1 AND 名詞2

レベルアイコンが1つ以上の名詞1に対応する物に対して条件を満たす、

かつ、

レベルアイコンが1つ以上の名詞2に対応する物に対して条件を満たすとき真

LEVEL NOT NEAR 名詞1 AND 名詞2

レベルアイコンが1つ以上の名詞1に対応する物に対して条件を満たさない、

または、

レベルアイコンが1つ以上の名詞2に対応する物に対して条件を満たさないとき真例:

LEVEL NEAR B 動詞 補語

同じマスか、周囲8マスに1つ以上のBがあるレベルアイコンにLEVEL 動詞 補語が適用されます。

FACINGLEVEL FACING B

レベルアイコンが隣接する1つ以上のBに向いているとき真

LEVEL NOT FACING B

レベルアイコンが隣接する1つ以上のBに向いていないとき真LEVEL FACING DIRs1

レベルアイコンがDIRs1の方向を向いているとき真

LEVEL NOT FACING DIRs1

レベルアイコンがDIRs1の方向を向いていないとき真DIRs1の代わりにNOT DIRs1を使うこともできます。

NOT DIRs1はDIRs1以外の方向を指します。LEVEL FACING EMPTY

レベルアイコンが隣接する無に向いているとき真

LEVEL NOT FACING EMPTY

レベルアイコンが隣接する無に向いていないとき真注:レベルアイコンが向いている無の数は条件に影響しません。レベルアイコンが無に向いているか否かだけが条件に影響します。LEVEL FACING LEVEL

レベルについて:

常に真

レベルアイコンについて:

LEVEL FACING Bを参照。

LEVEL NOT FACING LEVEL

レベルについて:

常に偽

レベルアイコンについて:

LEVEL NOT FACING Bを参照。LEVEL FACING 単語1 AND 単語1

レベルアイコンが2つ以上の単語1に対応する物に対して条件を満たすとき真

LEVEL NOT FACING 単語1 AND 単語1

レベルアイコンが2つ以上の単語1に対応する物に対して条件を満たさないとき真LEVEL FACING 単語1 AND 単語2

レベルアイコンが1つ以上の単語1に対応する物に対して条件を満たす、

かつ、

レベルアイコンが1つ以上の単語2に対応する物に対して条件を満たすとき真

LEVEL NOT FACING 単語1 AND 単語2

レベルアイコンが1つ以上の単語1に対応する物に対して条件を満たさない、

または、

レベルアイコンが1つ以上の単語2に対応する物に対して条件を満たさないとき真例:

LEVEL FACING B 動詞 補語

隣接する1つ以上のBに向いているレベルアイコンにLEVEL 動詞 補語が適用されます。

LEVEL FACING DIRs1 動詞 補語

DIRs1の方向を向いているレベルアイコンにLEVEL 動詞 補語が適用されます。

WITHOUT(本編未登場)LEVEL WITHOUT B

レベル中に1つ以上のBが存在しないとき真

LEVEL NOT WITHOUT B

レベル中に1つ以上のBが存在するとき真LEVEL WITHOUT EMPTY

レベル中に1つ以上の無が存在しないとき真

LEVEL NOT WITHOUT EMPTY

レベル中に1つ以上の無が存在するとき真LEVEL WITHOUT LEVEL

レベルについて:

常に偽

レベルアイコンについて:

LEVEL WITHOUT Bを参照。

LEVEL NOT WITHOUT LEVEL

レベルについて:

常に真

レベルアイコンについて:

LEVEL NOT WITHOUT Bを参照。LEVEL WITHOUT 名詞1 AND 名詞1

レベルアイコンが2つ以上の名詞1に対応する物に対して条件を満たすとき真

LEVEL NOT WITHOUT 名詞1 AND 名詞1

レベルアイコンが2つ以上の名詞1に対応する物に対して条件を満たさないとき真LEVEL WITHOUT 名詞1 AND 名詞2

レベルアイコンが1つ以上の名詞1に対応する物に対して条件を満たす、

かつ、

レベルアイコンが1つ以上の名詞2に対応する物に対して条件を満たすとき真

LEVEL NOT WITHOUT 名詞1 AND 名詞2

レベルアイコンが1つ以上の名詞1に対応する物に対して条件を満たさない、

かつ、

レベルアイコンが1つ以上の名詞2に対応する物に対して条件を満たさないとき真

注:他の前置詞と異なり、WITHOUTを否定したとき、小条件同士のつながりはand的です。例:

LEVEL WITHOUT B 動詞 補語

レベル中に1つ以上のBが存在しないとき、全てのレベルアイコンにLEVEL 動詞 補語が適用されます。

LEVEL WITHOUT ALL 動詞 補語

常に適用されません。

(「前置詞句内のALLは、名詞EMPTYまたはLEVELが一度でも存在したならそれを含む」というバグにより、ALLはLEVELを含みます。しかし、レベルアイコンはWITHOUT LEVELの条件を絶対に満たさないので、前置詞句全体の条件が常に偽となります。)

ABOVE(本編未登場)LEVEL ABOVE B

レベルアイコンが1つ以上のBの上方にあるとき真

LEVEL NOT ABOVE B

レベルアイコンが1つ以上のBの上方にないとき真LEVEL ABOVE EMPTY

レベルアイコンが1つ以上の無の上方にあるとき真

LEVEL NOT ABOVE EMPTY

レベルアイコンが1つ以上の無の上方にないとき真ABOVEについて、NOT EMPTYは非常にバグっぽい挙動です。

最下段以外のマスでは条件を満たします。(バグ?)LEVEL ABOVE LEVEL

レベルについて:

常に真

レベルアイコンについて:

LEVEL ABOVE Bを参照。

LEVEL NOT ABOVE LEVEL

レベルについて:

常に偽

レベルアイコンについて:

LEVEL NOT ABOVE Bを参照。LEVEL ABOVE 名詞1 AND 名詞1

レベルアイコンが2つ以上の名詞1に対応する物に対して条件を満たすとき真

LEVEL NOT ABOVE 名詞1 AND 名詞1

レベルアイコンが2つ以上の名詞1に対応する物に対して条件を満たさないとき真LEVEL ABOVE 名詞1 AND 名詞2

レベルアイコンが1つ以上の名詞1に対応する物に対して条件を満たす、

かつ、

レベルアイコンが1つ以上の名詞2に対応する物に対して条件を満たすとき真

LEVEL NOT ABOVE 名詞1 AND 名詞2

レベルアイコンが1つ以上の名詞1に対応する物に対して条件を満たさない、

または、

レベルアイコンが1つ以上の名詞2に対応する物に対して条件を満たさないとき真例:

LEVEL ABOVE B 動詞 補語

1つ以上のBの上方にあるレベルアイコンにLEVEL 動詞 補語が適用されます。

BELOW(本編未登場)LEVEL BELOW B

レベルアイコンが1つ以上のBの下方にあるとき真

LEVEL NOT BELOW B

レベルアイコンが1つ以上のBの下方にないとき真LEVEL BELOW EMPTY

レベルアイコンが1つ以上の無の下方にあるとき真

LEVEL NOT BELOW EMPTY

レベルアイコンが1つ以上の無の下方にないとき真LEVEL BELOW LEVEL

レベルについて:

常に真

レベルアイコンについて:

LEVEL BELOW Bを参照。

LEVEL NOT BELOW LEVEL

レベルについて:

常に偽

レベルアイコンについて:

LEVEL NOT BELOW Bを参照。LEVEL BELOW 名詞1 AND 名詞1

レベルアイコンが2つ以上の名詞1に対応する物に対して条件を満たすとき真

LEVEL NOT BELOW 名詞1 AND 名詞1

レベルアイコンが2つ以上の名詞1に対応する物に対して条件を満たさないとき真LEVEL BELOW 名詞1 AND 名詞2

レベルアイコンが1つ以上の名詞1に対応する物に対して条件を満たす、

かつ、

レベルアイコンが1つ以上の名詞2に対応する物に対して条件を満たすとき真

LEVEL NOT BELOW 名詞1 AND 名詞2

レベルアイコンが1つ以上の名詞1に対応する物に対して条件を満たさない、

または、

レベルアイコンが1つ以上の名詞2に対応する物に対して条件を満たさないとき真例:

LEVEL BELOW B 動詞 補語

1つ以上のBの下方にあるレベルアイコンにLEVEL 動詞 補語が適用されます。

FEELING(本編未登場)LEVEL FEELING 形容詞1

レベルアイコンに1つ以上の形容詞1が適用されているなら真

LEVEL NOT FEELING 形容詞1

レベルアイコンに1つ以上の形容詞1が適用されていないなら真NOT 形容詞1は、形容詞1以外の形容詞を指します。

例:A FEELING NOT 形容詞1は、Aに形容詞1でない形容詞が適用されているとき真になります。LEVEL FEELING 形容詞1 AND 形容詞1

レベルアイコンに2つ以上の形容詞1が適用されているなら真

LEVEL NOT FEELING 形容詞1 AND 形容詞1

レベルアイコンに2つ以上の形容詞1が適用されていないなら真LEVEL FEELING 形容詞1 AND 形容詞2

レベルアイコンに1つ以上の形容詞1が適用されている、

かつ、

レベルアイコンに1つ以上の形容詞2が適用されているなら真

LEVEL NOT FEELING 形容詞1 AND 形容詞2

レベルアイコンに1つ以上の形容詞1が適用されていない、

かつ、

レベルアイコンに1つ以上の形容詞2が適用されていないなら真

注:他の前置詞と異なり、FEELINGを否定したとき、小条件同士のつながりはand的です。例:

LEVEL FEELING 形容詞1 動詞 補語

1つ以上の形容詞1が適用されているAにLEVEL 動詞 補語が適用されます。FEELINGは無限ループの作成に利用できます。

AND


Baba Is You (WIP) image 2172
Baba Is You (WIP) image 2173
Baba Is You (WIP) image 2174
Baba Is You (WIP) image 2175
Baba Is You (WIP) image 2176
Baba Is You (WIP) image 2177

ANDは演算子の一種です。

ANDは特定の種類のルールの構成要素同士を結びます。

ルールの構成要素同士をANDで接続したルールは、その部分を各要素で置き換えた複数のルールとして解釈されます。ただし、Prefixな条件指定子の接続、前置詞句の接続、前置詞句中の名詞の接続を除きます。

(ポーズ画面を開くことで、ルールがどのように解釈されているか確認できます。)

例:BABA AND KEKE AND ME IS YOUは、「BABA AND KEKE AND ME」の部分を、それぞれの要素「BABA」、「KEKE」、「ME」に置き換えた、BABA IS YOU、KEKE IS YOU、ME IS YOUの3つのルールとして解釈されます。

ANDには複数の用法があります。

主語の接続

主語の後に、AND 名詞をいくつでも繋げることができます。

名詞 (AND 名詞)... 動詞 補語

各名詞を主語とした複数のルールになります。例:BABA AND KEKE AND ME IS YOUは、BABA IS YOU、KEKE IS YOU、ME IS YOUの3つのルールとして解釈されます。

Prefixな条件指定子の接続Prefixな条件指定子の後に、AND Prefixな条件指定子をいくつでも繋げることができます。

Prefixな条件指定子 (AND Prefixな条件指定子)... A 動詞 補語

全てのPrefixな条件指定子の条件を満たすAにのみA 動詞 補語が適用されます。

前置詞句の接続前置詞句の後に、AND 前置詞句をいくつでも繋げることができます。

A 前置詞句 (AND 前置詞句)... 動詞 補語

全ての前置詞句の条件を満たすAにのみA 動詞 補語が適用されます。

前置詞句中の単語の接続

前置詞句の中で単語を接続できます。

A 前置詞1 単語 (AND 単語)... 動詞 補語

前置詞1の前置詞句中の全ての単語について、前置詞1の条件を満たすAにのみA 動詞 補語が適用されます。例:BABA NEAR KEKE AND ME IS BESTは、次の条件を全て満たすBABAにのみBABA IS BESTを適用します。

1つ以上のKEKEと同じマス、または周囲8マスにある

1つ以上のMEと同じマス、または周囲8マスにある

述部または補語の接続

A 動詞 補語の後に、AND 動詞 補語またはAND 補語をいくつでも繋げることができます。

A 動詞 補語 (AND 動詞 補語 / AND 補語)...

Aを主語とした複数のルールになります。例:BABA IS YOU AND BEST AND HAS LOVEは有効なルールで、BABA IS YOU、BABA IS BEST、BABA HAS LOVEの3つのルールとして解釈されます。

NOT

このセクションはver.390に基づいて作られています。

NOTは演算子の一種です。

NOTは特定の種類のルールの構成要素の前に置くことで、その構成要素を否定できます。

NOTには複数の用法があります。

述語の否定NOTは、動詞より後にある、補語、または、音名を表す文字列の直前に置くことができます。

A 動詞1 NOT 補語1

全てのA 動詞1 補語1を無効化します。

X PLAY NOT 文字列1

全てのX PLAY 文字列1を無効化します。

ただし、X PLAY NOT 文字列1がA音を鳴らします。(バグ?)

A IS NOT A

全てのAが消失します。

また、全てのA IS Aを無効化します。

EMPTY IS NOT EMPTY

全てのEMPTY IS EMPTYを無効化します。LEVEL IS NOT LEVEL

レベルについて:

レベルが消失します。(レベル内の全てのオブジェクトが破壊されます。)

また、全てのLEVEL IS LEVELを無効化します。レベルアイコンについて:

A IS NOT Aと同様です。内部的には、ルールの否定は、否定形のルールに付いている条件を反転して、対応するルールに加えることで行われているそうです。

Hempuli 氏の発言から引用

When you say "Baba Is Not X", the game searches through all instances of "Baba Is X" and adds to their conditionals the inverse of "Baba Is Not X"'s conditional

so "Baba On Grass Is Not X" means that "Baba Is X" becomes "Baba Not On Grass Is X"https://discord.com/channels/413458938869055490/413467461648646155/741121027383361597

通常の名詞の否定NOTは通常の名詞の直前に置くことができます。

主語として用いる場合と、前置詞句内の単語として用いる場合とで効果が異なります。

主語として用いられた場合、次を意味します。

NOT A

A以外のエンティティを指します。

前置詞句内で用いられた場合、次を意味します。

NOT A

A以外のエンティティとレベルアイコンを指します。

各種オブジェクトは、or的な繋がり方をすることに注意してください。動詞より後にあるNOT 名詞は述語の否定として解釈され、通常の名詞の否定としては解釈されません。

例:NOT BABA IS YOUの「NOT BABA」にレベルアイコンは含まれません。

一方で、BABA NEAR NOT BABA IS YOUの「NOT BABA」にレベルアイコンは含まれます。

特殊な名詞の否定NOTは特殊な名詞の直前に置くことができます。

主語として用いる場合と、前置詞句内の単語として用いる場合とで効果が異なります。

主語として用いられた場合、次を意味します。

NOT TEXT

ALLと同じです。

NOT ALL

TEXT AND EMPTYと同じです。

NOT EMPTY

ALLと同じです。

NOT LEVEL

ALLと同じです。

NOT GROUP

名詞グループに含まれていない名詞に対応する物の内、ALLに含まれるエンティティを指します。

例:ALL IS WINは、NOT GROUP IS NOT WINによって否定されます(グループが何も含んでいない場合)。このとき否定されたルールに×は付きません。

前置詞句内で用いられた場合、次を意味します。

NOT TEXT

テキスト以外のオブジェクトのいずれかを指します。

各種オブジェクトは、or的な繋がり方をすることに注意してください。

例:BABA ON NOT TEXT IS BESTのとき、BABAはレベルアイコンと同じマスにあるなら、BEST状態になります。NOT ALL

TEXT AND EMPTYと同じです。

テキストと無は、and的な繋がり方をすることに注意してください。

例:BABA NEAR NOT ALL IS BESTのとき、BABAは、1つ以上のテキストと同じマスか周囲8マスにあり、かつ、1つ以上の無と同じマスか周囲8マスにあるなら、BEST状態になります。NOT EMPTY

この項目の内容はver.419に基づいて記述されています

A 前置詞 NOT EMPTY(Aはエンティティ)の時、NOT EMPTYは次の物を指します。

各種オブジェクトとレベル境界は、or的な繋がり方をすることに注意してください。

(TODO:AをTEXT、EMPTY、LEVEL、ALLに置き換えた時の振る舞いは要調査)

エンティティテキストレベルアイコンレベル境界複数個使った時の条件の数ON指す指す指す不明増えるNEAR指す指す指す指す増えないFACING指す指す指す指す増えないWITHOUT指す指さない指す指さない増えるABOVE

BELOW

BESIDELEFT

BESIDERIGHT指す指す指す指さない増えない例:BABA NEAR NOT EMPTY IS BESTのとき、BABAは、次のいずれか1つ以上に対して条件(同じマスか周囲8マスにある)を満たすならBEST状態になります。

エンティティ

テキスト

レベルアイコン

レベル境界例えば、BABA1がカーソルと同じマスにある時、BABA1はBEST状態になります。

また、BABA1がレベル境界の周囲8マスにある時、BABA1はBEST状態になります。

例:BABA NEAR NOT EMPTY AND NOT EMPTY IS BESTのとき、BABAは、1つ以上のオブジェクト、または、レベル境界に対して条件を満たすならBEST状態になります。

2つ以上のオブジェクト、または、レベル境界に対して条件を満たす必要はありません。NOT LEVEL

ALLに含まれるエンティティのいずれかを指します。

各種オブジェクトは、or的な繋がり方をすることに注意してください。

例:BABA NEAR NOT LEVEL IS BESTのとき、BABAは、1つ以上のKEKEと同じマスか周囲8マスにあるなら、BEST状態になります。

これはBABA NEAR ALL IS BESTとは異なります。そのルールでは、BABAは、KEKEだけでなく、他のBABAについても条件を満たす必要があるからです。(ALLでは、各種エンティティはand的な繋がり方をするということ。)NOT GROUP

名詞グループに含まれる各名詞にNOTを付け、それらをANDで繋いだ物と同じです。

例:BABA AND KEKE IS GROUPのとき、前置詞句内におけるNOT GROUPは、NOT BABA AND NOT KEKEと同じです。

例:EMPTY AND TEXT IS GROUPのとき、前置詞句内におけるNOT GROUPは、NOT EMPTY AND NOT TEXTと同じです。

条件の否定NOTは条件指定子の直前に置くことができます。

NOT 条件指定子1

条件指定子1の条件を反転します。

WITHOUT、FEELINGは例外で、単純な反転ではありません。セクション「前置詞」を参照。

例:BABA NOT FACING UP IS FALLのとき、上を向いていないBABAにのみBABA IS FALLが適用されます。

(これはBABA FACING NOT UP IS FALLと同じ意味になります。)

前置詞句内の単語の否定NOTは前置詞句内の単語の直前に置くことができます。

A 前置詞1 NOT B 動詞 補語

B以外のエンティティとレベルアイコンのいずれかについて、前置詞1の条件を満たすAにのみ、A 動詞 補語が適用されます。

A FACING NOT DIRs1 動詞 補語

DIRs1以外の方向を向いているAにのみ、A 動詞 補語が適用されます。

例:BABA FACING NOT UP IS FALLのとき、上以外の方向を向いているBABAにのみBABA IS FALLが適用されます。

(これはBABA NOT FACING UP IS FALLと同じ意味になります。)A FEELING NOT 形容詞1 動詞 補語

形容詞1以外のいずれかの形容詞が適用されているAにのみ、A 動詞 補語が適用されます。

NOTの否定NOTの直前に別のNOTを置くことができます。

NOT NOT

2つのNOTは打ち消し合います。

つまり、NOTが偶数個連続しているとき、それらNOTはないものとして解釈されます。NOTが奇数個連続しているとき、それらNOTは1つのNOTとして解釈されます。

例:NOT NOT BABA IS YOU = BABA IS YOU

です。

形容詞


Baba Is You (WIP) image 2303本編に登場する形容詞

このセクションはver.383、ver.390に基づいて作られています。

形容詞はテキストの一種です。

形容詞は主語に対応する物に特性を与えます。

A IS 形容詞1のように用いることで、Aは形容詞1の特性を得ます。

一部の形容詞を除いて、形容詞の効果は重複しません。

ただし、形容詞のパーティクルを発する効果は必ず重複します。

オブジェクトと形容詞以下の説明はオブジェクトに対する効果の説明です。

一部のオブジェクトは一部の形容詞の効果を受けません。

テキストはWORDの効果を受けません。

レベルアイコンはパーティクルの発生の効果を受けません。

(BEST等のパーティクル発生効果のみの形容詞は、検証の際に役立たずです。)

レベルアイコンはCOLORsの効果を受けません。

(同じく検証の際に注意が必要です。)

レベルアイコンはSELECTの一部の効果を受けません。

隠しレベルアイコンはSTOPの効果を受けません。

レベルアイコンとカーソルはHIDEの効果を受けません。

YOUYOUerはプレイヤーの入力に応じて移動します。

WINWINerがYOUerでもあるときレベルをクリアします。

WINerにYOUerが重なるとレベルをクリアします。

STOPSTOPerは進入不可です。

ただし、隠しレベルアイコンはこの効果を受けません。

PUSHタイルがPUSHer1に移動しようとする時、PUSHer1も同じ方向に移動します。

これによるPUSHer1の移動もまた、他のPUSH状態のタイルに伝播します。

そのため、複数のPUSH状態のタイルが並んでいれば、まとめて押すことができます。

PUSHer1が移動できない場合、PUSHer1は進入不可です。「ルールの基本 - 移動」も参照。

PULLPULLerは進入不可です。

PULLer1は、自身に隣接するタイルが反対方向に移動する時、同じ方向に移動できるか確認し、移動できるなら移動します。移動できないなら移動しません。

(移動できない場合は移動しないため、WEAKの破壊など、移動失敗時の効果を受けません。)

これによるPULLer1の移動もまた、他のPULL状態のタイルに伝播します。

そのため、複数のPULL状態のタイルが並んでいれば、まとめて引くことができます。「ルールの基本 - 移動」も参照。(バグ?)

SWAP状態のPULLerが引っ張られる時、自身のSWAPによる「進入不可タイルに移動できる」効果は発揮されません。

例:SWAP状態のPULLerが壁へ引っ張られても移動しません。(バグ?)

複数のPULLerの列が引かれた時、2つ目以降のPULLerは、移動先のマスのタイルの進入不可、または、レベル境界を無視して移動します。(バグ?)

複数のPULLerの列が同じターンに2回以上連続で同じ方向に引かれた時、3つ目以降のPULL状態のタイルは引かれません。(バグ?)

複数のオブジェクトが同じマスから同時に移動してPULLer1を引くとき、2番目以降に移動するオブジェクトが進入不可なら、PULLer1を引けません。

例:重なっているBABA、KEKE、MEがこの順に移動してPULL状態のFLAGを引く時

BABA IS STOPのとき、FLAGは引かれる

KEKE IS STOPのとき、FLAGは引かれない

ME IS STOPのとき、FLAGは引かれないこれを教えてくれたカスタムレベル

https://twitter.com/baba_is_sleep/status/1385230475988406274PULLer(以後B)を挟むように2つのオブジェクト(以後A)が位置しており(つまりA B Aや、A B B Aのような配置)、片方のAがBを引くように、2つのAが同じタイミングで同じ方向に移動するとき、Aが移動時にBを破壊するような関係(OPEN & SHUT、EAT)であっても、列の後ろのAはBを破壊せずに移動します。

ここで、列の先頭のAがPUSHerを押すとき、列の後ろのAはBを破壊します。(バグ?)

Aが無の場合、AとBがEATの関係にある場合は上記と同様ですが、OPEN & SHUTの関係にある場合、Aは移動時にBを破壊します。

SINKSINKerに1つ以上のオブジェクトが重なると、それらは全て破壊されます。

DEFEATDEFEATerがYOUerでもあるとき破壊されます。

DEFEATerに重なったYOUerは破壊されます。

HOTこの形容詞のみでは効果なし。

MELTを参照。

MELTMELTerがHOTerでもあるとき破壊されます。

MELTerがHOTerに重なると破壊されます。

MOVEMOVEer1がこのターンにまだMOVEまたはCHILLで反転していないなら:

MOVEer1はその向きに移動できるか確認し、進入不可タイルまたはレベル境界によって妨げられるなら向きを反転します。

(この段階では移動しません。そのため、WEAKの破壊など、移動失敗時の効果を受けません。)

MOVEerはその向きに移動します。

MOVE、AUTO、CHILLの効果は重複します。

詳細はAUTOまたはCHILLを参照。MOVEの効果は重複しますが、「跳ね返り」は1ターンに1度だけ発生します。MOVEの移動がLOCKEDsやSTILLに阻止された時は反転しません。

OPEN進入不可の無効化

OPENer1とタイル1の浮遊状態が同じ、かつ、

OPENer1とタイル1のどちらかがSAFE状態ではないとき:

OPENer1は進入不可なSHUT状態のタイル1に移動できます。

例:Aはオブジェクト、A IS OPEN、B IS SHUT AND STOPのとき、AはBに移動できます。

ここで、AとBの浮遊状態が異なるとき、AはBに移動できません。

また、AがSAFE状態、かつ、BがSAFE状態のとき、AはBに移動できません。移動による破壊

移動による破壊は位置の変化の前に起こります。

つまり、HASによるオブジェクトの生成位置は、移動先ではなく移動前のマスです。

OPENer vs SHUTer

OPENer1が自身と浮遊状態の同じ1つ以上のSHUTerに移動するとき、それら各SHUTerに対して次の処理を1度ずつ実行します:

OPENer1とそのSHUTerが破壊されます。OPENer1が破壊された場合、それ以降のこの処理を中止します。

注:複数のOPENerが同時に移動するとき、それらの移動は実際には同時ではなく、処理順(おそらく内部ID)に依存して1つずつ順次移動します。

つまり、まずOPENer1が移動し、1つのSHUTerと共に破壊され、次にOPENer2が移動し、1つのSHUTerと共に破壊され…のように処理されます。

そのため、複数のOPENerが(複数の)同じSHUTerに同時に移動するとき、内部IDが既知でない限り、どのOPENerとSHUTerが破壊されるかは予測不可能です。

注:オブジェクトを破壊した後にUNDOすると、そのオブジェクトの内部IDが変化することがあります。そのため、同じ操作を繰り返した場合でも、破壊されるOPENerが変化することがあります。例:1つのOPENerが、6つ重なったSHUTerに移動すると、1つのOPENerと1つのSHUTerが破壊され、5つのSHUTerが残ります。

例:2つのOPENerが、6つ重なったSHUTerに同時に移動すると、2つのOPENerと2つのSHUTerが破壊され、4つのSHUTerが残ります。

例:6つのOPENerが、2つ重なったSHUTerに同時に移動すると、2つのOPENerと2つのSHUTerが破壊され、4つのOPENerはSHUTerのあったマスへ移動します。

例:2つのSAFE状態のOPENerが、6つ重なったSHUTerに同時に移動すると、全てのSHUTerが破壊され、2つのOPENerはSHUTerのあったマスへ移動します。

例:1つのOPENer1と1つのSAFE状態のOPENer2が、6つ重なったSHUTerに同時に移動するとき、その結果はOPENer1とOPENer2の処理順によって次の2通りに別れます。

OPENer1が先に移動する場合。

まずOPENer1が移動し、移動の途中で1つのSHUTerと共に破壊されます。次にOPENer2が移動し、全てのSHUTerを一方的に破壊して移動を終えます。結果としてOPENer2のみがSHUTerのあったマスへ移動します。

OPENer2が先に移動する場合。

まずOPENer2が移動し、全てのSHUTerを一方的に破壊して移動を終えます。次にOPENer1が移動します。全てのSHUTerが破壊済みなので、OPENer1の破壊は起こりません。結果としてOPENer1とOPENer2の両方がSHUTerのあったマスへ移動します。//TODO:画像

注:上の例で、どのオブジェクトが破壊されるかは、それらの処理順に依存します。OPENer vs SHUT状態の無

1つ以上のOPENerが自身と浮遊状態の同じSHUT状態の無に同時に移動するとき、それらは全て破壊されます。

例:KEY IS OPEN、EMPTY IS SHUT、EMPTY HAS FLAGのとき、6つ重なったKEYが無に同時に移動すると、それらは全て破壊されます。

出現するFLAGの数は1つです。(バグ?)(これはFLAGの出現後、そのマスに無が存在できなくなるからだと考えられるが、ではなぜKEYは全て破壊されるのか?)

//TODO:画像重なりによる破壊

1つ以上のOPENerが1つ以上のSHUTerに重なると、それらの内、1つのOPENerと全てのSHUTerが破壊されます。

注:OPENとSHUTを逆にしたとき、同じ挙動ではありません。(バグ?)例:2つのOPENerが、6つのSHUTerに重なると、1つのOPENerと全てのSHUTerが破壊され、1つのOPENerが残ります。

例:6つのOPENerが、2つのSHUTerに重なると、1つのOPENerと全てのSHUTerが破壊され、5つのOPENerが残ります。

例:6つのOPENerが、2つのSAFE状態のSHUTerに重なると、全てのOPENerが破壊され、2つのSHUTerが残ります。

例:6つのSAFE状態のOPENerが、2つのSAFE状態のSHUTerに重なると、何も起きません。

//TODO:画像OPENかつSHUTによる破壊

OPENerがSHUTerでもあるとき破壊されます。

他のルールとの関係

OPEN & SHUTはPUSHに優先します。

ただし、OPEN & SHUTの進入不可の無効化の条件を満たさない場合は押すことができます。

OPEN & SHUTはSWAPに優先します。

ただし、OPEN & SHUTの進入不可の無効化の条件を満たさない場合は入れ替えできます。

OPEN & SHUTはEATに優先します。

これは移動時と重なりのどちらについても当てはまります。

SHUTOPENerとSHUTerが重なったときの効果を除き、OPENの説明のOPENとSHUTを入れ替えたものと同じです。

OPENを参照。

RED赤くなります。

BLUE青くなります。

FLOAT浮遊します。用語「浮遊状態」も参照。

WEAK進入不可の無効化

タイルは、浮遊状態が同じなら、進入不可なWEAKerに移動できます。

例:WALL IS STOP AND WEAK AND SAFEのとき、WALLと浮遊状態が同じオブジェクトは、WALLを破壊することなくWALLに移動できます。移動失敗時の破壊

WEAKerは、その移動が進入不可タイルまたはレベル境界によって妨げられたとき破壊されます。

STILL、LOCKEDsにより移動が妨げられた時は破壊されません。重なりによる破壊

WEAKerが他のオブジェクトに重なると破壊されます。

無はオブジェクトに重なることができないため、無がWEAK状態のオブジェクトに移動しても破壊できません。PUSHとWEAKの関係は次の通りです。

例:A IS WEAK、B IS PUSH AND WEAKで、A1がB1を壁に向かって押した場合、両者とも移動し、B1が破壊されます。

同様の条件で、A1がBの列を壁に向かって押した場合、それら全てが移動し、A1から最も遠いBが破壊されます。

Aが破壊されないことから、Bの破壊は重なりによる破壊ではなく、移動失敗時の破壊だとわかります。

TELETELE状態のAが2つ以上存在するとき:

TELE状態のAに重なった、Aでない各オブジェクトは、別のTELE状態のAのマスにテレポートします。

各オブジェクトのテレポート先は、それぞれランダムで決まります。

Aは、自身がTELE状態でなくとも、Aではテレポートしません。例:A IS TELE、B IS TELEで、3つのA(それぞれA1、A2、A3とする)があり、A ≠ Bのとき:A1に重なったAでないオブジェクトは、A2またはA3にテレポートします。

A同士が重なっても何も起きません。

TELE状態でないAがTELE状態のAに重なったとしても何も起きません。「テレポーター」に重なったオブジェクトは、同種の「テレポーター」へのみテレポートします。

Aに重なったオブジェクトがBへ、またはその逆にBからAへテレポートすることはありません。

A3がTELE状態でないとき、A3に重なったオブジェクトはテレポートしません。

A3がTELE状態でないとき、A1に重なったAでないオブジェクトは必ずA2にテレポートします。

A1だけがTELE状態のとき、どのAに重なってもオブジェクトはテレポートしません。

A1だけがFLOAT状態のとき、FLOAT状態のオブジェクトは、A1に重なるとテレポートしますが、A2またはA3と同じマスにあってもテレポートしません。

これを利用して、「一方通行のテレポーター」を作り、進入不可オブジェクトを重ねることができます。

形容詞2

このセクションはver.383に基づいて作られています。

SHIFTオブジェクト1がまだSHIFTで向きを変えていないなら:

SHIFTer1に重なっているオブジェクト1は、SHIFTer1の方向を向きます。

SHIFTer1に重なっているオブジェクト1は、オブジェクト1の向きに移動します。

複数のSHIFTerに重なっているオブジェクトは、それらSHIFTerが効果を受けているSHIFTの数の合計の分だけ移動します。

複数のSHIFTerに重なっているオブジェクトが移動する方向は、それらSHIFTerによる向きの変更の処理順に依存します。最も処理順の早いSHIFTerの向きに移動すると考えられます(下記の向きの異なるSHIFTerの重複時の挙動の例を参照)。移動処理の後、SHIFTerに重なっているオブジェクトは、そのSHIFTerの方向を向きます。

移動時の向きの変化とは異なり、複数のSHIFTerが重なったとき、それらの向きは、いずれか1つのSHIFTerの向きに揃います。(優先順位は要検証。最も処理順の遅いものが上書きするように見えるが、英wikiでは最も早いものとされている)

これは、変化や、TELEによるテレポートより後、HAS / MAKEによる生成や、FALLによる落下より前に起こります。SHIFTの効果は重複します。

n個のSHIFTの効果を受けているSHIFTerに重なっているオブジェクトは、nマス移動します。例:BELT IS SHIFTのとき、2つのBELTが同じマスにあり、同じ方向を向いているなら、それらはそれらの向きに1マス移動します。

例:2 X ARROW IS SHIFTのとき、ARROW1に重なったBABA1は、ARROW1の向きに2マス移動します。

例:BELT IS SHIFT、2 X ARROW IS SHIFT、BELT AND ARROW IS STILLで、BELT1とARROW1が同じマスにあり、同じ方向を向いているとき、BABA1がそれらに重なると、BABA1はそれらの向きに3マス移動します。

例:BELT AND ARROW IS SHIFT AND STILL、BELT IS UP、ARROW IS DOWNで、BELT1とARROW1が同じマスにあるとき、BABA1がそれらに重なると、BABA1は上下どちらかに2マス移動します。

BABA1が移動する方向が上下のどちらになるかは、BELT1とARROW1の処理順に依存します。向きの異なる複数のSHIFTerが重なっている時の挙動:

2つのSHIFTerが相異なる向きで重なっているとき、それらは他方の向きに移動します。

3つ以上のSHIFTerが相異なる向きで重なっているとき、最も処理順の早いSHIFTerは次の処理順のSHIFTerの向きに移動します。残りのSHIFTerは最も処理順の早いSHIFTerの向きに移動します。この挙動から、移動前にも向きの変化が起こっていると考えられます。

注:通常、複数のSHIFTerを重ねると向きが揃ってしまうが、特定の方法で、向きの異なる複数のSHIFTerを重ねることが可能です。

以下のような方法があります。

レベル作成時に重ねておく

向きの異なる複数のオブジェクトを重ねて、HASかMAKEでSHIFTerを生成する

FALLでSHIFTerを重ねる

RIGHTUPLEFTDOWNDIRs状態のオブジェクトは、自身に適用されている数が最も多いDIRsの方向を向きます。

適用されている数が最も多いDIRsが複数種ある場合は、オブジェクトが今向いている方向から時計回りに1回以上回転していった時、最も回転数が少ないような方向を向きます。例:A IS UP AND DOWNのとき、上または右を向いているAは下を向きます。下または左を向いているAは上を向きます。

例:AにDIRsを全種類1つずつ適用したとき、毎ターン、Aは時計回りに回転します。これらの形容詞の効果は重複します。

(最も数の多いDIRsが効果を持ちます。)DIRsによる向きの変化は、1ターンにつき、あるタイミングで1度だけ起こっています。

そのため、一部のルールの効果は向きの指定を無視するように見えます。

例:BABA IS UP、BABA IS ALLで、ALLにBABA以外のオブジェクトが含まれていて、BABAが移動するとき、BABAが生成するオブジェクトはBABAが移動した方向を向きます。レベル開始時(0ターン目)にはA IS DIRsが適用されません。

次のターンからA IS DIRsが適用されます。

SWAPSWAPerは、進入不可タイルに移動できます。

タイルは、進入不可なSWAPerに移動できます。

ただし、進入不可かつSTILL状態のSWAPerには移動できません。

また、進入不可かつLOCKEDs状態のSWAPerに、LOCKEDsに対応する方向から移動することはできません。

例:A IS STOP AND SWAP AND LOCKED (UP)のとき、タイルは上から下へAに移動することはできません。(「Aはロックされている方向へ入れ替われない」「タイルはAの入れ替われない方向からAに進入できない」ということです。)SWAPerが移動したとき、移動先のマスにあるオブジェクトが移動元のマスに置かれます。

タイルが移動したとき、移動先のマスにあるSWAPerが移動元のマスに置かれます。

タイルはPULLによって移動する無であってはいけません。

その場合、何も起こりません。(バグ?)SWAPはPUSHに優先します。

例:A IS SWAP、B IS PUSHで、AがBに移動しようとした場合、AとBの位置が入れ替わり、Bを押すことはできません。

例:B IS SWAP AND PUSHで、AがBに移動しようとした場合、AとBの位置が入れ替わり、Bを押すことはできません。

FALL全てのFALLerが動かなくなるまで次を繰り返します。

各FALLerは順次下へ落下します。

各落下では、FALLerは動かなくなるまで下へFALL移動を繰り返します。

FALL移動は特殊な移動で、以下の特徴を持ちます。

FALL移動の特徴

通常の移動より後に起こります。

各オブジェクトの移動は同時ではありません。

移動時に向きは変化しません。

PUSH状態のタイルを押せず、進入不可とみなします。

次の、移動に反応する効果は発揮されません。

PUSH状態のタイルを押しません。

PULL状態のタイルを引きません。

SWAPによる位置の入れ替えを起こしません。FALLerがSWAP状態であっても、進入不可タイルに移動することはできません。

FALLerがPHANTOM状態でない限り、WEAKerに移動するとそれを破壊します。(WEAKerへ移動するには、通常通り進入不可の無効化の条件を満たしている必要があります。)以下は通常の移動と変わりません。

移動時の破壊を起こせます。つまり、OPEN & SHUTの破壊、EATの破壊、WEAK状態の無に移動した時の破壊は起こります。

OPEN & SHUT、EAT、WEAKの進入不可の無効化は有効です(FALLerはそれらのタイルに移動できます)。

SWAP状態のタイルに移動できます。FALLでは、各オブジェクトはABCABC...のように移動するのではなく、AABBCC...のように移動します。これは次の画像のテストからわかります。

もしABCABC...のように移動するなら、全てのKEKEは条件を満たし続けるためWALLを通り過ぎるはずですが、そうなっていません。オブジェクトの落下が一回きりではなく、動かなくなるまで繰り返されるという事実は、次の画像のテストからわかります。

このテストでは、KEKEは最終的にレベル外側へ飛び出し消失します。FALLによる各オブジェクトの移動は同時ではないため、進入不可オブジェクトのスタックの分離に利用できます。各オブジェクトの条件判定は、FALLで1マス移動する度に行われます。

これを説明する良い画像

https://discord.com/channels/413458938869055490/557819174295044098/847603254283206656エディターで利用できる下向きのFALLは、本編に登場するFALLと同一です。

唯一の違いはスプライトです。

MOREMORE状態のAは隣接する4マスに自身を複製します。

ただし、Aがあるマスと、STOP、PUSH、PULLのいずれかの状態のタイルがあるマスを除きます。

MORE状態のAは、増殖先のマスのAがMORE状態でなくとも、Aがあるマスには増殖しません。

MORE状態のテキストは、テキストの種類に関わらず、テキストがあるマスには増殖しません。例:BABA IS MORE、WALL IS STOP、EMPTY IS STOPのとき、BABAは隣接する無またはWALLのマスには増殖しません。増殖は同時ではなく、増殖の順番は処理順に依存します。

例:BABA IS MOREで、2体重なったBABAが隣接する4マスに増殖するとき、増加するBABAの数は8体ではなく、4体です。WEAK、EATなどの一部のルールは、タイルの進入不可を無効化し、そこへ移動可能にする効果を持ちますが、これはMOREの増殖の可否とは全く関係ありません。

増殖先のタイルの進入不可が無効化されていても、MOREerはそれらがあるマスには増殖しません。複製されたオブジェクトは、レベルメタデータとPATHの情報を元のオブジェクトから引き継ぎます。変化の履歴は引き継ぎません。(そのため、REVERTで過去のタイルに戻ることはありません。)

WORDWORDerはルール中で自身と同じ名前の名詞として解釈されます。

ただし、テキストはこの効果を受けません。WORDは無限ループの作成に利用できます。

BEST光り輝きます。

SLEEPSLEEPerは、自身に適用されているYOU、YOU2、MOVE、AUTO、CHILL、NUDGEs、3D、FEARで移動と向きの変化をしなくなります。

一部のオブジェクト(BABA、KEKE、ANNIなど)はSLEEP用に専用のアニメーションを持ちます。

HIDEHIDEerは見えなくなります。

ただし、レベルアイコンとカーソルはこの効果を受けません。

構成するテキストが全てHIDE状態のルールは、ポーズ画面に表示されなくなります。

SELECTerはHIDE状態のPATHオブジェクトに移動できません。

BONUSBONUSerがYOUerでもあるとき破壊されます。

ボーナスを仮取得します。

BONUSerがYOUerに重なると破壊されます。

ボーナスを仮取得します。

ボーナスを仮取得した状態でレベルをクリアすると:

本編なら:

そのレベルについてボーナスを獲得します。

獲得済みのボーナスの総数はセーブデータに表示されます。また、MAPまたはポーズ画面右上にも表示されます。

カスタムレベルなら:

レベル選択画面で、レベルに特別なスタンプが付きます。レベルをクリアしなかった場合、仮取得したボーナスは削除されます。

1つのレベルで獲得できるボーナスは1つまでです。ver.383

ボーナスを仮取得したターンをアンドゥした場合、それまでに仮取得した数に関わらず、仮取得したボーナスは全て削除されます。

(バグ?)BONUSの破壊はWINのクリアと同時に起こります。

例:BABA IS YOU AND WIN AND BONUSのとき、BABAは破壊されますが、レベルはクリアします。

例:ORB IS WIN AND BONUSのとき、YOUerがORBに重なると、ORBを破壊すると同時にレベルをクリアします。

//TODO:ボーナスの取得はこれと同時に起こるか調べる

END本編のみ:

ENDerにYOUerが重なるとエンディングが始まります。

本編以外:

ENDerがYOUerでもあるときレベルをクリアします。

ENDerにYOUerが重なるとレベルをクリアします。

DONEDONEerは消失します。

ALL IS DONEとした場合:

本編なら:

隠しエンディングが始まります。

カスタムレベルなら:

レベルをクリアします。

形容詞(本編未登場)

このセクションはver.385、ver.386、ver.394に基づいて作られています。

AUTOAUTOerはその向きに移動します。

MOVE、AUTO、CHILLの効果は重複します。このコラムの内容は要検証です

MOVE、AUTO、CHILLの移動のタイミングは同じであり、これらの移動は重複します。

MOVE、AUTO、CHILLは、この順に適用されます。これらが重複した移動は、最も早く適用されている種類の移動として扱われます。

つまり、

MOVE状態であれば、他2種の適用に関わらず、MOVEの移動として扱われます。

つまり、移動中に1回まで跳ね返ることができます。

AUTOのみ、または、AUTOかつCHILL状態であれば、AUTOの移動として扱われます。

つまり、移動中に跳ね返ることはありません。

CHILL状態のみのとき、CHILLの移動として扱われます。

つまり、移動中に1回まで跳ね返ることができます。MOVEとCHILLの移動は全く同じ効果であることから、AUTOの移動のみ違う効果になると言えます。

また、CHILLが適用されているなら、移動前の向きのランダム化の効果は必ず発揮されます。

例:A IS MOVE AND AUTOのとき、Aは2マス移動します。

これらの移動はMOVEとして扱われ、AUTOの移動としては扱われません。つまり、(このターンに跳ね返っていなければ)どちらの移動でも壁にぶつかると跳ね返ります。

例:A IS AUTO AND CHILLのとき、Aは向きがランダムに決まり、2マス移動します。

これらの移動はAUTOとして扱われ、CHILLの移動としては扱われません。つまり、壁にぶつかっても跳ね返りません。

BROKENBROKEN状態のAは、Aを主語とするルールの内、BROKENとMIMIC以外の効果を受けません。

暗黙のルールも無効化されます。

パーティクルの発生は無効化されません。B1がBROKEN状態のとき、一部のA 動詞 Bの一部の効果による、任意のAとB1との間の相互作用が無効化されます。

次の効果は無効化されます。

A EAT Bの、AとBの重なりによるBの破壊

A FEAR B

A FOLLOW B内部的には、ルールには常に条件が存在し、その条件を満たさないようにすることでルールを無効化しているようです。A MIMIC B、B IS BROKENのとき、無限ループを引き起こすことはありません。単にAのルールが全て無効化されます。(他のルールよりMIMICの処理が早く、1度だけ実行される?)

CHILLMOVE、AUTO、CHILLの全体の移動処理の開始時に一度だけ、各CHILLer1の方向をランダムに決定します。

CHILLer1がDIRs状態であってもランダムです。CHILLer1がこのターンにまだMOVEまたはCHILLで反転していないなら:

CHILLer1はその向きに移動できるか確認し、進入不可タイルまたはレベル境界によって妨げられるなら向きを反転します。

CHILLerはその向きに移動します。

MOVE、AUTO、CHILLの効果は重複します。

詳細はAUTOを参照。CHILLの移動がLOCKEDsやSTILLに阻止された時は反転しません。(バグ?)

CHILL状態の多重(MOVE、AUTO、CHILL)erは、一部の方向のみロックされているとき、LOCKEDsを無視して移動することがあります。

STILLや、全方向LOCKEDsの場合は移動しません。

補足:CHILLが1つだけ適用されている多重(MOVE、AUTO、CHILL)erは、ロックされていない方向が全て壁に隣接している場合、移動しません。

BACK各BACKerは、BACK状態になったターンの次のターンから、その位置、向き、変化、生成を逆再生し始めます。

以降の説明で、A IS BACKとします。

過去の参照

毎ターン、A1は自身の過去を参照します。ターンが経過するにつれて、より古い過去を参照します。

ただし、レベル開始時(0ターン目)より前を参照するなら、そのターン以降は過去の参照を止め、各種逆再生も行いません。

あるターンにおいて、A1が参照する過去は次の通りです。

A1がBACK状態になったターンをtとする

tターン目、BACKは効果を発揮しない

t+1ターン目、tターン目を参照する

t+2ターン目、t-1ターン目を参照する

...

t+xターン目、t-(x-1)ターン目を参照する位置の逆再生

A1は参照する過去で自身がいた位置に置かれます。

ただし、参照する過去で移動していなかった場合、位置は設定されません。

ただし、A1がBACK状態になったターンの次のターンには、移動の有無に関わらず位置は設定されます。

SELECTによる移動は、移動ではないとみなします。

(SELECTで移動していたが、それ以外の方法で移動していなかった場合、位置は設定されません。)向きの逆再生

A1は参照する過去で自身が向いていた向きを向きます。

変化の逆再生

A1が自身の変化より過去を参照した時、その変化は戻されます。

B IS AによりB1がA1に変化したターンをtとする

参照する過去がt-1ターン目になった時、A1はB1に戻る生成の逆再生

A1が自身の生成より過去を参照した時、その生成は戻されます。

HASやMAKE等により、A1が生成されたターンをtとする

参照する過去がt-1ターン目になった時、A1は消失する位置の逆再生と他のルールの関係

BACKerの位置の設定は、STILL、LOCKEDsにより制限されません。

BACKかつFALLs状態のオブジェクトは、位置が設定された後に落下します。

位置が設定されたBACKerは、TELE状態のオブジェクトに重なってもテレポートしません。一方で、TELE状態のレベルに重なるとテレポートします。位置の逆再生は移動ではありません。

そのため、進入不可タイルにより位置の変化を妨げられることはありませんし、PUSH、PULL、SWAP、OPEN & SHUT、EAT、その他移動に反応する効果は発生しません。

変化の逆再生は変化ではありません。

そのため、A IS A、A IS NOT B、A IS REVERTのようなルールで無効化できず、REVERTで戻すこともできません。A IS ALLは変化ではなく生成です。

そのため、これにより出現したオブジェクトはBACKでAに戻らず、消失します。(バグ?)このコラムの内容は推測です

BACKはUNDOシステムを流用していると思われます。

FALLFALL (RIGHT)FALL (UP)FALL (LEFT)FALLs状態の全てのオブジェクトが動かなくなるまで次を順に繰り返します。

FALLが有効な各オブジェクトは順次下へ落下します。

FALL (RIGHT)が有効な各オブジェクトは順次右へ落下します。

FALL (UP)が有効な各オブジェクトは順次上へ落下します。

FALL (LEFT)が有効な各オブジェクトは順次左へ落下します。あるオブジェクトにFALLとFALL (UP)が同時に適用されているとき、適用されている数が多い方のみが有効です。

また、あるオブジェクトにFALL (RIGHT)とFALL (LEFT)が同時に適用されているとき、適用されている数が多い方のみが有効です。

各落下では、オブジェクトは動かなくなるまで対応する方向にFALL移動を繰り返します。

FALL移動は特殊な移動で、以下の特徴を持ちます。

FALL移動の特徴

通常の移動より後に起こります。

各オブジェクトの移動は同時ではありません。

移動時に向きは変化しません。

PUSH状態のタイルを押せず、進入不可とみなします。

次の、移動に反応する効果は発揮されません。

PUSH状態のタイルを押しません。

PULL状態のタイルを引きません。

SWAPによる位置の入れ替えを起こしません。FALLerがSWAP状態であっても、進入不可タイルに移動することはできません。

FALLerがPHANTOM状態でない限り、WEAKerに移動するとそれを破壊します。(WEAKerへ移動するには、通常通り進入不可の無効化の条件を満たしている必要があります。)以下は通常の移動と変わりません。

移動時の破壊を起こせます。つまり、OPEN & SHUTの破壊、EATの破壊、WEAK状態の無に移動した時の破壊は起こります。

OPEN & SHUT、EAT、WEAKの進入不可の無効化は有効です(FALLerはそれらのタイルに移動できます)。

SWAP状態のタイルに移動できます。これらの形容詞の効果は重複します。

(反対方向のFALLsは同じ数だけ打ち消し合います。)

例:A IS FALL (UP)、A IS FALLのとき、Aがそれらのルールによって移動することはありません。

例:A IS FALL (UP)、A IS FALL AND FALLのとき、Aは下に落下します。これらの形容詞を文字で指すには:

FALLを文字で指すには"FALL"と綴ります。

FALL (RIGHT)を文字で指すには"FALLRIGHT"と綴ります。

FALL (UP)を文字で指すには"FALLUP"と綴ります。

FALL (LEFT)を文字で指すには"FALLLEFT"と綴ります。FALL以外のFALLsは、文字列にFALLが含まれるため、常にFALLが同時に成立します。本編に登場するFALLは、エディターで利用できる下向きのFALLと同一です。

唯一の違いはスプライトです。

NUDGE (DOWN)NUDGE (RIGHT)NUDGE (UP)NUDGE (LEFT)NUDGEerは対応する方向に移動します。

ただし、この移動によって向きは変わりません。

各種NUDGEsは次の順に処理されます。

NUDGE (RIGHT)

NUDGE (UP)

NUDGE (LEFT)

NUDGE (DOWN)これらの形容詞の効果は重複します。

これらの形容詞を文字で指すには:

NUDGE (DOWN)を文字で指すには"NUDGEDOWN"と綴ります。

NUDGE (RIGHT)を文字で指すには"NUDGERIGHT"と綴ります。

NUDGE (UP)を文字で指すには"NUDGEUP"と綴ります。

NUDGE (LEFT)を文字で指すには"NUDGELEFT"と綴ります。NUDGEsの移動は、MOVEの後、SHIFTの前に起こります。

形容詞(本編未登場)2

このセクションはver.385、ver.386、ver.394に基づいて作られています。

TURN RIGHTこの状態のオブジェクトは、今向いている方向から、時計回りに回転した方向を向きます。

この形容詞の効果は重複します。

この形容詞を文字で指すには"TURN"と綴ります。

TURN LEFTこの状態のオブジェクトは、今向いている方向から、反時計回りに回転した方向を向きます。

この形容詞の効果は重複します。

この形容詞を文字で指すには"DETURN"と綴ります。TURN RIGHT、TURN LEFTの効果は同じ数だけ打ち消し合います。TURNsの処理は、DIRsの処理の後に起こります。

例:A IS UP、A IS TURN RIGHTのとき、Aは右を向きます。

PHANTOMPHANTOMerの移動時、衝突判定が発生しません。

PHANTOMerは進入不可タイルに移動できます。

PHANTOMerはレベル境界に移動できます。

PHANTOMerはPUSH状態の物(タイル、レベル)を押しません。

SWAP状態のPHANTOMerの移動時、自身のSWAPによる入れ替えは起こりません。

(移動されたタイルのSWAPによる入れ替えは起こります。また、他のタイルがSWAP状態のPHANTOMerに移動したときにも、入れ替えは起こります。)

PHANTOMerの移動時、移動による破壊は起こりません。

次の破壊は起こりません。

OPEN & SHUT

EAT

WEAK状態の無に移動した時の破壊

FALL移動中にWEAKerに移動した時の破壊PHANTOMをFALLと組み合わせて使用すると、無限ループを引き起こす事ができましたが、アップデートにより発生しなくなりました。"whats phantom"に対する Hempuli 氏の返答

"It's basically anti-Float

Float makes overlapping not work but collisions still work

Phantom makes collisions not work but overlapping still works"

https://discord.com/channels/413458938869055490/413467461648646155/793805016665948191

POWERこの形容詞のみでは効果なし。

POWEREDを参照。

REVERSEver.421dで確認

REVERSEerの移動が逆方向になります。

移動時の向きの変化は反転しません。(REVERSEなしの移動で向くはずだった方向を向きます。)

ただし、SELECTの移動のみ、実際に移動した方向を向きます(バグ?)。次の原因による位置の変化に効果があります。

YOU、YOU2、3D、MOVE、SHIFT、AUTO、CHILL、NUDGEs、FEARの移動

FALLsによるFALL移動

SELECTによるSELECT移動例:BABA IS YOU、BABA IS REVERSEのとき、右にキー入力すると、BABAは左へ移動し、右を向きます。

例:BABA IS SELECT、BABA IS REVERSEのとき、右にキー入力すると、BABAは左へ移動し、左を向きます。この形容詞の効果は重複します。

この形容詞が奇数個適用されている時、REVERSEerは上記の効果を受けます。

この形容詞が偶数個適用されている時、REVERSEerは上記の効果を受けません。LOCKEDsは反転後の移動に対して作用します。

ただし、SELECTのみ、LOCKEDsは反転前の移動に対して作用します。(バグ?)

例:BABA IS YOU、BABA IS REVERSE、BABA IS LOCKED (UP)のとき、下にキー入力すると、BABAは上方向に移動しようとしますが、LOCKED (UP)により阻止されます。

例:BABA IS SELECT、BABA IS REVERSE、BABA IS LOCKED (UP)のとき、下にキー入力すると、BABAは上方向に移動します。

上にキー入力すると、LOCKED (UP)により阻止されます。REVERSEはPUSH、PULL、SWAPに対して作用しません。

SAFESAFEerは破壊されなくなります。

ただし、レベル外側に出た時の破壊は防げません。

STILLSTILLerの位置は変化しなくなります。

位置の変化が制限されていても、移動による向きの変化は起こります。

次の原因による位置の変化を防ぎます。

YOU、YOU2、3D、MOVE、SHIFT、AUTO、CHILL、NUDGEs、FEAR、PUSH、PULLの移動

FALLsによるFALL移動

SELECTによるSELECT移動

SWAPによる位置の入れ替え

例外として、PUSHまたはPULLの効果によって移動したオブジェクトはSTILLerの位置を入れ替えます。(バグ?)

これは前者がSWAP状態の場合でも、後者がSWAP状態の場合でも当てはまります。TELEによるテレポート制限された移動は、移動の失敗とみなされません。

そのため、次の効果は発動しません。

WEAKの移動失敗時の破壊効果

MOVEの移動失敗時の反転効果STILLerは、自身のSWAPによる進入不可の無効化の効果を打ち消します。

STILLer1がSWAP状態かつ進入不可のとき、他のタイルはSTILLer1に移動できません。

SWAP状態のタイルは通常通りSTILLer1に移動可能です。STILLかつ、PUSHまたはPULL状態のオブジェクトは、STOP状態のように振る舞います。

LOCKED (DOWN)LOCKED (RIGHT)LOCKED (UP)LOCKED (LEFT)LOCKEDerは、移動が制限され、対応する方向に位置を変化することができません。

位置の変化が制限されていても、移動による向きの変化は起こります。

次の原因による位置の変化を防ぎます。

YOU、YOU2、3D、MOVE、SHIFT、AUTO、CHILL、NUDGEs、FEAR、PUSH、PULLの移動

FALLsによるFALL移動

SELECTによるSELECT移動

(バグ?)

MOVE、CHILLで複数回移動するとき、反転時の移動はロックされますが、続く移動はロックされません。

(これはDiscordのバグリポートチャンネルで既に報告されている

https://discord.com/channels/413458938869055490/557819174295044098/800389618788728863)STILLとは異なり、TELE、SWAP、SELECTによる位置の変化は制限されません。制限された移動は、移動の失敗とみなされません。

そのため、次の効果は発動しません。

WEAKの移動失敗時の破壊効果

MOVEの移動失敗時の反転効果LOCKEDerは、自身のSWAPによる進入不可の無効化の効果を、対応する方向について打ち消します。

LOCKEDer1がSWAP状態かつ進入不可のとき、他のタイルは対応する方向からLOCKEDer1に移動できません。

SWAP状態のタイルは通常通りLOCKEDer1に移動可能です。例:A IS LOCKED (UP) AND SWAP AND STOPのとき、他のタイルは上からAに移動できません。他の方向からAには移動できます。これらの形容詞を文字で指すには:

LOCKED (DOWN)を文字で指すには"LOCKEDDOWN"と綴ります。

LOCKED (RIGHT)を文字で指すには"LOCKEDRIGHT"と綴ります。

LOCKED (UP)を文字で指すには"LOCKEDUP"と綴ります。

LOCKED (LEFT)を文字で指すには"LOCKEDLEFT"と綴ります。

形容詞(本編未登場)3

このセクションはver.385、ver.386、ver.390、ver.407に基づいて作られています。

YOU2YOU2erは2番目の入力(操作設定で設定されている2つ目の移動キー)に応じて移動します。

YOU2erは1番目の入力では移動しません。YOU2状態のタイルが存在する時、YOU状態のタイルは2番目の入力で移動しなくなります。

YOU状態のタイルに対して効果を発揮する形容詞(例:DEFEATやWIN等)は、YOU2状態のタイルに対しても効果を発揮します。

REVERTAがREVERT状態のとき:

各Aは、自身の変化の履歴の内、最も古い種類のタイルに変化します。

例:過去にA→Bの順に変化したBは、B IS REVERTによりAに変化します。

例:過去にA→B→Cの順に変化したCは、C IS REVERTによりAに変化します。

例:過去に無→Aの順に変化したAは、A IS REVERTにより無に変化します。アップデートにより、次は正しくありません。

最も古い種類のタイルへの変化が否定されている場合、それより1つ新しい種類のタイルに変化します。そのタイルへの変化も否定されている場合、変化しません。

例:過去にA→B→C→Dの順に変化したDは、D IS NOT A、D IS REVERTのとき、Bに変化します。

例:過去にA→B→C→Dの順に変化したDは、D IS NOT A、D IS NOT B、D IS REVERTのとき、変化しません。

ver.412での変更により、次は正しくありません。

変化しようとした種類のタイルへの変化が否定されている場合、それより1つ新しい種類のタイルに変化します。

これは、変化先が自分自身になるまで繰り返されます。変化先が自分自身の場合、変化しません。

例:過去にA→B→C→Dの順に変化したDは、D IS NOT A、D IS REVERTのとき、Bに変化します。

例:過去にA→B→C→Dの順に変化したDは、D IS NOT A、D IS NOT B、D IS REVERTのとき、Cに変化します。

例:過去にA→B→C→Dの順に変化したDは、D IS NOT A、D IS NOT B、D IS NOT C、D IS REVERTのとき、変化しません。

注:D IS NOT Aが成立していないなら、D IS NOT Bは、D IS REVERTの変化に何の影響も与えません(DはAに変化します)。

例:過去にB→A→B→C→Bの順に変化したBは、B IS NOT B、B IS REVERTのとき、Aに変化します。

例:過去にB→A→B→C→Bの順に変化したBは、B IS NOT B、B IS NOT A、B IS REVERTのとき、Cに変化します。

同時に変化することで増殖したオブジェクトも、変化の履歴を引き継いでいます。

例:過去にA→B / Bのように変化した2つのBは、両方とも、REVERTによりAに変化します。(結果として2つのAになります。)

例:過去にA→B / Cのように変化したBとCは、両方とも、REVERTによりAに変化します。(結果として2つのAになります。)HASやMAKE、A IS ALLのような生成は変化ではないため、生成元に変化することはありません。次のルールがA1に対して有効なとき、そのルールはREVERTによるA1の変化を無効化します。

BをA1の最も古いタイルとするとき(A = Bも可):A IS NOT B

A IS AA IS REVERTがA1に対して有効なとき、次のルールによるA1の変化と消失を無効化します。

A IS B(ただしA ≠ B)

A IS NOT AA IS ALLも無効化されます。

A IS GROUPは無効化されません。ver.412での変更により、次は正しくありません。

この形容詞の効果は重複します。

多重REVERTにより変化すると、それらREVERTの数の分の、最も古いタイルに変化します。

例:過去にA→Bの順に変化したBは、4 X B IS REVERTにより、4つのAに変化します。 A IS ALLは変化ではなく生成です。

そのため、これにより出現したオブジェクトはREVERTでAに戻りません。(バグ?)このコラムの内容は推測です

REVERTはUNDOシステムを流用していると思われます。

SELECTレベルアイコンはSELECTの効果を受けません。

SELECTerはプレイヤーの入力に応じてSELECT移動します。

SELECT移動は特殊な移動で、以下の特徴を持ちます。

解放されたレベルアイコン(それが変化したオブジェクトを含む)、または、HIDE状態でないPATHオブジェクト(それが変化したオブジェクトを含む)にのみ移動できます。

通常の移動より後に起こります。

移動しようとしたが移動できなかったとき、向きは変化しません。

進入不可オブジェクトに移動できます。

移動によって引き起こされる他タイルの移動は発生しません。

PUSHまたはPULL状態のタイルを移動させることはありません。

SWAPによる位置の入れ替えは起こりません。OPEN & SHUT、EATによる移動時の破壊は起こりません。SELECTerが、解放されたレベルアイコン(それが変化したオブジェクトを含む)と同じマスにある時に待機キーを入力すると、そのレベルアイコンに対応するレベルに入ることができます。

ただし、レベルアイコンでないSELECTerに入ることはできません。

この効果は他のどんな処理よりも早く起こり、これが起きた時はターン経過しません。

レベル選択画面を表示させ、キャンセルした時も同じです。

SELECTerが複数存在する、またはレベルアイコンが複数重なっているなど、入るレベルアイコンの候補が複数存在する時、レベル選択画面が表示されます。レベルアイコンを選択してレベルに入った後、そのレベルを抜けて上位レベルに戻った時:

レベル開始時、SELECTerは、最後に選択したレベルアイコンのマスに配置されます。

SELECTerが複数存在する場合、処理順が最も早いSELECTer1つだけが配置されます。待機時、PATHオブジェクトと同じマスにあるSELECTerは特定の方向を向きます。

この方向は、オブジェクト種(それともID?)によって変わるようです。

(バグ?)

この時、SELECTerはどの方向についても、FACING DIRs条件を満たしません。この形容詞の効果は重複します。レベル選択の効果も重複します。

例:2 X BABA IS SELECTで、1体のBABAが「IT'S ME」という名前の1つのレベルアイコンと同じマスにあるとき待機キーを入力すると、レベル選択画面が表示され、「IT'S ME」が2つ表示されます。レベル開始直後とリスタート直後の短時間、SELECTによる移動は無視されます。(バグ?)

例:BABA IS YOUで、BABA、PATHオブジェクトに隣接するCURSORがあるとき、レベル開始時から移動キーを押したままにすると、BABAは移動するにも関わらず、CURSORは移動しません。

(PATHが出現するまでに時間がかかるとかだろうか?)

次のレベルは、リスタート時に右入力し続けることでクリア可能です。

https://steamcommunity.com/sharedfiles/filedetails/?id=2420322862LEVEL IS AUTOによる待機では、レベル選択の効果は発動しません。

「待機時、PATHオブジェクトと同じマスにあるSELECTerは右を向く」効果は発動します。SELECTerは他のオブジェクトより上に表示されます。FLOATerよりも上です。

SELECTer同士の表示順は、Zレベルを無視し、ルールの処理順に依存します。(要検証)

3Dレベルアイコンは3Dの効果を受けません。

レベルアイコンを除く3Derが存在するとき、1つの3Derが選ばれます(以後これを「主人公」と呼びます)。

ルールを作るたびに選ばれる3Derは毎回同じです。まず処理順が早いルールの3Derたちが選ばれ、次いでその中から内部IDの最も若い3Derが選ばれるようです。

例:レベル作成時、最も左上にKEKE IS 3D、その下にBABA IS 3Dを配置したとき、主人公にはまずKEKEたちが選ばれます。

2つのルールの位置を入れ替えると、主人公にはまずBABAたちが選ばれます。

ここで、もしBABA1、BABA2の2体のBABAがいて、BABA1の方が内部IDが若いなら、主人公にはBABA1が選ばれます。画面が主人公を中心とする(Wizardryなどのダンジョンクロウルのような)一人称視点に切り替わります。

上キーで主人公が前進します。

左右キーで主人公が回転します。

下キーで主人公を次の3Derに切り替えます。(他に3Derが存在しない場合、何も起きません。)

このコラムの内容は推測です

次の3Derとは:

3Dのルールは、全ての3Derを収める1つの「リスト」を作るようです。

ある3Derが主人公であるとはつまり、リスト中の1つの3Derが主人公として選ばれているということです。

下キーを押すたびに、現在の主人公の次にリストに収められている3Derが主人公として選ばれます。現在の主人公がリストの終端の3Derの場合は、リストの先頭の3Derが次の主人公に選ばれます。どのキー入力もターンを経過させます。YOUerに対して効果を発揮する形容詞(WIN、DEFEAT、SLEEP、BONUS、END)は、3Derに対しても効果を発揮します。3Dの移動はYOU、YOU2と同時に起こります。待機したターンに主人公の向きが変化しても、カメラの向きが追従しないことがあります(バグ?)。これは前進以外の操作をした後に起きるようです。

見た目上、主人公の向きは変化していませんが、実際には変化しています。DIRs状態の主人公は左右キーで回転できません。これは主人公が回転した直後に向きが設定されるためだと思われます。一人称視点では、画面(主人公と同じ位置にある、カメラの向きと垂直な面)からの距離が0~8マスまでのオブジェクトのみが表示されます。9マス以遠のオブジェクトは表示されません。一人称視点では、パーティクルは表示されません。オブジェクトのZ値は一人称視点での表示のされ方に影響します。

0~10 地面に張り付いて表示されます。 11~15 柱状に表示されます。 16~20 カメラに正対して表示されます。 21~30 一人称視点を無視して、通常通り表示されます。また、最前面に表示されます。

HPなどのUI表示に便利です。

22~30 21~30は同じになったようだ。

一人称視点を無視して、通常通り表示されます。また、最前面に表示されます。

また、カメラに正対しているかのように見た目上の向きが変化します。例えば、主人公が時計回りに回転すると、この方法で表示されているオブジェクトは反時計回りに回転します。この向きの変化は見た目上のものであり、実際の向きは変化していません。

主人公が上を向いているとき、この方法で表示されているオブジェクトの見た目上の向きと実際の向きが一致します。

「ANIMATION STYLE」が「DIRECTIONS」の場合、カメラが回転しても見た目上の向きは変化しません(バグ?)。

主人公がこの方法で表示されているとき、見た目上の向きが変化していないように見えます(バグ?)。実際の向きは正しく変化しています。

テスト1

A IS 3D、B IS 3D、A、Bがこの順に主人公に選ばれるとき、A IS 3Dを崩した後再度成立させた。

A IS 3Dを成立させた時、Bが主人公のままだった。

テスト2

A IS 3D、B IS 3D、C IS 3D、A、B、Cがこの順に主人公に選ばれるとき、A IS 3DとC IS 3Dを崩した。次に、

1. A IS 3D、C IS 3Dの順に再度成立させた。

2. C IS 3D、A IS 3Dの順に再度成立させた。

その後、下キーで主人公を切り替えた。

どちらの場合も、B→C→A→Bの順に主人公が切り替わった。

テスト3

A IS 3D、B IS 3D、C IS 3D、A、B、Cがこの順に主人公に選ばれるとき、B IS 3D、C IS 3DのBとCを入れ替え、A IS 3D、C IS 3D、B IS 3Dとした。

その後、下キーで主人公を切り替えた。A→C→B→Aの順に主人公が切り替わった。

考察

3Dのルールを変えても(3Derのリストを更新しても)、現在の主人公が主人公のまま(現在の主人公が3D状態でなくなる場合を除く)。

また、3Dのルールが成立している位置によって、3Derをリストに追加する順番が変わる?

REDORANGEYELLOWLIMEGREENCYANBLUEPURPLEPINKROSYBLACKGREYSILVERWHITEBROWNレベルアイコンはCOLORsの効果を受けません。

COLORs状態のオブジェクトの色は対応する色になります。

複数種のCOLORsを同時に適用した場合、上に記されている色の順に繰り返し変化します。

PARTY紙吹雪のパーティクルを出します。

PET撫でる手のパーティクルを出します。

SAD涙のパーティクルを出します。

WONDER?のパーティクルを出します。

形容詞と無

本編に登場する形容詞

このセクションはver.387、ver389に基づいて作られています。

YOUYOU状態の無はプレイヤーの入力に応じて移動します。

WINWIN状態の無がYOU状態でもあるときレベルをクリアします。

STOPSTOP状態の無は進入不可です。

PUSHPUSH状態の無は押すことができます。

複数のPUSH状態のタイルが並んでいれば、まとめて押すことができます。

それ以上押すことができない場合、PUSH状態の無は進入不可です。「ルールの基本 - 移動」も参照。

PULLPULL状態の無は進入不可です。

PULL状態の無は引っ張ることができます。

複数のPULL状態のタイルが並んでいれば、まとめて引くことができます。「ルールの基本 - 移動」も参照。

SINK効果なし。(無に重なることはできません。)

DEFEATDEFEAT状態の無がYOU状態でもあるとき破壊されます。

HOTこの形容詞のみでは効果なし。

MELTを参照。

MELTMELT状態の無がHOT状態でもあるとき破壊されます。

MOVE各MOVEまたはCHILL状態の無1はランダムな向きに移動できるか確認し、移動できるならその向きに移動します。移動できないなら反対の向きに移動します。

無1がDIRs状態のとき、ランダムではなくその方向に移動できるか確認します。MOVE、CHILL、AUTOの効果は重複しません。

MOVE、CHILLまたはAUTO状態の無は、適用されているMOVE、CHILL、AUTOの数に関わらず、一度だけ移動します。(無は同じ移動ステップで1マスしか移動できない?)(バグ?)無について、MOVEとCHILLは全く同じ効果を持ちます。

OPEN進入不可の無効化

無 vs オブジェクト

無1とSHUTer1の浮遊状態が同じ、かつ、

[無1とSHUTer1の両方がSAFE状態]ではないとき:

OPEN状態の無1は、進入不可なSHUTer1に移動できます。

例:EMPTY IS OPEN、DOOR IS SHUT AND STOPのとき、無はDOORに移動できます。

ここで、DOOR IS FLOATのとき、無はDOORに移動できません。

また、EMPTY AND DOOR IS SAFEのとき、無はDOORに移動できません。無 vs 無

[OPEN状態の無1とSHUT状態の無2の両方がSAFE状態]ではないとき:

無1は、進入不可な無2に移動できます。移動時の破壊

移動による破壊は位置の変化の前に起こります。

つまり、HASによるオブジェクトの生成位置は、移動先ではなく移動前のマスです。

OPEN状態の無 vs SHUTer

OPEN状態の無1が、浮遊状態の同じ1つ以上のSHUTerに移動するとき、それら各SHUTerに対して、次の処理を1度ずつ実行します:

無1とそのSHUTerが破壊されます。無1が破壊された場合、これ以降のこの処理を中止します。

注:どのSHUTerが先に破壊されるかは、それらの処理順(おそらく内部ID)に依存します。例:EMPTY IS OPEN、DOOR IS SHUTのとき、1つの無が、6つ重なったDOORに移動すると、5つのDOORが残ります。

例:上の例に加えて、EMPTY IS SAFEのとき、1つの無が、6つ重なったDOORに移動すると、全てのDOORが破壊されます。OPEN状態の無 vs SHUT状態の無

OPEN状態の無が、SHUT状態の無に移動するとき、両方が破壊されます。OPENかつSHUTによる破壊

OPEN状態の無がSHUT状態でもあるとき破壊されます。

他のルールとの関係

OPEN & SHUTはPUSHに優先します。

ただし、OPEN & SHUTの進入不可の無効化の条件を満たさない場合は押すことができます。

OPEN & SHUTはSWAPに優先します。

ただし、OPEN & SHUTの進入不可の無効化の条件を満たさない場合は入れ替えできます。

OPEN & SHUTはEATに優先します。

これは移動時と重なりのどちらについても当てはまります。

SHUTOPENの説明のOPENとSHUTを入れ替えたものと同じです。

OPENを参照。

RED効果なし。(無は見えないのでわかりません。)

BLUE効果なし。(無は見えないのでわかりません。)

FLOAT浮遊します。用語「浮遊状態」も参照。無同士が相互作用するとき、それらの浮遊状態は無視されているように見えます。(バグ?)

例えば:

WEAK状態の無1が、WEAKかつSTOPかつFLOAT状態の無2に移動すると、破壊は起こりません。(無1が無2に移動できている)

一方同じ条件で、WEAK状態のBABA1が、無2に移動すると、BABA1は破壊されます。(BABA1が無2に移動できない)

OPEN状態の無1が、SHUTかつFLOAT状態の無2に移動すると、破壊が起こります。

一方同じ条件で、OPEN状態のBABA1が、無2に移動すると、BABA1は破壊されません。ただ、これは条件のバグかもしれない。(条件を使わない限り個別の無同士を相互作用させることができないため)

WEAK進入不可の無効化

オブジェクト vs 無

オブジェクト1と無1の浮遊状態が同じ、かつ、無1がSAFE状態でないとき:

任意のオブジェクト1は、進入不可なWEAK状態の無1に移動できます。

無 vs 無

無1がSAFE状態でないとき:

任意の無は、進入不可なWEAK状態の無1に移動できます。オブジェクトが無に移動する時の破壊

任意のオブジェクトがWEAK状態の無1に移動したとき、無1は破壊されます。

移動失敗時の破壊

WEAK状態の無が移動しようとしたが移動できなかったとき破壊されます。例:EMPTY IS STOP AND WEAK AND SAFEのとき、タイルは、無に移動することができません。EMPTY IS PUSH AND WEAKで、オブジェクトが無に移動したとき、無は押される前に破壊されます。オブジェクトがWEAK状態の無に移動する時の破壊は、オブジェクトがWEAK状態のオブジェクトに移動する時の破壊とは違い、重なりのタイミングではなく移動のタイミングで起こっています。

また、タイルはWEAKかつ進入不可なSAFE状態の無に移動できません。

これらはWEAKよりもむしろEATに近い挙動だと言えます。

TELEパーティクルが出ます。

効果なし。(無に重なることはできません。)

SHIFT効果なし。(無に重なることはできません。)

RIGHTUPLEFTDOWNこの状態の無は向きを持ち、対応する方向を向きます。

ある無に複数種のDIRsを同時に適用したとき、最後に処理されるDIRsのみ有効です。

処理順はレベル内でルールを作る位置により変化します。(要検証)

SWAPSWAP状態の無は、全てのタイルに移動できます。

全てのタイルは、SWAP状態の無に移動できます。

ただし、状況によっては、進入不可かつ、STILLまたはLOCKED状態のSWAP状態の無には移動できないことがあります。

詳細はSTILL、LOCKEDsを参照。SWAP状態の無が移動したとき、移動先のマスにあるタイル オブジェクトが移動元のマスに置かれます。

(無について同様かは確認する方法がない)

タイルが移動したとき、移動先のマスにあるSWAP状態の無が移動元のマスに置かれます。

(確認する方法がない)

SWAPはPUSHに優先します。

例:EMPTY IS SWAP、B IS PUSHで、無がBに移動しようとした場合、無とBの位置が入れ替わり、Bを押すことはできません。

例:B IS SWAP AND PUSHで、無がBに移動しようとした場合、無とBの位置が入れ替わり、Bを押すことはできません。

FALL効果なし。

MORE効果なし。

WORD効果なし。

BEST光り輝きます。

SLEEP眠ります。SLEEP状態の無はYOU、YOU2、MOVE、CHILL、AUTO、NUDGEs、FEARによって移動しなくなります。

HIDE効果なし。(無は見えないのでわかりません。)

BONUSBONUS状態の無がYOU状態でもあるとき破壊されます。

ボーナスを仮取得します。

ボーナスを仮取得した状態でレベルをクリアすると:

本編なら:

そのレベルについてボーナスを獲得します。

獲得済みのボーナスの総数はセーブデータに表示されます。また、MAPまたはポーズ画面右上にも表示されます。

カスタムレベルなら:

レベル選択画面で、レベルに特別なスタンプが付きます。レベルをクリアしなかった場合、仮取得したボーナスは削除されます。

1つのレベルにつき、ボーナスの獲得は1度までです。EMPTY IS YOU AND WIN AND BONUSのとき、レベルをクリアすることはありません。

(バグ?)ver.383

ボーナスを仮取得したターンをアンドゥした場合、それまでに仮取得した数に関わらず、仮取得したボーナスは全て削除されます。

(バグ?)

END効果なし。

DONEDONE状態の無は消失します。

(確認する方法は無いが、少なくとも効果音は鳴る)

形容詞と無(本編未登場)

このセクションはver.387に基づいて作られています。

AUTOAUTO状態の無1はランダムな向きに移動します。

無1がDIRs状態のとき、ランダムではなくその方向に移動します。MOVE、CHILL、AUTOの効果は重複しません。

MOVE、CHILLまたはAUTO状態の無は、適用されているMOVE、CHILL、AUTOの数に関わらず、一度だけ移動します。(無は同じ移動ステップで1マスしか移動できない?)

BROKEN(ver.407で確認)

BROKEN状態の無は、EMPTYを主語とするルールの内、一部のルールの効果を受けません。

次の形容詞の効果は無効化されます。

YOU

MOVE

AUTO

CHILL

NUDGEs

これら以外のルールは一切無効化されません。

例:

EMPTY IS YOU AND WINや、EMPTY IS YOU AND DEFEATは無効化されません(YOU側の効果ではないため)。

移動のみ無効化されているように見えますが、EMPTY FEAR Aは無効化されません。パーティクルの発生は無効化されません。

CHILL各CHILLまたはMOVE状態の無1はランダムな向きに移動できるか確認し、移動できるならその向きに移動します。移動できないなら反対の向きに移動します。

無1がDIRs状態のとき、ランダムではなくその方向に移動できるか確認します。(バグ?)MOVE、CHILL、AUTOの効果は重複しません。

MOVE、CHILLまたはAUTO状態の無は、適用されているMOVE、CHILL、AUTOの数に関わらず、一度だけ移動します。(無は同じ移動ステップで1マスしか移動できない?)無について、CHILLとMOVEは全く同じ効果を持ちます。

BACK効果なし。

FALLFALL (RIGHT)FALL (UP)FALL (LEFT)効果なし。

NUDGE (DOWN)NUDGE (RIGHT)NUDGE (UP)NUDGE (LEFT)NUDGE状態の無は対応する方向に移動します。

各種NUDGEsは次の順に処理されます。

NUDGE (RIGHT)

NUDGE (UP)

NUDGE (LEFT)

NUDGE (DOWN)各種NUDGEsの効果は重複しません。

NUDGE状態の無は、適用されているNUDGEの数に関わらず、一度だけ移動します。(EMPTYは同じ移動ステップで1マスしか移動できない?)

TURN RIGHT効果なし。

TURN LEFT効果なし。

PHANTOMPHANTOM状態の無の移動時、衝突判定が発生しません。

PHANTOM状態の無は進入不可タイルに移動できます。

PHANTOM状態の無はレベル境界に移動できます。

PHANTOM状態の無はPUSH状態の物(タイル、レベル)を押しません。

SWAPかつPHANTOM状態の無の移動時、自身のSWAPによる入れ替えは起こりません。

OPEN & SHUT、EATによる移動時の破壊は起こりません。

POWERver.413で効果を発揮するように修正されていることを確認(ver.403で修正されたらしい)

この形容詞のみでは効果なし。

POWEREDを参照。

REVERSEver.413で確認

REVERSE状態の無の移動が反転します。

次の原因による移動に効果があります。

YOU、YOU2、MOVE、AUTO、CHILL、NUDGEs、FEARの移動この形容詞の効果は重複します。

この形容詞が奇数個適用されている無は上記の効果を受けます。

この形容詞が偶数個適用されている無は上記の効果を受けません。LOCKEDsは反転後の移動に対して作用します。

例:EMPTY IS YOU、EMPTY IS REVERSE、EMPTY IS LOCKED (UP)のとき、下にキー入力すると、EMPTYは上方向に移動しようとしますが、LOCKED (UP)により阻止されます。REVERSEはPUSH、PULL、SWAPに対して作用しません。

SAFESAFE状態の無は破壊されなくなります。

ただし、レベル外側に出た時の破壊は防げません。

STILLSTILL状態の無の位置は変化しなくなります。

以下の原因による位置の変化を防ぎます。

YOU、YOU2、MOVE、AUTO、CHILL、NUDGEs、FEAR、PUSH、PULLの移動制限された移動は、移動の失敗とみなされません。

そのため、次の効果は発動しません。

WEAKの移動失敗時の破壊効果STILL状態の無は、自身のSWAPによる進入不可の無効化の効果を打ち消します。

無1がSTILL状態かつSWAP状態かつ進入不可のとき、他のタイルは無1に移動できません。

SWAP状態のタイルの進入を妨げることはありません。

SWAP状態のタイルは、通常通り無1に移動可能です。STILLかつ、PUSHまたはPULL状態の無は、STOP状態のように振る舞います。

LOCKED (DOWN)LOCKED (RIGHT)LOCKED (UP)LOCKED (LEFT)LOCKED状態の無は、移動が制限され、対応する方向に位置を変化することができません。

以下の原因による位置の変化を防ぎます。

YOU、YOU2、MOVE、CHILL、NUDGEs、FEAR、PUSH、PULLの移動

MOVE、CHILLの移動は、反転後の移動のみ制限されます。(バグ?)

PULLは、逆方向の移動が制限されます。(バグ。ver.398)

ver.387

例:EMPTY IS LOCKED (UP)、EMPTY IS PULL、BOX IS PULLのとき、EMPTYを上に引くことができ、それによりBOXを上に引くことができます。EMPTYを下に引くことはできません。オブジェクトがLOCKED状態のときとは違い、AUTOによる移動は制限しません。(バグ?)制限された移動は、移動の失敗とみなされません。

そのため、次の効果は発動しません。

WEAKの移動失敗時の破壊効果LOCKED状態の無は、自身のSWAPによる進入不可の無効化の効果を、対応する方向について打ち消します。

無1がLOCKED状態かつSWAP状態かつ進入不可のとき、他のタイルは対応する方向から無1に移動できません。

SWAP状態のタイルの進入を妨げることはありません。

SWAP状態のタイルは、通常通り無1に移動可能です。

YOU2YOU2状態の無は2番目の入力(操作設定で設定されている、2つ目の移動キー)に応じて移動します。

YOU2状態の無が1番目の入力によって移動することはありません。YOU2状態のタイルが存在する時、YOU状態のタイルは2番目の入力によって移動しなくなります。

YOU状態のタイルに対して効果を発揮する形容詞(例:DEFEATやWIN等)は、YOU2状態のタイルに対しても効果を発揮します。

REVERTEMPTY IS REVERTは、次のルールによる無1の変化を無効化します。

この効果は、無1がREVERT状態でなくとも有効です。(バグ?)

また、A IS NOT REVERTが成立していても有効です。(バグ?)

EMPTY IS BEMPTY IS ALLも無効化されます。

EMPTY IS GROUPは無効化されません。

SELECT効果なし。

3D効果なし。

REDORANGEYELLOWLIMEGREENCYANBLUEPURPLEPINKROSYBLACKGREYSILVERWHITEBROWN効果なし。(無は見えないのでわかりません。)

PARTY紙吹雪のパーティクルを出します。

PET撫でる手のパーティクルを出します。

SAD涙のパーティクルを出します。

WONDER?のパーティクルを出します。

形容詞とレベル

本編に登場する形容詞

このセクションはver.387に基づいて作られています。

以下の説明はレベルに対する形容詞の効果の説明です。

レベルアイコンに対する形容詞の効果については、形容詞のセクションを参照してください。

一部の形容詞の効果によってレベルが移動したり、回転したりすることがありますが、見た目上の演出であり、レベル中のオブジェクトには影響を与えません。

レベルの見た目上の移動は画面に対して行われます。

例えば、LEVEL IS RIGHTでレベルが右に90度回転している時、LEVEL IS MOVEはレベルを右へ移動させます。レベルが右へ移動するというのは、レベルから見て右、つまり画面下へ移動するように思えますが、実際には画面右へ移動します。

パーティクルの発生は、オブジェクトが無いマスでのみ起こります。

ここで、レベルの破壊とは、全てのオブジェクトの破壊を意味します。

YOUYOU状態のレベルはプレイヤーの入力に応じて移動します。

レベルは移動に対応する方向を向きます。

YOU状態のレベルがWIN状態のタイルに重なるとレベルをクリアします。

YOU状態のレベルがDEFEAT状態のタイルに重なると、レベルが破壊されます。

WINWIN状態のレベルがYOU状態でもあるときレベルをクリアします。

WIN状態のレベルにYOU状態のタイルが重なるとレベルをクリアします。

STOP効果なし。

PUSHPUSH状態のレベルは押すことができます。

タイルがレベル境界へ移動したとき、レベルがそのタイルと同じ方向へ移動します。

レベルは1ターンに1回まで押すことができます。レベルが1ターンに複数回押された場合、最後の移動のみが適用されます。PUSH状態のタイルがレベル境界に向かって押されたとき、それは実際には移動しないため、レベルを押すことはありません。

PULLPULL状態のレベルは引っ張ることができます。

タイルがレベル境界の反対方向に移動したとき、レベルがそのタイルと同じ方向へ移動します。

レベルは1ターンに1回まで引くことができます。レベルが1ターンに複数回引かれた場合、最後の移動のみが適用されます。例:YOU、MOVE、SHIFTのそれぞれによって移動する3つのオブジェクトが同じターンにレベルを引いたとき、レベルはSHIFTで移動したタイルによってのみ移動します。

これは移動の処理がYOU、MOVE、SHIFTの順に行われるためです。LEVEL IS PUSHかつLEVEL IS PULLの場合、それぞれが一度ずつレベルを移動させることができます。

SINKSINK状態のレベルにオブジェクトが重なると、レベルが破壊されます。

DEFEATDEFEAT状態のレベルがYOU状態でもあるとき、レベルが破壊されます。

DEFEAT状態のレベルに重なったYOU状態のタイルは破壊されます。

HOTHOT状態のレベルと重なっているMELT状態のタイルを破壊します。

MELTMELT状態のレベルがHOT状態でもあるとき、レベルが破壊されます。

MELT状態のレベルがHOT状態のタイルに重なると、レベルが破壊されます。

MOVEMOVE状態のレベルはその向きに移動します。

MOVEの効果は重複します。

OPENOPEN状態のレベルがSHUT状態でもあるとき、レベルが破壊されます。

OPEN状態のレベルがSHUT状態のタイルに重なると、レベルが破壊されます。

SHUTOPENの説明のOPENとSHUTを入れ替えたものと同じです。

OPENを参照。

REDレベルの背景が赤色になります。

BLUEレベルの背景が青色になります。その他のCOLORsも参照。

FLOAT浮遊します。用語「浮遊状態」も参照。

WEAKWEAK状態のレベルにオブジェクトが重なると、レベルが破壊されます。

TELETELE状態のレベルに重なっている各オブジェクトは、レベル内のランダムな位置にテレポートします。

SHIFTSHIFT状態のレベルに重なっている各オブジェクトは、レベルの向きに移動します。

SHIFTの効果は重複しません。

RIGHTUPLEFTDOWNこれらの状態のレベルは対応する方向を向きます。

見た目上、レベルは対応する方向を向きます。

レベルに複数種のDIRsを同時に適用したとき、最後に処理されるDIRsのみ有効です。

処理順はレベル内でルールを作る位置により変化します。(要検証)見た目上の向きが変化すると、レベルの下部が画面の対応する方向に向くように、レベルが回転します。デフォルトでは、レベルの実際の向きと見た目上の向きは、どちらも下向きです。

SWAP効果なし。

FALLFALL状態のレベルは、1画面分、画面下へ移動します。

この形容詞の効果は重複します。

MORE効果なし。

WORD効果なし。

BEST光り輝きます。

SLEEPSLEEP状態のレベルはMOVE、NUDGEsによって移動しなくなります。SLEEP状態のオブジェクトとは異なり、YOU、YOU2による移動は無効化しません。

HIDEレベルがHIDE状態のとき、全てのオブジェクトが見えなくなります。

ただし、レベルアイコンとカーソルはこの効果を受けません。A IS NOT HIDEが成立していても、Aは不可視になります。

(もっとも、A IS NOT HIDEが無効化するルールはA IS HIDEだけなので、LEVEL IS HIDEの効果を無効化しないのは当然ですが…)

BONUSBONUS状態のレベルがYOU状態でもあるとき、レベルが破壊されます。

BONUS状態のレベルとYOU状態のタイルが重なると、レベルが破壊されます。ver.387

LEVEL IS YOU AND WIN AND BONUSのとき、レベルをクリアしますが、ボーナスは獲得できません。(バグ?)

LEVEL IS WIN AND BONUSのとき、レベルにYOU状態のタイルが重なるとクリアしますが、ボーナスは獲得できません。(BABA、無で確認)(バグ?)

ENDEND状態のレベルがYOU状態でもあるときレベルをクリアします。

END状態のレベルにYOU状態のタイルが重なるとレベルをクリアします。

DONEレベルがDONE状態のとき、全てのオブジェクトが消失します。

ALL IS DONEのとき、レベルをクリアします。LEVEL IS DONEかつALL IS DONEの場合は、レベルのクリアが優先します。LEVEL IS DONEのとき、ALL IS DONEと同じ効果音が流れますが、他の効果はありません。

形容詞とレベル(本編未登場)

このセクションはver.387、ver.390に基づいて作られています。

AUTOレベルがAUTO状態のとき、一定時間毎にターンが自動で経過します。

また、キー入力時にターン経過しなくなります。

ターン経過までに入力を行わなかった場合(キーの押しっぱなしによる再入力が間に合わない場合も)、待機したとみなされます。

ターン経過の間隔は、レベル作成時の設定の「'LEVEL IS AUTO' DELAY」の項目で変更可能です。

この形容詞の効果は重複します。

一定時間毎にLEVEL IS AUTOの数だけターンが経過します。LEVEL IS AUTOによるターンの自動経過は待機とみなされ、IDLEは真となります。

特に、IDLE LEVEL IS AUTOのとき待機すると、次に移動入力するまでターンが自動経過しつづけます。興味深いことに、レベルがAUTO状態のとき、1番目の移動キーと2番目の移動キーを同時に入力することで、YOUとYOU2による移動を同じターンに起こすことができます。

これを利用して、複数の進入不可オブジェクトをスタックすることができます。

これを教えてくれたカスタムレベル

https://twitter.com/baba_is_sleep/status/1352379731467923456?s=20

BROKENBROKEN状態のレベルは、LEVELを主語とするルールの内、BROKENとMIMIC以外の効果を受けません。

パーティクルの発生は無効化されます。

CHILL効果なし。

BACK効果なし。

FALLFALL (RIGHT)FALL (UP)FALL (LEFT)FALL状態のレベルは、1画面分、画面の対応する方向へ移動します。

これらの形容詞の効果は重複します。

NUDGE (DOWN)NUDGE (RIGHT)NUDGE (UP)NUDGE (LEFT)NUDGE状態のレベルは対応する方向に移動します。

ただし、この移動によって向きは変わりません。

これらの形容詞の効果は重複します。

TURN RIGHTTURN RIGHT状態のレベルの見た目上の向きは、レベルの向きと同じになります。

TURN RIGHT状態のレベルは今向いている方向から、時計回りに回転した方向を向きます。

レベルがDIRs状態のとき、この形容詞の効果は無効化されます。

この形容詞の効果は重複します。

TURN LEFTTURN LEFT状態のレベルの見た目上の向きは、レベルの向きと同じになります。

TURN LEFT状態のレベルは今向いている方向から、反時計回りに回転した方向を向きます。

レベルがDIRs状態のとき、この形容詞の効果は無効化されます。

この形容詞の効果は重複します。(バグ?)

この解説は推測です。

1番目の効果と2番目の効果は、その順に処理されます。

そのため、レベルの見た目上の向きと、レベルの実際の向きが一致しない現象が起こります。

例:レベル開始直後、LEVEL IS TURN LEFTを成立させてすぐに崩します。

レベルの見た目上の向きは実際の向きと同じになります。

レベル開始直後、見た目上の向き(下)と実際の向き(下)は一致しているため、見た目上の向きは下のまま変わりません(下→下)。

実際の向きは回転して右を向きます(下→右)。ここでLEVEL IS MOVEを成立させると、レベルの見た目上の向きは下向きであるにも関わらず、レベルは画面右へ移動します。これは実際の向きが右向きのためです。

その後、再度LEVEL IS TURN LEFTを成立させてすぐに崩します。

レベルの見た目上の向きは実際の向きと同じになります。

今回は、見た目上の向き(下)と実際の向き(右)は一致していないため、見た目上の向きは右になります(下→右)。

実際の向きは回転して上を向きます(右→上)。ここでLEVEL IS MOVEを成立させると、レベルの見た目上の向きは右向きであるにも関わらず、レベルは画面上へ移動します。これは実際の向きが上向きのためです。

PHANTOM効果なし。

POWERver.413で効果を発揮するように修正されていることを確認(ver.403で修正されたらしい)

この形容詞のみでは効果なし。

POWEREDを参照。

REVERSEver.417で確認

REVERSE状態のレベルの移動が逆方向になります。

移動時の向きの変化も反転します。

移動により向きが変化する時、レベルは実際に移動する方向を向きます。次の移動に対して効果があります。

YOU、YOU2、MOVE、FALLs、NUDGEsの移動REVERSEはPUSH、PULLに対して作用しません。

SAFESAFE状態のレベルは破壊されなくなります。

ただし、BONUS状態のレベルにYOUerが重なった時の破壊は防げません。

(BONUS状態のレベルがYOU状態でもあるときの破壊、BONUS状態のレベルにYOU状態の無が重なったときの破壊は防ぎます。)(バグ?)次の破壊は防げることを確認した。

YOU状態のレベルがDEFEAT状態のタイルに重なった時の破壊

SINKによる破壊(テキストを破壊しないときに限る)

DEFEATによる破壊

MELTによる破壊

OPEN & SHUT

WEAK

STILLSTILL状態のレベルの位置は変化しなくなります。

以下の原因による位置の変化を防ぎます。

YOU、YOU2、MOVE、NUDGEs、FALLsによる移動(バグ?)

PUSH、PULLによる位置の変化は防げません。(バグ?)

YOUによる移動は、制限されるのではなく、そもそも移動しません。

(レベルはYOUの移動による向きの変化を起こしません。)

LOCKED (DOWN)LOCKED (RIGHT)LOCKED (UP)LOCKED (LEFT)LOCKED状態のレベルは、移動が制限され、対応する方向に位置を変化することができません。

以下の原因による位置の変化を防ぎます。

YOU、YOU2、MOVE、NUDGEs、FALLs(バグ?)

PUSH、PULLによる位置の変化は防げません。(バグ?)

YOUによる移動は、制限されるのではなく、そもそも移動しません。

(レベルはYOUの移動による向きの変化を起こしません。)(バグ?)

NUDGEsは、レベルが対応する方向を向いているときの移動のみ制限されます。

ver.407

例:LEVEL IS LOCKED (UP)、LEVEL IS NUDGE (UP)のとき、上を向いているレベルは移動できません。それ以外の方向を向いているレベルは移動できます。

YOU2YOU2状態のレベルは2番目の入力(操作設定で設定されている、2つ目の移動キー)に応じて移動します。

YOU2状態のレベルが1番目の入力によって移動することはありません。YOU状態のレベルに対して効果を発揮する形容詞(例:DEFEATやWIN等)は、YOU2状態のレベルに対しても効果を発揮します。レベルがYOU2状態であっても、YOU状態のタイルは2番目の入力によって移動します。(バグ?)

(オブジェクト、または無がYOU2状態の場合と比較してください。)

REVERTレベルがREVERT状態のとき:

上位レベルに遷移し、このレベルに対応する全てのレベルアイコン(が変化していたオブジェクト)がレベルアイコンに変化します。

次のルールがレベルに対して有効なとき、そのルールはREVERTによるレベルの変化を無効化します。

LEVEL IS LEVELLEVEL IS REVERTは、次のルールによる変化を無効化します。

この効果は、レベルがREVERT状態でなくとも有効です。(バグ?)

また、LEVEL IS NOT REVERTが成立していても有効です。(バグ?)

LEVEL IS B(ただしB ≠ LEVEL)例:LONELY LEVEL IS REVERTはレベルに対して有効ではありませんが、LEVEL IS Bを無効化します。

SELECT効果なし。

3D効果なし。

REDORANGEYELLOWLIMEGREENCYANBLUEPURPLEPINKROSYBLACKGREYSILVERWHITEBROWNレベルの背景が対応する色になります。

複数種のCOLORsを同時に適用した場合、上に記されている色の順に繰り返し変化します。

(ルールの処理順のような気もする)

PARTY紙吹雪のパーティクルを出します。

PET撫でる手のパーティクルを出します。

SAD涙のパーティクルを出します。

WONDER?のパーティクルを出します。

雑多な情報


Baba Is You (WIP) image 3169

IDこの項目は個人的推測を含みます。

ゲーム内部では、各オブジェクトはIDを持ちます。IDはオブジェクトが生成された時に割り振られます。

同時に発生する処理はIDの順に行われます。

例えば、複数のMOVE状態のオブジェクトがどの順番で移動するかはIDによって決まります。

内部IDについて言及している開発者の発言

https://steamcommunity.com/app/736260/discussions/0/1675812484342286355/

Originally posted by Hempuli:As far as I can remember, the only truly random things in the game at the moment are Tele destinations and Empty Is X initial facing. However, there are some edge cases where what happens is determined by the internal IDs of the objects, which isn't actually random but is arbitrary enough to nearly qualify. For example, if you have a stack of two different Open and Push objects and open a Shut object with them, which Open object gets used changes if you undo because the destroyed object has a different internal ID then.

アンドゥによるIDの変化この項目は個人的推測を含みます。

あるオブジェクトが変化したり破壊された後アンドゥすると、そのオブジェクトは元に戻りますが、これは再度オブジェクトを生成することで実現されているようです。

これにより同じオブジェクトのIDが変化します。

IDの変化が原因で、同じ操作の繰り返しでも結果が変化することがあります。

例えば、重なった複数のOPEN状態のオブジェクトが移動して、SHUT状態のオブジェクトを破壊するとき、どのOPEN状態のオブジェクトが破壊されるかは移動する順(即ちID)によって決まるため、破壊->アンドゥを繰り返すことで破壊されるOPEN状態のオブジェクトが変化することがあります。

無限ループBaba Is Youは無限ループ検知&防止のための仕組みを持ちます。

ルールが評価されるタイミングで一定回数(200回)ルールが評価された場合、無限ループと判断され、ルールの評価は中断され全てのオブジェクトが消失します。

例:

ここで、岩 = ROCK(エンティティ)とします。

ROCK IS WORD、岩 IS NOT WORDを同時に成立させようとすると、

ROCK IS WORDにより岩 IS NOT WORDが成立する

岩 IS NOT WORDによりROCK IS WORDが無効化される

ROCK IS WORDが無効化されたことで岩 IS NOT WORDが成立しなくなる

1へ戻るとなり、無限ループを起こします。無限ループには専用の演出と効果音が用意されています。

https://youtu.be/qGFCShlgIRc

再入力遅延とBPM再入力遅延の設定は14段階あり、右端で最も間隔が長く、左端で最も間隔が短い。

右から左へ順に1~14と番号を振り、4分音符 = 1拍とするとき、おおよそのBPMは:

BPM (ターン = 4分音符)BPM (ターン = 16分音符)1180.045.02189.447.43200.050.04211.752.95225.056.36240.160.07257.064.38276.669.29299.875.010327.281.811359.789.912399.9100.013450.1112.514514.2128.55注意:測定は筆者が手動で行ったものであり、誤差があります。

また、処理落ちなどの影響で、ターンの長さは常に均一であるとは限りません。

測定方法:移動キーを押したまま20~40秒程録音し、wavetoneでBPMを目測で合わせて測定した。

1~13はターン / 分を小数点第一位まで測定して左列に記し、それを4で割り小数点第二位を四捨五入したものを右列に記している。

14のみ逆。

レベル制作に使えそうなルール

主語LEVELでレベルとレベルアイコンを別々に指すルール

以下はレベルアイコンを指す方法。条件を反転すればレベルを指すことができる。

LONELY LEVEL

レベルアイコンに他のオブジェクトが重なっていないとき使える。

レベルはLONELYを常に満たさないことを利用する。

LEVEL NOT ON EMPTY

レベル中に無があれば使える。

レベルは、その中に無があるとき、ON EMPTYを満たすことと、レベルアイコンは無と同じマスに存在できず、ON EMPTYを絶対に満たさないことを利用する。

解説

LEVELはレベルとレベルアイコンの両方を指すため、通常はLEVELを主語にすると両方にルールが適用されてしまう。

条件判定はレベルとレベルアイコンのそれぞれに対して個別に行われる。そのため、「レベルは条件を満たすが、レベルアイコンは条件を満たさない」ような条件を付けることで、両者を別々に指すことが可能。

前置詞句内のLEVELでレベルではなくレベルアイコンを指すルール

A 前置詞 LEVEL AND LEVEL

Aが1つ以上のレベルアイコンについて条件を満たしていれば真になる。(2つのLEVELの内1つは、レベルが条件を満たす。)

2つ以上のレベルアイコンについて条件を作る時は、その分だけ「AND LEVEL」を増やせばいい。

解説

条件「前置詞 A」の判定時、Aの中から条件に当てはまる物が順に(おそらく内部IDの順に)検索される。

「前置詞 LEVEL」ではレベルが必ず初めに検索されるらしい。そのため、前置詞句の中でLEVELを1つだけ使うと、そのLEVELには常にレベルが当てはめられてしまい、レベルアイコンについての条件として利用できない。

ある前置詞句の条件を一度満たした物は、同じ条件判定の検索対象から除かれる。そのため、「前置詞 LEVEL AND LEVEL」のように前置詞句の中でLEVELを2つ以上使うと、1つ目のLEVELに対してはレベルが当てはめられ、2つ目以降のLEVELに対してはレベルアイコンを当てはめることが可能になり、レベルアイコンについての条件として利用できる。

何かが隣接しているか調べるルール

A FOLLOW B

A FACING B 動詞 補語

Bに隣接しているAに、A 動詞 補語が適用される。

注意点

隣接しているBの数はわからない。わかるのは隣接しているかしていないかだけ。

複数種類のタイルに同時に隣接しているか調べることはできない。例えば、AがBとCに同時に隣接しているかを調べることはできない。

(複数種類のタイルのいずれかに隣接しているか調べることはできる。例えば、AがBかCのどちらかに隣接しているか調べることはできる。)

解説

「A FOLLOW B」の時、Aは最も近いBに向く。隣接しているBがあるならそれに向く。

「A FACING B 動詞 補語」の時、隣接しているBに向いているAに、A 動詞 補語が適用される。

この2つのルールを組み合わせることで、Bに隣接しているAに、A 動詞 補語が適用されるルールを作れる。

奇妙な / バグっぽい挙動まとめ

EMPTY動詞Prefixな条件指定子前置詞形容詞その他

全てver.398で確認。

無は同じ移動ステップで1マスしか移動できない見出しの通り。

例えば、 IS MOVE AND MOVEは、 IS MOVEと同じ。

無同士の相互作用では、浮遊状態が無視されてるように見える見出しの通り。

ただし、これは条件のバグかもしれない。(条件を使わない限り、浮遊状態の違う無を作ることができない&無同士を相互作用させることができないため)

NOT GROUPは、が一度でも存在すると名詞を含む

見出しの通り。

ver.398では修正済み。

〇〇 IS ALLと、文字列で表された名詞が存在する時、本来ありえないオブジェクトが出現することがあるオブジェクトパレットが大量に埋まっていると起こるようだ。

例:

VC47-EMCG

(ver.398、editor beta 1.1.4、両方のwin版で確認)

例では、BABA IS ALL、M O O Nがあるとき、PHANTOMが生成される。

オブジェクトが出現するか否かと出現するオブジェクトの種類は、オブジェクトパレットに含まれるオブジェクトと文字列の名詞に依存する(例ではM Eでは出現しない)。

TEXT IS ALL、LEVEL IS ALL(レベルアイコン)で元のオブジェクトが消えるA IS ALLでは、Aは消えずに、そのマスにないALLに含まれるオブジェクトが生成される。

一方、TEXT IS ALL、LEVEL IS ALLでは、元のオブジェクトが消えて、そのマスにないALLに含まれるオブジェクトが生成される。

一貫していない。

IS ALLで生成されるエンティティは右を向く本来ならランダムな方向を向くべきなはず。

〇〇 EAT LEVELの挙動が謎〇〇に対応する物がタイルなら、レベルアイコンが存在するとき、レベルが破壊される。

〇〇がなくても発動する。SAFEで防ぐことはできる。

つまり、BABA EAT LEVEL、 EAT LEVEL、LEVEL EAT LEVELはいずれもこのバグを起こしうる。(LEVEL EAT LEVELではレベルアイコンが〇〇を満たす)

レベルとレベルアイコンがごっちゃになってそう。

LEVEL EAT Bで、レベルが、浮遊状態を無視してBを破壊するオブジェクト同士のEATでは浮遊状態を考慮されること、LEVEL IS DEFEATなどでレベルとタイルの浮遊状態が考慮されることを考えると、一貫していない。

n X A FEAR B、m X A FEAR Cの挙動が謎挙動は一貫していることが判明したが、やっぱりバグっぽいと思う。

〇〇 FEAR で、レベル境界は無だとみなされる見出しの通り。

FOLLOW は効果がない見出しの通り。

FOLLOW LEVELは効果がないレベルアイコンについての話。

FOLLOW B AND Cの挙動が謎予測できない。

PLAYの音高ずれてる。

X PLAY NOT 文字列はX PLAY 文字列を無効化するが、X PLAY NOT 文字列自体がA音を鳴らす見出しの通り。

グループがレベルアイコンを含み、GROUP IS NOT GROUPのとき、レベルが破壊される

NOT LONELY が常に真LONELY が常に真であることを考えると、その逆になるべきでは?

IDLE LEVEL IS AUTOのとき、ターンの自動経過を始めるには、2回連続で待機する必要がある

見出しの通り。

ver.398では修正済み。

NOT IDLE LEVEL IS AUTOのとき、レベル開始時に自動で1ターン経過する見出しの通り。

句内のALLは、まだ条件に含まれていない、ALLに含まれる単語を1つずつ追加する例えば、BABA ON ALLと、BABA ON ALL AND ALLは全く同じ効果。(1つ目のALLは全ての単語を追加し、2つ目のALLは何も追加しない。)

必ずALLに含まれる単語を1つずつ追加する方がわかりやすいと思うが、仕様だろうか?

句内のALLは、名詞または名詞LEVELがレベル中に一度でも存在したなら、それを含む見出しの通り。

ver.398時点では、を含まないように修正されているが、LEVELはまだ残っている。

一部の限定っぽい?ONでは確認できないが、WITHOUTでは確認できた。

(BABA ON ALL IS BEST, L E V E Lでは起こらないが、WITHOUTに変えると起きる)

LEVELが主語の時はONでも起こる。

A FACING (AND )...のとき、Aが無に向いているか否かだけが判定に使われ、無の数は考慮されないA NEAR (AND )...のとき、Aの周囲にある無の数は考慮される。

そのことを考えると、一貫していないように思う。

〇〇 ABOVE NOT の挙動が謎最下段以外のマスでは条件を満たす。

NOT ON が常に偽 ON が常に偽であることを考えると、その逆になるべきでは?

レベルのレベルについての条件、LEVEL NEAR LEVELが常に真ver.398

小条件の数によらず常に真。

NOT NEARも同様に常に偽。

LEVEL ON LEVELが常に偽であることを考えると変(というか以前のバージョンでは常に偽だった)。

レベルのレベルアイコンについての条件、LEVEL NEAR LEVELが常に偽LEVEL NEAR BABAでは、レベルはBABAを条件判定の対象に取る。(「見る」ことができる)

LEVEL NEAR LEVELでは、レベルはレベルアイコンを「見る」ことができない。

一貫していないように思う。

参考に、LEVEL NOT NEAR LEVELでは、レベルはレベルアイコンを「見る」ことができる。

ver.398では上のバグにより確認する方法がない。

レベルのレベルについての条件、LEVEL WITHOUT LEVELが常に偽BABA WITHOUT BABAは、BABAがレベル内に1つだけあるなら真となる。

レベルが1つだけある物と考えれば、LEVEL WITHOUT LEVELも同様に真となるべきだが、そうではない。

「句の条件では、主語に対応する物は自身を判定の対象に取らない」という原則を無視している。

レベルの無についての条件、LEVEL ABOVE が常に偽参考に、BELOWでは、無がレベル中にあれば真。

レベルのレベルアイコンについての条件、LEVEL ABOVE LEVELが常に偽LEVEL ABOVE BABAでは、レベルはBABAを「見る」ことができる。

LEVEL ABOVE LEVELでは、レベルはレベルアイコンを「見る」ことができない。

一貫していないように思う。

参考に、LEVEL NOT ABOVE LEVELでは、レベルはレベルアイコンを「見る」ことができる。

同じルールでも、FEELINGの条件判定の結果が変わることがある詳細はの補足のコラム参照。

OPEN & SHUTの重なりによる破壊が、OPENとSHUTで対称でない重なっているOPENer、SHUTerの数に関わらず、1つのOPENerと全てのSHUTerが破壊される。

PULLで引っ張られた無は、移動先のSWAPerを入れ替えない見出しの通り。

無がSWAP状態のときは入れ替える。

STILLerは、PUSHまたはPULLで移動したオブジェクトによって、SWAPで入れ替わる見出しの通り。

STILLerがSWAP状態の場合でも、PUSHerまたはPULLerがSWAP状態の場合でも当てはまる。

LOCKEDは、MOVEとCHILLの反転後の移動を制限しない

見出しの通り。

ver.398では修正済み。

LOCKEDは、オブジェクトがNUDGEsに対応する方向を向いている時のみ、移動を制限する

見出しの通り。

ver.398では修正済み。

〇〇 IS REVERTは、有効でない(条件を満たさない、〇〇 IS NOT REVERTがある)ときも変化を無効化するオブジェクト、無、レベル、全てに当てはまる。

A IS REVERTは、A IS ALLで出現したオブジェクトを元のタイルに戻さない。見出しの通り。

TEXT IS ALLとLEVEL IS ALL(レベルアイコン)も同じく。

A IS ALLが実際にはA MAKE ALLのような働きをしているためだと思われる。

レベル開始直後の短時間、SELECTによる移動は無視される見出しの通り。

リスタートも同じだが、より時間が長くなる。

PATHオブジェクトが出現するまでに時間がかかるとかだろうか?

ボーナスを仮取得したターンをアンドゥすると、仮取得したボーナスが全て削除される見出しの通り。

これはBONUSerが2つ以上あるとき問題になる。

IS YOU AND WIN AND BONUSのとき、レベルをクリアしない見出しの通り。

オブジェクトだとクリアできる。

IS CHILLのとき、無の向きが指定されているとその向きに移動する見出しの通り。

オブジェクトだと向きが指定されていてもランダム。

IS LOCKEDsのとき、MOVE、CHILL、AUTOによる移動が制限されない見出しの通り。

オブジェクトだといずれも制限される。

ver.398ではNUDGEsは修正済み。

IS LOCKEDsでは、 IS PULLの移動が逆方向だとみなされている例えば、 IS LOCKED (UP)、 IS PULLのとき、無を上方向に引っ張れるが、下方向には引っ張れない。

LEVEL IS YOU AND WIN AND BONUSのとき、レベルをクリアするが、ボーナスは獲得できない見出しの通り。

LEVEL IS WIN AND BONUSのとき、レベルにYOU状態のタイルが重なるとクリアするが、ボーナスは獲得できない見出しの通り。

レベルがTURNs状態のとき、レベルの実際の向きと、見た目上の向きがずれる見出しの通り。

詳細は対応するコラム参照。

レベルがSAFE状態でも、BONUS状態のレベルにYOUerが重なったときの破壊は防げない見出しの通り。

BONUS状態のレベルがYOU状態でもあるときの破壊、BONUS状態のレベルにYOU状態の無が重なったときの破壊は防ぐ。

レベルがSTILL状態のとき、YOUによる移動を制限されるのでなく、そもそも移動しない見出しの通り。

オブジェクトでは、位置は変わらないが移動するので、向きが変化する。

一方レベルでは、移動そのものが発生しないので、向きが変わらない。

レベルがSTILL状態のとき、PUSHとPULLによる移動が制限されない見出しの通り。

オブジェクトだといずれも制限される。

レベルがLOCKEDs状態のとき、YOUによる移動を制限されるのでなく、そもそも移動しない見出しの通り。

STILLと同じ。

レベルがLOCKEDs状態のとき、PUSHとPULLによる移動が制限されない見出しの通り。

STILLと同じ。

レベルがYOU2状態のとき、YOU状態のタイルは2番目の入力で移動しなくならない見出しの通り。

YOU2状態のタイルが存在するとき、YOU状態のタイルは2番目の入力で移動しなくなるが、YOU2状態のレベルではそうならない。

ZOOM MODE変更時にレベルの位置が戻る見出しの通り。

個人的メモ


Baba Is You (WIP) image 3355

文字から作れる単語を検索できるサイト(Baba Search)https://twitter.com/3_3_nk/status/1361864899815567360?s=20

https://mmnk-github.github.io/baba-search/Pages/main.html

EBNFで記述したルールの文法nots = { NOT }; noun = nots, NOUN; nouns = noun, { AND, noun }; complement = nots, ( NOUN | PROPERTY ); complements = complement, { AND, complement }; letter_atog = nots, ( A | B | C | D | E | F | G ); letters_atog = letter_atog, { AND, letter_atog }; direction = nots, ( UP | DOWN | LEFT | RIGHT ); NorD = ( noun | direction ); NorDs = NorD { AND, NorD }; has_verb = HAS | MAKE | EAT | FEAR | FOLLOW; is_predicate = IS, complements; has_predicate = has_verb, nouns; play_predicate = PLAY, letters_atog; predicate = ( is_predicate | has_predicate | play_predicate); predicates = predicate, { AND, predicate }; preposition = nots, ( ON | NEAR | FACING ); prepositional phrase = preposition, nouns | nots, FACING, NorDs; prepositional phrase_mp = preposition, noun, AND, noun, { AND, noun } | nots, FACING, NorD, AND, NorD, { AND, NorD }; prepositional phrases = { prepositional phrase_mp }, [], []; subject = [], nouns, []; expression = subject, predicate;

IS ALLとMAKE ALL A IS ALLは特殊で、Aを置き換えることなく、そのマスに存在しない全てのエンティティを出現させる。

この振る舞いはA IS BのルールではなくA MAKE Bのルールと同じと言えるが、A IS ALLはA MAKE ALLと処理順が違うために同じ結果にならないことがある。

BABA IS YOU、BABA IS RIGHT、KEKEがあるとき:

加えてBABA IS ALLがあるときにBABAが下に移動するとKEKEは下向きに生成される。

加えてBABA MAKE ALLがあるときにBABAが下に移動するとKEKEは右向きに生成される。

おそらく移動、A IS ALL、向きの適用、A MAKE ALLの順に処理されている。 A IS ALLとA MAKE ALLではA IS ALLの方が優先順位が高い(処理順が早い)。また別の例

ver.HXの話なので今はどうだか…

移動と向きの変化移動したオブジェクトは移動した方向を向く。

方向を指定する形容詞で向きを決められている場合でも、移動による向きの変化は発生する。

形容詞のエフェクトの重複一部の形容詞はタイルやレベルにエフェクトを発生させる。

そのような形容詞を同じタイルやレベルに複数適用すると、その分だけエフェクトが発生する。

βの処理順(調査中 / 放棄)ver.330ぐらいの処理順。βでなくなるまではもうやらない

YOU / YOU2

MOVE / CHILL

NUDGE

FEAR

SHIFT

DIRs

SELECT

TURNs

TELE

FALLs

MORE

SINK

WEAK

HOT & MELT

DEFEAT

SHUT & OPEN

EAT

WIN & BONUS & END

変化が起こるタイミングは複数存在する。

例えば、BABA IS YOU、BABA IS TURN RIGHT、BABA FACING RIGHT IS MEだと、BABAが上へ進んでも、右へ進んでも変化する。どちらもMEは右向き。

これは、上へ進んだ時はTURN RIGHTの後に変化しており、右へ進んだ時はTURN RIGHTの前に変化していることを示している。

EX1.以下の効果は、各移動に付随する。

PUSH、PULL自体も移動である。

押された時、SHUT / OPEN、EATは最も近い物同士で反応する。

押された時、WEAKは最も遠い物が反応する。

SHUT & OPEN

EAT

SWAP

PUSH

PULL

WEAK(移動失敗時)

EX2.方向を指定する形容詞

RIGHT

UP

LEFT

DOWN

(実際の処理順は不明だが、優先順位がDLURなので処理順はおそらくこの逆)

個人的メモ - バグ


Baba Is You (WIP) image 3409

マイナー 非バグ

クレジットに余計な空白がある中文 (简体 )のように、「简体」の次に空白がある。

非BIYフォントのクレジットで起こる。

credit.txtを改変して確かめた所、意図的に入れているらしい。BIYフォントだと「体」と「)」が重なってしまう。

バグ(フリーズ)

セーブスロット選択時に決定キーを高速で連打すると、ソフトロックする本編の方のみ。カスタムレベルの方のスロット選択では発生しなかった。

移動やレベル選択もできず、ポーズ画面も開かないので、ゲームをリセットするか、再起動するしかない。

Ctrl + F2によるリセットは有効。

ver.394で確認。

修正済み UI

一部の言語で、無限ループ演出がUNDO後も残ってしまう日本語、韓国語、タイ語、ベトナム語。(日本語、KOREAN、THAI、TIẾNG VIỆT)

通常はUNDOすると演出が消える。

ver.253で確認。

ver.259で修正済み。

修正済み UI

一部の言語で、セーブデータを削除する時の表示がおかしい日本語、韓国語、タイ語、ベトナム語。(日本語、KOREAN、THAI、TIẾNG VIỆT)

ver.259で確認。

ver.272で修正済み。

修正済み バグ 本編で再現不可

CURSOR IS ALLがオブジェクトを生成しないver.HXで確認。

ver.318で確認。

ver.319で修正済み。

修正済み クラッシュ 本編で再現不可

FALLとWEAKFALL状態のオブジェクトがWEAK状態のオブジェクトに重なるように落ちた場合ゲームがクラッシュする。

ver.253で修正済み。

修正済み エラー 本編で再現不可

LEVEL IS PULLでレベルを引いた後、LEVEL IS MOVEまたはLEVEL IS SHIFTする時のエラーLEVEL IS MOVEのエラー:

Lua error: Data/blocks.lua:1984: attempt to index a nil value (local 'drs') Please report this to the developers. LEVEL IS SHIFTのエラー:

Lua error: Data/movement.lua:406: attempt to index a nil value (local 'ndrs') Please report this to the developers. ver.315で確認。

ver.317で修正済み。

修正済み エラー 本編で再現不可

WEAK & MOVE & PUSH状態のオブジェクトが壁に移動した後、アンドゥする時のエラーLua error: Data/undo.lua:64: attempt to index a nil value (local 'unit') Please report this to the developers. ver.259で確認。

ver.317で確認。

ver.318で修正済み。

修正済み エラー 本編で再現不可

レベル開始時にTEXTが存在している時のA IS ALLLuaエラーが出る。

レベル開始時にTEXTが存在していると、A IS ALLによって全てが生成される時エラーが出る。

AはTEXT以外。

Lua error: Data/tools.lua:581: bad argument #1 to 'MF_emptycreate' (string expected, got nil) Please report this to the developers. ver.253で確認。

ver.259で確認。

ver.318で修正済み。

修正済み エラー 本編で再現不可 未使用ルール

EMPTY EAT ALuaエラーが出る。

レベルのサイズ、ルールの位置、Aの種類は影響なし。

ver.HX(old-editor)

Lua error: Data/blocks.lua:907: attempt to index a number value (local 'unit') Please report this to the developers. ver.253

ver.259

Lua error: Data/blocks.lua:1007: attempt to index a number value (local 'unit') Please report this to the developers. ver.318で修正済み。

修正済み エラー 本編で再現不可 未使用ルール

EMPTY FEAR ALuaエラーが出る。

レベルのサイズ、ルールの位置、Aの種類は影響なし。

ver.HX(old-editor)

Lua error: Data/blocks.lua:1844: attempt to index a nil value (local 'unit') Please report this to the developers. ver.253

ver.259

Lua error: Data/blocks.lua:1944: attempt to index a nil value (local 'unit') Please report this to the developers. ver.318

Lua error: Data/blocks.lua:2269: attempt to index a nil value (local 'unit') Please report this to the developers. ver.387で修正済みを確認。

修正済み バグ 本編で再現不可

EMPTY IS EMPTY、EMPTY IS NOT ALLがEMPTY IS ALLを無効化しないver.HXで確認。

ver.318で確認。

ver.387で修正済みを確認。

修正済み バグ 本編で再現不可

ISでない動詞について、A 動詞 NOT ALLがA 動詞 ALLを無効化しないver.HXで確認。

ver.318で確認。

ver.387で修正済みを確認。

修正済み エラー 本編で再現不可

LEVEL IS ALL2種類以上の通常の名詞かTEXT、またはエンティティが存在する時エラーが出る。

・正確には2種類以上の名前がALLに含まれている状態でLEVEL IS ALLが有効な時。

なので、BABA一種の時に文字でM Eを作りMEをALLに含めるとエラーが出る。

また、TEXTがALLに含まれるのはレベル開始時にTEXTが存在している時だけのようで、後から文字でT E X Tを作ってもエラーは出ない。

Lua error: Data/conditions.lua:44: bad argument #1 to 'sub' (string expected, got nil) Please report this to the developers. ver.253で確認。

ver.259で確認。

ver.387で修正済みを確認。

修正済み マイナー

一部の言語で、クレジット後にタイトルへ遷移しない日本語、韓国語、タイ語、ベトナム語。(日本語、KOREAN、THAI、TIẾNG VIỆT)

タイトル画面のCREDITを見終わると自動でタイトル画面に戻るはずだが、上記言語では操作するまで戻らない。

ver.253で確認。

ver.259で確認。

ver.274で確認。

ver.387で修正済みを確認。

マイナー UI

一部の言語で、ターン経過するとレベル名がちらつく日本語、韓国語、タイ語、ベトナム語。(日本語、KOREAN、THAI、TIẾNG VIỆT)

ver.253で確認。

ver.259で確認。

ver.274で確認。

ver.387で確認。

マイナー UI

一部の言語で、無限ループ演出がポーズ画面のメニューより前に表示される日本語、韓国語、タイ語、ベトナム語。(日本語、KOREAN、THAI、TIẾNG VIỆT)

ver.259で確認。

ver.272で確認。

ver.387で文字が手前に表示されることを確認。

アーカイブ - 前置詞句の特殊な接続

このセクションの情報はver.HXに基づいて作られています。

現行版には当てはまらない可能性があります。

特定の形で前置詞句同士を接続することができます。

次のように表記を定めるとき、

(ルールの構成要素)

= 0または1つのルールの構成要素

(ルールの構成要素)...

= 0以上連続するルールの構成要素

NorD

= 名詞 または 方向を指定する形容詞

PP

= 前置詞 名詞 (AND 名詞)... または FACING NorD (AND NorD)...

前置詞句 PPM

= 前置詞 名詞 AND 名詞 (AND 名詞)... または FACING NorD AND NorD (AND NorD)...

複数要素の前置詞句

PPMはPPに含まれます。

A 前置詞句 動詞 補語

この文の前置詞句を以下の形に置き換えできます。

PP

通常の前置詞句。 (AND) PP

前置詞句が1つなら、その前にANDを置いてもよい。

このANDは単に無視されます。 PP (AND PP)

最後にAND 前置詞句を置いてもよい。 PPM (PPM)... (PP) (AND PP)

最初に来るのが複数要素の前置詞句なら、その後にいくつでも複数要素の前置詞句を置いてもよい。

その後に前置詞句を1つ置いてもよい。

最後にAND 前置詞句を置いてもよい。

例えば、以下のルールは全て有効なルールです。

BABA ON KEKE IS YOU

PP

通常の前置詞句です。 BABA AND ON KEKE IS YOU

AND PP

通常の前置詞句と同じように解釈されます。 BABA ON KEKE AND NEAR ME IS YOU

PP AND PP BABA ON KEKE AND FLAG NEAR ME IS YOU

PPM PP BABA ON KEKE AND FLAG NEAR ME AND GHOST IS YOU

PPM PPM BABA ON KEKE AND FLAG NEAR ME AND GHOST FACING SKULL IS YOU

PPM PPM PP BABA ON KEKE AND FLAG NEAR ME AND GHOST AND ON ROCK IS YOU

PPM PPM AND PP BABA ON KEKE AND FLAG NEAR ME AND GHOST FACING SKULL AND ON ROCK IS YOU

PPM PPM PP AND PP

Source: https://steamcommunity.com/sharedfiles/filedetails/?id=1861849340					

More Baba Is You guilds