表で数値を管理する
ESKEES Studio アルファ版(2026 年 10 月時点)の内容です。予告なく変更される場合があります。
敵の強さ、レベルアップに必要な経験値、アイテムの値段のように行が並ぶ数値は、スクリプトに書かずに「表」にまとめておくと、あとから調整しやすくなります。
表は表計算ソフトと同じ見た目で編集できます。Excel や Google スプレッドシートからの貼り付けにも対応しています。
1. 表を作る
- ライブラリの「+ 表」を押します。
- ひな形を選びます。「敵の強さ」「レベルアップ」「アイテム」「空の表」の 4 つがあり、どれも中身が入った状態で始まります。
- セルを押して値を書き換え、「保存」を押します。作った表はライブラリの「表」に並び、名前を押すと開き直せます。
2. 編集する
| やりたいこと | 操作 |
|---|---|
| 行・列を増やす | 「+ 行」「+ 列」を押します。消すときは、行の右端・列の名前の横の × を押します |
| 列の名前を変える | いちばん上のセル(列の名前)を書き換えます。スクリプトから読むときの名前になります |
| 列の種類を変える | 列の名前の下で「数」「文字」「選ぶ(決まった中から)」「いくつか」「パーツ」「→ 表の名前(別の表)」から選びます(下の表) |
| 行・列を並べ替える | 行の番号の横の ↑ ↓、列の名前の横の ← → を押します。1 列目(行の名前)は動きません |
| スプレッドシートから貼り付ける | 範囲をコピーし、セルに貼り付けます。足りない行と列は自動で増えます。列の名前のセルに貼ると、1 行目が列の名前になり、表の中身がそっくり入れ替わります(数か文字かは、中身を見て自動で決まります) |
| 式で埋める | 数の列の「ƒ」を押し、式を書いて「埋める」を押します。n は行の番号です(例: 10*n*n・5*n^2・100+20*n) |
| 絵を見ながら編集する | 上の「表 / タイル(絵)」で「タイル(絵)」を選びます(下の節) |
| その列を使うロジックを書く | 列の名前の横の {} を押します。表を保存して閉じ、その列を読むロジックだけを右のインスペクターに出します |
| 列の種類 | セルに書くもの | スクリプトから読むと |
|---|---|---|
| 数 | 数 | 数(空欄は 0) |
| 文字 | 文字 | 文字 |
| 選ぶ(決まった中から) | 決めておいた値からプルダウンで選ぶ(列の名前の下の欄に、選べるものをカンマで区切って書きます。例: 弾, 灯, 刃) | 文字。if w.動き == "弾" then … end のように分けて使います |
| いくつか | カンマで区切った値(1, 3, 5・薬草、剣) | 並び(e.出る面[2]・#e.出る面)。数に見えるものは数 |
| パーツ | パーツの名前(プルダウンで選ぶ) | 文字。spawn (e.絵) at x, y でそのパーツを置けます(敵の種類ごとの絵など) |
| → 表の名前 | その表の行の名前(プルダウンで選ぶ) | その行(次の節) |
1 列目は「行の名前」です。スクリプトでは、この名前で行を選びます(data.敵.スライム)。表・列の名前には、空白と記号は使えません。
タイル(絵)で見る
武器やアイテムのように、行ごとに絵がある表は「タイル(絵)」で見ると、どの行がどの絵か分かりやすくなります。上の「表 / タイル(絵)」で切り替えます(どちらで開いたかは端末に保存されます)。
- 行ごとに 1 枚のカードになり、絵を大きく表示します。その下で、各列の値を表と同じように編集できます。
- 絵は「パーツ」の列で選んだパーツです。「パーツ」の列がなければ、行の名前と同じ名前のパーツの絵を出します。「パーツ」の列はタイルの画面から足せます。
- 絵のパーツにタイムラインの動きがあれば、カードの右下に ▶ が出ます。押すとカードの中で再生し、「絵に戻す」で止まります。「キャンバスで見る」を押すとキャンバスで確認でき、帯の「表に戻る」か Esc で、タイルの表示のまま表に戻ります。
3. 別の表とつなげる
例えば、敵が落とすアイテムを、アイテムの表の行で指定できます。
- 先に「アイテム」の表を作ります。
- 「敵」の表で列を足し、名前を「落とす物」にして、種類を「→ アイテム(別の表)」にします。
- 「落とす物」のセルが、アイテムの表の行を選ぶプルダウンになります。
スクリプトからは、つながった行の値をそのまま読めます(data.敵.スライム.落とす物.値段)。アイテムの表の名前を変えても、つながりは自動で付け替わります。
4. スクリプトから読む
表の画面の下に、その表の読み方が表示されます。
hp = data.敵.スライム.HP -- 名前で行を選ぶ
need = data.レベル[lv + 1].必要な経験値 -- 何行目かで選ぶ(レベルの表は、行の番号がそのままレベル)
cost = data.敵.スライム.落とす物.値段 -- 別の表の列は、相手の行につながっている
for i, e in ipairs(data.敵) do -- 全部の行を順に
print(e.名前, e.HP)
end
stage1 = data.敵.スライム.出る面[1] -- 「いくつか」の列は並び
spawn (data.敵[i].絵) at 100, 50 -- 「パーツ」の列のパーツを置く
- 表は読み取り専用です。ゲーム中に変わる値(今の HP など)は、読んだ値を変数やアクターの値に入れてから変えてください。
- 表・行・列の名前を間違えると、書いた時点で「問題」として候補つきで表示されます。
- 行の名前が数だけ(「1」など)の行は、名前では選べません。行の番号で選んでください。
詳しくは スクリプト言語リファレンス を参照してください。
例: 経験値でレベルアップする
var lv = 1
var exp = 0
-- 敵を倒したときに呼ぶ(名前は「敵」の表の 1 列目)
function 倒した(名前)
exp += data.敵[名前].経験値
-- 次のレベルに必要な経験値に届いたら、レベルを上げる
while lv < #data.レベル and exp >= data.レベル[lv + 1].必要な経験値 do
lv += 1
end
end
呼び出す側では 倒した("スライム") のように書きます。
保存先と注意
- 表は
.eskxの中に保存されます。.emgとしてエクスポートすると、表は含まれません(ほかのツールは表を使わないため)。 - 「パーツ」の列で選んだパーツの名前を変えたり消したりすると、表の画面に「パーツ … がありません」と表示されます。選び直してください。