「仕様・バグ関連」の編集履歴(バックアップ)一覧に戻る

仕様・バグ関連 - (2020/12/09 (水) 12:44:35) の編集履歴(バックアップ)




バグ


※ バグ情報を書く際にはバージョンも併記してください。


LEVEL IS ALL

ver.320で確認。
2種類以上の名詞またはオブジェクトが存在しているとエラー。
TEXT以外の特殊な名詞は反応しない。


文法(beta版)

よりわかりやすく修正できる方いましたらお願いします

記法

  • {A}/{B}…AまたはBが入る
  • (A)…Aが0または1回入る
  • (A)+…Aが0回以上入る

語句のグループ分け(括弧内は例)

  • noun…名詞(BABA)
  • verb…動詞(IS)
    • vi…後ろに名詞/形容詞を伴う動詞(ISのみ)
    • vh…後ろに名詞を伴う動詞(HAS)
  • adj…形容詞(YOU)
    • dir…方向を表す形容詞(UP)
  • prep…前置詞(ON)
    • pface…後ろに名詞/方向を伴う前置詞(FACINGのみ)
    • pfeel…後ろに形容詞を伴う前置詞(FEELINGのみ)
  • adv…副詞(LONELY)

AND,NOTの文法

  • n_***
    • (NOT)+ ***
  • ***_s
    • n_*** (AND n_***)+
  • nounORadj
    • {noun}/{adj}
  • nounORdir
    • {noun}/{dir}
  • verbnoun
    • {vi nounORadj_s}/{vh noun_s}
  • verbnoun_s
    • verbnoun (AND verbnoun)+
  • prepnoun
    • prep noun_s
    • pface nounORdir_s
    • pfeel adj_s

解釈可能な構文

  • (adv_s) noun_s (prepnoun_s) verbnoun_s


仕様

暗黙のルール

Baba Is Youには、明示されていないが常に成立しているルール(基本ルール)が3つ存在する。
  • TEXT IS PUSH
  • LEVEL IS STOP
  • CURSOR IS SELECT

HIDEについて

何のルールも存在しないときはポーズ画面の「RETURN TO MENU」より下の部分に何も表示されないが、HIDEで隠れている場合は「RULES:」と表示されている
一部のルールが隠れている場合、そのルールのみが非表示となる

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

同種のオブジェクトは同じマスに6つまでしか存在できない(ただしレベルオブジェクトを除く)。
それ以上重ねようとすると消える。これは破壊ではないのでHASは反応しない。

テキストを重ねた時の処理

LONELY/NOT/ONなどの語句にテキストを重ねると、その文は多重解釈される。正確には重なった部分までを無効化して再解釈される。正直よくわからない。
  • 例1. 「BABA IS MOVE AND YOU/PUSH」=「BABA IS MOVE AND YOU」+「BABA IS MOVE AND PUSH」
  • 例2. 「LONELY/IS BABA IS MOVE」=「LONELY BABA IS MOVE」+「(IS) BABA IS MOVE」
  • 例3. 「BABA NEAR/IS KEKE IS PUSH」=「BABA NEAR KEKE IS PUSH」+「KEKE IS PUSH」
  • 例4. 「BABA IS MOVE AND/IS YOU/IS」=「BABA IS MOVE AND YOU」+「BABA IS MOVE (AND IS)」+「BABA IS MOVE (IS)」
  • 例5. 「BABA ON KEKE/IS IS MOVE」=「BABA ON KEKE IS MOVE」+「KEKE IS MOVE」
    • KEKE/ISを、KEKE/ONやKEKE/ANDにしても同様
    • BABA ON ISを無効化して再評価している?
  • 例6. 「BABA AND KEKE/IS IS FLAG」=「BABA AND KEKE IS FLAG」
    • BABA ANDを、BABA ISにしても同様
    • 例5.と違って再評価されない。なんで?(どちらかというと例5.がおかしい?)

内部ID

ステージ内の全てのオブジェクト(テキスト含む)は固有の内部IDを持っている。
これは、オブジェクトが発生、変化したとき(UNDOによって発生した場合含む)に付与(更新)される。
内部IDは、以下のような処理に関係する。
  • 2方向からPUSHされた場合、内部IDが大きいほうの処理を優先(上書き)する
  • 向きの異なる2つのSHIFTオブジェクトが重なっている場合、内部IDが小さいほうの処理を優先する(向きが変化するからだと思われる)
  • 3つのSHIFTが重なっていたり、移動先にPUSHオブジェクトがあったりすると上記の限りでない

レベルの境界

レベルの境界には、いかなるルールの効果も受けないSTOPオブジェクトが配置されている。ver350以降、このオブジェクト上に配置された全てのオブジェクトは、いかなるルールも無効化して破壊されるようになった。(FLOAT, SAFEを無効化。たぶんHASも無効)

