WEB ESCAPE ENGINE LITE / 説明書

部屋も謎も、
あなたのテーマで。

書き換えるのは js/config.js と assets フォルダだけ。画像と文章を差し替えれば、どんな舞台の脱出ゲームにもなります。やりたいことを選んで、その章の手順どおりに進めてください。

01

タイトルと説明文を変える

js/config.js の meta と ui を書き換えます。

meta: {  id: "escape-room-default",← 自分のゲーム用の英数字に変える(例: "my-game-v1")  title: "ここをゲーム名に",←  subtitle: "ここに副題(省略可)",←  version: 1, debug: false,},ui: {  title: { heading: "ここを見出しに", description: "ここに説明文" },←  clear: { heading: "CLEAR", description: "ここにクリア時の文章" },←},

ui の中で書かなかった項目(eyebrow・buttonなど)は、テンプレートの文言のまま残ります。

「10. エンディングを分ける」を使う場合、クリア画面の見出し・本文はエンディング側の内容で上書きされます(eyebrow・buttonはこのまま有効です)。

→ 他の項目はリファレンスの「ui」

02

画像を差し替える

既存の画像を変えるだけなら、同じファイル名で上書きするだけで反映されます(config.js の編集は不要)。

上書き後に画面が変わらない場合は「11. 公開前のチェックと困ったとき」の「キャッシュについて」を見てください。

新しい画像を追加する場合は、ファイルを assets/images/ に置いてから、assets.images に「名前」とファイルの場所を1行追加します。

assets: {  images: {    "my-new-item": "assets/images/my-new-item.png",← 追加  },},

→ 「名前」の付け方の正確なルール(idとitemIdの優先順位など)はリファレンスの「assets」

→ 推奨サイズ・透過PNGはリファレンスの「画像ファイル」

03

物の位置を動かす(配置編集モード)

  1. meta.debug を true にして保存し、index.html を再読み込みする。
  2. DEBUGパネルの「配置編集」ボタンを押す。
  3. ドラッグで移動、右下の角で拡大縮小、左下の角で左右反転。
配置編集モードの画面
  1. 画面のJSON欄には、今編集しているシーンの objects 配列がまるごと表示されています。「JSONをコピー」を押し、js/config.js の該当シーンの objects: [ ... ] をその内容で丸ごと置き換えます(一部の数字だけを書き写すのではありません)。
  2. コピーする前にページを再読み込みすると、動かした内容は消えます。 必ずコピーしてから次の操作に移ってください。
  3. 公開前に meta.debug を false に戻す(→「公開前のチェック」)。

→ ハンドルの詳しい挙動はリファレンスの「配置編集モード」

04

暗証番号とメッセージを変える

番号は暗証番号のオブジェクトだけでなく、ヒントやメモの文章にも書かれていることがあります。js/config.js を開き、古い番号(例: 7391)を検索(Ctrl+F)して、見つかった箇所を全部書き換えてください。

{  id: "safe-dial", type: "passcode", shape: "dial",  code: "1234",← 新しい番号  clueText: "メモに書かれていた「1234」を試してみよう。",← ヒント文も同じ番号に  hintWrong: "番号が違うようだ……",  onSuccess: { setFlag: "safeOpened", message: "金庫が開いた。中に鍵が見える。" },},

同梱デモでは、drawer オブジェクトの message(メモの文章)にも同じ番号が書かれています。検索で見つけた箇所は漏れなく書き換えてください。

→ clueFlagなど他のオプションはリファレンスの「passcode」

05

アイテムを増やす

js/config.js の items に1行追加します。

items: {  key: { id: "key", name: "鍵", icon: "key" },  potion: { id: "potion", name: "薬", icon: "potion" },← 追加},

icon に key・stick・cloth・torch 以外の名前を書いた場合、所持品欄には「?」が表示されます(動作には問題ありません)。画像にしたい場合は「2. 画像を差し替える」で同じ名前を登録してください。

部屋に置いて拾えるようにするには、シーンの objects に pickup タイプのオブジェクトを追加します(→ リファレンスの「pickup」)。

→ アイコンの一覧はリファレンスの「items」

06

部屋(視点)を増やす

js/config.js の scenes に新しいシーンを追加し、既存シーンの navigation からそこへつなげます。

scenes: {  "room-front": {    label: "正面の壁",    background: "wall",    bgAssetId: "bg-front",    navigation: { left: "room-left", right: "room-right" },← room-right を追加    objects: [ /* ... */ ],  },  "room-right": {← シーンを1つ追加    label: "右の壁",    background: "wall-alt",    navigation: { left: "room-front", right: null },    objects: [],  },},

新しいシーンの label・background・navigation・objects は省略できません(objects が空の [] なら、何も置かれていない部屋になります)。

→ bgAssetId・entryHintなど他の項目はリファレンスの「scenes」

07

「○○を持っていないと開かない」仕掛けを作る

pickup か exit のオブジェクトに requiresItem を追加します。同梱デモの drawer(引き出し)が実例です。

{  id: "drawer", type: "pickup", shape: "drawer",  x: 305, y: 360, w: 115, h: 74,  requiresItem: "torch",← これを持っていないと開けられない  hintLocked: "暗くて中がよく見えない……明かりが欲しい。",← 持っていない時のメッセージ  setFlag: "foundClue",  message: "松明で照らすと、引き出しの中にメモを見つけた。「7391」と書かれている。",},

requiresItem の値は、items に実在するアイテムの id にしてください。

→ 複数アイテムを一括で要求する方法はリファレンスの「requiresItems」

08

調べると何かが出てくる仕掛けを作る

同じ座標に「調べる前」と「調べた後」の2つのオブジェクトを重ねて置き、hideOnFlag とrequiresFlag を1組で対応させます。同梱デモの木箱が実例です。

