シレン用語集 キャラと行動編
シレンの用語を個人的にどのような意味で使用しているかを整理しておきます。
裏CHUNやシレンwikiやニコ生での用法に沿っているものが多いですが、独自に言っているものもあります。 必ずしもシレンプレイヤーの間でコンセンサスがあるわけではありません。
また、この用法に従うが正しいという規範的な意図はありません。あくまで個人的な使い方を明らかにするものです。
- キャラ
- モンスター / 敵
- NPC
- キャラ番号
- 種族 / 系統
- キャラコード / キャラID / 種族ID
- (敵・NPCの) 行動
- 行動順
- 反撃キャラ
- ごめんなすって
- 移動・攻撃対象決定
- 移動しようとする
- 移動 / 歩く
- 通常移動
- 視界内にいる
- 目的地
- 左折の法則による移動
- 目的地に向かう移動
- 待機ターン / 詰まりターン
- ふらふら移動
- 固有の移動・攻撃対象決定
- 隣接判定 入室判定 退室判定
- 攻撃対象
- 追加攻撃回数
- 攻撃実行
- 固有の攻撃実行
- 認識する
- 見えている
- 見られる
キャラ
1フロアに最大20体存在する。
モンスター / 敵
$7E8835 の値が0であるキャラ。
シレンが正面にいるときAボタンを押すと直接攻撃する。
NPC
$7E8835 の値が0以外のキャラ。
シレンが正面にいるときAボタンを押すと会話が発生する。
魔蝕虫や番犬、盗賊番、敵対状態の店主はNPCではなく敵に含まれる(シレンwikiの定義とは異なる)。
キャラ番号
フロアに存在するキャラを指定するための数値。
シレンは常に19で、他のキャラは0から18までのいずれか。
新しく作られたキャラには、空いている番号のうち最も大きいものが割り当てられる。
種族 / 系統
レベルを除いたキャラの種類。マムル系、ドラゴン系など。
ボウヤーとコドモ戦車とオヤジ戦車は別の系統になる。
キャラコード / キャラID / 種族ID
種族を指定するための数値。内容は 怪物リストを参照。
(敵・NPCの) 行動
シレン以外のキャラの移動・攻撃対象決定と攻撃実行を合わせた処理。
ワナの発動は普通含まれない。
行動順
シレン以外のキャラの移動・攻撃対象決定、ワナ発動、攻撃実行が行われる順番。シレンに対しては定義されない。
キャラ番号が大きいほど行動順が早くなる。
反撃や身代わりが関係すると行動順とは異なる順番で移動や攻撃を行う。この場合、行動順が早くなるとは言わない。
反撃キャラ
シレンが直接攻撃すると、対象となったキャラは行動順に関わらず最初に移動・攻撃対象決定と攻撃実行(高々1回)を行う。このキャラを反撃キャラと呼ぶ。
反撃キャラは最大でも1体のみ。妖刀かまいたちで攻撃した場合は最初にダメージを受けた敵(右前→正面→左前の順で優先)が反撃キャラになる。
ごめんなすって
シレンがNPCと位置を入れ替わること。このターン入れ替わったNPCは行動できない。
NPCのキャラ番号は反撃キャラと同じメモリアドレス $7E897F に保存される。その後保存されたキャラがNPCかどうかで行動しないか反撃するかを判定する。そのためシレンが変身してNPCに攻撃した場合、そのNPCは行動しなくなる。
移動・攻撃対象決定
シレン以外のキャラに対して実行される処理の一つ。ターンの順番を参照。 キャラの移動処理および、攻撃対象・(種族により)特技を使うか・追加攻撃回数の決定を行う。
キャラが攻撃するためには、ここで攻撃対象が設定される必要がある。
単に移動とも言うこともある。
移動しようとする
移動可能なマスを求め、そこに移動する処理。移動可能なマスが無い場合は移動しない。 移動しなくても目的地や方向が設定される場合がある。
単に移動すると言うこともある。
移動 / 歩く
キャラの方向・座標を設定する処理。
通常移動
移動・攻撃対象決定の一部で、特技を持たないキャラや封印状態のキャラに対して行われる処理。 倍速や状態異常の判定はこの前に行われるため、通常移動には含まない。
ただし敵移動先・攻撃対象決定メモなどではさらに一部分を通常移動としている(反省)。
視界内にいる
シレンと他のキャラの位置関係によって決まる関係。敵の移動や特技の使用判定などに影響する。
シレンがあるキャラCの視界内にいるのは次のいずれかのとき。
- シレンとCの距離が1 (シレンがCの周り1マスにいる)
- シレンとCが同じ部屋かその部屋の入口にいる
- シレンが部屋番号0の部屋にいて、Cが壁または隠し通路にいる(初期配置は除く)
- シレンが部屋番号1の部屋にいて、Cが隠し通路の入口にいる
- シレンが部屋番号2の部屋にいて、Cが隠し部屋にいる(初期配置は除く)
キグニ族の移動・攻撃対象決定では、シレンの座標・足元の地形をキグニ族または向かっていくキャラのものに置き換えて処理する。旅仲間についても同様。
目的地
キャラごとに保存されたマスの座標。目的地を持たないこともある。主にどこに向かって移動するかに影響する。モンスターの移動と目的地を参照。
左折の法則による移動
キャラの向いた方向から 正面→左前→右前→左→右 の順で移動可能なマスに移動しようとする処理。
目的地を持たないキャラが通路で行う基本的な移動。
目的地に向かう移動
目的地に向かう方向から 正面→左前→右前 または 正面→右前→左前 の順で移動可能なマスに移動しようとする処理。
移動できないときキャラの方向が設定される場合がある。Twitterを参照。
待機ターン / 詰まりターン
主にキャラが連続して移動できなかった回数を数える数値。キャラの生成時は0ではなく1になる。
通常移動では、待機ターンが5のとき移動できないとふらふら移動する。敵移動先・攻撃対象決定メモを参照。
おびえ時の移動では意味が異なり、偶数なら右伝い、奇数なら左伝いのフラグとして用いられる。
ふらふら移動
ランダムな方向を向いて左折の法則で移動しようとすること。
エーテルデビルは1/2ずつの確率で通常移動かふらふら移動する。
パコレプキンの移動はふらふら移動とは異なる。
固有の移動・攻撃対象決定
移動・攻撃対象決定は種族ごとに実行される処理が定義されている。この定義された処理を固有の移動・攻撃対象決定という。
主に通常移動と異なる処理について用いる。通常移動するキャラについて、固有の移動・攻撃対象決定を持たないと言うこともある。
例:
ナイフゲータ系の追加攻撃回数は固有の移動・攻撃対象決定で設定される。
隣接判定 入室判定 退室判定
シレンの位置や部屋の出入りによってキャラの目的地・方向の設定を行う処理。モンスターの移動と目的地を参照。
入室判定・退室判定はシレンの入室・退室に対して行われるもので、敵の入室・退室に関係するものでないことに注意。
3つをまとめて隣接入退室判定とも言う。
攻撃対象
キャラが攻撃ないし特技を実行しようとしている対象。キャラ番号によって表現される。
移動・攻撃対象決定時に設定され、そのターンに攻撃実行することによって消費される。 ただし鈍足ダッシュバグなどによって次のターンに持ち越されることもある。
追加攻撃回数
シレン以外のキャラが連続攻撃を行うための数値。倍速キャラやサーベルゲータの移動・攻撃対象決定時には1が、ブレイドゲータは2が設定される可能性がある。
通常攻撃およびオヤジ戦車系固有の攻撃実行時、追加攻撃回数が1以上なら攻撃対象を再設定し追加攻撃回数を-1することによって連続攻撃が実現されている。 他の特技では攻撃対象が再設定されない。そのため倍速のドラゴンが連続で炎を吐くといったことはない。
攻撃実行
通常攻撃や特技の発動を行う処理。攻撃対象を持つキャラに対して行われる。攻撃対象として設定されたキャラ番号を持つキャラが存在しない場合は実行されない。ターンの順番を参照。
固有の攻撃実行
攻撃実行は種族ごとに実行される処理が定義されている。この定義された処理を固有の攻撃実行という。主に通常攻撃と異なる処理について用いる。
認識する
基本的に使用しない。
といった様々な意味で使われることが多く、曖昧になってしまうので避ける。
見えている
「認識する」と同様基本的に使用しない。
見られる
キャラの移動や隣接入退室判定によってシレンの位置に目的地が設定されること。
これも曖昧になってしまいがちなので注意が必要な語。
レベル変化時のリセット処理
@ffff_furai: 通常のレベル変動処理では速度・倍速一回攻撃かどうか・所持アイテム・種族は変化しない。そのため、レベル変動時にこれらが変わる敵については特別な処理が必要になる。その処理を種族リセット処理と呼ぶことにする。
@ffff_furai: 種族リセット処理では敵の初期化が行われ、その際に速度や所持アイテムは生成時のものになる。また、混乱(身代わり)以外の状態異常は解除される。
@ffff_furai: 種族リセット処理の対象となる敵は、レベル変化後の種族・レベルによって決まる。これに死の使い・地獄の使者は含まれるが死神は含まれない。 そのため死の使いに天使の種を投げ当てると倍速一回攻撃の死神ができる。
@ffff_furai: 対象となる敵は1レベルの変化を前提して決められていると推測される。地獄の使者は死神からのLvダウンで速度などは変わらないが、死の使いからのLvアップでは一回攻撃でなくなるため対象となる。だが死神は地獄の使者からのLvアップでこれらの状態の再設定の必要が無いため対象とはならない。
@ffff_furai: 種族が変化する敵はダミーのLv0?Lv3が存在する。例えばコドモ戦車がLvダウンするとコドモ戦車系Lv0になり、コドモ戦車系Lv0は種族リセット処理によってクロスボウヤーとなる。そのためボウヤーからのLvアップによって種族リセットはされないことに注意したい。
泥棒時のモンスター自然発生
@ffff_furai: 泥棒状態で発生する敵の種類はターンカウンタの0x10のビットによって決まる。すなわち、ターンカウンタを16で割った商が偶数なら盗賊番、奇数なら番犬が出現する。泥棒状態では16ターンに一回自然発生するため、この2種が交互に出現することになる。
@ffff_furai: 泥棒直後は、ターンカウンタを16増加させた後敵を自然発生させる処理を10回繰り返す。そのため、例えば竹林の村の泥棒で盗賊番を狙って出すということも(理論的には)可能になる。
トラバサミ状態とワナ発動フラグセット時のキャラの移動
@ffff_furai: トラバサミ状態のキャラは通常状態のキャラと同じように移動を試みるが、移動先の座標は現在位置に設定される。トラバサミ残りターンが減るのはこのとき(現在位置に「戻された」とき)に限る。
@ffff_furai: つまりトラバサミ状態のキャラの移動時、方向・目的地は通常状態のキャラと同じように設定されることになる。ただし、トラバサミ状態のキャラはワナ発動フラグがセットされないため同じトラバサミを何回も踏むということはない。(というかこの仕様のためワナを踏まないようになっている?)
@ffff_furai: バネやガイコツまどうの場所替えによって移動したキャラは、ワナ発動フラグがセットされている状態で移動する。このキャラはトラバサミ状態のときと同じく、通常の移動を試みるが移動先の座標は現在位置になる。そのため方向や目的地も設定される。
@ffff_furai: ただし、トラバサミと違ってワナ発動フラグがセットされていても、新たにワナ発動フラグはセットされる。この時のワナは「戻された」移動先つまり現在位置のワナになる。バネで飛んできた敵を吹き飛ばした先にワナがあるとそのワナが発動するのはこのためである。
@ffff_furai: ちなみにやみふくろうや一部のNPCはトラバサミ永続状態になっていて、そのためワナにかからないようになっている。
粘り食い
@ffff_furai: くさおに稼ぎの時にHPを減らしながら足踏みする、いわゆる粘り食いについて考える。足踏みが中断されるので行動数が無駄になると考えられるが、くさおに回収の頻度を抑えることによる行動数節約の効果もある。
@ffff_furai: くさおに回収1回ごとの行動数とターン数を計算する。くさおには10個ずつ拾えるとし、簡単のため睡眠効果は出ないとする。回収のために使う行動数をnとする。
@ffff_furai: 粘り食いなし: 3000ターン 食べる10行動 + 足踏み24(+α)行動 + n粘り食い 213ターン(ロスなし): 5120ターン 食べる10行動 + 足踏み40行動 + n粘り食い 101ターン: 4000ターン 食べる10行動 + 足踏み40行動 + n
@ffff_furai: 9000ターン滞在に必要な行動数は通常: 102 + 3n213ターン: 87.89 + 1.76n101ターン: 112.5 + 2.25n (通常より効率が良いのはn>14)となる。くさおにの量を調節してうまく粘り食いを利用すれば効率アップも可能だ。
@ffff_furai: ちょっと考えたら粘り食いの時の食べるターンを考慮してなかった。101ターンでなく100ターンでいいはず。
入店と退店に関する判定
以下の記述では ターンの順番 と モンスターの移動と目的地 の内容を前提としています。
属性とどろぼうとその辺の適当な推論 :ブログマガずン - ブロマガ を踏まえて、店の出入りの判定について説明してみます。リンク先の「属性」という用語をここでは ダンジョン編集 に倣い「地形」と呼びます。
店の出入りに関する判定は2つあり、それらを入店判定・退店判定と呼ぶことにします。両者を合わせて入退店判定とも呼びます。入退店判定では1つの地形を保存していて、これをシレンのいる地形と比較することで入退店を判定しています。この保存される値を前回入退店地形ということにします。ちなみに、通常の入退室判定も同様に前回の地形を保存して判定していますが、入退店判定とは独立した変数を使用します。
入店判定では、前回入退店地形とシレンのいる地形が異なり、かつシレンのいる地形と店主のいる地形が等しいとき、入店と判断します。前回入退店地形は入店時のみシレンのいる地形に設定します。
退店判定では、前回入退店地形とシレンのいる地形が異なり、かつ前回入退店地形が店のとき、退店と判断します。入店判定と違い、退店時でなくても前回入退店地形をシレンのいる地形に設定します。前回入退店地形が店かどうかの判定は店主の位置等とは無関係であることに注意してください。
擬似コードでは、入退店判定は次のように表されます。
入店判定: 前回入退店地形 ≠ シレンのいる地形 かつ シレンのいる地形 == 店主のいる地形: 入店(いらっしゃいませ・BGMを変更) 前回入退店地形 = シレンのいる地形 退店判定: 前回入退店地形 ≠ シレンのいる地形: 前回入退店地形が部屋で店: 退店(請求状態ならどろぼう、そうでないならBGMを戻すなど) 前回入退店地形 = シレンのいる地形
入店判定は店主の移動時に行われ、退店判定は敵移動と罠発動の間に行われます(つまり退店判定と通常の入退室判定はほぼ同じタイミング)。店主がいない場合・状態異常で店主固有の移動ができない場合・シレンが倍速で店主が行動できないターンの場合等にBGMが変わらないのはこれによります。また、入退室判定と同様、シレンが通常の移動以外で移動した場合、退店判定は即座に実行されます。ただし、その場合前回入退店地形は変更されません。
sm16111601 で泥棒にならない理由を考えてみましょう。店主が通路にいる状態でシレンが店から通路に出た場合、入店判定で入店扱いになり、前回入退店地形が通路に設定されます。退店判定では、前回入退店地形とシレンのいる地形がともに通路であるため、退店となりません。店主が状態異常等の場合、入店判定が実行されないため、退店判定において前回入退店地形は店の部屋、シレンのいる地形は通路となるため泥棒になります。通常の移動以外で店から出たときは即座に退店判定が実行されるため、こちらも泥棒になります。
店主と身代わりが店内にいる場合を考えます。身代わりがいるとき、入店判定では(より一般的に言うと敵移動時には)身代わりのいる地形をシレンのいる地形とみなして判定を行います。それに対し退店判定では身代わりがいてもシレンのいる地形は影響されません。そのため毎ターン入店と退店が繰り返されることになります。
シレンが透明のとき(つまりエーテルデビルへの変身時)を考えます。入店判定時(敵移動時)にシレンのいる地形は通路と見なされますが、退店判定時は実際にシレンがいる地形が使用されます。さらに店主が通路にいる場合の挙動もこれで説明できます。ただし、シレンが透明のときはマスの地形の判定とは関係なく泥棒扱いにしないという例外処理が行われていることに注意する必要があります。
2015/02/23 透明・やりすごし状態と座標
@ffff_furai: シレンがやりすごし・透明状態の時はフロアの左上にいることになるという説明がよくされていると思うが、やや誤解されている気がしないでもない。シレンの座標が(0,0)と見なされるのは敵移動時に限ってであって、ターン全体でではない。
@ffff_furai: 例えばシレンがやりすごし中に混乱した敵が他の敵に攻撃した場合、攻撃された敵は左上ではなく壺を目指して周りを回ることに注意する必要がある。