INFINITE LOOP

以下の条件を満たすとき、特殊演出が発生する
  • 同じ構文が200回解析される(WORD)
  • 同じ条件が80回解析される(FEELING)
  • オブジェクトが200回落ちる(FALL)
  • グループメンバーが400回更新される(GROUP)
  • 連続するPUSH等の処理が10000通りになる
  • CRASHオブジェクトが存在する
具体的には、以下のようなルールがある
  • ROCK IS WORDかつrock IS NOT WORD
    • 本編で可能
  • NOT GROUP IS GROUP
  • BABA NEAR GROUP IS GROUP、KEKE IS GROUP
    • 前者は、「BABAが、GROUPに属する全ての種類のオブジェクトの近くにいるとき、GROUPに含まれる」という意味になる
  • BABA FEELING YOU IS NOT YOU
  • BABA IS CRASH(内部的)
無限ループになりそうだけどならない例
  • BABA MIMIC KEKE、KEKE IS BROKEN
  • ROCK IS WORD、rock IS BROKEN

TOO COMPLEX

テキストの組み合わせが約1000通りに達すると特殊演出が発生する。
例えば、6個重ねた名詞のテキストを6個連続で並べると発生する。

処理順

おおざっぱには
  1. 移動処理(+OPEN/SHUT, WEAK)の解釈
  2. 移動(+OPEN/SHUT, WEAKの判定)
  3. 変化処理の解釈
  4. 変化
  5. その他の処理の解釈
  6. 消滅
  7. その他の形容詞
の順(推測です)

移動

  1. YOU
  2. CHILLの向き適用
  3. MOVE = CHILL = AUTO
  4. NUDGE(RIGHT > UP > LEFT > DOWN)
  5. FEAR
  6. SHIFTの移動処理
  7. (変化処理の解釈)
  8. SHIFTの向き適用(そのターンSHIFTしていない場合)
  9. RIGHT > UP > LEFT > DOWN
  10. SELECT
  11. TURN RIGHT = TURN LEFT
  12. TELE
  13. (REVERT・変化・矛盾・BACK)
  14. FALL(RIGHT > UP > LEFT > DOWN)
  • ver.HXではFEARとMOVEの優先順位が逆になっている。そのため、これを利用したカスタムレベルは最新版ではクリアできない場合がある。
  • PUSH、PULL、SWAPはそれぞれの移動において追随する
  • 上記の移動番号が同じ移動で、同時に同じマスに2つの異なるオブジェクトが侵入した場合、その2つのオブジェクトが固体であるかどうかに関わらず重なる
    • PUSH、PULLによる移動も同じ番号扱いで処理される
    • NUDGE、FALLは例外
  • SWAPの処理は、進入禁止を無効化する
  • 複数の異なるTELEオブジェクトが同一マスに重なっているとき、そのマスに乗ったオブジェクトは、ポーズ画面で先に書かれている側のオブジェクトによってTELEされる。
  • BACKによる移動、FOLLOWによる向きの適用は調査中

解釈

WORD、MIMIC、BROKEN、FEELINGが絡み合うため調査中
  • FEELINGはルールの解釈される順番に依存するらしい(たぶんそのうち変更される)

消滅

  1. 移動によるOPEN / SHUT・EAT, 移動失敗時のWEAK
  2. REVERT・変化・矛盾・BACK
  3. FALLによるOPEN / SHUT
  4. DONE
  5. (MORE)
  6. WEAK・SINK
  7. HOT / MELT
  8. YOU / DEFEAT
  9. 重なりによるOPEN / SHUT
  10. 重なりによるEAT
  11. MAKE
  12. WIN・BONUS
  • 移動によるOPEN/SHUT, EAT, WEAKは各移動の度に判定されるが、それによって新たに生成された実体はそのターンFALL以降の影響を受けない
  • ROCK IS ROCKがある状態で、矛盾とROCK IS FLAGを同時成立させると、岩は旗に変化する
  • 変化処理は1ターンに1度しか行われず、ISによる変化以外に増殖もしない。同時に適用した場合、REVERT > 変化・矛盾 > BACKの順に優先される。
  • WEAKとSINKは同時に処理される(バグ?)
  • 移動によるEATはPUSH, STOPより優先される
  • 重なりによるEATは、HASによる生成場所は移動によるEATと同様移動する直前の位置である

その他の形容詞

  1. 色、エフェクトの適用
  2. その他の適用
優先順位が関係しそうな、BROKEN、MIMIC、WITHOUT、FEELING、POWER/POWERED、WORDに関しては調査中