{  id: "box-closed", type: "examine", shape: "drawer",  x: 90, y: 452, w: 100, h: 70,  hideOnFlag: "openedBox",← このフラグが立つと、このオブジェクトは消える  message: "頑丈な木箱だ。鍵がかかっている……",  itemActions: {    key: { message: "鍵を使って木箱を開けた!", setFlag: "openedBox", sfx: "pickup" },← 変えたい反応  },},{  id: "box-opened", type: "examine", shape: "drawer",  x: 90, y: 452, w: 100, h: 70,← box-closed と同じ座標にする  requiresFlag: "openedBox",← このフラグが立つまで画面に出現しない  setFlag: "foundSecretNote",  message: "開いた木箱の底に、「裏の真実」について書かれた秘密のメモを見つけた!",← 変えたい文章},

2つのオブジェクトの x, y(と w, h)は必ず同じ値にしてください。ずれていると、「消えた場所」と「現れる場所」が食い違います。type は pickup や zoom に変えても使えます。

フラグ名(上の例では openedBox)は、3か所(hideOnFlag・requiresFlag・setFlag)すべてで一字一句同じ文字列にしてください。 1文字でも違うと、2つ目のオブジェクトは永遠に出現しません。

→ フラグの仕組み全般はリファレンスの「requiresFlag/hideOnFlag」

09

触るとゲームオーバーになる罠を作る

type: "danger" のオブジェクトを置きます。同梱デモの trap-wire が実例です。

{  id: "trap-wire", type: "danger", shape: "trap",  x: 697, y: 410, r: 22,← 置きたい場所に変える  hoverText: "妙な光沢のワイヤーが張られている……触れない方がいいかもしれない。",← 警告文  message: "あやしいワイヤーに触れてしまい、トラップが作動した!",← ゲームオーバー時の文章},

hoverText は必ず書いてください。 マウスを乗せた時点で危険だと伝わらないと、何の前触れもなくゲームオーバーになり、プレイヤーが理不尽に感じます(スマートフォンでは自動的に「1回目のタップで警告、2回目のタップで実行」になるため安全です)。

→ ゲームオーバー画面の文言を変える方法はリファレンスの「ui.gameover」

10

エンディングを分ける

endings に結末を定義し、出口オブジェクトの defaultEnding/endingConditions で条件分岐させます。同梱デモの door が実例です。

endings: {  normalEnd: { title: "NORMAL END - 無事脱出", message: "鍵を使ってドアを開け、無事に部屋から脱出した!" },  trueEnd: { title: "TRUE END - 真実の解明", message: "隠された真実に気づき、完璧な脱出を果たした!" },← 結末を追加},
{  id: "door", type: "exit", shape: "door",  requiresItem: "key",  defaultEnding: "normalEnd",← 条件に合わなければこれ  endingConditions: [    { requiresFlag: "foundSecretNote", ending: "trueEnd" },← 上から順に判定、最初に一致したもの  ],},

endingConditions を書かない場合は常に defaultEnding、defaultEnding も書かない場合は常に "normalEnd" という名前のエンディングが使われます。該当するエンディングが見つかった場合、クリア画面の見出し・本文は「1. タイトルと説明文を変える」で設定したui.clear.heading/descriptionより優先されます。 endings 自体を省略した場合は ui.clear の内容がそのまま使われます。

→ endings省略時の詳しい挙動はリファレンスの「endings」

11

公開前のチェックと困ったとき

公開前に確認すること

  • meta.debug が false になっているか(チート用のボタンが表示されたままにならないか)
  • meta.id を自分のゲーム用に変えたか(→「1. タイトルと説明文を変える」)
  • meta.subtitle・ui.title・ui.clear に書き忘れた項目が無いか(空欄はテンプレートの文言のまま残ります)
  • 編集後、画面に反映されているか(→ 下の「キャッシュについて」)

キャッシュについて

手元で確認している時に編集が反映されない場合は、Ctrl+F5(強制再読み込み)を試してください。Web公開後に更新した場合は、ファイルの中身を上書きしてもブラウザ・サーバー側にキャッシュが残ることがあります。更新したのが画像なら config.js の画像パスの末尾の ?v=、config.js 自体やCSSならindex.html の <script>/<link> タグの ?v= の数字を1つ上げてください(無ければ追加)。

困った時は

症状対処
画面が真っ白/何も表示されない/途中で止まる対処まず config.js の書き間違い(カンマ抜け、括弧の閉じ忘れ、全角の引用符「”」など)を疑う。ブラウザでF12を押し「Console」タブを開くと、エラーの行番号が表示される
画像を差し替えたのに反映されない対処assets.images の「名前」と objects の id/itemId が一致しているか確認(ファイル名の大文字・小文字も区別される)。それでも変わらなければ上の「キャッシュについて」
config.js を編集したのに画面が変わらない対処上の「キャッシュについて」
index.html を直接開くと音が鳴らない対処ブラウザの仕様。「はじめる」ボタンを押した後は鳴る。鳴らない場合はスピーカーアイコンがミュートになっていないか確認
シナリオを編集した後に動きがおかしい(フラグが変なまま進んでしまう等)対処画面下の「進行状況をリセット」ボタンを押す。meta.versionを上げてもセーブデータはリセットされない(保存されるだけで現状どこからも参照されていない)。公開済みのゲームを大きく変更した場合は、meta.idを変えると全員が新しいセーブデータで始められる
画面が真っ白/何も表示されない(上記で直らない場合)対処広告ブロッカー等の拡張機能を無効にするか、別のブラウザ(Chrome推奨)で試す

→ より詳しい原因はリファレンスの該当項目