第9章 システムスクリプト API リファレンス
images/09_system_api.png
図9-1: システムスクリプト API のイメージ
images/09_system_api.pngシステムスクリプトは、先頭に // @lumina を書いた LUMINA Script(関数・変数・式が使える書き方)で記述します。目印が無く、function も無いファイルは SimpleScript(1 行に 1 命令を並べる書き方)として実行されます。
オブジェクトメソッド呼び出し Object.method(args) が基本です。本章はAPI リファレンスです。タイトル接続など作成手順は 制作者入門 08 を参照してください。
9.1 記法ルール
// @lumina
function setup() {
System.debugLog("初期化開始");
Window.setTitle("My Game");
if (QuickSave.exists()) {
System.debugLog("クイックセーブあり");
}
System.wait(500);
}
setup();
- 文字列:
"..."または'...' - コメント:
//または/* */ - ネスト実行:
System.exec("Window.setFPS(30);") - 分岐実行:
System.switchVar,System.ifVarEquals,System.switchEnv - オブジェクト名を付けずに
Wait(500)のように書くと Common の命令として実行されます - 数: 命令へ渡す整数は、桁が多くてもそのまま届きます(
1234567や再生位置の ms、番号など)。小数は有効数字 6 桁で渡ります。文字とつなぐと小数も出ます("x=" + 0.25はx=0.25。小数は 15 桁まで。とても大きな数は1e+21のような書き方。配列のjoin・String()・JSON も同じ)。数は 16 進(0x1F)や指数(1e21・2.5E-3)でも書けます
値を返すメソッド(凡例)
LUMINA Script では、var n = Backlog.getCount(); のように戻り値を使えるメソッドは一部だけです。リファレンスの表では、メソッド名の後ろに次の印を付けています。
| 印 | 意味 |
|---|---|
| (値) | LUMINA Script で値を返す。SimpleScript でも命令として呼べる(値は受け取れない) |
| (値のみ) | LUMINA Script の式の中でだけ使える。SimpleScript で呼ぶと「知らない命令」になる |
| 印なし | 命令として動く。取得系(get… / is… など)でも値は返らない(下の注意) |
Math・JSON・文字列・配列・正規表現のメソッドと組み込み関数は、どれも値を返します(表には印を付けていません)。
印の無い取得系は値を返しません。LUMINA Script では呼んだオブジェクト自身が返るため、印の無い get… / is… を if の条件に書くといつも真になり、var x = … にも結果は入りません。SimpleScript でも、成功した命令の結果は捨てられるので値は受け取れません。値が要るときは、印の付いた同じ働きのメソッドを使うか、結果を変数に書き込む命令(Confirm.show → 変数 confirm.result、Timer.storeElapsed、System.randomInt、Anime.createInstance / Motion.createInstance の varName、Select.wasTimedOut / Input.isGamepadConnected の varName、Steam の取得系の最後の引数)を使い、LUMINA Script なら System.getVarInt、SimpleScript なら System.ifVarEquals などで読んでください。
9.2 System オブジェクト
実行モード・デバッグ
| メソッド | 引数 | 説明 |
|---|---|---|
setRunMode | "Debug" / "Release" | 実行モード設定 |
getRunMode(値) | — | 現在モード取得 |
isDebugMode | — | Debug かどうか |
debugLog | message | Debug 時ログ出力 |
debugDump | — | システム状態ダンプ |
setDebugLogEnabled | bool | ログ有効/無効 |
待機・実行
| メソッド | 引数 | 説明 |
|---|---|---|
wait | ms | ミリ秒待機(メッセージポンプ) |
exec | code | インラインコード実行 |
timeline | definition | 時系列ステップ実行 |
execute | command | 外部プログラム起動 |
分岐
| メソッド | 説明 |
|---|---|
switchEnv(var, default, code0, code1, ...) | 環境変数で分岐 |
switchArg(index, default, code0, ...) | コマンドライン引数で分岐 |
switchVar(name, code0, code1, ...) | 整数変数で分岐 |
ifVarEquals(name, val, codeIf[, codeElse]) | 変数一致分岐 |
switch(mode, code0, code1, ...) | 数値直接分岐 |
switchIni(section, key, default, ...) | INI 値で分岐 |
セーブ/ロード
| メソッド | 説明 |
|---|---|
saveData(slot) | 使えません(呼ぶと失敗する)。SaveSlot.saveState(slot) を使う |
loadData(slot) | 使えません。SaveSlot.loadState(slot) を使う |
hasSaveData(slot) | 使えません。SaveSlot.hasState(slot) を使う |
変数
| メソッド | 説明 |
|---|---|
setVarInt(name, value) | 整数変数 |
setVarStr(name, value) | 文字列変数 |
getVarInt(name)(値) / getVarStr(name)(値) | 変数を読む |
addVarInt / subVarInt / mulVarInt / divVarInt / modVarInt | 整数変数の計算 |
System の変数は、シナリオの setvar の変数(セーブデータごとの値)とは別のものです。
フラグ(どのセーブデータでも共通の記録)
| メソッド | 説明 |
|---|---|
setSystemFlag(name, value) / addSystemFlag(name, value) | システムフラグ(値は 0〜9 に丸める。0 を入れると下ろせる) |
getSystemFlag(name)(値のみ) / checkSystemFlag(name, op, value)(値のみ) | 読む(未設定は 0)/比べる(1/0) |
setClearFlag(name, value) / getClearFlag(name)(値のみ) / clearAllClearFlags() | クリアフラグ(0 以外で立つ) |
setFlowchartFlag(name, value) / addFlowchartFlag / getFlowchartFlag(値のみ) / checkFlowchartFlag(値のみ) | フローチャートの印(0〜9 に丸める。0 を入れると下ろせる) |
どれも systemdata に保存され、シナリオの setsysflag / setclearflag / setflowflag と同じ入れ物を読み書きします。好感度など周回で変わる値はシナリオの setvar を使います。
INI 制御
| メソッド | 説明 |
|---|---|
setIniEnabled(bool) | INI 読み書き有効化 |
setIniAutoCreate(bool) | INI 自動生成 |
setIniBool(section, key, value) | INI 値書き込み |
ifIniEnabled(codeIf[, codeElse]) | INI 有効時分岐 |
ifIniBool(section, key, default, codeIf[, codeElse]) | INI bool 分岐 |
プラグイン
| メソッド | 説明 |
|---|---|
clearPluginDirectories() | 検索パスクリア |
addPluginDirectory(path) | 検索パス追加 |
setAllowedPlugins([...]) | ホワイトリスト |
loadPlugin(dllName) | DLL ロード |
パス・フォルダ
| メソッド | 説明 |
|---|---|
setDataRoot(path) | データルート |
getDataRoot() | データルート取得 |
setFolder(key, path) | フォルダマッピング |
getFolder(key) | フォルダパス取得 |
setExtension(type, ext) | 拡張子設定(systemScript 等) |
getExtension(type) | 拡張子取得 |
セーブ設定
| メソッド | 説明 |
|---|---|
setSaveRoot(kind) | セーブ先("InstallPath" / "MyDocuments" / "MyGamesDocuments" / "AppData") |
setSaveDataMode(mode) | 平文/c/z |
setSaveDataId(id) | 製品識別子 |
setSaveProduct(brand[, game]) | 製品名(ブランド名・作品名) |
setSaveFolder(name) | セーブフォルダの名前 |
UI・ダイアログ
| メソッド | 説明 |
|---|---|
setStartupDialog(enabled) | 起動ダイアログ |
setExitDialog(enabled) | 終了確認ダイアログを出すか |
setScriptPassword(pw) | .lsf 復号パスワード |
setSplashDelay(ms) | スプラッシュ遅延 |
setSplashFade(fadeInMs, fadeOutMs) | スプラッシュフェード |
setSplashHold(ms) | スプラッシュ保持 |
setVersion(text) | バージョン表示 |
loadScenario(path) | シナリオを新しく始める。始める前にシナリオ変数(setvar の値)を消す |
jumpScenario(path[, label]) | 別のシナリオへ切り替える。シナリオ変数は保つ(シナリオ実行中でも安全) |
returnToTitle([kind, fadeOutMs]) | 確認のうえタイトル復帰(kind 既定 titleExit) |
exit([kind, fadeOutMs, holdMs]) | 確認のうえゲーム終了(kind 既定 menuExit。fadeOutMs で暗転、holdMs は暗転しきってから閉じるまで) |
表示
| メソッド | 説明 |
|---|---|
showText(text[, x, y]) | テキスト表示 |
showImage(path[, x, y]) | 画像表示 |
hideImage([fadeOutMs]) | 画像非表示 |
fadeToBlack(ms) / fadeFromBlack(ms) | 黒い幕を張る/明ける(明けるのは幕が出ているときだけ) |
フォント(System.font.*)
| メソッド | 説明 |
|---|---|
font.setFamily(name) | フォントファミリ |
font.setBold(bool) | 太字 |
font.setDropShadow(bool) | ドロップシャドウ |
font.setOutline(bool) | アウトライン |
font.apply() | 適用 |
font.save() / font.load() | 永続化 |
font.getFamily()(値) / font.getFamilyCount()(値) / font.getFamilyAt(i)(値) | 今の書体・選べる書体の一覧 |
font.prewarm([count]) | 組み込み書体を先に読んでおく(手が空いたときに 1 本ずつ) |
メッセージウィンドウ(System.messageWindow.*)
| メソッド | 説明 |
|---|---|
messageWindow.setAssets(frame, background, textArea) | UI アセット設定 |
messageWindow.fadeOpacity(target, ms[, steps]) | 透明度フェード |
messageWindow.setPosition(x, y) | 位置設定 |
messageWindow.setTextSpeed(ms) / getTextSpeed() | 文字送りの速さ |
messageWindow.setWordWrap(1) / getWordWrap()(値のみ) | 単語の途中で折り返さない(英語など) |
messageWindow.setAdvanceIcon(path[, frames, frameW, frameH, intervalMs]) | 文字送りアイコン |
全部の命令は完全リファレンスの System にあります。
9.3 Window オブジェクト
| メソッド | 説明 |
|---|---|
setTitle(title) | ウィンドウタイトル |
setSize(w, h) | サイズ |
setResizable(bool) | リサイズ可否 |
setTopMost(bool) | 最前面 |
setIcon(path) | アイコン |
setAppId(id) | タスクバー AppUserModelID |
setFPS(n) | フレームレート |
setMultiCore(enabled, coreCount) | マルチコアの使い方(2 引数が要る) |
setScalingFilter(type[, cubicStrength]) | 拡大時のスムージング(0=Lanczos / 1=Cubic / 2=SharpLinear / 3=Linear) |
setScaleMode(mode) | 拡大方法(0=内接 / 1=外接 / 2=拡大しない / 3=中間) |
setContentAspect(mode) | 4:3 画面モード(0=ワイド / 1=4:3 / 2=自動) |
setMarginWallpaper(path) | 余白の帯に敷く絵(空で黒) |
setAspectLock(mode) | アスペクトロック |
setSingleInstance(bool) | 多重起動防止 |
setSingleInstanceKey(key) | 多重起動キー |
setCursor(name) | カーソル(arrow/wait/ファイル) |
resetCursor() | カーソルリセット |
setVirtualFullscreen(bool) | 仮想フルスクリーン |
toggleVirtualFullscreen() | フルスクリーン切替 |
applyScreenMode(mode) | 画面モード適用("FALSE"=ウィンドウ / "DirectX12" / "Win32") |
applyFPS() | FPS 適用 |
clear() | 画面の表示レイヤー(背景・立ち絵・イベント CG・スプライト・表示中の画像)を全部消す |
getFPS() / getScaleMode() / getContentAspect() / getScalingFilter()(どれも値のみ) | 今の設定値を読む |
9.4 Title オブジェクト
| メソッド | 説明 |
|---|---|
clear() / clearButtons() | クリア |
setBackground(path) | 背景画像 |
setOverlay(path) | オーバーレイ |
addButton(actionId, x, y, normal, hover, pressed, disabled[, w, h]) | ボタン追加(7 引数は絵の実寸、9 引数は大きさを指定) |
setButtonEnabled(actionId, enabled) | ボタン有効化 |
register(actionId, code) | ボタンのハンドラを登録 |
addLabel(id, x, y, w, h, text[, fontSize, color, bold, align]) | 文字ラベル |
show() / hide() | 表示/非表示 |
setFade(fadeInMs, fadeOutMs) | フェード |
setLayout(x, y, w, h) | レイアウト |
setSounds(hoverSE, clickSE, cancelSE) | ボタン SE |
waitUntilHidden([timeoutMs]) | 非表示まで待機 |
skipWait() | 待機スキップ |
isVisible()(値) / getHoveredButton()(値のみ) | 出ているか/乗っているボタン |
ドラッグ&ドロップ・ラベル・ホイール・決定音声などを含む全部の命令は完全リファレンスの Title にあります。
9.5 Scenario オブジェクト
| メソッド | 説明 |
|---|---|
load(path) | シナリオを読み込んで始める(シナリオ変数は消さない) |
play(path) | load と同じ |
9.6 Scripts オブジェクト
| メソッド | 説明 |
|---|---|
execStorage(path) | ストレージ上のスクリプト実行 |
preload(path) | 実行せずに読み込み・復号・解析だけ先に済ませる |
拡張子省略時: 設定したシステムスクリプトの拡張子(.txt か .lsf)で探し、両方あれば更新日時の新しい方、片方しか無ければある方を使います。
9.7 Storages オブジェクト
| メソッド | 説明 |
|---|---|
addAutoPath(path) | リソース自動検索パス追加 |
clearAutoPath() | 検索パスクリア |
setOverlay(dir) | 上書きフォルダ(言語別の差し替え先)。空で切る。9.7.2 |
getOverlay() | いまの上書きフォルダ(切っていれば空) |
isExistentStorage(path) | そのファイルがあるか(1 / 0)。絵やスクリプトと同じ道筋(上書きフォルダ → 検索パス → データの根 → パックの中)で探す。system/RunMode.txt が開発中の印 data0/system/DevMode.txt の有無で実行モードを決めるのに使う |
9.7.1 Text オブジェクト(多言語)
文言を言語ごとに差し替えます。設定の実体は system/Localization.txt にあり、
言語を足すときはそこの LANG_TABLE と data0/lang/<ID>.txt を直します。
| メソッド | 説明 |
|---|---|
get(key, defaultText)(値のみ) | 文言を引く。第 2 引数(元の文言)は必ず書く |
has(key)(値のみ) | その鍵があるか |
setLanguage(id) / getLanguage()(値のみ) | 出す言語 |
setFallback(id) / getFallback()(値のみ) | 訳が無いときに代わりに見る言語(既定 ja) |
load(id, path)(値) | 文言表をファイルから読む(LUMINA Script では読んだ件数を返す。例 Text.load("en", "lang/en")) |
loadText(id, text)(値) | 文言表を文字列から読む(読んだ件数を返す) |
set(id, key, value) | 1 件だけ差し替える |
listLanguages()(値のみ) / count(id)(値のみ) | 読み込んだ言語の一覧 / 件数 |
clear() | 表を全部捨てる |
第 2 引数を必ず書いてください。表に無い鍵はその文字をそのまま返すので、 訳が抜けていても画面が壊れません。既存の画面を 1 つずつ置き換えていけます。
Text.get("confirm.title", "タイトルに戻りますか?")
文言表(data0/lang/ja.txt)は 1 行 1 件の 鍵=文言 です。
# で始まる行と空行は読み飛ばし、値の中の \n は改行になります。
# 確認ダイアログ
confirm.yes=はい
confirm.load=ロードしますか?\n現在の進行状況は失われます。
絵・音・シナリオは表ではなく上書きフォルダで切り替えます(次節)。
書体も言語で変わるので、切り替えたら System.font.setFamily(...) を入れ直してください
(Localization.txt の applyLanguage() が文言・上書きフォルダ・書体をまとめて切り替えます)。
9.7.2 言語別の差し替え(上書きフォルダ)
確認ダイアログ・メッセージ枠のボタン・名前の札・環境設定の項目名などは文字が絵に焼いてあるので、 文言表では訳せません。シナリオも同様です。これらは上書きフォルダで差し替えます。
原語(Localization.txt の LANG_SOURCE)以外を選ぶと
data0/lang/<ID>/ が上書きフォルダになり、素材を探すとき最初にそこを 1 か所だけ見ます。
無ければいつもの場所を探します。原語のときは切っているので、探し方は今までとまったく同じです。
置き方: スクリプトやシナリオに書く名前から、先頭の dataN/ を外した形で置く。
| 種類 | 書き方(実体) | 英語版の置き場所 |
|---|---|---|
| 絵 | meswnd/name_M(data1/meswnd/name_M.lgc) | data0/lang/en/meswnd/name_M.lgc |
| 声・効果音 | vo "vo02_0001" | data0/lang/en/vo02_0001.opus |
| シナリオ | System.loadScenario("scenario/ch01") | data0/lang/en/scenario/ch01.txt(.lsf でも可) |
- 訳す物だけ置けば足ります。置いていない物は原語のものが出ます。
- 絵は他の絵と同じく
.lgcへ変換してください(エンジンは設定した拡張子しか読みません)。 - 訳したシナリオは命令の並び(行の位置)を原文とそろえてください。
セーブには「シナリオの名前+位置」が残ります(名前は言語に依らず
scenario/ch01のまま)。 並びがずれると、別の言語で読み直したときに違う場所から始まります。 - 差し替わるのは
scenario/の下だけです。system/のスクリプト(画面の組み立て)は言語ごとに分けません。 - 遊んでいる途中で言語を変えても絵は替わります。上書きフォルダを切り替えると、エンジンが 控えている絵(タイトル系の画面・メッセージ枠のボタン/吹き出し/名前の札・上部メニュー・選択肢)を見直し、 上書きフォルダに絵がある分だけ読み直します(言語に関係ない絵は控えのまま)。 ただし出ている画面の文字(ラベル)は替わりません。言語を切り替えたら画面を組み直してください (環境設定の言語欄は自分で組み直します)。
- 配布物(master)には
.lsfの対がある訳シナリオの.txtは入りません。対が無いとビルドが警告します。
同梱の英語版: 見本の UI は英語版の絵を data0/lang/en/ に同じ名前で持っています
(タイトル・確認ダイアログ・セーブ/ロード・吹き出しと名前の札・上部メニュー・環境設定のタブと項目名・
フローチャート・スタッフロールなど 339 枚)。元の絵を描き直したときは次の道具で作り直し、
LuminaImageCompressor.exe <フォルダ> --recursive --overwrite --type auto --tlg で .lgc にします。
| 道具(Tool/01_Development) | 作る絵 |
|---|---|
localize_ui_images.py <data1> <出力> --lang en | 元の絵から日本語を消し、同じ見た目で英語を描き直す(ボタン・吹き出し・名前の札・手描きの見出しなど)。訳と様式は中の ITEMS 表 |
gen_config_layers.py screen|text|sound|chara <out.png> --lang en | 環境設定の項目名の絵 |
gen_flowchart_art.py <出力> --lang en | フローチャートのノード |
gen_staffroll_art.py <data0/lang/en> --lang en | スタッフロールの帯とロゴ(仮) |
文字で描いている画面の訳: 環境設定のヘルプ・送りの値・ダイアログ設定の項目名、
立ち絵鑑賞、CG/シーン/サウンド/ムービーモード、ステータス画面、システム音声の名札、シーン送りの幕は
Text.get を通して引いています。鍵の付け方は次の 3 通りです(訳は en.txt の同じ節)。
| 鍵 | 使う所 |
|---|---|
cfghelp.<項目id>.name / .0 / .1 / .2 | 環境設定のヘルプ(ConfigMenu.txt の CFG_HELP)。日本語の行より英語の行が少ないときは、余る鍵を空の値で書く(書かないと日本語が出る) |
str:<日本語> | 表から出る文字(キャラ名・服装・表情・曲名・動画名・送りの値など)。スクリプトの日本語を直したら鍵も直す |
画面ごとの名前(cfg.dlg.*.cap・veil.skip など) | 決まった文言 |
これらの鍵は日本語の表(ja.txt)には書きません。スクリプトに書いた元の文言が、そのまま日本語として出ます。
環境設定の言語欄: 下の帯の左に「言語 ◀ 日本語 ▶」を置いています(言語が 1 つしか無い作品では出ません)。
押すと lang.request に行き先を入れて Localization.txt を呼び、文言・上書きフォルダ・折り返し・
メニュー・確認ダイアログ・ステータス画面・シーン送りの幕までまとめて切り替えてから、画面を組み直します。
言語の名前は LANG_TABLE の表示名(その言語自身の表記)です。
確認ダイアログ: 題・本文は Confirm.txt が表(confirm.*)から引きますが、
既定はどれも絵(dialog/msg_*、ボタンは dialog/btn_yes_* / btn_no_*)で出すので、
英語は data0/lang/en/dialog/ の英語版の絵で出ます。
ボタンの下の「次回から確認しない」だけは文字で描くので、表の confirm.dont_ask がそのまま効きます
(Confirm.setOptOutLabel)。
原語(日本語)の表の値は、スクリプトに書いた元の文言と 1 文字も違えないでください。 日本語のときは表の値が出るので、違えると日本語の画面まで変わります。 また、鍵は表示する文言ごとに 1 つにしてください(同じ動作の項目でも表記が違えば別の鍵)。 同じ鍵を 2 か所で使うと、表には値が 1 つしか持てないため、片方の表記が入れ替わります。
見本: data0/lang/en/scenario/showcase_scene.txt(scenario/showcase_scene の英訳)。
紹介デモ(scenario/feature_demo)の本文は訳していないので、英語にしても日本語のまま出ます。
折り返し: メッセージ枠は 1 文字ずつ折り返すので、英語だと単語の途中で切れます。
Localization.txt の LANG_WORD_WRAP(既定 ["en"])に載せた言語では
System.messageWindow.setWordWrap(1) が入り、空白の後ろでだけ行を変えます(行頭の句読点も避けます)。
載っていない言語(日本語など)は今までどおりです。バックログも同じ折り返しになります(Android / ブラウザ)。
確かめ方: 環境変数 LUMINA_LANG_TEST に言語 ID を入れて起動します
(Windows は set LUMINA_LANG_TEST=en、Android は launch.txt、ブラウザは ?LUMINA_LANG_TEST=en)。
選んだ言語は保存されるので、戻すときは ja で起動します。
選んだ言語の保存: 環境設定と同じ仕組み(config.language)に
「LANG_TABLE の何番目か」の数で残します(環境設定で保存されるのは数だけです)。
そのため LANG_TABLE の並びは入れ替えず、言語を足すときは末尾へ足してください。
メニューバーは環境設定の復元(Config.txt の終わり)より前の PreInitialize.txt で組まれるので、
その回だけは System.getSavedVarInt で保存値を直接読みます(その回は保存しません)。
起動後に言語を切り替えたときは、メニューバー・システムメニュー・確認ダイアログの文言・ステータス画面・
シーン送りの幕を組み直します(どれも「組んだ言語」を lang.*Lang に残し、違うときだけ組み直す)。
9.8 Menu / MenuBar オブジェクト
Menu は項目を並べるメニュー、MenuBar は画面の上端に出る画像ボタンの帯(上部メニュー)です。
ブラウザ版のメニュー: Menu で組んだメニュー(ファイル・画面・フォント・ヘルプ)は、ページの上の端へマウスを寄せると出る帯になります。「手前に置く」「終了」など、ブラウザでできない項目は出ません。確認・設定などの画面、文字入力、バックログを出している間は選べません(帯が薄くなります)。MenuBar(上部メニュー)を使う場面では、上の端へ寄せても帯は出ないので、Alt キー(Alt だけを押して離す)で出し入れします。どの場面でも Alt キーで出せます。指で触るだけの端末では、2 本指で軽く叩くと帯が出る・しまう(2 本指の叩きはゲームへ届きません)。
Android のメニュー: 電話の「戻る」で、同じメニューの一覧が出ます。サブメニューの中の「戻る」は 1 つ上へ戻り、外を触ると閉じます。確認・設定などの画面やバックログを出している間の「戻る」は、その画面の「戻る」(パッドの B と同じ)です。文字の入力中は今までどおり入力欄へ届きます。窓の大きさ・全画面の切り替え・手前に置く・描画の分割・セーブフォルダ・ログ・書体の窓など、Android でできない項目は出ません。
Android・ブラウザの「バージョン情報」「ライセンス」「システム情報」: メニューから選ぶと、画面の上に文章の画面で出ます。長い文章は指でなぞる・ホイール・↑↓・PageUp・PageDown・Home・End・パッドで送り、OK・Esc・右クリック・パッドの B・Android の「戻る」で閉じます。
Menu
| メソッド | 説明 |
|---|---|
clear() | メニュークリア |
register(id, action) | ハンドラを登録 |
addMenu(path) / addMenu(parent, title) | サブメニュー追加("親/子" の 1 引数でも書ける) |
addItem(parent, title[, action]) | 項目追加 |
addSeparator(parent) | 区切り線 |
begin(title) / end() | 構築ブロック |
item(title, action) / separator() | 項目・区切り線(ブロック内) |
setup(definition) / apply() | 構築・適用 |
setVisible(visible[, force]) | 表示切替 |
handle(id) | 登録したハンドラを実行 |
MenuBar
| メソッド | 説明 |
|---|---|
addButton(actionId, x, y, normal, rollover, active, inactive) | ボタン追加 |
register(actionId, handlerCode) | ボタンのハンドラを登録 |
setBackground(path) / setLogo(path[, x, y]) | 背景・ロゴ |
setActive(mode) | 出す場面(0=出さない / 1=シナリオ中 / 2=システム画面 / 3=両方) |
setDisplayMode(mode) | "slide"(スライド式。既定)/ "inplace"(その場で透明度を変える) |
show() / hide() / apply() | 表示・反映 |
9.9 Input オブジェクト
ADV 入力のポーリング API。isAdvanceTextRequested() などの判定と、マウス・タッチ・コントローラーの値は、LUMINA Script では値を返します(判定は 1/0)。
| メソッド | 説明 |
|---|---|
isAdvanceTextRequested()(値) | 文字送り |
isSkipRequested()(値) / isSkipHeld()(値) | スキップ |
isAutoModeRequested()(値) | オートモード |
isBacklogRequested()(値) | バックログ |
isSystemMenuRequested()(値) | システムメニュー |
isQuickSaveRequested()(値) | クイックセーブ |
isQuickLoadRequested()(値) | クイックロード |
isCancelRequested()(値) | キャンセル |
isUpRequested()(値) / isDownRequested()(値) / isLeftRequested()(値) / isRightRequested()(値) | 方向 |
update() | 入力更新 |
getLeftStickX([playerIndex])(値) 等 | コントローラーの値 |
setVibration(playerIndex, left, right) | 振動 |
isLeftClicked()(値) 等 | マウス |
getMouseX()(値) / getMouseY()(値) | マウスの座標(設計座標 1280×720) |
isMouseDown()(値) / isRightMouseDown()(値) / isMouseClicked()(値) | ボタンを押しているか/クリックされたか(1/0) |
hitTest(x, y, w, h)(値) | マウスがその矩形の中か(1/0) |
setGestureAction(dir, actionId) / setGestureImage(dir, path) / setGestureDecoration(...) | マウスジェスチャの割り当てと見た目 |
setGamepadEnabled(on) / isGamepadConnected()(値) | ゲームパッドで操作するか/つながっているか(下記) |
ゲームパッド
Windows・Android・ブラウザのどれでも、ゲームパッドで文章送り・選択肢・各画面を操作できます(既定で有効)。Windows はゲームの窓が前面にあるときだけ効きます。Android はキーボードの対応するキー(Enter・Esc・矢印・PageUp・Ctrl)も同じ扱いで受けます(電話の「戻る」はメニューの一覧を出します。確認・設定などの画面やバックログでは、その画面の「戻る」です)。ブラウザは Gamepad API で、最初に見つかったパッドを使います。
| ボタン | 働き |
|---|---|
| A | 決定(文章送り・選択肢・画面のボタン) |
| B / START | 取り消し(右クリックと同じ。戻る・メッセージ枠を隠す) |
| 十字キー / 左スティック | 上下左右(押し続けると繰り返す) |
| LB | バックログ |
| RB(押し続け) | スキップ |
選択肢は十字キーで選んでから A で決めます(Android・ブラウザでは、まだ選んでいないときの A は最初の選択肢に印を付けるだけです)。Screen の画面での動きは Screen の説明を見てください。使わないときは Input.setGamepadEnabled(0)。Input.isGamepadConnected() は、Windows では今つながっているか、Android・ブラウザでは一度でもパッド(Android はキーボードの対応するキーも)を受けたかを返します。
9.10 Sound / Movie / Anime / Motion / Scene3D
Sound
| オブジェクト | 主なメソッド |
|---|---|
Sound | 汎用音声制御。playBgm / playSe / playVoice などの平らな名前と、Sound.bgm.play / Sound.se.play / Sound.voice.play / Sound.sysse.play / Sound.sysvoice.play の小分けの書き方がある |
Sound.BGM | BGM 再生・音量(play(path) / stop() / setVolume(volume) など) |
Sound.SE | SE 再生(play(path) / stopAll() など) |
Movie
| メソッド | 説明 |
|---|---|
play(path[, x, y, mask, async]) | 動画再生(終わるまで待つには Common.WaitMovieEnd) |
stop() / pause() / resume() | 制御 |
setVolume(volume) | 音量 |
seek(ms) | シーク |
setViewport(x, y, w, h) / setFullscreen(1) | 枠の中で再生する/画面いっぱいへ戻す |
isPlaying()(値) / getPositionMs()(値のみ) / getDurationMs()(値のみ) | 再生中か・再生位置・長さ |
Anime / Motion(プラグイン必要)
| オブジェクト | 説明 |
|---|---|
Anime | mruanime.dll 連携(部品を階層で動かすアニメーション。疑似3D の向き付けも可) |
Motion | mrumotion.dll 連携(メッシュ変形のアニメーション。繋ぎ・まばたき・口パク・当たり判定) |
Scene3D | 3D 場面(glTF 2.0 / GLB)。背景レイヤーへ合成。別 DLL ではない |
Anime / Motion は createInstance(modelName) が返す番号でインスタンスを指します(LUMINA Script では値として返る。SimpleScript では 2 番目の引数に変数名を書くとそこへ入る)。
Scene3D
3D 場面を背景レイヤーへ合成します。Scene3D.begin(w, h)、Scene3D.attach(layer)、loadModel(glTF 2.0 / GLB)、createBox 等、addLight、playModelAnimation。歩き回って遊ぶ 3D アクション(プレイヤー・アクター・武器・地形)と物理(剛体・拘束・ラグドール)の命令もあります(完全リファレンスの Scene3D)。別 DLL ではありません。3D が使えない環境では begin が失敗し、2D はそのまま動きます。
9.11 その他のオブジェクト
| オブジェクト | 用途 |
|---|---|
Common | 古くからある命令(Wait, ShowImage, PlayMovie, bgm_play 等)。名前だけでも呼べる(Common) |
QuickSave / Suspend / QuickResume | クイックセーブ・サスペンド |
MessageWindow | メッセージウィンドウ直接制御 |
Background / Bg | 背景制御 |
Chara / Character | 立ち絵 |
Sprite / SpriteSheet | スプライト |
EventCG | イベント CG |
Effect / Particle | エフェクト |
FX | 画像のいらない図形の演出(FX) |
Transition | トランジション(ルール画像・場面まるごとの切り替えを含む) |
Camera / BlendMode / TextureFilter | カメラ・合成方法・補間 |
Backlog | バックログ |
Select | 選択肢 API |
SaveSlot | セーブスロット(本編セーブ・サムネイル・スロットの複製と入れ替え) |
Gallery | ギャラリー |
Confirm | 確認ダイアログ |
Display | 表示設定 |
ConfigState | 設定状態 |
AutoSkip / VoiceCharacter / LipSync | オート・スキップ/話者ごとの音量/口パク |
Debug / console | デバッグユーティリティ(console は Debug の別名) |
Timer | タイマー |
Easing | イージング関数 |
Draw / RenderTarget / Scissor | 描画制御 |
Cursor | カーソルを動かす(Cursor) |
Screen | 名前付きの汎用画面(フローチャート・マップ・ステータスなどの土台。Screen) |
TextInput | 文字入力(TextInput) |
Steam | Steam の実績・統計・オーバーレイなど(Steam) |
InputUtility / SystemMenu / SystemInfo | 入力の補助・システムメニュー・システム情報 |
Scene3D | 3D 場面(glTF / GLB、基本形状、ライト、スキニング、3D アクション、物理) |
9.12 組み込み関数・グローバル
Common(古くからある命令)
Common.Wait(1000);
Wait(1000); // オブジェクト名を省いても同じ
Common.ShowImage("logo.png", 0, 0);
Common.PlayMovie("intro.ogv", 0, 0);
Common.LoadScenario("scenario/main");
bgm_play("title", 2000); // 2 秒で BGM を上げる
Math / JSON / Array / 文字列
Math.floor(3.7); // 3
Math.random(); // 0.0〜1.0 未満
Math.random(1, 6); // 1〜6 の整数
Math.PI; // 3.14159…
var a = [3, 1, 2];
a.push(4); // a は [3, 1, 2, 4]
Array.isArray(a); // true
"a,b,c".split(","); // ["a", "b", "c"]
"ch01_02".match(/\d+/g); // ["01", "02"]
parseInt("42"); // 42
JSON.stringify(obj);
JSON.parse(str);
以前ここに載せていた JSON.isArray はありません。配列かどうかは Array.isArray で調べます。
フラグ API
// @lumina
// システムフラグ(どのセーブデータでも共通。値は 0〜9。0 で下ろす)
System.setSystemFlag("route_a", 1);
System.addSystemFlag("route_a", 1);
var r = System.getSystemFlag("route_a"); // 未設定なら 0
if (System.checkSystemFlag("route_a", ">=", 2)) {
System.debugLog("route_a は 2 以上");
}
// クリアフラグ
System.setClearFlag("game_cleared", 1);
if (System.getClearFlag("game_cleared") == 1) {
System.debugLog("クリア済み");
}
// フローチャートの印
System.setFlowchartFlag("ch02", 1);
// System の変数(数えるだけの値など)
System.setVarInt("play_count", 0);
System.addVarInt("play_count", 1);
読み出し(getSystemFlag / checkSystemFlag / getClearFlag / getFlowchartFlag / checkFlowchartFlag)は LUMINA Script の式の中でだけ使えます。好感度などセーブデータごとの値はシナリオの setvar / addvar を使います(システムスクリプトからは読み書きできません)。以前この節に載せていた SetScenarioFlag / SetSystemFlag / SetFlag / SetCounter などの関数は使えません(使えない旧グローバル関数)。
9.13 制御構文(LUMINA Script)
LUMINA Script では if / else、for(for ... of も可)、while、do ... while、switch、break / continue、function / return、var / let / const、try / catch / finally / throw、class / new、アロー関数((a, b) => a + b)、三項演算子、??、?.、typeof が使えます。
if (score >= 100) {
System.debugLog("クリア");
} else {
System.debugLog("継続");
}
for (var i = 0; i < 10; i += 1) {
System.debugLog(i);
}
goto / gosub などのラベル移動はシナリオの命令です(第10章)。システムスクリプトでは使えません。
頻出 API の抜粋のあと、全メソッドの詳細リファレンスを掲載します。
システムスクリプト API 完全リファレンス
オブジェクト数: 62 メソッド総数: 1196(表の行数。組み込み関数 7 個と、使えない旧グローバル関数 29 個は含まない)
各メソッドに引数・説明・呼び出し例を付けています。引数の [ ] の中は省略できます(省いたときの値は説明に書いた既定値)。引数が — のものは引数を取りません。メソッド名の後ろの (値)・(値のみ) の意味は 9.1 の凡例を見てください。
Anime (29)
mruanime プラグインが必要です(System.loadPlugin)。handle は createInstance が返すインスタンス番号です。
| メソッド | 引数 | 説明 | 呼び出し例 |
|---|---|---|---|
clearExpression | handle | 表情を外す | Anime.clearExpression(handle) |
createInstance(値) | modelName[, varName] | インスタンスを作り番号を返す。SimpleScript では varName の変数へ入る | Anime.createInstance(modelName[, varName]) |
destroyAll | — | インスタンスを全部消す | Anime.destroyAll() |
destroyInstance | handle | インスタンスを消す | Anime.destroyInstance(handle) |
getInstanceCount(値のみ) | — | インスタンスの数 | Anime.getInstanceCount() |
hasInstances(値のみ) | — | インスタンスがあるか(1/0) | Anime.hasInstances() |
isFinished(値) | handle | モーションが終わったか(1/0) | Anime.isFinished(handle) |
isPlaying(値) | handle | モーション再生中か(1/0) | Anime.isPlaying(handle) |
loadExpression | modelName, exprPath | 表情を読み込む | Anime.loadExpression(modelName, exprPath) |
loadModel(値) | name, jsonPath | モデルを読み込む。LUMINA Script では読めたら 1、読めなければ 0 | Anime.loadModel(name, jsonPath) |
loadMotion | modelName, motionPath | モーションを読み込む | Anime.loadMotion(modelName, motionPath) |
playMotion | handle, motionName[, speed] | モーションを再生(speed 既定 1.0) | Anime.playMotion(handle, motionName[, speed]) |
playOverlay | handle, motionName[, speed, weight] | 重ねがけのモーションを再生 | Anime.playOverlay(handle, motionName[, speed, weight]) |
resetPhysics | handle | 揺れ物の物理を初期状態へ戻す | Anime.resetPhysics(handle) |
set3DAngles | handle[, yaw, pitch, roll] | 疑似3D の向き(度。左右・うなずき・傾げ) | Anime.set3DAngles(handle[, yaw, pitch, roll]) |
set3DSetup | handle[, enabled, pivotX, pivotY, focal, curveX, curveY] | 疑似3D の土台(使うか・回転の中心・遠近の強さ(既定 1500。小さいほど強い)・横/縦の丸み) | Anime.set3DSetup(handle[, enabled, pivotX, pivotY, focal, curveX, curveY]) |
set3DStrength | handle[, depthScale, perspective] | 疑似3D の効き(奥行き・遠近。既定 1, 1) | Anime.set3DStrength(handle[, depthScale, perspective]) |
setAlpha | handle, alpha | 不透明度 | Anime.setAlpha(handle, alpha) |
setDrawOrder | handle, order | 描画順 | Anime.setDrawOrder(handle, order) |
setExpression | handle, name | 表情を切り替える | Anime.setExpression(handle, name) |
setPosition | handle, x, y | 位置 | Anime.setPosition(handle, x, y) |
setScale | handle, sx, sy | 拡大率 | Anime.setScale(handle, sx, sy) |
setVisible | handle, visible | 表示切替 | Anime.setVisible(handle, visible) |
setWind | handle, wx, wy | 風(揺れ物) | Anime.setWind(handle, wx, wy) |
stopAllOverlays | handle | 重ねがけを全部止める | Anime.stopAllOverlays(handle) |
stopMotion | handle | モーションを止める | Anime.stopMotion(handle) |
stopOverlay | handle, name | 重ねがけを 1 つ止める | Anime.stopOverlay(handle, name) |
unloadAll | — | モデルを全部破棄する | Anime.unloadAll() |
unloadModel | name | モデルを破棄する | Anime.unloadModel(name) |
Array (19)
配列の値に対して arr.push(x) のように呼ぶメソッドです。静的に呼ぶのは Array.isArray だけです。どれも値を返します。
| メソッド | 引数 | 説明 | 呼び出し例 |
|---|---|---|---|
concat | value... | 配列や値をつないだ新しい配列 | arr.concat(value...) |
filter | fn | 条件に合う要素だけの新しい配列(fn は関数か関数名の文字列。fn(要素, 番号)) | arr.filter(fn) |
find | fn | 条件に合う最初の要素(無ければ undefined) | arr.find(fn) |
forEach | fn | 要素ごとに fn を呼ぶ | arr.forEach(fn) |
includes | value | 含むか(true/false) | arr.includes(value) |
indexOf | value | 位置(無ければ -1) | arr.indexOf(value) |
isArray | value | 配列か(true/false)。Array.isArray(x) と書く | Array.isArray(x) |
join | [sep] | 文字列に連結(sep 既定 ",") | arr.join([sep]) |
lastIndexOf | value | 後ろから探した位置 | arr.lastIndexOf(value) |
map | fn | fn の結果を並べた新しい配列 | arr.map(fn) |
pop | — | 末尾を取り出す | arr.pop() |
push | value... | 末尾へ足し、新しい長さを返す | arr.push(value...) |
reverse | — | 逆順にする | arr.reverse() |
shift | — | 先頭を取り出す | arr.shift() |
slice | [start, end] | 部分配列(負は後ろから) | arr.slice([start, end]) |
sort | [fn] | 並べ替え(fn(a, b) が負なら a が先) | arr.sort([fn]) |
splice | start[, count, item...] | 取り除き・差し込み。取り除いた要素の配列を返す | arr.splice(start[, count, item...]) |
toString | — | カンマ区切りの文字列 | arr.toString() |
unshift | value... | 先頭へ足し、新しい長さを返す | arr.unshift(value...) |
push / pop / shift / unshift / splice / reverse / sort が配列そのものを書き換えるのは、変数に対して直接呼んだとき(arr.push(x))だけです。要素数は arr.length で読めます。
AutoSkip (14)
| メソッド | 引数 | 説明 | 呼び出し例 |
|---|---|---|---|
getAutoDelay(値) | — | オートの待ち時間(ms) | AutoSkip.getAutoDelay() |
getAutoMaxSpeed(値) | — | 倍速オートの最大段 | AutoSkip.getAutoMaxSpeed() |
getAutoMode(値) | — | オート中か(1/0) | AutoSkip.getAutoMode() |
getAutoSpeedLevel(値) | — | 倍速オートの今の段 | AutoSkip.getAutoSpeedLevel() |
getAutoTurboEnabled(値) | — | 倍速オートが有効か(1/0) | AutoSkip.getAutoTurboEnabled() |
getSkipDelay(値のみ) | — | スキップの間隔(ms) | AutoSkip.getSkipDelay() |
getSkipMode(値) | — | スキップ中か(1/0) | AutoSkip.getSkipMode() |
setAutoDelay | [ms] | オートの待ち時間(既定 3000) | AutoSkip.setAutoDelay([ms]) |
setAutoMaxSpeed | [max] | 倍速オートの最大段(既定 4) | AutoSkip.setAutoMaxSpeed([max]) |
setAutoMode | [on] | オートの入切(引数なしで入) | AutoSkip.setAutoMode([on]) |
setAutoTurboEnabled | [on] | 倍速オートモード(既定 切) | AutoSkip.setAutoTurboEnabled([on]) |
setAutoWaitVoice | [on] | オートでボイスの終わりを待つか(既定 入) | AutoSkip.setAutoWaitVoice([on]) |
setSkipDelay | [ms] | スキップの間隔(既定 50) | AutoSkip.setSkipDelay([ms]) |
setSkipMode | [on] | スキップの入切(引数なしで入) | AutoSkip.setSkipMode([on]) |
Background (16)
Bg でも呼べます(同じもの)。set / show・clear / hide はシナリオ用の背景 1 枚を、*Layer 系は番号付きの背景レイヤー(0〜19)を扱います。frames は 1/60 秒単位です。
| メソッド | 引数 | 説明 | 呼び出し例 |
|---|---|---|---|
clear | — | シナリオ背景を消す(hide と同じ) | Background.clear() |
fadeOutLayer | id, frames | レイヤーをフェードアウト | Background.fadeOutLayer(id, frames) |
hide | — | シナリオ背景を消す(clear と同じ) | Background.hide() |
hideAll | — | 背景レイヤーを全部消す | Background.hideAll() |
hideLayer | id | レイヤーを消す | Background.hideLayer(id) |
moveLayer | id, dstX, dstY, frames | レイヤーを移動 | Background.moveLayer(id, dstX, dstY, frames) |
set | path | シナリオ背景を出す(show と同じ) | Background.set(path) |
setFadeEasing | fadeInMode, fadeOutMode | レイヤーのフェードの効き(0=直線 / 1=減速 / 2=加速 / 3=両端ゆるやか) | Background.setFadeEasing(fadeInMode, fadeOutMode) |
setMoveEasing | mode | 移動の効き(番号は setFadeEasing と同じ) | Background.setMoveEasing(mode) |
show | path | シナリオ背景を出す(set と同じ) | Background.show(path) |
showLayer | id, path[, x, y] | レイヤーに絵を出す | Background.showLayer(id, path[, x, y]) |
showLayerFadeIn | id, path, x, y, frames | フェードインで出す | Background.showLayerFadeIn(id, path, x, y, frames) |
showLayerRule | id, path, x, y, rule, frames[, vague] | ルール画像(rule フォルダの白黒の絵)の暗い所から順に出す。前の絵は下に残る。vague は境目のぼかし(0〜255、既定 64)。シナリオの bg のルール指定と同じ | Background.showLayerRule(id, path, x, y, rule, frames[, vague]) |
startScroll | id, path, x, y, speedX, speedY | スクロールしながら出す | Background.startScroll(id, path, x, y, speedX, speedY) |
stopScroll | id | スクロールを止める | Background.stopScroll(id) |
zoomLayer | id, fromScale, toScale, frames | ゆっくり寄る/引く | Background.zoomLayer(id, fromScale, toScale, frames) |
Backlog (33)
| メソッド | 引数 | 説明 | 呼び出し例 |
|---|---|---|---|
clear | — | 履歴を消す | Backlog.clear() |
getCount(値) | — | 件数 | Backlog.getCount() |
getLabel(値) | index | その行のラベル | Backlog.getLabel(index) |
getNameMode(値) | — | 名前の出し方(0=文字 / 1=画像) | Backlog.getNameMode() |
getScriptPath(値) | index | その行のシナリオ | Backlog.getScriptPath(index) |
getSpeaker(値) | index | その行の話者名 | Backlog.getSpeaker(index) |
getText(値) | index | その行の本文 | Backlog.getText(index) |
isJumpable(値) | index | その行へ戻れるか(1/0) | Backlog.isJumpable(index) |
isSceneJumpEnabled(値) | — | シーンジャンプが有効か(1/0) | Backlog.isSceneJumpEnabled() |
push | speaker, text | 手で 1 行足す(戻り先なし) | Backlog.push(speaker, text) |
resetTextures | — | 描いた絵を作り直す | Backlog.resetTextures() |
setAssetDirectory | [dir] | 素材のフォルダ(既定 backlog) | Backlog.setAssetDirectory([dir]) |
setAssetName | key, name | 素材のファイル名を差し替える | Backlog.setAssetName(key, name) |
setBackButtonArea | x, y, w, h | 戻るボタンの位置 | Backlog.setBackButtonArea(x, y, w, h) |
setBackgroundOpacity | value | 面(下敷き)の濃さ 0.0〜1.0。枠・行・文字はそのまま | Backlog.setBackgroundOpacity(value) |
setFont | [fontName] | 書体(既定 Meiryo) | Backlog.setFont([fontName]) |
setFontSize | [textSize, speakerSize, labelSize] | 文字の大きさ(既定 14 / 14 / 13) | Backlog.setFontSize([textSize, speakerSize, labelSize]) |
setFrameLayout | x, y, w, h | 枠の位置と大きさ | Backlog.setFrameLayout(x, y, w, h) |
setJumpButtonArea | offX, offY, w, h | ジャンプボタンの位置(行の中) | Backlog.setJumpButtonArea(offX, offY, w, h) |
setLabelColor | r, g, b | ラベルの色 | Backlog.setLabelColor(r, g, b) |
setLabelLayout | x, y, w, h | ラベルの位置 | Backlog.setLabelLayout(x, y, w, h) |
setMaxEntries | [max] | 残す件数(既定 100) | Backlog.setMaxEntries([max]) |
setNameAssetsPath | path | 名前画像のフォルダ | Backlog.setNameAssetsPath(path) |
setNameMode | mode | 名前の出し方(0=文字 / 1=画像) | Backlog.setNameMode(mode) |
setPortraitArea | offX, offY, w, h | 顔画像の位置(行の中) | Backlog.setPortraitArea(offX, offY, w, h) |
setRowArea | x, y, w, h, sepH, visibleRows | 行の並び | Backlog.setRowArea(x, y, w, h, sepH, visibleRows) |
setSceneJumpEnabled | [on] | シーンジャンプの入切 | Backlog.setSceneJumpEnabled([on]) |
setScrollLayout | btnX, btnW, btnH, upY, pageUpY, pageDownY, downY, trackX, trackY, trackW, trackH, thumbW, thumbH | スクロール部品の配置 | Backlog.setScrollLayout(btnX, btnW, btnH, upY, pageUpY, pageDownY, downY, trackX, trackY, trackW, trackH, thumbW, thumbH) |
setSpeakerArea | offX, offY, w, h | 話者名の位置(行の中) | Backlog.setSpeakerArea(offX, offY, w, h) |
setSpeakerColor | r, g, b | 話者名の色 | Backlog.setSpeakerColor(r, g, b) |
setTextArea | offX, offY, w, h | 本文の位置(行の中) | Backlog.setTextArea(offX, offY, w, h) |
setTextColor | r, g, b | 本文の色 | Backlog.setTextColor(r, g, b) |
setVoiceButtonArea | offX, offY, w, h | ボイス再生ボタンの位置(行の中) | Backlog.setVoiceButtonArea(offX, offY, w, h) |
BlendMode (2)
| メソッド | 引数 | 説明 | 呼び出し例 |
|---|---|---|---|
reset | — | 合成方法を通常へ戻す | BlendMode.reset() |
set | mode | 場面の合成方法(0=通常 / 1=加算 / 2=乗算 / 3=スクリーン。4=減算・5=上書きは Windows 版では通常扱い) | BlendMode.set(mode) |
Camera (2)
| メソッド | 引数 | 説明 | 呼び出し例 |
|---|---|---|---|
reset | — | カメラを元に戻す(揺れも止める) | Camera.reset() |
set | x, y[, zoom, rotation] | 場面のカメラ(ずらし・拡大(既定 1)・回転(ラジアン、既定 0))。次に描くときに効く | Camera.set(x, y[, zoom, rotation]) |
Chara / Character (13)
Character でも呼べます(同じもの)。
| メソッド | 引数 | 説明 | 呼び出し例 |
|---|---|---|---|
addFrameSync | layer, frames, charaSpec | frames コマ後に差分へ切り替える予約 | Chara.addFrameSync(layer, frames, charaSpec) |
addVoiceSync | layer, positionMs, charaSpec | ボイスの再生位置で差分へ切り替える予約 | Chara.addVoiceSync(layer, positionMs, charaSpec) |
change | layer, charaSpec[, frames] | 差分を切り替える | Chara.change(layer, charaSpec[, frames]) |
clear | — | 立ち絵を全部消す(clearAll と同じ) | Chara.clear() |
clearAll | — | 立ち絵を全部消す | Chara.clearAll() |
clearVoiceSync | layer | 切り替えの予約を消す | Chara.clearVoiceSync(layer) |
hide | layer[, frames] | 消す | Chara.hide(layer[, frames]) |
isAnimating(値) | layer | 動きの途中か(1/0) | Chara.isAnimating(layer) |
setBody | charaId[, partName] | 素体を登録する(素体と表情の差分を重ねて 1 枚の立ち絵にする) | Chara.setBody(charaId[, partName]) |
setFitPercent | charaId, percent | フォルダ付き("ch01/smile" など)で出したときに当てる大きさの割合(%) | Chara.setFitPercent(charaId, percent) |
setTextureFilter | layer, filter | 拡大縮小の補間(-1=既定 / 0=Point / 1=Linear / 2=Anisotropic) | Chara.setTextureFilter(layer, filter) |
setVisiblePercent | layer, percent | 絵の上から何 % を画面の高さいっぱいに映すか(1〜100。100 で全身。残りは画面の下へはみ出す) | Chara.setVisiblePercent(layer, percent) |
show | layer, charaSpec, position, frames | 立ち絵を出す | Chara.show(layer, charaSpec, position, frames) |
Common (21)
ロゴ・スプラッシュ向けの古くからある命令です。Common.Wait(500) のほか、オブジェクト名を付けずに Wait(500) とも書けます(LUMINA Script で知らない関数名を呼ぶと Common の命令として実行されます)。Wait / WaitLogoSkip / WaitMovieEnd / ShowImage / HideImage は小文字始まり(wait など)でも呼べます。
| メソッド | 引数 | 説明 | 呼び出し例 |
|---|---|---|---|
bgm_play | file[, fadeInMs] | BGM をループ再生(fadeInMs が 0 より大きいと無音から設定音量まで上げる) | Common.bgm_play(file[, fadeInMs]) |
bgm_stop | [fadeOutMs] | BGM を止める(fadeOutMs が 0 より大きいとフェードし、止まるまで待つ) | Common.bgm_stop([fadeOutMs]) |
HideImage | [fadeOutMs] | ShowImage の画像を消す | Common.HideImage([fadeOutMs]) |
Include | path | スクリプトファイルを実行(Scripts.execStorage と同じ) | Common.Include(path) |
LoadScenario | path | シナリオを読み込んで始める(シナリオ変数は消さない) | Common.LoadScenario(path) |
PauseMovie | — | 動画を一時停止 | Common.PauseMovie() |
PlayMovie | path[, x, y, mask, async] | 動画を再生(Movie.play と同じ) | Common.PlayMovie(path[, x, y, mask, async]) |
se_play | file[, loop] | SE を鳴らす(loop が 0 以外ならループ) | Common.se_play(file[, loop]) |
se_stop | [fadeOutMs] | SE を全部止める(fadeOutMs が 0 より大きいと、すぐ無音にしてその時間待ってから止め、最後に SE の音量を 100 に戻す) | Common.se_stop([fadeOutMs]) |
SeekMovie | ms | 動画の再生位置 | Common.SeekMovie(ms) |
SetMovieRate | rate | 動画の再生速度 | Common.SetMovieRate(rate) |
SetMovieVolume | volume | 動画の音量 | Common.SetMovieVolume(volume) |
setSplashFade | fadeInMs, fadeOutMs | スプラッシュのフェード | Common.setSplashFade(fadeInMs, fadeOutMs) |
setSplashHold | holdMs | スプラッシュを保つ時間 | Common.setSplashHold(holdMs) |
SetVersion | text | バージョン表示 | Common.SetVersion(text) |
ShowImage | path[, x, y] | 画像を出す | Common.ShowImage(path[, x, y]) |
ShowText | text[, x, y] | 文字を出す | Common.ShowText(text[, x, y]) |
StopMovie | — | 動画を止める | Common.StopMovie() |
Wait | ms | 待つ(描画は止めない) | Common.Wait(ms) |
WaitLogoSkip | [ms, skipMode] | クリックで飛ばせる待ち(ms 既定 1500。skipMode 0=左 / 1=右 / 2=左右同時 / 3=どちらか(既定)。Esc でも飛ばす) | Common.WaitLogoSkip([ms, skipMode]) |
WaitMovieEnd | [timeoutMs, cancelMode] | 動画が終わるまで待つ(timeoutMs 0 = 無制限。cancelMode 0=飛ばせない / 1=左 / 2=右 / 3=どちらか(既定)) | Common.WaitMovieEnd([timeoutMs, cancelMode]) |
ConfigState (3)
| メソッド | 引数 | 説明 | 呼び出し例 |
|---|---|---|---|
get(値) | key | 環境設定の値を読む(sysAnim / skip / autoSave / mouseGesture / dlg.〈種別〉 など) | ConfigState.get(key) |
reset | — | 環境設定を全部既定値に戻す(config.* の変数も更新) | ConfigState.reset() |
set | key, value | 環境設定の値を書く(System の変数 config.〈key〉 も同時に更新) | ConfigState.set(key, value) |
Confirm (20)
kind は確認ダイアログの種別名(system/Confirm.txt で設定するもの。menuExit・titleExit など)です。type は 0=出さない / 1=標準(OS の窓)/ 2=リソース / 3=画像。名前("none" / "windows" / "resource" / "image")でも書けます。
| メソッド | 引数 | 説明 | 呼び出し例 |
|---|---|---|---|
askYesNo(値) | message[, caption, yesLabel, noLabel] | はい/いいえの窓を出す。LUMINA Script では、はいなら 1・いいえなら 0 を返す(SimpleScript では答えを受け取れない) | Confirm.askYesNo(message[, caption, yesLabel, noLabel]) |
configure | kind, type, caption[, prompt] | 種類・題・本文をまとめて設定 | Confirm.configure(kind, type, caption[, prompt]) |
dumpImageLayout | kind | 絵からボタン位置の案を計算してログへ出す | Confirm.dumpImageLayout(kind) |
exit | [kind] | 終了確認を出し、はいなら終了する(kind 既定 menuExit。読むのは kind だけ) | Confirm.exit([kind]) |
setAutoCursor | enabled | 自動カーソル移動ON/OFF | Confirm.setAutoCursor(enabled) |
setAutoCursorTarget | target | 自動カーソルの移動先ボタン("yes" / "no" / "suspend") | Confirm.setAutoCursorTarget(target) |
setImage | kind[, path] | 文言の絵(空で文字で描く)。Windows 以外で使う(Windows は画像ダイアログ側の設定を使う) | Confirm.setImage(kind[, path]) |
setImageAnimation | kind, type | 出し方の動き | Confirm.setImageAnimation(kind, type) |
setImageAssets | kind, background, yesNormal, yesHover, yesPressed, yesDisabled, noNormal, noHover, noPressed, noDisabled | 背景とボタンの絵(10 引数) | Confirm.setImageAssets(kind, background, yesNormal, yesHover, yesPressed, yesDisabled, noNormal, noHover, noPressed, noDisabled) |
setImageDirectory | dir | 絵のフォルダ | Confirm.setImageDirectory(dir) |
setImageLayout | kind, yesX, yesY, noX, noY | ボタンの位置 | Confirm.setImageLayout(kind, yesX, yesY, noX, noY) |
setImageMessage | kind, messagePath | 本文の絵 | Confirm.setImageMessage(kind, messagePath) |
setImagePanel | kind, panelPath | 枠の絵 | Confirm.setImagePanel(kind, panelPath) |
setImageSuspendAssets | kind, normal, rollover, active, inactive | 3 つ目(中断)ボタンの絵 | Confirm.setImageSuspendAssets(kind, normal, rollover, active, inactive) |
setLayout | buttonGap, bottomMargin, dontAskH | ボタンの間隔・下の余白・「次回から確認しない」の高さ(全プラットフォーム共通) | Confirm.setLayout(buttonGap, bottomMargin, dontAskH) |
setOptOutKey | kind[, key] | 「次回から確認しない」の保存先。同じ key を渡した種別は 1 つの設定になる。空ならその種別ではチェックを出さない | Confirm.setOptOutKey(kind[, key]) |
setOptOutLabel | text | 「次回から確認しない」の文言(多言語対応。空で既定の日本語。全プラットフォーム共通) | Confirm.setOptOutLabel(Text.get("confirm.dont_ask", "次回から確認しない")) |
setText | kind, caption[, prompt] | 題と本文 | Confirm.setText(kind, caption[, prompt]) |
setType | kind, type | 種類 | Confirm.setType(kind, type) |
show | kind[, type] | 確認ダイアログを出す。結果は変数 confirm.result(1=はい / 0=いいえ) | Confirm.show("titleExit") |
Cursor (3)
座標は設計座標(1280×720)。窓の大きさに合わせて直してから動かします。
| メソッド | 引数 | 説明 | 呼び出し例 |
|---|---|---|---|
moveTo(値) | x, y | カーソルをその位置へ動かす(1/0) | Cursor.moveTo(x, y) |
moveToAuto(値) | x, y | 環境設定の「カーソルの自動移動」が入のときだけ、画面が出そろってから動かす(切なら 0) | Cursor.moveToAuto(x, y) |
moveToChoice(値) | index | 表示中の選択肢(0 始まり)の中央へ動かす(1/0) | Cursor.moveToChoice(index) |
Debug (17)
実行モードが Release のときは、Debug の命令はすべて何もしません。console は Debug の別名です(console.log(x) は Debug.log(x) と同じ)。
| メソッド | 引数 | 説明 | 呼び出し例 |
|---|---|---|---|
addBreakpointCommand | command | 命令名でブレーク | Debug.addBreakpointCommand(command) |
addBreakpointLabel | label | ラベルでブレーク | Debug.addBreakpointLabel(label) |
assert | condition, message | 偽ならログへ出して失敗にする | Debug.assert(condition, message) |
break | — | Debug ビルドでブレーク | Debug.break() |
clearBreakpoints | — | ブレークを全部消す | Debug.clearBreakpoints() |
hide | toolName | デバッグツールを隠す | Debug.hide(toolName) |
hideAll | — | デバッグツールを全部隠す | Debug.hideAll() |
initialize | [scenarioDir, particleDir, macroDir] | デバッグツールを使い始める | Debug.initialize([scenarioDir, particleDir, macroDir]) |
isAvailable(値) | — | デバッグツールが使えるか | Debug.isAvailable() |
log | message | ログへ出す | Debug.log(message) |
requestBreak | — | 次の命令で止める | Debug.requestBreak() |
show | toolName | デバッグツールを出す | Debug.show(toolName) |
showAll | — | デバッグツールを全部出す | Debug.showAll() |
shutdown | — | デバッグツールを片付ける | Debug.shutdown() |
toggle | toolName | 出す/隠すを切り替える | Debug.toggle(toolName) |
trace | — | 今の命令をログへ出す | Debug.trace() |
version | — | デバッグツールの版 | Debug.version() |
Display (2)
| メソッド | 引数 | 説明 | 呼び出し例 |
|---|---|---|---|
setContentAspect | mode | 4:3 画面モード(Window.setContentAspect と同じ。0=ワイド / 1=スクエア / 2=自動) | Display.setContentAspect(mode) |
setScaleMode | mode | 拡大方法(Window.setScaleMode と同じ) | Display.setScaleMode(mode) |
Draw (6)
描いた図形は画面に残り続けます(場面の絵の上、メッセージ枠などの UI の下。タイトルの画面では背景の上、ボタンや文字の下)。消すときは Draw.clear() です。座標は設計座標(1280×720 などの設計解像度)です。RenderTarget の setActive(番号) の間は、その描き先へ描きます。Windows・Android・ブラウザで同じ動きです。
画面に描いた物は、シナリオの始まり・セーブの読み込み・タイトルへ戻るときに消えます(セーブには入りません。RenderTarget に描いた絵は消えません)。消さずに描き足し続けても重くなりません。画面の外の座標や極端に大きな数、数でない値は、無視するか範囲に収めて扱います。
| メソッド | 引数 | 説明 | 呼び出し例 |
|---|---|---|---|
circle | cx, cy[, radius, r, g, b, a, lineWidth] | 円の線 | Draw.circle(cx, cy[, radius, r, g, b, a, lineWidth]) |
clear | [r, g, b, a] | 描き先を消す(引数なしで透明に戻す。色を渡すとその色で塗りつぶす。a を省くと 255) | Draw.clear([r, g, b, a]) |
fillCircle | cx, cy[, radius, r, g, b, a] | 塗りの円 | Draw.fillCircle(cx, cy[, radius, r, g, b, a]) |
fillRect | x, y[, w, h, r, g, b, a] | 塗りの矩形 | Draw.fillRect(x, y[, w, h, r, g, b, a]) |
line | x1, y1, x2, y2[, r, g, b, a, lineWidth] | 線 | Draw.line(x1, y1, x2, y2[, r, g, b, a, lineWidth]) |
rect | x, y[, w, h, r, g, b, a, lineWidth] | 矩形の線 | Draw.rect(x, y[, w, h, r, g, b, a, lineWidth]) |
Easing (10)
t は進み具合 0.0〜1.0(範囲の外は丸める)。どれも計算した値を返します(LUMINA Script の式で使う。SimpleScript では受け取れない)。
| メソッド | 引数 | 説明 | 呼び出し例 |
|---|---|---|---|
easeInCubic(値) | t | 3 次の加速 | Easing.easeInCubic(t) |
easeInOutCubic(値) | t | 3 次の加速→減速 | Easing.easeInOutCubic(t) |
easeInOutQuad(値) | t | 2 次の加速→減速 | Easing.easeInOutQuad(t) |
easeInQuad(値) | t | 2 次の加速 | Easing.easeInQuad(t) |
easeOutBack(値) | t | 少し行き過ぎて戻る | Easing.easeOutBack(t) |
easeOutBounce(値) | t | 弾んで止まる | Easing.easeOutBounce(t) |
easeOutCubic(値) | t | 3 次の減速 | Easing.easeOutCubic(t) |
easeOutElastic(値) | t | ばねのように揺れて止まる | Easing.easeOutElastic(t) |
easeOutQuad(値) | t | 2 次の減速 | Easing.easeOutQuad(t) |
linear(値) | t | 直線 | Easing.linear(t) |
Effect (5)
| メソッド | 引数 | 説明 | 呼び出し例 |
|---|---|---|---|
flash | durationMs[, r, g, b] | 画面を光らせる(色の既定は白) | Effect.flash(durationMs[, r, g, b]) |
quake | durationMs[, strength] | 画面を揺らす(strength 既定 8) | Effect.quake(durationMs[, strength]) |
setColorAdjust | [brightness, contrast, saturation] | 明るさ・コントラスト・彩度(既定 0 / 1 / 1) | Effect.setColorAdjust([brightness, contrast, saturation]) |
setGamma | [value] | ガンマ(既定 0.5) | Effect.setGamma([value]) |
setSharpness | [value] | シャープネス(既定 0) | Effect.setSharpness([value]) |
EventCG (9)
| メソッド | 引数 | 説明 | 呼び出し例 |
|---|---|---|---|
change | diffName, durationMs[, transitionType] | 差分へ切り替える(transitionType 既定 crossfade) | EventCG.change(diffName, durationMs[, transitionType]) |
clear | — | 消す(旧い書き方) | EventCG.clear() |
hide | [durationMs] | 消す | EventCG.hide([durationMs]) |
isAnimating(値) | — | 動きの途中か | EventCG.isAnimating() |
layer | basePath, diffName, layerIdx, alpha, durationMs | 差分を重ねる | EventCG.layer(basePath, diffName, layerIdx, alpha, durationMs) |
move | x, y, zoomPercent, durationMs | 位置と拡大率を動かす | EventCG.move(x, y, zoomPercent, durationMs) |
setBase | folder[, partName] | ベースと差分を重ねて 1 枚にするためのベースを登録(フォルダの登録も兼ねる) | EventCG.setBase(folder[, partName]) |
setFolder | folder | 名前だけで引けるようにフォルダを登録 | EventCG.setFolder(folder) |
show | path[, durationMs] | イベント CG を出す | EventCG.show(path[, durationMs]) |
FX (19)
画像素材のいらない図形の演出です。id ごとに要素を作り、anim(出て・保って・消える)と transform(拡大・移動)で時間に載せます。作った要素は消すまで毎コマ描かれます。座標は基準解像度(既定 1280×720)。色は "#AARRGGBB" / "0xAARRGGBB" / 整数で書けます(省略は白)。softness は縁のぼかし、thickness が 0 以下だと塗りつぶしです。
| メソッド | 引数 | 説明 | 呼び出し例 |
|---|---|---|---|
anim | id[, fadeInMs, holdMs, fadeOutMs, easing, delayMs] | 出る→保つ→消えるの時間(easing 既定 1。delayMs で始まりをずらす) | FX.anim(id[, fadeInMs, holdMs, fadeOutMs, easing, delayMs]) |
arc | id, cx, cy, radius, startDeg, endDeg[, thickness, color, softness, taper] | 円弧(角度は 0=右 / 90=下。taper 1 で両端が尖る) | FX.arc(id, cx, cy, radius, startDeg, endDeg[, thickness, color, softness, taper]) |
beginBatch | — | 要素をまとめて作り始める(endBatch まで描かない。転送を 1 回にまとめる) | FX.beginBatch() |
blend | id, mode | 合成方法(0=通常 / 2=加算) | FX.blend(id, mode) |
bolt | id, x1, y1, x2, y2[, amp, segs, seed, thickness, color, softness] | 稲妻・ヒビ(折れの振れ幅・数・形の種) | FX.bolt(id, x1, y1, x2, y2[, amp, segs, seed, thickness, color, softness]) |
circle | id, cx, cy, radius[, thickness, color, softness] | 円・輪 | FX.circle(id, cx, cy, radius[, thickness, color, softness]) |
clear | id | 要素を消す | FX.clear(id) |
clearAll | — | 要素を全部消す | FX.clearAll() |
endBatch | — | まとめて作るのを終える | FX.endBatch() |
heart | id, cx, cy[, radius, thickness, color, softness] | ハート(既定 半径 40・塗り・ピンク) | FX.heart(id, cx, cy[, radius, thickness, color, softness]) |
image | id, path, x, y[, w, h] | 絵を要素にする(anim / transform で図形と同じく動かせる。w, h が 0 以下なら実寸) | FX.image(id, path, x, y[, w, h]) |
line | id, x1, y1, x2, y2[, thickness, color, softness] | 線 | FX.line(id, x1, y1, x2, y2[, thickness, color, softness]) |
polygon | id, cx, cy, radius[, sides, skip, rotDeg, thickness, color, softness] | 多角形・星形(skip 1 で正多角形、5, 2 で五芒星。既定 5, 2, -90) | FX.polygon(id, cx, cy, radius[, sides, skip, rotDeg, thickness, color, softness]) |
radial | id, cx, cy, innerR, outerR[, count, thickness, color, softness] | 放射線(集中線) | FX.radial(id, cx, cy, innerR, outerR[, count, thickness, color, softness]) |
rect | id, x, y, w, h[, color, softness] | 矩形 | FX.rect(id, x, y, w, h[, color, softness]) |
setDesignSize | [w, h] | 座標の基準解像度(既定 1280×720) | FX.setDesignSize([w, h]) |
spin | id[, degPerSec, startDeg] | 回し続ける(正で時計回り、0 で止める) | FX.spin(id[, degPerSec, startDeg]) |
transform | id[, scaleFrom, scaleTo, dx, dy, durationMs, easing, delayMs] | 拡大と移動を時間をかけて(easing 既定 1) | FX.transform(id[, scaleFrom, scaleTo, dx, dy, durationMs, easing, delayMs]) |
zigzag | id, cx, cy, radius[, amp, teeth, rotDeg, thickness, color, softness] | ギザギザの輪 | FX.zigzag(id, cx, cy, radius[, amp, teeth, rotDeg, thickness, color, softness]) |
Gallery (9)
| メソッド | 引数 | 説明 | 呼び出し例 |
|---|---|---|---|
cgGetList | — | 解放済み CG の ID 一覧(カンマ区切り) | Gallery.cgGetList() |
cgGetMask | cgId | 解放済みの差分(bit N = 差分 N) | Gallery.cgGetMask(cgId) |
cgIsUnlocked | cgId[, diffIndex] | 解放済みか | Gallery.cgIsUnlocked(cgId[, diffIndex]) |
cgUnlock | cgId[, diffIndex] | CG(差分)を解放する | Gallery.cgUnlock(cgId[, diffIndex]) |
load | — | 解放状況を読み直す | Gallery.load() |
save | — | 解放状況を保存する | Gallery.save() |
sceneIsUnlocked | sceneId | シーンが解放済みか | Gallery.sceneIsUnlocked(sceneId) |
sceneRegister | sceneId, title[, startLabel, scriptFile] | シーンを登録する | Gallery.sceneRegister(sceneId, title[, startLabel, scriptFile]) |
sceneUnlock | sceneId | シーンを解放する | Gallery.sceneUnlock(sceneId) |
Input (84)
ADV 入力のポーリング API です。playerIndex は省略で 0。マウスの座標は設計座標(1280×720)です。
| メソッド | 引数 | 説明 | 呼び出し例 |
|---|---|---|---|
disableRelativeMouseMode | — | 相対マウスモードを切る | Input.disableRelativeMouseMode() |
enableRelativeMouseMode | — | 相対マウスモード(移動量だけを取る) | Input.enableRelativeMouseMode() |
getAccelerometerX(値) | [playerIndex] | 加速度センサー X | Input.getAccelerometerX([playerIndex]) |
getAccelerometerY(値) | [playerIndex] | 加速度センサー Y | Input.getAccelerometerY([playerIndex]) |
getAccelerometerZ(値) | [playerIndex] | 加速度センサー Z | Input.getAccelerometerZ([playerIndex]) |
getConnectedControllerCount(値) | — | つながっているコントローラーの数 | Input.getConnectedControllerCount() |
getControllerBackend(値) | [playerIndex] | コントローラーの入力の仕組み | Input.getControllerBackend([playerIndex]) |
getCursorMode(値) | — | カーソルモード | Input.getCursorMode() |
getGyroscopeX(値) | [playerIndex] | ジャイロ X | Input.getGyroscopeX([playerIndex]) |
getGyroscopeY(値) | [playerIndex] | ジャイロ Y | Input.getGyroscopeY([playerIndex]) |
getGyroscopeZ(値) | [playerIndex] | ジャイロ Z | Input.getGyroscopeZ([playerIndex]) |
getLeftStickX(値) | [playerIndex] | 左スティック X | Input.getLeftStickX([playerIndex]) |
getLeftStickY(値) | [playerIndex] | 左スティック Y | Input.getLeftStickY([playerIndex]) |
getLeftTrigger(値) | [playerIndex] | 左トリガー | Input.getLeftTrigger([playerIndex]) |
getMouseDelta | — | マウスの移動量 | Input.getMouseDelta() |
getMouseX(値) | — | マウスの X | Input.getMouseX() |
getMouseY(値) | — | マウスの Y | Input.getMouseY() |
getPinchScale(値) | — | ピンチの拡大率 | Input.getPinchScale() |
getRightStickX(値) | [playerIndex] | 右スティック X | Input.getRightStickX([playerIndex]) |
getRightStickY(値) | [playerIndex] | 右スティック Y | Input.getRightStickY([playerIndex]) |
getRightTrigger(値) | [playerIndex] | 右トリガー | Input.getRightTrigger([playerIndex]) |
getSwipeDirection(値) | — | スワイプの向き(ジェスチャが切なら 0) | Input.getSwipeDirection() |
getTiltPitch(値) | [playerIndex] | 傾き(ピッチ) | Input.getTiltPitch([playerIndex]) |
getTiltRoll(値) | [playerIndex] | 傾き(ロール) | Input.getTiltRoll([playerIndex]) |
getTiltYaw(値) | [playerIndex] | 傾き(ヨー) | Input.getTiltYaw([playerIndex]) |
getTouchCount(値) | — | タッチの数 | Input.getTouchCount() |
getTouchX(値) | [index] | タッチの X | Input.getTouchX([index]) |
getTouchY(値) | [index] | タッチの Y | Input.getTouchY([index]) |
hasGesture(値) | — | ジェスチャがあったか(環境設定のマウスジェスチャが切なら無し) | Input.hasGesture() |
hideCursor | — | カーソルを隠す | Input.hideCursor() |
hitTest(値) | x, y, w, h | マウスがその矩形の中にあるか(1/0) | Input.hitTest(x, y, w, h) |
isAdvanceTextRequested(値) | — | 文字送り | Input.isAdvanceTextRequested() |
isAnyClicked(値) | — | 左右どちらかがクリックされたか | Input.isAnyClicked() |
isAutoModeRequested(値) | — | オートモード | Input.isAutoModeRequested() |
isBacklogRequested(値) | — | バックログ | Input.isBacklogRequested() |
isCancelRequested(値) | — | キャンセル | Input.isCancelRequested() |
isCommandExecuted(値) | cmdId[, playerIndex] | コマンド入力が成立したか | Input.isCommandExecuted(cmdId[, playerIndex]) |
isControllerConnected(値) | [playerIndex] | コントローラーがつながっているか | Input.isControllerConnected([playerIndex]) |
isDoubleTapped(値) | — | ダブルタップ | Input.isDoubleTapped() |
isDownRequested(値) | — | 下 | Input.isDownRequested() |
isFullscreenToggleRequested(値) | — | フルスクリーン切替 | Input.isFullscreenToggleRequested() |
isGamepadConnected(値) | [varName] | ゲームパッドがつながっているか(1/0。9.9 のゲームパッド)。SimpleScript では varName の変数へ入る | Input.isGamepadConnected([varName]) |
isLeftClicked(値) | — | 左クリック | Input.isLeftClicked() |
isLeftPressed(値) | — | 左ボタンを押している | Input.isLeftPressed() |
isLeftRequested(値) | — | 左 | Input.isLeftRequested() |
isMotionSensorAvailable(値) | [playerIndex] | モーションセンサーが使えるか | Input.isMotionSensorAvailable([playerIndex]) |
isMouseClicked(値) | — | クリックされたか(1/0) | Input.isMouseClicked() |
isMouseDown(値) | — | 左ボタンを押しているか(1/0) | Input.isMouseDown() |
isPlayingBack(値) | — | 入力の再生中か | Input.isPlayingBack() |
isQuickLoadRequested(値) | — | クイックロード | Input.isQuickLoadRequested() |
isQuickSaveRequested(値) | — | クイックセーブ | Input.isQuickSaveRequested() |
isRecording(値) | — | 入力の記録中か | Input.isRecording() |
isRightClicked(値) | — | 右クリック | Input.isRightClicked() |
isRightMouseDown(値) | — | 右ボタンを押しているか(1/0) | Input.isRightMouseDown() |
isRightPressed(値) | — | 右ボタンを押している | Input.isRightPressed() |
isRightRequested(値) | — | 右 | Input.isRightRequested() |
isScreenshotRequested(値) | — | スクリーンショット | Input.isScreenshotRequested() |
isSelectRequested(値) | — | 決定 | Input.isSelectRequested() |
isSkipHeld(値) | — | スキップを押し続けている | Input.isSkipHeld() |
isSkipRequested(値) | — | スキップ | Input.isSkipRequested() |
isSystemMenuRequested(値) | — | システムメニュー | Input.isSystemMenuRequested() |
isTapped(値) | — | タップ | Input.isTapped() |
isUpRequested(値) | — | 上 | Input.isUpRequested() |
isVoiceReplayRequested(値) | — | ボイスの再生し直し | Input.isVoiceReplayRequested() |
loadRecording | path | 入力の記録を読み込む | Input.loadRecording(path) |
lockCursor | — | カーソルを窓の中に閉じ込める | Input.lockCursor() |
registerCommand | notation, name | コマンド入力を登録(格闘ゲーム向け) | Input.registerCommand(notation, name) |
registerPresetCommands | — | 定番のコマンド入力を登録 | Input.registerPresetCommands() |
saveRecording | path | 入力の記録を保存 | Input.saveRecording(path) |
setCursorMode | mode | マウスカーソル制御 | Input.setCursorMode(mode) |
setGamepadEnabled | on | ゲームパッドで操作するか(1/0。既定は 1。割り当ては 9.9 のゲームパッド) | Input.setGamepadEnabled(on) |
setGestureAction | dir[, actionId] | ジェスチャの向き("up" / "down" / "left" / "right" / "wheelup")に操作 ID(メッセージ枠のボタンと同じ qsave / auto / backlog など)を割り当てる。空でその向きは何もしない | Input.setGestureAction(dir[, actionId]) |
setGestureDecoration | [veil, ring, center, plate, plateSelected] | ジェスチャの輪の見た目の絵(暗幕・輪・中心・板・選択中の板。空の飾りは出ない) | Input.setGestureDecoration([veil, ring, center, plate, plateSelected]) |
setGestureImage | dir[, path] | 押している間に輪に出す絵(空でその向きは出さない) | Input.setGestureImage(dir[, path]) |
setVibration | [playerIndex, left, right] | 振動(左右のモーターの強さ) | Input.setVibration([playerIndex, left, right]) |
showCursor | — | カーソルを出す | Input.showCursor() |
startPlayback | — | 記録した入力を再生 | Input.startPlayback() |
startRecording | [seed] | 入力の記録を始める | Input.startRecording([seed]) |
stopAllVibration | — | 振動を全部止める | Input.stopAllVibration() |
stopPlayback | — | 再生を止める | Input.stopPlayback() |
stopRecording | — | 記録を止める | Input.stopRecording() |
stopVibration | [playerIndex] | 振動を止める | Input.stopVibration([playerIndex]) |
unlockCursor | — | カーソルの閉じ込めを外す | Input.unlockCursor() |
update | — | 入力を更新 | Input.update() |
InputUtility (5)
| メソッド | 引数 | 説明 | 呼び出し例 |
|---|---|---|---|
getRemap(値) | actionId | 操作の割り当てを読む | InputUtility.getRemap(actionId) |
getTextBuffer(値) | — | 入力された文字 | InputUtility.getTextBuffer() |
isDoubleClick(値) | lastClickTime, nowTime, intervalSec | ダブルクリックか(interval 既定 0.3 秒) | InputUtility.isDoubleClick(lastClickTime, nowTime, intervalSec) |
isLongPress(値) | pressed, pressTime, thresholdSec | 長押しか(threshold 既定 0.5 秒) | InputUtility.isLongPress(pressed, pressTime, thresholdSec) |
setRemap | actionId, keyOrButton | 操作の割り当てを変える | InputUtility.setRemap(actionId, keyOrButton) |
JSON (2)
どちらも値を返します。
| メソッド | 引数 | 説明 | 呼び出し例 |
|---|---|---|---|
parse | str | JSON 文字列を値にする | JSON.parse(str) |
stringify | value | 値を JSON 文字列にする | JSON.stringify(value) |
以前この表に載せていた JSON.isArray はありません(呼んでも undefined)。配列かどうかは Array.isArray(x) で調べます。
LipSync (6)
| メソッド | 引数 | 説明 | 呼び出し例 |
|---|---|---|---|
getAutoEnabled(値のみ) | — | ボイスに合わせた自動口パクが有効か(1/0) | LipSync.getAutoEnabled() |
isActive(値) | charaId | 口パク中か(1/0) | LipSync.isActive(charaId) |
registerParts | charaId, part... | 口パクに使う差分を登録 | LipSync.registerParts(charaId, part...) |
setAutoEnabled | [on] | ボイスに合わせた自動口パクの入切(既定 入) | LipSync.setAutoEnabled([on]) |
start | charaId | 口パクを始める | LipSync.start(charaId) |
stop | charaId | 口パクを止める | LipSync.stop(charaId) |
Math (28)
どれも値を返します(Math のメソッドは命令を通さずに計算します)。
| メソッド | 引数 | 説明 | 呼び出し例 |
|---|---|---|---|
abs | x | 絶対値 | Math.abs(x) |
acos | x | 逆余弦 | Math.acos(x) |
asin | x | 逆正弦 | Math.asin(x) |
atan | x | 逆正接 | Math.atan(x) |
atan2 | y, x | 2 引数の逆正接 | Math.atan2(y, x) |
cbrt | x | 立方根 | Math.cbrt(x) |
ceil | x | 切り上げ | Math.ceil(x) |
cos | x | 余弦 | Math.cos(x) |
exp | x | e の x 乗 | Math.exp(x) |
floor | x | 切り捨て | Math.floor(x) |
hypot | x, y | √(x² + y²) | Math.hypot(x, y) |
log | x | 自然対数 | Math.log(x) |
log10 | x | 常用対数 | Math.log10(x) |
log2 | x | 2 を底とする対数 | Math.log2(x) |
max | x, y... | 最大 | Math.max(x, y...) |
min | x, y... | 最小 | Math.min(x, y...) |
mtRandom | [max] または [min, max] | MT19937 の乱数(引数なしで 0〜1 未満、あれば整数) | Math.mtRandom([max]) |
mtRandomSeed | seed | MT19937 の種 | Math.mtRandomSeed(seed) |
pow | x, y | x の y 乗 | Math.pow(x, y) |
random | [max] または [min, max] | 乱数(引数なしで 0〜1 未満、max だけなら 0〜max、2 つなら min〜max の整数) | Math.random([max]) |
randomSeed | seed | random の種 | Math.randomSeed(seed) |
round | x | 四捨五入 | Math.round(x) |
seedAll | seed | 両方の乱数の種をまとめて決める | Math.seedAll(seed) |
sign | x | 符号(1 / 0 / -1) | Math.sign(x) |
sin | x | 正弦 | Math.sin(x) |
sqrt | x | 平方根 | Math.sqrt(x) |
tan | x | 正接 | Math.tan(x) |
trunc | x | 小数部を捨てる | Math.trunc(x) |
定数はプロパティで読めます: Math.PI / Math.E / Math.LN2 / Math.LN10 / Math.SQRT2 / Math.SQRT1_2。
Menu (16)
| メソッド | 引数 | 説明 | 呼び出し例 |
|---|---|---|---|
addItem | parent, title[, action] | 項目を足す | Menu.addItem(parent, title[, action]) |
addMenu | path または parent, title | サブメニューを足す("親/子" の 1 引数でも書ける) | Menu.addMenu(path) |
addMenuBarShowHideItems | parent | メニューバーの表示/非表示の項目を足す | Menu.addMenuBarShowHideItems(parent) |
addSeparator | parent | 区切り線 | Menu.addSeparator(parent) |
apply | — | 組んだメニューを反映 | Menu.apply() |
begin | title | 構築ブロックを始める | Menu.begin(title) |
clear | — | メニューを全部消す | Menu.clear() |
debugState | — | メニューの状態をログへ出す | Menu.debugState() |
end | — | 構築ブロックを終える | Menu.end() |
forceShow | — | メニューを付け直して出す | Menu.forceShow() |
handle | id | register したハンドラを実行 | Menu.handle(id) |
item | title, action | 項目(ブロック内) | Menu.item(title, action) |
register | id, action | ハンドラを登録 | Menu.register(id, action) |
separator | — | 区切り線(ブロック内) | Menu.separator() |
setup | definition | 定義からまとめて組む | Menu.setup(definition) |
setVisible | visible[, force] | 表示切替(起動中は無視されることがあるので、確実に変えるときは force=true) | Menu.setVisible(visible[, force]) |
MenuBar (20)
| メソッド | 引数 | 説明 | 呼び出し例 |
|---|---|---|---|
addButton | actionId, x, y, normal, rollover, active, inactive | ボタンを追加 | MenuBar.addButton(actionId, x, y, normal, rollover, active, inactive) |
apply | — | 設定を反映 | MenuBar.apply() |
clearButtons | — | ボタンを全部消す | MenuBar.clearButtons() |
getMode(値) | — | setActive の値 | MenuBar.getMode() |
hide | — | 隠す | MenuBar.hide() |
isActive(値) | — | 有効か | MenuBar.isActive() |
register | actionId, handlerCode | ボタンのハンドラを登録 | MenuBar.register(actionId, handlerCode) |
setActive | mode | 出す場面(0=出さない / 1=シナリオ中 / 2=システム画面(ロゴ・タイトル) / 3=両方) | MenuBar.setActive(mode) |
setBackground | path | 背景画像 | MenuBar.setBackground(path) |
setButtonEnabled | actionId[, enabled] | ボタン有効化 | MenuBar.setButtonEnabled(actionId[, enabled]) |
setDisplayMode | mode | "slide" か 0 = スライド式(既定) / "inplace" か 1 = その場表示(透明度で出し入れ) | MenuBar.setDisplayMode(mode) |
setHotZoneHeight | [h] | 上端の反応する高さ(既定 10) | MenuBar.setHotZoneHeight([h]) |
setInplaceAlpha | idleAlpha, activeAlpha | その場表示の透明度(非ホバー時 既定 0.3 / ホバー時 既定 1.0) | MenuBar.setInplaceAlpha(idleAlpha, activeAlpha) |
setLogo | path[, x, y] | ロゴ画像 | MenuBar.setLogo(path[, x, y]) |
setScope | scope | "scenario" か 0 = シナリオ実行中だけ(既定) / "system" か 1 = システムスクリプト実行中だけ / "both" か 2 = 両方 | MenuBar.setScope(scope) |
setSlideDuration | [ms] | スライドの時間(既定 250) | MenuBar.setSlideDuration([ms]) |
setSounds | [hoverSE, clickSE] | ボタン SE | MenuBar.setSounds([hoverSE, clickSE]) |
setSystemFilter | filter | 0 か "all" = すべてのシステム画面 / 1 か "logo" / 2 か "title" / 3 = ロゴとタイトル | MenuBar.setSystemFilter(filter) |
setSystemTag | tag | 0=なし / 1=logo / 2=title | MenuBar.setSystemTag(tag) |
show | — | 出す | MenuBar.show() |
MessageWindow (6)
| メソッド | 引数 | 説明 | 呼び出し例 |
|---|---|---|---|
completeText | — | 文字送りを最後まで出す | MessageWindow.completeText() |
getTextSpeed(値) | — | 文字送りの速さ | MessageWindow.getTextSpeed() |
invoke | actionId | register したハンドラを実行 | MessageWindow.invoke(actionId) |
isTextComplete(値) | — | 文字送りが終わったか | MessageWindow.isTextComplete() |
register | actionId, code | ボタンのハンドラを登録 | MessageWindow.register(actionId, code) |
setTextSpeed | [ms] | 文字送りの速さ | MessageWindow.setTextSpeed([ms]) |
Motion (55)
mrumotion プラグインが必要です。handle は createInstance が返す番号です。playMotionEx 以降に足した命令(繋ぎ・まばたき・口パク・パーツ・当たり判定)は apiVersion() が 2 以上のときだけ効きます(古い DLL では何もしない)。
| メソッド | 引数 | 説明 | 呼び出し例 |
|---|---|---|---|
apiVersion(値のみ) | — | プラグインの API 版(1 = 旧 DLL / 2 以上で新しい命令が使える) | Motion.apiVersion() |
clearExpression | handle | 表情を外す | Motion.clearExpression(handle) |
createInstance(値) | modelName[, varName] | インスタンスを作り番号を返す。SimpleScript では varName の変数へ入る | Motion.createInstance(modelName[, varName]) |
destroyAll | — | インスタンスを全部消す | Motion.destroyAll() |
destroyInstance | handle | インスタンスを消す | Motion.destroyInstance(handle) |
getAutoBlink(値のみ) | handle | 自動まばたきが入か(1/0) | Motion.getAutoBlink(handle) |
getCanvasSize(値) | modelName | 画布の大きさ(LUMINA Script では "幅x高さ" の文字列) | Motion.getCanvasSize(modelName) |
getCurrentMotionName(値のみ) | handle | 再生中のモーション名 | Motion.getCurrentMotionName(handle) |
getHitAreaCount(値のみ) | modelName | 当たり領域の数 | Motion.getHitAreaCount(modelName) |
getHitAreaName(値のみ) | modelName, index | 当たり領域の名前 | Motion.getHitAreaName(modelName, index) |
getInstanceCount(値のみ) | — | インスタンスの数 | Motion.getInstanceCount() |
getLipSync(値のみ) | handle | リップシンクが入か(1/0) | Motion.getLipSync(handle) |
getLipSyncValue(値のみ) | handle | 今の口の開き(0〜1) | Motion.getLipSyncValue(handle) |
getParameter(値) | handle, paramName | パラメータを読む | Motion.getParameter(handle, paramName) |
getPartCount(値のみ) | modelName | パーツの数 | Motion.getPartCount(modelName) |
getPartId(値のみ) | modelName, index | パーツ ID | Motion.getPartId(modelName, index) |
getPartOpacity(値のみ) | handle, partId | パーツの不透明度 | Motion.getPartOpacity(handle, partId) |
hasInstances(値のみ) | — | インスタンスがあるか(1/0) | Motion.hasInstances() |
hitTest(値のみ) | handle, x, y | 当たった領域名(外れは空文字) | Motion.hitTest(handle, x, y) |
hitTestArea(値のみ) | handle, areaName, x, y | その領域に当たったか(1/0) | Motion.hitTestArea(handle, areaName, x, y) |
isFinished(値) | handle | モーションが終わったか(1/0) | Motion.isFinished(handle) |
isPlaying(値) | handle | モーション再生中か(1/0) | Motion.isPlaying(handle) |
loadExpression | modelName, exprPath | 表情を読み込む | Motion.loadExpression(modelName, exprPath) |
loadModel(値) | name, jsonPath | モデルを読み込む。LUMINA Script では読めたら 1、読めなければ 0 | Motion.loadModel(name, jsonPath) |
loadMotion | modelName, motionPath | モーションを読み込む | Motion.loadMotion(modelName, motionPath) |
playMotion | handle, motionName[, speed] | モーションを再生(すぐ差し替える) | Motion.playMotion(handle, motionName[, speed]) |
playMotionEx | handle, motionName[, speed, fadeInMs, fadeOutMs, loop] | 繋ぎ方を指定して再生(fadeInMs が負なら定義どおり、fadeOutMs が負なら fadeInMs と同じ。loop は -1=定義どおり / 0 / 1) | Motion.playMotionEx(handle, motionName[, speed, fadeInMs, fadeOutMs, loop]) |
renderBackend(値のみ) | — | 描画の方式(0=ソフト / 1=GPU D3D12 / 2=GPU D3D11 / 3=GPU GLES。確認用) | Motion.renderBackend() |
resetParameters | handle | パラメータを初期値へ | Motion.resetParameters(handle) |
resetPhysics | handle | 揺れ物の物理を初期状態へ戻す | Motion.resetPhysics(handle) |
set3D | handle[, depthScale, perspective] | 疑似3D の効き(1, 1 = モデルどおり / depthScale 0 = 平面) | Motion.set3D(handle[, depthScale, perspective]) |
setAlpha | handle, alpha | 不透明度 | Motion.setAlpha(handle, alpha) |
setAutoBlink | handle, on | 自動まばたきの入切 | Motion.setAutoBlink(handle, on) |
setAutoBlinkParams | handle, csv | まばたきで動かすパラメータ(カンマ区切り) | Motion.setAutoBlinkParams(handle, csv) |
setAutoBlinkTiming | handle, minMs, maxMs[, closeMs, holdMs, openMs] | まばたきの間合い(負の値は変えない) | Motion.setAutoBlinkTiming(handle, minMs, maxMs[, closeMs, holdMs, openMs]) |
setDrawOrder | handle, order | 描画順 | Motion.setDrawOrder(handle, order) |
setExpression | handle, name | 表情を切り替える | Motion.setExpression(handle, name) |
setGlobalWind | wx, wy | 全体の風 | Motion.setGlobalWind(wx, wy) |
setLipSync | handle, on | リップシンクの入切 | Motion.setLipSync(handle, on) |
setLipSyncParams | handle, csv | 口パクで動かすパラメータ(カンマ区切り) | Motion.setLipSyncParams(handle, csv) |
setLipSyncTuning | handle, gain[, smoothing, decayPerSec] | 口の開きの効き方(負の値は変えない) | Motion.setLipSyncTuning(handle, gain[, smoothing, decayPerSec]) |
setLipSyncValue | handle, level | 声の大きさ(0〜1)を渡す(毎フレーム) | Motion.setLipSyncValue(handle, level) |
setMotionFade | handle, fadeInMs | 繋ぎ時間の既定値(モーションの定義に無いとき使う) | Motion.setMotionFade(handle, fadeInMs) |
setParameter | handle, paramName, value | パラメータ制御(メッシュ変形) | Motion.setParameter(handle, paramName, value) |
setPart | handle, partId, visible | パーツを表にする(同じ組の他のパーツは消える) | Motion.setPart(handle, partId, visible) |
setPartOpacity | handle, partId, alpha | パーツの不透明度 | Motion.setPartOpacity(handle, partId, alpha) |
setPosition | handle, x, y | 位置 | Motion.setPosition(handle, x, y) |
setScale | handle, sx, sy | 拡大率 | Motion.setScale(handle, sx, sy) |
setVisible | handle, visible | 表示切替 | Motion.setVisible(handle, visible) |
setVoiceLipSync | handle | 再生中の声の大きさを毎フレーム流し込む相手(0 で解除) | Motion.setVoiceLipSync(handle) |
setWind | handle, wx, wy | 風(揺れ物) | Motion.setWind(handle, wx, wy) |
stopMotion | handle | モーションを止める | Motion.stopMotion(handle) |
stopMotionFade | handle[, fadeOutMs] | 時間をかけて止める(既定 300、0 で即) | Motion.stopMotionFade(handle[, fadeOutMs]) |
unloadAll | — | モデルを全部破棄する | Motion.unloadAll() |
unloadModel | name | モデルを破棄する | Motion.unloadModel(name) |
Movie (18)
| メソッド | 引数 | 説明 | 呼び出し例 |
|---|---|---|---|
animateViewport | x, y, w, h, durationMs | 再生枠を今の位置からその枠まで滑らかに動かす | Movie.animateViewport(x, y, w, h, durationMs) |
getDurationMs(値のみ) | — | 総再生時間(ms) | Movie.getDurationMs() |
getPositionMs(値のみ) | — | 再生位置(ms) | Movie.getPositionMs() |
isPlaying(値) | — | 再生中か(1/0) | Movie.isPlaying() |
pause | — | 一時停止 | Movie.pause() |
play | path[, x, y, mask, async] | 動画を再生(終わりまで待つには Common.WaitMovieEnd) | Movie.play(path[, x, y, mask, async]) |
preload(値) | path | 再生はせず下ごしらえだけ済ませる。LUMINA Script では総再生時間(ms)を返す | Movie.preload(path) |
resume | — | 再開 | Movie.resume() |
seek | ms | 再生位置 | Movie.seek(ms) |
SetCancelMode | mode | setCancelMode と同じ | Movie.SetCancelMode(mode) |
setCancelMode | mode | 飛ばし方 | Movie.setCancelMode(mode) |
setFullscreen | [on] | 1 で画面いっぱいへ戻す(枠の指定を外す) | Movie.setFullscreen([on]) |
setLooping | loop | ループ | Movie.setLooping(loop) |
setRate | rate | 再生速度 | Movie.setRate(rate) |
setup | definition | 定義をまとめて設定 | Movie.setup(definition) |
setViewport | x, y, w, h | 設計座標の枠の中で再生する(周りのボタンや文字が見えたまま) | Movie.setViewport(x, y, w, h) |
setVolume | volume | 音量 | Movie.setVolume(volume) |
stop | — | 停止 | Movie.stop() |
Particle (17)
| メソッド | 引数 | 説明 | 呼び出し例 |
|---|---|---|---|
fadeOut | [ms] | 薄くしながら止める(画面のフェードアウトと一緒に消すとき。0 で stop と同じ) | Particle.fadeOut([ms]) |
getLayer(値) | — | 描く層の名前 | Particle.getLayer() |
getLoaded(値) | — | 読み込んだ素材の名前 | Particle.getLoaded() |
isActive(値) | — | 動いているか | Particle.isActive() |
load | asset | パーティクル素材を読み込む | Particle.load(asset) |
play | [count] | 読み込んだ素材を再生(count 既定 -1) | Particle.play([count]) |
playAsset | asset[, count] | 素材を読み込んで再生 | Particle.playAsset(asset[, count]) |
rain | [count] | 雨(既定 150) | Particle.rain([count]) |
sakura | [count] | 桜(既定 80) | Particle.sakura([count]) |
setColor | [r, g, b, a] | 色(既定 255, 255, 255, 200) | Particle.setColor([r, g, b, a]) |
setLayer | layerName | 描く層 | Particle.setLayer(layerName) |
setSize | [minSize, maxSize] | 粒の大きさ(既定 2〜6) | Particle.setSize([minSize, maxSize]) |
setSpeed | [speed] | 速さ(既定 1.0) | Particle.setSpeed([speed]) |
setWind | [wx, wy] | 風 | Particle.setWind([wx, wy]) |
snow | [count] | 雪(既定 100) | Particle.snow([count]) |
start | [type, count] | プリセットを始める(type 0=雪 / 1=雨 / 2=桜、count 既定 100) | Particle.start([type, count]) |
stop | — | その場で止める(粒はすぐ消える) | Particle.stop() |
QuickResume (3)
| メソッド | 引数 | 説明 | 呼び出し例 |
|---|---|---|---|
exists(値) | — | 再開用データがあるか(1/0) | QuickResume.exists() |
load | — | 再開用データを読み込んでシナリオを再開する(バックログ・画面の状態も戻す) | QuickResume.load() |
save | — | 今のシナリオの状態を再開用に保存する | QuickResume.save() |
QuickSave (1)
| メソッド | 引数 | 説明 | 呼び出し例 |
|---|---|---|---|
exists(値) | — | クイックセーブがあるか(1/0) | QuickSave.exists() |
RegExp (3)
正規表現は /pattern/flags か new RegExp(pattern, flags) で作ります。flags は g / i / m。文字列の match / search / replace / split にも渡せます。どれも値を返します。replace・split・match(g)は JavaScript と同じ動きです(空の一致は 1 文字進めて続ける、置き換えの文字で $&・$1・$`・$'・$$ が使える、split は括弧の中身も入れる)。
| メソッド | 引数 | 説明 | 呼び出し例 |
|---|---|---|---|
exec | str | 最初の一致([全体, グループ…]、index 付き)。合わなければ null | re.exec(str) |
test | str | 合うか(true/false) | re.test(str) |
toString | — | "/pattern/flags" の文字列 | re.toString() |
RenderTarget (4)
同時に作れるのは 64 枚まで、画素の合計は 4096×4096 までです。超えると create は 0 を返します(作れない)。要らなくなった描き先は destroy(番号) で捨ててください。描き先の絵は、シナリオの始まりやセーブの読み込みでも消えません。
| メソッド | 引数 | 説明 | 呼び出し例 |
|---|---|---|---|
create(値) | [w, h] | 描き先(画布)を作り番号を返す(既定 256×256。0 は失敗)。setActive(番号) の間は Draw.* がそこへ描く | RenderTarget.create([w, h]) |
destroy | rtId | 描画先を捨てる | RenderTarget.destroy(rtId) |
getTexture(値) | rtId | 描画先のテクスチャ番号。この番号は Title.addSprite など、テクスチャ番号を受け取る口にそのまま置ける。中身を描き足しても、Title.clear の後でも番号は同じで、同じ絵が出る。数そのものに意味は無い(Windows では 1073741825 のような大きな数、Android・ブラウザでは小さな数) | RenderTarget.getTexture(rtId) |
setActive | rtId | 描く先を切り替える(0 で画面へ戻す) | RenderTarget.setActive(rtId) |
SaveSlot (20)
スロットの本編セーブは saveState / loadState / hasState です。save / load はスロットに付ける小さな値(鍵と値の文字列)の読み書きです。
| メソッド | 引数 | 説明 | 呼び出し例 |
|---|---|---|---|
copySlot | from, to | 中身を丸ごと複製(コピー先は上書き。元が空なら失敗) | SaveSlot.copySlot(from, to) |
delete | slot | スロットを消す(見出し・本体・サムネイル)。空のスロットでも成功扱い | SaveSlot.delete(slot) |
deleteThumbnail | slot | サムネイルを消す | SaveSlot.deleteThumbnail(slot) |
exists(値) | slot | スロットにデータがあるか(1/0) | SaveSlot.exists(slot) |
getMaxSlots(値) | — | 最大スロット数 | SaveSlot.getMaxSlots() |
getNewestSlot(値) | [base, count] | いちばん新しいスロット(無ければ -1)。範囲を渡すとその中だけで探す | SaveSlot.getNewestSlot([base, count]) |
getSeriesBase(値) | name | setSeries で決めた先頭の番号 | SaveSlot.getSeriesBase(name) |
getSeriesMax(値) | name | setSeries で決めた保持数 | SaveSlot.getSeriesMax(name) |
getTimestamp(値) | slot | 保存日時の文字列 | SaveSlot.getTimestamp(slot) |
hasState(値) | slot | 本編セーブ(進行状況)があるか(1/0)。見出しではなく本体を見る | SaveSlot.hasState(slot) |
hasThumbnail(値) | slot | サムネイルがあるか(1/0) | SaveSlot.hasThumbnail(slot) |
load(値) | slot, key | スロットに付けた値を読む。LUMINA Script では文字列を返す | SaveSlot.load(slot, key) |
loadState | slot | 本編セーブを読み込んで再開する(オート・スキップ・シーン送りは止める) | SaveSlot.loadState(slot) |
loadThumbnail(値) | slot | サムネイルを読み込み、テクスチャ番号を返す | SaveSlot.loadThumbnail(slot) |
save | slot, key, value | スロットに値を付ける | SaveSlot.save(slot, key, value) |
saveState | slot | 本編セーブ(クイックセーブと同じ内容)をスロットへ書く | SaveSlot.saveState(slot) |
saveThumbnail(値) | slot[, w, h] | 今の画面のサムネイルを保存(既定 320×180) | SaveSlot.saveThumbnail(slot[, w, h]) |
setMaxSlots | [max] | 最大スロット数(既定 20) | SaveSlot.setMaxSlots([max]) |
setSeries | name, base, max | クイックセーブ/オートセーブの履歴を置く番号の範囲と保持数(通常のページと重ならない番号にする) | SaveSlot.setSeries(name, base, max) |
swapSlot | a, b | 2 つを入れ替える(片方が空なら移動) | SaveSlot.swapSlot(a, b) |
Scenario (2)
| メソッド | 引数 | 説明 | 呼び出し例 |
|---|---|---|---|
load | path | シナリオを読み込んで始める(シナリオ変数は消さない) | Scenario.load(path) |
play | path | load と同じ | Scenario.play(path) |
Scene3D (128)
3D 場面(glTF 2.0 / GLB・基本形状・ライト・スキニング)を描き、背景レイヤーへ合成します。別 DLL ではありません。3D が使えない環境では begin が 0 を返し、2D はそのまま動きます。番号(形・素材・置いた物・モデル・アクター・剛体)は作る命令の戻り値で受け取るので、作る命令は LUMINA Script で値として使います。コマ数は 1/60 秒、効き(easing)は Bg と同じ番号(0=直線 / 1=減速 / 2=加速 / 3=両端ゆるやか)。角度は度。
開始と場面
| メソッド | 引数 | 説明 | 呼び出し例 |
|---|---|---|---|
addLight | type, x, y, z, dx, dy, dz, r, g, b, intensity | 光を足す(最大 8。type 0=平行光 / 1=点光源 / 2=スポット) | Scene3D.addLight(type, x, y, z, dx, dy, dz, r, g, b, intensity) |
attach(値) | layer | 描いた絵を背景レイヤー(0〜19)へ載せる(1/0) | Scene3D.attach(layer) |
begin(値) | w, h | 3D を使い始める(描画先の大きさ。既定 1280×720。使えなければ 0) | Scene3D.begin(w, h) |
clearLights | — | 光を全部消す | Scene3D.clearLights() |
drawCount(値のみ) | — | 直前のコマで描いた件数(確認用) | Scene3D.drawCount() |
end | — | 3D をやめる(置いた物・作った形も捨てる) | Scene3D.end() |
isReady(値のみ) | — | 使える状態か(1/0) | Scene3D.isReady() |
setActive | [on] | 描くのを止める/再開する(置いた物は残る) | Scene3D.setActive([on]) |
setAmbient | r, g, b | 環境光(0〜255) | Scene3D.setAmbient(r, g, b) |
setBloom | [on, threshold, strength, passes] | 明るい所を滲ませる(既定 0.75 / 0.8 / 2) | Scene3D.setBloom([on, threshold, strength, passes]) |
setCamera | eyeX, eyeY, eyeZ, targetX, targetY, targetZ, fovY | カメラ(位置・見る先・縦の画角) | Scene3D.setCamera(eyeX, eyeY, eyeZ, targetX, targetY, targetZ, fovY) |
setClearColor | r, g, b, a | 背景の塗り(a 0 で透明=2D が透ける) | Scene3D.setClearColor(r, g, b, a) |
setEnvironment | skyR, skyG, skyB, groundR, groundG, groundB, intensity | 周りの映り込み(空と地面の 2 色。金属の見え方が決まる) | Scene3D.setEnvironment(skyR, skyG, skyB, groundR, groundG, groundB, intensity) |
setFog | [on, r, g, b, start, end] | フォグ | Scene3D.setFog([on, r, g, b, start, end]) |
setFrustumCulling | [on] | 見えない物を描かない(既定 入) | Scene3D.setFrustumCulling([on]) |
setMsaa | samples | 輪郭のギザギザを均す(1 / 2 / 4 / 8。既定 4) | Scene3D.setMsaa(samples) |
setShadow | [on, mapSize, distance, strength] | 影(平行光 1 つぶん) | Scene3D.setShadow([on, mapSize, distance, strength]) |
setSky | [on, 天頂 r, g, b, 地平線 r, g, b, 足元 r, g, b, sunSize] | 空のグラデーションと太陽の大きさ | Scene3D.setSky([on, 天頂 r, g, b, 地平線 r, g, b, 足元 r, g, b, sunSize]) |
takeDeviceLost(値のみ) | — | 画面の作り直しで場面が捨てられたか(1 なら組み直す。読むと戻る) | Scene3D.takeDeviceLost() |
形・素材・置く
| メソッド | 引数 | 説明 | 呼び出し例 |
|---|---|---|---|
addItem(値のみ) | meshId[, materialId] | 形を場面へ置き、物の番号を返す(0 は失敗) | Scene3D.addItem(meshId[, materialId]) |
clearItems | — | 置いた物を全部消す(形と素材は残る) | Scene3D.clearItems() |
createAnnulus(値のみ) | [inner, outer, segments, startDeg] | 平らな輪を作る | Scene3D.createAnnulus([inner, outer, segments, startDeg]) |
createBox(値のみ) | [size] | 箱を作る | Scene3D.createBox([size]) |
createCylinder(値のみ) | [radius, height, slices] | 円柱を作る | Scene3D.createCylinder([radius, height, slices]) |
createMaterial(値のみ) | [r, g, b, a, metallic, roughness] | 素材を作る(色 0〜255、金属度・粗さ 0〜1) | Scene3D.createMaterial([r, g, b, a, metallic, roughness]) |
createPlane(値のみ) | [width, depth, uvTile] | 板を作る | Scene3D.createPlane([width, depth, uvTile]) |
createQuad(値のみ) | [width, height] | 四角を作る | Scene3D.createQuad([width, height]) |
createRing(値のみ) | [inner, outer, depth, segments, startDeg] | 厚みのある輪を作る | Scene3D.createRing([inner, outer, depth, segments, startDeg]) |
createSphere(値のみ) | [radius, slices, stacks] | 球を作る | Scene3D.createSphere([radius, slices, stacks]) |
setItemOpacity | item, opacity | 物の不透明度 | Scene3D.setItemOpacity(item, opacity) |
setItemShadow | item[, cast, receive] | 物の影(落とす/受ける) | Scene3D.setItemShadow(item[, cast, receive]) |
setItemTransform | item, x, y, z, pitch, yaw, roll, sx, sy, sz | 物の位置・向き・大きさ | Scene3D.setItemTransform(item, x, y, z, pitch, yaw, roll, sx, sy, sz) |
setItemVisible | item[, on] | 物の表示 | Scene3D.setItemVisible(item[, on]) |
setMaterialEmissive | material, r, g, b, strength | 自己発光 | Scene3D.setMaterialEmissive(material, r, g, b, strength) |
setMaterialTexture | material, path, slot | 素材に絵を貼る(slot 0=基本色 / 1=法線 / 2=ORM / 3=発光) | Scene3D.setMaterialTexture(material, path, slot) |
setMaterialUnlit | material[, on] | 光を当てずにそのまま塗る | Scene3D.setMaterialUnlit(material[, on]) |
時間で動かす
| メソッド | 引数 | 説明 | 呼び出し例 |
|---|---|---|---|
spinItem | item, pitchPerSec, yawPerSec, rollPerSec | 回し続ける(全部 0 で止める) | Scene3D.spinItem(item, pitchPerSec, yawPerSec, rollPerSec) |
stopTweens | — | 時間で動く物を全部止める(姿勢はそのまま) | Scene3D.stopTweens() |
tweenCamera | eyeX, eyeY, eyeZ, targetX, targetY, targetZ, frames, easing | カメラを今の位置から動かす | Scene3D.tweenCamera(eyeX, eyeY, eyeZ, targetX, targetY, targetZ, frames, easing) |
tweenItem | item, x, y, z, pitch, yaw, roll, sx, sy, sz, frames, easing | 物を目標の姿勢へ動かす | Scene3D.tweenItem(item, x, y, z, pitch, yaw, roll, sx, sy, sz, frames, easing) |
tweenItemOpacity | item, opacity, frames, easing | 物の不透明度を変える | Scene3D.tweenItemOpacity(item, opacity, frames, easing) |
tweenLightDirection | index, dx, dy, dz, frames, easing | 光の向きを振る | Scene3D.tweenLightDirection(index, dx, dy, dz, frames, easing) |
モデル(glTF 2.0 / GLB)
| メソッド | 引数 | 説明 | 呼び出し例 |
|---|---|---|---|
addModel(値) | model | 読んだモデルを場面へ置く(置いた部品の数。0 は失敗) | Scene3D.addModel(model) |
findModelAnimation(値のみ) | model, name | 名前から動きの番号を引く(無ければ -1) | Scene3D.findModelAnimation(model, name) |
findModelByPath(値のみ) | path | loadModel した場所からモデルの番号を引く | Scene3D.findModelByPath(path) |
loadModel(値) | path | モデルを読み、番号を返す(0 は失敗。読むだけでは出ない) | Scene3D.loadModel(path) |
modelAnimationCount(値のみ) | model | 動きの本数 | Scene3D.modelAnimationCount(model) |
modelAnimationTime(値のみ) | model | 動きの再生位置 | Scene3D.modelAnimationTime(model) |
modelPartCount(値のみ) | model | 置いた部品の数 | Scene3D.modelPartCount(model) |
modelSize(値のみ) | model | 包む箱の対角の長さ(カメラの引きの目安) | Scene3D.modelSize(model) |
playModelAnimation(値) | model, index[, loop] | 動きを再生(index -1 で止めて元の姿勢へ) | Scene3D.playModelAnimation(model, index[, loop]) |
playModelAnimationFade(値) | model, index[, loop, fadeSec] | 動きを繋いで切り替える(既定 0.2 秒) | Scene3D.playModelAnimationFade(model, index[, loop, fadeSec]) |
setModelAnimationSpeed(値) | model, speed | 動きの速さ | Scene3D.setModelAnimationSpeed(model, speed) |
setModelTransform | model, x, y, z, pitch, yaw, roll, sx, sy, sz | モデル全体の位置・向き・大きさ | Scene3D.setModelTransform(model, x, y, z, pitch, yaw, roll, sx, sy, sz) |
setModelVisible | model[, on] | モデルの表示 | Scene3D.setModelVisible(model[, on]) |
3D アクション(プレイヤー・カメラ・武器・HUD)
| メソッド | 引数 | 説明 | 呼び出し例 |
|---|---|---|---|
actionReset | — | アクションの状態(当たり・アクター・HUD)を全部捨てる | Scene3D.actionReset() |
aliveEnemyCount(値のみ) | — | 生きている敵の数 | Scene3D.aliveEnemyCount() |
lastActionEvent(値のみ) | index | 直前の runAction 中に起きた(戻らなかった)出来事 | Scene3D.lastActionEvent(index) |
lastActionEventCount(値のみ) | — | その数 | Scene3D.lastActionEventCount() |
playerHp(値のみ) | — | プレイヤーの HP | Scene3D.playerHp() |
playerKills(値のみ) | — | 倒した数 | Scene3D.playerKills() |
playerScore(値のみ) | — | 得点 | Scene3D.playerScore() |
playerX(値のみ) | — | プレイヤーの X | Scene3D.playerX() |
playerY(値のみ) | — | プレイヤーの Y | Scene3D.playerY() |
playerYaw(値のみ) | — | プレイヤーの向き | Scene3D.playerYaw() |
playerZ(値のみ) | — | プレイヤーの Z | Scene3D.playerZ() |
pushActionEvent | name[, returnToScript] | スクリプトから出来事を積む(次の runAction で返る) | Scene3D.pushActionEvent(name[, returnToScript]) |
runAction(値) | [maxMs] | 出来事が起きるまで遊ばせる(待つ)。"trigger:名前" / "pickup:名前" / "interact:名前" / "kill:名前" / "dead" / "cleared" / "custom:名前" / "timeout" / "cancel"(Esc)を返す | Scene3D.runAction([maxMs]) |
setCameraMode | mode, eyeHeight, tpsDistance, tpsHeight, fovY | カメラ(0=一人称 / 1=三人称。0 以下の値は変えない) | Scene3D.setCameraMode(mode, eyeHeight, tpsDistance, tpsHeight, fovY) |
setClearedEvent | [on, returnToScript] | 敵が全滅したら "cleared" を出す | Scene3D.setClearedEvent([on, returnToScript]) |
setHud | [crosshair, hpBar] | 照準と HP バーを出すか | Scene3D.setHud([crosshair, hpBar]) |
setHudText | id, text, x, y[, size, r, g, b, seconds] | HUD の文字(同じ id は差し替え、空で消す) | Scene3D.setHudText(id, text, x, y[, size, r, g, b, seconds]) |
setLookSensitivity | perPixel[, invertY] | 視線の感度と上下反転 | Scene3D.setLookSensitivity(perPixel[, invertY]) |
setPlayerModel | model[, yawOffset] | 三人称で描くプレイヤーのモデル | Scene3D.setPlayerModel(model[, yawOffset]) |
setPlayerParams | radius, height, stepHeight, slopeLimit, gravity, jumpSpeed | プレイヤーの寸法と動き(0 の項目は変えない) | Scene3D.setPlayerParams(radius, height, stepHeight, slopeLimit, gravity, jumpSpeed) |
setPlayerStart | x, y, z, yaw | 出発点と向き | Scene3D.setPlayerStart(x, y, z, yaw) |
setPlayerStats | hp, maxHp, walkSpeed, sprintSpeed | HP と速さ | Scene3D.setPlayerStats(hp, maxHp, walkSpeed, sprintSpeed) |
setWeapon | damage, range, interval, spread[, automatic, ammo] | 武器(ammo -1 で無限) | Scene3D.setWeapon(damage, range, interval, spread[, automatic, ammo]) |
当たりとアクター
| メソッド | 引数 | 説明 | 呼び出し例 |
|---|---|---|---|
actorActive(値のみ) | id | アクターが動いているか | Scene3D.actorActive(id) |
actorAlive(値のみ) | id | アクターが生きているか | Scene3D.actorAlive(id) |
actorHp(値のみ) | id | アクターの HP | Scene3D.actorHp(id) |
actorX(値のみ) | id | アクターの X | Scene3D.actorX(id) |
actorY(値のみ) | id | アクターの Y | Scene3D.actorY(id) |
actorZ(値のみ) | id | アクターの Z | Scene3D.actorZ(id) |
addActor(値) | kind, name, x, y, z, yaw[, hx, hy, hz] | アクターを置き番号を返す(kind は "enemy" / "pickup" / "trigger" / "npc" / "prop" / "static") | Scene3D.addActor(kind, name, x, y, z, yaw[, hx, hy, hz]) |
addModelCollider(値) | model | モデルの三角形を当たりにする(三角形の数) | Scene3D.addModelCollider(model) |
addStaticBox(値) | cx, cy, cz, w, h, d[, material, uvPerMeter] | 直方体を当たり付きで置く(物の番号) | Scene3D.addStaticBox(cx, cy, cz, w, h, d[, material, uvPerMeter]) |
addStaticItem(値) | mesh, material, x, y, z, pitch, yaw, roll, sx, sy, sz | 作った形を当たり付きで置く(物の番号) | Scene3D.addStaticItem(mesh, material, x, y, z, pitch, yaw, roll, sx, sy, sz) |
findActor(値のみ) | name | 名前からアクターの番号を引く | Scene3D.findActor(name) |
setActorActive(値) | id[, on] | アクターを動かす/止める | Scene3D.setActorActive(id[, on]) |
setActorEvent(値) | id, eventName[, returnToScript, once] | 起きたときの出来事の名前 | Scene3D.setActorEvent(id, eventName[, returnToScript, once]) |
setActorParams(値) | id, hp, speed, sightRange, attackRange, damage, attackInterval, radius, height | 敵などの性質(0 以下の項目は変えない) | Scene3D.setActorParams(id, hp, speed, sightRange, attackRange, damage, attackInterval, radius, height) |
setActorPickup(値) | id, score, heal, ammo | 拾い物の効果 | Scene3D.setActorPickup(id, score, heal, ammo) |
setActorPosition(値) | id, x, y, z, yaw | アクターの位置 | Scene3D.setActorPosition(id, x, y, z, yaw) |
setActorVisual(値) | id, model, item, yawOffset, offX, offY, offZ, scale | アクターの見た目(使わない方は 0) | Scene3D.setActorVisual(id, model, item, yawOffset, offX, offY, offZ, scale) |
地形・広い世界・インスタンス
| メソッド | 引数 | 説明 | 呼び出し例 |
|---|---|---|---|
addInstanceColliders(値) | item, kind, radius, height | 置いたインスタンス全部に当たり(0=カプセル / 1=箱) | Scene3D.addInstanceColliders(item, kind, radius, height) |
addStreamedModel(値) | path, x, y, z, yaw, scale, radius[, collider] | 近づいたら読んで置き、離れたら捨てるモデル(登録番号) | Scene3D.addStreamedModel(path, x, y, z, yaw, scale, radius[, collider]) |
buildNavGrid(値) | cellSize, minX, minZ, maxX, maxZ, minY, maxY | 敵の経路の地図を作る(置き終わってから。歩ける升目の数) | Scene3D.buildNavGrid(cellSize, minX, minZ, maxX, maxZ, minY, maxY) |
createInstances(値) | mesh, material[, capacity] | 同じ形を大量に置く入れ物(物の番号) | Scene3D.createInstances(mesh, material[, capacity]) |
createTerrainFromImage(値) | path, sizeX, sizeZ, height, chunk, material, uvPerMeter | 絵の明るさを高さにした地形(区画の数) | Scene3D.createTerrainFromImage(path, sizeX, sizeZ, height, chunk, material, uvPerMeter) |
createTerrainNoise(値) | samples, sizeX, sizeZ, height, chunk, material, uvPerMeter, seed, roughness | ノイズの地形(区画の数) | Scene3D.createTerrainNoise(samples, sizeX, sizeZ, height, chunk, material, uvPerMeter, seed, roughness) |
setActorGroup(値) | actor, group | アクターを組に入れる | Scene3D.setActorGroup(actor, group) |
setGroup | group, cx, cy, cz, radius | 組(距離で出し入れ)の中心と半径 | Scene3D.setGroup(group, cx, cy, cz, radius) |
setInstance(値) | item, index, x, y, z, pitch, yaw, roll, scale | インスタンス 1 つの姿勢 | Scene3D.setInstance(item, index, x, y, z, pitch, yaw, roll, scale) |
setInstanceCount(値) | item, count | 描くインスタンスの数 | Scene3D.setInstanceCount(item, count) |
setItemGroup(値) | item, group | 物を組に入れる | Scene3D.setItemGroup(item, group) |
setItemLod(値) | item, mesh1, dist1, mesh2, dist2 | 距離で形を差し替える(LOD) | Scene3D.setItemLod(item, mesh1, dist1, mesh2, dist2) |
streamedLoadedCount(値のみ) | — | 読み込まれているストリーミングのモデル数 | Scene3D.streamedLoadedCount() |
streamedModelHandle(値のみ) | id | 登録番号から、読み込まれたモデルの番号を引く | Scene3D.streamedModelHandle(id) |
terrainHeight(値のみ) | x, z | 地形の高さ | Scene3D.terrainHeight(x, z) |
terrainSlope(値のみ) | x, z | 地形の傾き(0=平ら〜1=垂直) | Scene3D.terrainSlope(x, z) |
物理(剛体・拘束・ラグドール)
| メソッド | 引数 | 説明 | 呼び出し例 |
|---|---|---|---|
addBody(値) | shape, x, y, z, sx, sy, sz[, mass, restitution, friction] | 剛体を置き番号を返す(shape 0=球 / 1=箱 / 2=カプセル。mass 0 で動かない) | Scene3D.addBody(shape, x, y, z, sx, sy, sz[, mass, restitution, friction]) |
addJoint(値) | type, bodyA, bodyB, ax, ay, az, bx, by, bz, param, axisX, axisY, axisZ | 拘束(type 0=球関節 / 1=距離 / 2=蝶番。bodyA 0 = 世界) | Scene3D.addJoint(type, bodyA, bodyB, ax, ay, az, bx, by, bz, param, axisX, axisY, axisZ) |
addRagdoll(値) | model[, totalMass, minBone, coneDeg, radiusRatio] | 皮のあるモデルの骨をラグドールにする(作った剛体の数) | Scene3D.addRagdoll(model[, totalMass, minBone, coneDeg, radiusRatio]) |
applyImpulse(値) | body, ix, iy, iz | 力積を与える | Scene3D.applyImpulse(body, ix, iy, iz) |
bodyAwake(値のみ) | body | 動いているか | Scene3D.bodyAwake(body) |
bodyX(値のみ) | body | 剛体の X | Scene3D.bodyX(body) |
bodyY(値のみ) | body | 剛体の Y | Scene3D.bodyY(body) |
bodyZ(値のみ) | body | 剛体の Z | Scene3D.bodyZ(body) |
impulseRagdoll | model, ix, iy, iz | ラグドールに力積を与える | Scene3D.impulseRagdoll(model, ix, iy, iz) |
lastShotBody(値のみ) | — | 直前の弾が当たった剛体 | Scene3D.lastShotBody() |
removeBody | body | 剛体を消す | Scene3D.removeBody(body) |
removeRagdoll(値) | model | ラグドールを外して元の骨へ戻す(消した剛体の数) | Scene3D.removeRagdoll(model) |
setBodyPosition(値) | body, x, y, z | 剛体の位置 | Scene3D.setBodyPosition(body, x, y, z) |
setBodyVelocity(値) | body, vx, vy, vz | 剛体の速度 | Scene3D.setBodyVelocity(body, vx, vy, vz) |
setBodyVisual(値) | body, item, model[, sx, sy, sz] | 剛体の見た目(物かモデル。使わない方は 0) | Scene3D.setBodyVisual(body, item, model[, sx, sy, sz]) |
setGravity | [gx, gy, gz] | 重力(既定 0, -9.81, 0) | Scene3D.setGravity([gx, gy, gz]) |
setWeaponImpulse | [impulse] | 弾が剛体に当たったときの力積(既定 6) | Scene3D.setWeaponImpulse([impulse]) |
Scissor (2)
| メソッド | 引数 | 説明 | 呼び出し例 |
|---|---|---|---|
disable | — | 切り抜きをやめる | Scissor.disable() |
set | x, y[, w, h] | 描く範囲を矩形で切り抜く(w, h 既定 100) | Scissor.set(x, y[, w, h]) |
Screen (13)
名前付きの画面(フローチャート・マップ・ステータス画面などの土台)を作り、背景・画像ボタン・ラベル・ゲージを置いて show で出します。show は選ばれるまで待ち、選ばれたボタンの actionId を返します(キャンセルは空文字)。座標は設計座標(1280×720)、色は "#AARRGGBB" / "0xAARRGGBB" / 整数。
キーとゲームパッドでの操作: show で出した画面(フローチャート・マップ・ステータス・育成の予定表など。Windows 以外では確認ダイアログも)は、矢印キー(Windows・Android)やパッドの十字キーで、その向きにある近いボタンへ印を移せます(印はマウスを乗せたときと同じ hover の絵)。Enter(Windows はスペースも)・パッドの A で印のボタンを選びます。印が無いときの Enter / A は、最初のボタンに印を付けるだけで選びません。無効なボタンは飛ばします。右クリック・Esc・パッドの B / START で取り消すと空文字で閉じます(確認ダイアログでは「いいえ」)。Windows 以外では、画面を出している間は右クリック(長押し)で取り消し、ホイールは使いません。
| メソッド | 引数 | 説明 | 呼び出し例 |
|---|---|---|---|
addButton | name, actionId, x, y, normal[, hover, pressed, disabled] | 画像ボタンを置く(省いた絵は normal を使う) | Screen.addButton(name, actionId, x, y, normal[, hover, pressed, disabled]) |
addGauge | name, id, x, y, w, h[, value, bgColor, fillColor] | ゲージ(value 0〜1) | Screen.addGauge(name, id, x, y, w, h[, value, bgColor, fillColor]) |
addLabel | name, id, x, y, w, h, text[, fontSize, color, bold] | 文字ラベル(fontSize 既定 20) | Screen.addLabel(name, id, x, y, w, h, text[, fontSize, color, bold]) |
clear | name | 背景とボタンを全部消す | Screen.clear(name) |
clearButtons | name | ボタンだけ消す | Screen.clearButtons(name) |
create | name | 画面を作る(あれば何もしない) | Screen.create(name) |
destroy | name | 画面を捨てる | Screen.destroy(name) |
isVisible(値) | — | 出ているか(1/0) | Screen.isVisible() |
setBackground | name, path | 背景画像 | Screen.setBackground(name, path) |
setButtonEnabled | name, actionId, enabled | ボタンの有効/無効 | Screen.setButtonEnabled(name, actionId, enabled) |
setGaugeValue | name, id, value | ゲージの値を変える | Screen.setGaugeValue(name, id, value) |
setLabelText | name, id, text | ラベルの文字を変える | Screen.setLabelText(name, id, text) |
show(値) | name | 画面を出し、選ばれたボタンの actionId を返す | var picked = Screen.show("map") |
Scripts (2)
| メソッド | 引数 | 説明 | 呼び出し例 |
|---|---|---|---|
execStorage | path | スクリプトファイルを実行する | Scripts.execStorage(path) |
preload | path | 実行せずに読み込み・復号・解析だけ先に済ませる(失敗しても止めない) | Scripts.preload(path) |
拡張子を省くと、設定したシステムスクリプトの拡張子(System.setExtension("systemScript", …))を付けて探します。.txt と .lsf が両方あるときは更新日時の新しい方、片方しか無ければある方を使います。
Select (22)
show は選ばれるまで待ち、LUMINA Script では選ばれた識別子を返します(あとから getSelected / getSelectedIndex でも読めます)。制限時間を付けるときは、show の前に setTimeLimit を呼びます。残り時間の帯が選択肢の上に出て、時間切れになると既定の選択肢を選んだことになります。セーブ画面などを開いている間は時間が止まります。シナリオから使う場合は select_timeout。
// @lumina
Select.clear();
Select.add("はい", "yes");
Select.add("いいえ", "no");
Select.setTimeLimit(5000, 1); // 5 秒で決まらなければ 2 番目(0 始まりで 1)
var picked = Select.show(); // 選ばれた識別子("yes" / "no")
if (Select.wasTimedOut()) {
System.debugLog("時間切れ: " + picked);
}
| メソッド | 引数 | 説明 | 呼び出し例 |
|---|---|---|---|
add | text[, actionId, enabled] | 文字の選択肢を足す(actionId 既定は text) | Select.add(text[, actionId, enabled]) |
addImage | actionId, x, y, normal, hover, pressed, disabled[, enabled] | 画像の選択肢を足す | Select.addImage(actionId, x, y, normal, hover, pressed, disabled[, enabled]) |
clear | — | 選択肢を全部消す | Select.clear() |
getSelected(値) | — | 選ばれた選択肢の識別子 | Select.getSelected() |
getSelectedIndex(値) | — | 選ばれた選択肢の番号 | Select.getSelectedIndex() |
setDefaultImages | normal, hover, pressed, disabled | ボタンの既定の絵 | Select.setDefaultImages(normal, hover, pressed, disabled) |
setDefaultTextArea | [offX, offY, w, h] | 文字を置く範囲の既定(ボタンの中) | Select.setDefaultTextArea([offX, offY, w, h]) |
setEnabled | id, enabled | その選択肢の有効/無効 | Select.setEnabled(id, enabled) |
setFont | [name, size, bold, color] | 書体・大きさ・太字・色(既定 Meiryo / 24 / 0 / 白) | Select.setFont([name, size, bold, color]) |
setFontColorDisabled | color | 無効の文字色 | Select.setFontColorDisabled(color) |
setFontColorHover | color | ホバー時の文字色 | Select.setFontColorHover(color) |
setHideAnimation | id, type[, duration, delay] | 消すときの動き(既定 300ms) | Select.setHideAnimation(id, type[, duration, delay]) |
setImages | id, normal, hover, pressed, disabled | その選択肢の絵 | Select.setImages(id, normal, hover, pressed, disabled) |
setLayout | [x, y, spacing] | 並べる位置と間隔(-1 は自動) | Select.setLayout([x, y, spacing]) |
setPosition | id, x, y | その選択肢の位置 | Select.setPosition(id, x, y) |
setShowAnimation | id, type[, duration, delay] | 出すときの動き(既定 300ms) | Select.setShowAnimation(id, type[, duration, delay]) |
setSounds | [hover, click, cancel] | ボタン SE | Select.setSounds([hover, click, cancel]) |
setTextArea | id, offX, offY, w, h | その選択肢の文字の範囲 | Select.setTextArea(id, offX, offY, w, h) |
setTextPosition | [x, y, w, lineH] | 文字の選択肢の位置と行の高さ | Select.setTextPosition([x, y, w, lineH]) |
setTimeLimit | ms[, defaultIndex] | 次の show 1 回だけに制限時間を付ける(0 以下で取り消し)。時間切れで defaultIndex(0 始まり。既定 0。範囲外・無効なら有効な最初の選択肢)を選んだことにする | Select.setTimeLimit(ms[, defaultIndex]) |
show(値) | — | 選択肢を出して、選ばれるまで待つ。LUMINA Script では選ばれた識別子を返す | var picked = Select.show() |
wasTimedOut(値) | [varName] | 直前の show が時間切れで決まったか(1/0)。SimpleScript では varName の変数へ入る | Select.wasTimedOut([varName]) |
Sound (88)
Sound.bgm.play(...) のような小分けの書き方(bgm.* / se.* / voice.* / sysse.* / sysvoice.* / ducking.*)は、同じ行の平らな名前(playBgm など)と同じ動きです。ただし値を返すのは平らな名前だけです(Sound.isVoicePlaying() は値を返し、Sound.voice.isPlaying() は返さない)。音量は 0〜100、定位(pan)は -100〜100 です。
.wav の BGM の速さ・高さ: Windows の .wav の曲は、setBgmTempo / setBgmPitch を変えると 0.3 秒ほどで効きます。変えたまま曲を替えたときの鳴り始めや、seekBgm も同じです。ゲームは止まりません。16bit の PCM 以外の .wav は、曲全体を作り終えてから(長い曲で 1〜2 秒)効きます。.ogg・.opus の曲はすぐに効きます。
| メソッド | 引数 | 説明 | 呼び出し例 |
|---|---|---|---|
bgm.fade | volume, durationMs | fadeBgm と同じ | Sound.bgm.fade(volume, durationMs) |
bgm.pause | — | pauseBgm と同じ | Sound.bgm.pause() |
bgm.play | path | playBgm と同じ | Sound.bgm.play(path) |
bgm.pushSegment | path[, crossFade] | pushBgmSegment と同じ | Sound.bgm.pushSegment(path[, crossFade]) |
bgm.resume | — | resumeBgm と同じ | Sound.bgm.resume() |
bgm.seek | ms | seekBgm と同じ | Sound.bgm.seek(ms) |
bgm.setBaseDir | dir | setBgmBaseDir と同じ | Sound.bgm.setBaseDir(dir) |
bgm.setLoop | loop | setBgmLoop と同じ | Sound.bgm.setLoop(loop) |
bgm.setPan | pan | setBgmPan と同じ | Sound.bgm.setPan(pan) |
bgm.setVolume | volume | setBgmVolume と同じ | Sound.bgm.setVolume(volume) |
bgm.stop | — | stopBgm と同じ | Sound.bgm.stop() |
clearSeCache | — | SE の控えを全部捨てる | Sound.clearSeCache() |
ducking.setEnabled | on | setDuckingEnabled と同じ | Sound.ducking.setEnabled(on) |
ducking.setFade | fadeInMs, fadeOutMs | setDuckingFade と同じ | Sound.ducking.setFade(fadeInMs, fadeOutMs) |
ducking.setVolume | volume | setDuckingVolume と同じ | Sound.ducking.setVolume(volume) |
fadeBgm | volume, durationMs | BGM の音量をフェード | Sound.fadeBgm(volume, durationMs) |
getBgmDurationMs(値のみ) | — | BGM の曲の長さ(ms。読み込み前は 0) | Sound.getBgmDurationMs() |
getBgmPositionMs(値のみ) | — | BGM の再生位置(ms) | Sound.getBgmPositionMs() |
getSysSeVolume(値) | — | システム効果音の音量 | Sound.getSysSeVolume() |
getSysVoiceVolume(値) | — | システム音声の音量 | Sound.getSysVoiceVolume() |
getVoiceLevel(値のみ) | — | 声の大きさ(口パク用。-1 は測れない) | Sound.getVoiceLevel() |
getVoicePositionMs(値) | — | ボイスの再生位置(ms) | Sound.getVoicePositionMs() |
getVoiceTotalMs(値) | — | ボイスの長さ(ms) | Sound.getVoiceTotalMs() |
isVoicePlaying(値) | — | ボイス再生中か(1/0) | Sound.isVoicePlaying() |
pause | — | 汎用音を一時停止 | Sound.pause() |
pauseBgm | — | BGM を一時停止 | Sound.pauseBgm() |
pauseVoice | — | ボイスを一時停止 | Sound.pauseVoice() |
play | path | 汎用の音を鳴らす | Sound.play(path) |
playBgm | path | BGM を再生 | Sound.playBgm(path) |
playSe | path | SE を再生 | Sound.playSe(path) |
playSeLoop | path | SE をループ再生 | Sound.playSeLoop(path) |
playVoice | path | ボイスを再生 | Sound.playVoice(path) |
preloadSe | path | SE を先に読み込む | Sound.preloadSe(path) |
pushBgmSegment | path[, crossFade] | 次に続けて流す BGM の区間を積む | Sound.pushBgmSegment(path[, crossFade]) |
resumeBgm | — | BGM を再開 | Sound.resumeBgm() |
resumeVoice | — | ボイスを再開 | Sound.resumeVoice() |
se.clearCache | — | clearSeCache と同じ | Sound.se.clearCache() |
se.play | path | playSe と同じ | Sound.se.play(path) |
se.playLoop | path | playSeLoop と同じ | Sound.se.playLoop(path) |
se.preload | path | preloadSe と同じ | Sound.se.preload(path) |
se.setBaseDir | dir | setSeBaseDir と同じ | Sound.se.setBaseDir(dir) |
se.setPan | pan | setSePan と同じ | Sound.se.setPan(pan) |
se.setVolume | volume | setSeVolume と同じ | Sound.se.setVolume(volume) |
se.stop | — | stopSe と同じ(SE を全部止める) | Sound.se.stop() |
se.stopAll | — | stopAllSe と同じ | Sound.se.stopAll() |
se.unload | path | unloadSe と同じ | Sound.se.unload(path) |
seekBgm | ms | BGM の再生位置 | Sound.seekBgm(ms) |
setBgmBaseDir | dir | BGM のフォルダ | Sound.setBgmBaseDir(dir) |
setBgmLoop | loop | BGM のループ | Sound.setBgmLoop(loop) |
setBgmPan | pan | BGM の定位 | Sound.setBgmPan(pan) |
setBgmPitch | semitone | BGM の音程(半音単位の整数)。鳴っている曲にもその場で効き、曲を替えても残る(Windows の .ogg・.opus・.wav、Android、ブラウザとも)。高さを変えても速さは変わらない | Sound.setBgmPitch(semitone) |
setBgmTempo | percent | BGM の速さ。百分率で渡す(100 = 等速、120 = 1.2 倍)。小数点の付いた値(1.2 など)は倍率として受け取る。鳴っている曲にもその場で効き、曲を替えても残る(Windows の .ogg・.opus・.wav、Android、ブラウザとも)。速さを変えても高さは変わらない | Sound.setBgmTempo(percent) |
setBgmVolume | volume | BGM の音量 | Sound.setBgmVolume(volume) |
setDuckingEnabled | on | ボイス中に BGM を下げるか | Sound.setDuckingEnabled(on) |
setDuckingFade | fadeInMs, fadeOutMs | 下げる/戻す時間 | Sound.setDuckingFade(fadeInMs, fadeOutMs) |
setDuckingVolume | volume | 下げた音量(既定 30) | Sound.setDuckingVolume(volume) |
setMasterVolume | volume | 全体の音量 | Sound.setMasterVolume(volume) |
setSeBaseDir | dir | SE のフォルダ | Sound.setSeBaseDir(dir) |
setSePan | pan | SE の定位 | Sound.setSePan(pan) |
setSeVolume | volume | SE の音量 | Sound.setSeVolume(volume) |
setSysSeVolume | volume | システム効果音(UI のホバー・決定・取消)の音量。場面の SE とは別 | Sound.setSysSeVolume(volume) |
setSysVoiceVolume | volume | システム音声(UI の読み上げ)の音量。場面のボイスとは別 | Sound.setSysVoiceVolume(volume) |
setVoiceCharaScale | percent | 話者ごとの音量の割合。設定のボイス音量とは別に持つ | Sound.setVoiceCharaScale(percent) |
setVoicePan | pan | ボイスの定位 | Sound.setVoicePan(pan) |
setVoiceVolume | volume | ボイスの音量 | Sound.setVoiceVolume(volume) |
setVolume | volume | 汎用音の音量 | Sound.setVolume(volume) |
stop | — | 汎用音を止める | Sound.stop() |
stopAllSe | — | SE を全部止める | Sound.stopAllSe() |
stopBgm | — | BGM を止める | Sound.stopBgm() |
stopSe | — | SE を全部止める(stopAllSe と同じ) | Sound.stopSe() |
stopVoice | — | ボイスを止める | Sound.stopVoice() |
sysse.getVolume(値) | — | getSysSeVolume と同じ | Sound.sysse.getVolume() |
sysse.play | name | システム効果音を専用のフォルダと音量で鳴らす | Sound.sysse.play(name) |
sysse.setVolume | volume | setSysSeVolume と同じ | Sound.sysse.setVolume(volume) |
sysvoice.getVolume(値) | — | getSysVoiceVolume と同じ | Sound.sysvoice.getVolume() |
sysvoice.play | name | システム音声を専用のフォルダと音量で鳴らす | Sound.sysvoice.play(name) |
sysvoice.setVolume | volume | setSysVoiceVolume と同じ | Sound.sysvoice.setVolume(volume) |
unloadSe | path | SE の控えを捨てる | Sound.unloadSe(path) |
voice.getPositionMs | — | getVoicePositionMs と同じ(値は返さない) | Sound.voice.getPositionMs() |
voice.getTotalMs | — | getVoiceTotalMs と同じ(値は返さない) | Sound.voice.getTotalMs() |
voice.isPlaying | — | isVoicePlaying と同じ(値は返さない) | Sound.voice.isPlaying() |
voice.pause | — | pauseVoice と同じ | Sound.voice.pause() |
voice.play | path | playVoice と同じ | Sound.voice.play(path) |
voice.resume | — | resumeVoice と同じ | Sound.voice.resume() |
voice.setCharaScale | percent | setVoiceCharaScale と同じ | Sound.voice.setCharaScale(percent) |
voice.setPan | pan | setVoicePan と同じ | Sound.voice.setPan(pan) |
voice.setVolume | volume | setVoiceVolume と同じ | Sound.voice.setVolume(volume) |
voice.stop | — | stopVoice と同じ | Sound.voice.stop() |
Sound.BGM (5)
| メソッド | 引数 | 説明 | 呼び出し例 |
|---|---|---|---|
pause | — | BGM を一時停止 | Sound.BGM.pause() |
play | path | BGM を再生 | Sound.BGM.play(path) |
resume | — | BGM を再開 | Sound.BGM.resume() |
setVolume | volume | BGM の音量 | Sound.BGM.setVolume(volume) |
stop | — | BGM を止める | Sound.BGM.stop() |
Sound.SE (4)
| メソッド | 引数 | 説明 | 呼び出し例 |
|---|---|---|---|
play | path | SE を再生 | Sound.SE.play(path) |
setVolume | volume | SE の音量 | Sound.SE.setVolume(volume) |
stop | — | SE を全部止める(stopAll と同じ) | Sound.SE.stop() |
stopAll | — | SE を全部止める | Sound.SE.stopAll() |
Sprite (9)
| メソッド | 引数 | 説明 | 呼び出し例 |
|---|---|---|---|
change | layer, path[, x, y] | 絵を差し替える | Sprite.change(layer, path[, x, y]) |
clear | — | 全部消す(clearAll と同じ) | Sprite.clear() |
clearAll | — | 全部消す | Sprite.clearAll() |
hide | layer | 消す | Sprite.hide(layer) |
move | layer, x, y | すぐ動かす | Sprite.move(layer, x, y) |
moveTo | layer, x, y[, durationMs] | 時間をかけて動かす(既定 500) | Sprite.moveTo(layer, x, y[, durationMs]) |
setAlpha | layer, alpha | 不透明度(0〜100) | Sprite.setAlpha(layer, alpha) |
setTextureFilter | layer, filter | 拡大縮小の補間(-1=既定 / 0=Point / 1=Linear / 2=Anisotropic) | Sprite.setTextureFilter(layer, filter) |
show | layer, path[, x, y] | 絵を出す | Sprite.show(layer, path[, x, y]) |
SpriteSheet (1)
| メソッド | 引数 | 説明 | 呼び出し例 |
|---|---|---|---|
draw | layer, path, srcX, srcY, srcW, srcH, dstX, dstY, dstW[, dstH] | 絵の一部を切り出して描く(dstH 既定は srcH) | SpriteSheet.draw(layer, path, srcX, srcY, srcW, srcH, dstX, dstY, dstW[, dstH]) |
Steam (26)
Steam 版の機能です(mrusteam.dll が要ります)。取得系は LUMINA Script では値を返します。SimpleScript では最後の引数に変数名を書くと、そこへ結果が入ります(数は System の整数変数、名前と言語は文字列変数)。例: Steam.getAchievement("ACH_CLEAR", "ach.clear"); のあと System.ifVarEquals("ach.clear", 1, "...") で分岐できます。
| メソッド | 引数 | 説明 | 呼び出し例 |
|---|---|---|---|
activateOverlay | dialog | オーバーレイを開く | Steam.activateOverlay(dialog) |
activateOverlayToWebPage | url | オーバーレイでページを開く | Steam.activateOverlayToWebPage(url) |
clearAchievement | name | 実績を取り消す | Steam.clearAchievement(name) |
cloudDelete | filename | クラウドのファイルを消す | Steam.cloudDelete(filename) |
cloudFileExists(値) | filename[, varName] | クラウドにファイルがあるか(1/0) | Steam.cloudFileExists(filename[, varName]) |
findLeaderboard(値) | name | リーダーボードを探す(LUMINA Script では探し始められたら 1。結果は後から届く) | Steam.findLeaderboard(name) |
getAchievement(値) | name[, varName] | 実績を取ったか(1/0) | Steam.getAchievement(name[, varName]) |
getCurrentGameLanguage(値) | [varName] | ゲームの言語 | Steam.getCurrentGameLanguage([varName]) |
getDlcCount(値) | [varName] | DLC の数 | Steam.getDlcCount([varName]) |
getNumAchievements(値) | [varName] | 実績の数 | Steam.getNumAchievements([varName]) |
getPersonaName(値) | [varName] | ユーザーの表示名 | Steam.getPersonaName([varName]) |
getStatFloat(値) | name[, varName] | 統計(小数)。SimpleScript では整数変数に整数部、同じ名前の文字列変数に小数のまま(例 "12.5")が入る | Steam.getStatFloat(name[, varName]) |
getStatInt(値) | name[, varName] | 統計(整数) | Steam.getStatInt(name[, varName]) |
getSteamId(値) | [varName] | ユーザーの ID(17 桁)。LUMINA Script では文字で返る。SimpleScript では同じ名前の文字列変数に全桁、整数変数には下位 31 ビットが入る | Steam.getSteamId([varName]) |
indicateProgress | name, current, max | 実績の進み具合を出す | Steam.indicateProgress(name, current, max) |
init | appId | 使い始める | Steam.init(appId) |
isDlcInstalled(値) | dlcAppId[, varName] | DLC が入っているか(1/0) | Steam.isDlcInstalled(dlcAppId[, varName]) |
isInitialized(値) | [varName] | 使い始めたか(1/0) | Steam.isInitialized([varName]) |
isOverlayEnabled(値) | [varName] | オーバーレイが使えるか(1/0) | Steam.isOverlayEnabled([varName]) |
runCallbacks | — | 届いた知らせを処理する | Steam.runCallbacks() |
setAchievement | name | 実績を解除する | Steam.setAchievement(name) |
setStatFloat | name, value | 統計(小数)を書く | Steam.setStatFloat(name, value) |
setStatInt | name, value | 統計(整数)を書く | Steam.setStatInt(name, value) |
shutdown | — | 片付ける | Steam.shutdown() |
storeStats | — | 実績・統計を送る | Steam.storeStats() |
uploadLeaderboardScore | score | 得点を送る | Steam.uploadLeaderboardScore(score) |
Storages (5)
| メソッド | 引数 | 説明 | 呼び出し例 |
|---|---|---|---|
addAutoPath | path | リソース自動検索パス追加 | Storages.addAutoPath(path) |
clearAutoPath | — | 検索パスクリア(上書きフォルダは消えない) | Storages.clearAutoPath() |
getOverlay(値のみ) | — | いまの上書きフォルダ(切っていれば空) | Storages.getOverlay() |
isExistentStorage(値) | path | そのファイルがあるか(1/0)。上書きフォルダ → 検索パス → データの根 → パックの中の順に探す | Storages.isExistentStorage("data0/system/DevMode.txt") |
setOverlay | dir | 上書きフォルダ(データの根起点、例 data0/lang/en)。空で切る | Storages.setOverlay("data0/lang/en") |
String (23)
文字列の値に対して "abc".trim() や s.split(",") のように呼ぶメソッドです(String.trim() とは書きません)。どれも値を返します。文字の位置・長さは UTF-8 の 1 文字を 1 と数えます。長さは s.length で読めます。
| メソッド | 引数 | 説明 | 呼び出し例 |
|---|---|---|---|
charAt | index | その位置の 1 文字 | str.charAt(index) |
charCodeAt | index | その位置の文字コード | str.charCodeAt(index) |
endsWith | suffix | その文字で終わるか | str.endsWith(suffix) |
includes | needle | 含むか | str.includes(needle) |
indexOf | needle[, start] | 位置(無ければ -1) | str.indexOf(needle[, start]) |
lastIndexOf | needle | 後ろから探した位置 | str.lastIndexOf(needle) |
match | regexp | 正規表現に合った部分。g 付きなら合った文字列の配列、無ければ最初の一致([全体, グループ…]、index 付き)。合わなければ null | str.match(regexp) |
padEnd | length[, pad] | 後ろを埋めて長さをそろえる | str.padEnd(length[, pad]) |
padStart | length[, pad] | 前を埋めて長さをそろえる | str.padStart(length[, pad]) |
repeat | count | 繰り返す | str.repeat(count) |
replace | from, to | 最初の 1 つを置き換える(from が正規表現で g 付きなら全部) | str.replace(from, to) |
replaceAll | from, to | 全部置き換える | str.replaceAll(from, to) |
search | regexp | 正規表現に最初に合った位置(無ければ -1) | str.search(regexp) |
slice | start[, end] | 部分文字列(負は後ろから) | str.slice(start[, end]) |
split | sep | 分割して配列にする(sep は文字列か正規表現。空文字で 1 文字ずつ) | str.split(sep) |
startsWith | prefix | その文字で始まるか | str.startsWith(prefix) |
substring | start[, end] | 部分文字列 | str.substring(start[, end]) |
toLowerCase | — | 小文字にする(英字のみ) | str.toLowerCase() |
toString | — | そのまま返す | str.toString() |
toUpperCase | — | 大文字にする(英字のみ) | str.toUpperCase() |
trim | — | 前後の空白を除く | str.trim() |
trimEnd | — | 後ろの空白を除く | str.trimEnd() |
trimStart | — | 前の空白を除く | str.trimStart() |
Suspend (2)
| メソッド | 引数 | 説明 | 呼び出し例 |
|---|---|---|---|
exists(値) | — | 中断データがあるか(1/0) | Suspend.exists() |
load | — | 中断データを読み込んで再開する(読み込んだ中断データは消す) | Suspend.load() |
System (199)
font.* は System.font.setFamily(...)、messageWindow.* は System.messageWindow.setFont(...) のように書きます。変数(setVarInt など)は System が持つ整数・文字列の変数で、シナリオの setvar の変数とは別です。
| メソッド | 引数 | 説明 | 呼び出し例 |
|---|---|---|---|
addFlowchartFlag | name, value | フローチャートの印に足す(結果は 0〜9 に丸める) | System.addFlowchartFlag(name, value) |
addPluginDirectory | path | 検索パス追加 | System.addPluginDirectory(path) |
addSystemFlag | name, value | システムフラグに足す(結果は 0〜9 に丸める) | System.addSystemFlag(name, value) |
addVarInt | name, value | 整数変数に足す | System.addVarInt(name, value) |
assert | condition, message | 偽なら失敗にする(Debug 時はログにも出す) | System.assert(condition, message) |
beginAssetBatch | — | 画像をまとめて GPU へ送る囲いを始める。囲いの中では待ちや文章表示を挟まず、素材の登録だけを書く | System.beginAssetBatch() |
captureGrab | — | 今の画面を表に出さずに取り込んでおく(保存の窓を開く前に呼ぶと、操作ボタンの無い絵を残せる) | System.captureGrab() |
captureScreen | [mode] | 画面を PNG で保存。引数なしは exe の隣の capture\capture_0001.png から空いている番号へ(書けないときはセーブフォルダの capture)。"ask" は保存先を選ぶ窓を出す(既定 PNG。BMP も選べる)。Android・ブラウザも PNG で、ブラウザはダウンロードとして渡す("ask" でも窓は出ない) | System.captureScreen([mode]) |
checkFlowchartFlag(値のみ) | name, op, value | フローチャートの印を比べる(op は "==" / "!=" / "<" / "<=" / ">" / ">="。1/0) | System.checkFlowchartFlag(name, op, value) |
checkSystemFlag(値のみ) | name, op, value | システムフラグを比べる(op は checkFlowchartFlag と同じ。1/0) | System.checkSystemFlag(name, op, value) |
clearAllClearFlags | — | クリアフラグを全部消す | System.clearAllClearFlags() |
clearPluginDirectories | — | 検索パスクリア | System.clearPluginDirectories() |
clearVars | — | System の整数・文字列変数を全部消す | System.clearVars() |
concatVarStr | name, value | 文字列変数の後ろへつなぐ | System.concatVarStr(name, value) |
debugDump | — | システム状態ダンプ(Debug 時のみ) | System.debugDump() |
debugLog | message | Debug 時ログ出力 | System.debugLog(message) |
divVarInt | name, value | 整数変数を割る | System.divVarInt(name, value) |
dumpDialogImageLayout | kind | Confirm.dumpImageLayout と同じ | System.dumpDialogImageLayout(kind) |
editMessage | onVar, nameVar, bodyVar | メッセージの編集画面を出す。3 つの変数の今の値で始め、決定したときだけ書き戻す | System.editMessage(onVar, nameVar, bodyVar) |
endAssetBatch | — | beginAssetBatch の囲いを閉じて、まとめて送る | System.endAssetBatch() |
exec | code | インラインコード実行 | System.exec(code) |
execute | command | 外部プログラム起動("notepad.exe file.txt" のように実行ファイルと引数を空白区切り) | System.execute(command) |
exit | [kind, fadeOutMs, holdMs] | 確認のうえ終了(kind 既定 menuExit。fadeOutMs が 0 より大きいと暗転してから閉じ、holdMs は暗転しきってから閉じるまでの間) | System.exit([kind, fadeOutMs, holdMs]) |
exitAskYesNo | message[, caption, yesLabel, noLabel] | はい/いいえの窓を出し、はいなら終了 | System.exitAskYesNo(message[, caption, yesLabel, noLabel]) |
fadeFromBlack | fadeOutMs | 黒い幕を明ける(幕が出ていなければ何もしない) | System.fadeFromBlack(fadeOutMs) |
fadeFromColor | fadeOutMs, r, g, b | 色の幕を明ける | System.fadeFromColor(fadeOutMs, r, g, b) |
fadeToBlack | fadeInMs | 黒い幕を張って、fadeFromBlack / hideImage まで保つ | System.fadeToBlack(fadeInMs) |
fadeToColor | fadeInMs, r, g, b | 色の幕を張る | System.fadeToColor(fadeInMs, r, g, b) |
font.apply | — | 書体設定をメッセージ窓へ反映 | System.font.apply() |
font.getBold(値のみ) | — | 太字か(1/0) | System.font.getBold() |
font.getCurrentFamilyIndex(値のみ) | — | 今の書体が選べる一覧の何番目か | System.font.getCurrentFamilyIndex() |
font.getDropShadow(値のみ) | — | ドロップシャドウか(1/0) | System.font.getDropShadow() |
font.getFamily(値) | — | 今の書体名 | System.font.getFamily() |
font.getFamilyAt(値) | index | 選べる書体の index 番目の名前 | System.font.getFamilyAt(index) |
font.getFamilyCount(値) | — | 選べる書体の数 | System.font.getFamilyCount() |
font.getOutline(値のみ) | — | アウトラインか(1/0) | System.font.getOutline() |
font.getOutlineEmphasis(値のみ) | — | 太いアウトラインか(1/0) | System.font.getOutlineEmphasis() |
font.getQuality(値のみ) | — | 文字の描き方の値 | System.font.getQuality() |
font.getStyleColor(値のみ) | — | 影・アウトラインの色 | System.font.getStyleColor() |
font.load | — | 保存した書体設定を読む | System.font.load() |
font.loadEmbedded | path | 組み込み書体を読み込む | System.font.loadEmbedded(path) |
font.prewarm | [count] | まだ読んでいない組み込み書体を count 本(既定 1)先に読む。手が空いたときに 1 本ずつ呼ぶ | System.font.prewarm([count]) |
font.refreshFamilies | — | 選べる書体の一覧を作り直す | System.font.refreshFamilies() |
font.registerEmbedded | path[, displayName] | 組み込み書体を登録 | System.font.registerEmbedded(path[, displayName]) |
font.save | — | 書体設定を保存 | System.font.save() |
font.setBold | on | 太字 | System.font.setBold(on) |
font.setDropShadow | on | ドロップシャドウ | System.font.setDropShadow(on) |
font.setFamily | name | フォントファミリ | System.font.setFamily(name) |
font.setLicence | fontDisplayName, licencePath | 書体のライセンス文の場所 | System.font.setLicence(fontDisplayName, licencePath) |
font.setOutline | on | アウトライン | System.font.setOutline(on) |
font.setOutlineEmphasis | on | 太いアウトライン | System.font.setOutlineEmphasis(on) |
font.setQuality | quality | 文字の描き方(0〜5。5 = ClearType) | System.font.setQuality(quality) |
font.setStyleColor | color | 影・アウトラインの色("#RRGGBB") | System.font.setStyleColor(color) |
font.showDialog | — | 書体を選ぶ窓を出す | System.font.showDialog() |
getClearFlag(値のみ) | name | クリアフラグ(1/0) | System.getClearFlag(name) |
getDataRoot(値) | — | データルート取得 | System.getDataRoot() |
getDialogImageDirectory(値) | — | 画像ダイアログのフォルダ | System.getDialogImageDirectory() |
getDialogText | kind | 確認ダイアログの題・本文 | System.getDialogText(kind) |
getDialogType(値) | kind | 確認ダイアログの種類 | System.getDialogType(kind) |
getEnv(値のみ) | name | 環境変数を文字で返す(無ければ空。Android は launch.txt、ブラウザは ?名前=値) | System.getEnv("LUMINA_LANG_TEST") |
getExtension(値) | type | 拡張子取得 | System.getExtension(type) |
getFlowchartFlag(値のみ) | name | フローチャートの印(未設定は 0) | System.getFlowchartFlag(name) |
getFolder(値) | key | フォルダパス取得 | System.getFolder(key) |
getLoadFadeIn(値) | — | setLoadFadeIn の値 | System.getLoadFadeIn() |
getRunMode(値) | — | 現在モード取得("Debug" / "Release") | System.getRunMode() |
getSavedVarInt(値) | name[, default] | 保存済みの環境設定(config.*)の値。復元の前でも読める(PreInitialize.txt 用。手元の値は変えない) | System.getSavedVarInt("config.language", 0) |
getSystemFlag(値のみ) | name | システムフラグ(未設定は 0) | System.getSystemFlag(name) |
getVarInt(値) | name | 整数変数(config.* は設定の実体から読む) | System.getVarInt(name) |
getVarStr(値) | name | 文字列変数 | System.getVarStr(name) |
hasSaveData | slot | 使えません(呼ぶと失敗する)。SaveSlot.hasState を使う | System.hasSaveData(slot) |
hideImage | [fadeOutMs] | showImage の画像を消す | System.hideImage([fadeOutMs]) |
ifIniBool | section, key, default, codeIf[, codeElse] | INI bool 分岐 | System.ifIniBool(section, key, default, codeIf[, codeElse]) |
ifIniEnabled | codeIf[, codeElse] | INI 有効時分岐 | System.ifIniEnabled(codeIf[, codeElse]) |
ifVarEquals | name, val, codeIf[, codeElse] | 変数一致分岐 | System.ifVarEquals(name, val, codeIf[, codeElse]) |
ifVarGreater | name, value, codeIf[, codeElse] | 変数が大きいとき分岐 | System.ifVarGreater(name, value, codeIf[, codeElse]) |
ifVarGreaterOrEqual | name, value, codeIf[, codeElse] | 変数が以上のとき分岐 | System.ifVarGreaterOrEqual(name, value, codeIf[, codeElse]) |
ifVarLess | name, value, codeIf[, codeElse] | 変数が小さいとき分岐 | System.ifVarLess(name, value, codeIf[, codeElse]) |
ifVarLessOrEqual | name, value, codeIf[, codeElse] | 変数が以下のとき分岐 | System.ifVarLessOrEqual(name, value, codeIf[, codeElse]) |
ifVarNotEquals | name, value, codeIf[, codeElse] | 変数が違うとき分岐 | System.ifVarNotEquals(name, value, codeIf[, codeElse]) |
ifVarStrEquals | name, value, codeIf[, codeElse] | 文字列変数が一致するとき分岐 | System.ifVarStrEquals(name, value, codeIf[, codeElse]) |
ifVarStrNotEquals | name, value, codeIf[, codeElse] | 文字列変数が違うとき分岐 | System.ifVarStrNotEquals(name, value, codeIf[, codeElse]) |
isDebugMode(値) | — | Debug かどうか(1/0) | System.isDebugMode() |
isSeen(値のみ) | category, name | その絵を一度でも画面に出したか(1/0。フォルダと拡張子は落として比べる) | System.isSeen("chara", "akari_smile") |
jumpScenario | path[, label] | 別のシナリオへ切り替える。シナリオ変数は保つ。"ファイル *ラベル" の 1 引数でも書ける。シナリオ実行中に呼んでも安全(飛び先が見つからなければ失敗して今のシナリオのまま) | System.jumpScenario(path[, label]) |
loadData | slot | 使えません(呼ぶと失敗する)。SaveSlot.loadState を使う | System.loadData(slot) |
loadPlugin | dllName | DLL ロード | System.loadPlugin(dllName) |
loadScenario | path | シナリオを新しく始める。始める前にシナリオ変数(setvar の値)を消す | System.loadScenario(path) |
loadStartPosition | — | 起動引数(--start-scenario= / --start-label=)で開始位置が渡されていれば、そのシナリオ(とラベル)から始める。無ければ何もしない | System.loadStartPosition() |
log | message | Debug 時ログ出力 | System.log(message) |
messageWindow.addButton | actionId, x, y, normal, hover, pressed, disabled | 枠にボタンを置く | System.messageWindow.addButton(actionId, x, y, normal, hover, pressed, disabled) |
messageWindow.apply | — | 設定を反映 | System.messageWindow.apply() |
messageWindow.bindShowText | on | 本文の表示をこの枠へつなぐ | System.messageWindow.bindShowText(on) |
messageWindow.buttonAction | actionId | 組み込みのボタン動作(qsave / qload / auto / skip / hide / backlog など)を実行する(上部メニューなどから使う) | System.messageWindow.buttonAction(actionId) |
messageWindow.clear | — | 本文を消す | System.messageWindow.clear() |
messageWindow.clearButtons | — | ボタンを全部消す | System.messageWindow.clearButtons() |
messageWindow.clearPreview | — | setPreview の見本を消す | System.messageWindow.clearPreview() |
messageWindow.fadeOpacity | targetOpacity, durationMs[, steps] | 下敷きの濃さを今の値からフェード(steps 既定 30) | System.messageWindow.fadeOpacity(targetOpacity, durationMs[, steps]) |
messageWindow.getButtonsLocked(値) | — | ボタンの固定表示が入か | System.messageWindow.getButtonsLocked() |
messageWindow.getNameDisplayMode(値) | — | 名前の出し方("text" / "separated" / "integrated") | System.messageWindow.getNameDisplayMode() |
messageWindow.getNameMode(値) | — | 名前の出し方(0=文字 / 1=画像) | System.messageWindow.getNameMode() |
messageWindow.getTextSpeed(値) | — | 文字送りの速さ(ms) | System.messageWindow.getTextSpeed() |
messageWindow.getWordWrap(値のみ) | — | 単語折り返しが入か(1/0) | System.messageWindow.getWordWrap() |
messageWindow.invoke | actionId | register したハンドラを実行 | System.messageWindow.invoke(actionId) |
messageWindow.loadNameAreaGuide | path | 名前欄の位置の目安になる絵 | System.messageWindow.loadNameAreaGuide(path) |
messageWindow.loadNameAssets | basePath | 名前画像のフォルダ | System.messageWindow.loadNameAssets(basePath) |
messageWindow.register | actionId, code | ボタンのハンドラを登録 | System.messageWindow.register(actionId, code) |
messageWindow.setAdvanceIcon | path[, frames, frameW, frameH, intervalMs] | 文字送りアイコン(横一列のスプライトシート。frameW / frameH が 0 ならシートを等分。intervalMs 既定 100) | System.messageWindow.setAdvanceIcon(path[, frames, frameW, frameH, intervalMs]) |
messageWindow.setAdvanceIconEnabled | on | 文字送りアイコンを出すか | System.messageWindow.setAdvanceIconEnabled(on) |
messageWindow.setAdvanceIconPos | x, y | 文字送りアイコンの位置 | System.messageWindow.setAdvanceIconPos(x, y) |
messageWindow.setAdvanceIconSize | w, h | 文字送りアイコンの大きさ | System.messageWindow.setAdvanceIconSize(w, h) |
messageWindow.setAssets | framePath, backgroundPath, textAreaPath | 枠の絵(枠・下敷き・本文欄) | System.messageWindow.setAssets(framePath, backgroundPath, textAreaPath) |
messageWindow.setBackgroundColor | color | 下敷きの色("#RRGGBB" か "#AARRGGBB") | System.messageWindow.setBackgroundColor(color) |
messageWindow.setBackgroundOpacity | opacity | 下敷きの濃さ(0.0〜1.0) | System.messageWindow.setBackgroundOpacity(opacity) |
messageWindow.setButtonEnabled | actionId, enabled | ボタンの有効/無効(無効は灰色で残る) | System.messageWindow.setButtonEnabled(actionId, enabled) |
messageWindow.setButtonsAnimation | durationMs, slideDistance, proximityMargin | ボタンの出入りの動き | System.messageWindow.setButtonsAnimation(durationMs, slideDistance, proximityMargin) |
messageWindow.setButtonsLocked | locked | ボタンを固定表示にする(1/0。押せなくするのではない) | System.messageWindow.setButtonsLocked(locked) |
messageWindow.setButtonTooltip | actionId, tooltipPath | ボタンの案内の絵 | System.messageWindow.setButtonTooltip(actionId, tooltipPath) |
messageWindow.setButtonVisible | actionId, visible | ボタンを描くか(非表示は当たり判定も無くなる。有効/無効とは別) | System.messageWindow.setButtonVisible(actionId, visible) |
messageWindow.setCaptureRange | minY, maxY | 本文として拾う縦の範囲 | System.messageWindow.setCaptureRange(minY, maxY) |
messageWindow.setFont | family, size[, bold, color, shadow, shadowColor, shadowX, shadowY] | 本文の書体(2〜8 引数) | System.messageWindow.setFont(family, size[, bold, color, shadow, shadowColor, shadowX, shadowY]) |
messageWindow.setHideWhenEmpty | on | 本文が空のとき枠を隠す | System.messageWindow.setHideWhenEmpty(on) |
messageWindow.setName | name | 名前欄に出す名前(空で名前欄を出さない) | System.messageWindow.setName(name) |
messageWindow.setNameDisplayMode | mode | 名前の出し方("text" / "separated" / "integrated") | System.messageWindow.setNameDisplayMode(mode) |
messageWindow.setNameImagePosition | x, y | 名前画像の位置 | System.messageWindow.setNameImagePosition(x, y) |
messageWindow.setNameMode | mode | 名前の出し方(0=文字 / 1=画像) | System.messageWindow.setNameMode(mode) |
messageWindow.setNameTextArea | x, y, w, h | 名前の文字の範囲 | System.messageWindow.setNameTextArea(x, y, w, h) |
messageWindow.setPosition | x, y | 枠の位置 | System.messageWindow.setPosition(x, y) |
messageWindow.setPreview | x, y, w, h, text[, scene] | 本物と同じ枠・書体・濃さ・文字送りの見本を出す(環境設定用。scene は後ろに敷く絵。画面を組み直すたびに呼ぶ) | System.messageWindow.setPreview(x, y, w, h, text[, scene]) |
messageWindow.setText | text | 本文を出す | System.messageWindow.setText(text) |
messageWindow.setTextArea | x, y, w, h | 本文の範囲 | System.messageWindow.setTextArea(x, y, w, h) |
messageWindow.setTextSpeed | ms | 文字送りの速さ | System.messageWindow.setTextSpeed(ms) |
messageWindow.setTooltipAnimation | durationMs, slideDistance, offsetY | 案内の出入りの動き | System.messageWindow.setTooltipAnimation(durationMs, slideDistance, offsetY) |
messageWindow.setVisible | on | 枠を出す/隠す | System.messageWindow.setVisible(on) |
messageWindow.setWordWrap | [on] | 本文を単語の途中で折り返さない(英語など。既定 0=1 文字ずつ。引数なしで入) | System.messageWindow.setWordWrap(1) |
modVarInt | name, value | 整数変数の余り | System.modVarInt(name, value) |
mulVarInt | name, value | 整数変数に掛ける | System.mulVarInt(name, value) |
notify | message | 画面の右上に短い知らせを出す(Windows・Android・ブラウザ)。文の長さに合わせて 2.5〜7 秒で消える。続けて呼ぶと順に出る(待たせるのは 5 件まで)。"\n" で改行して 3 行まで、長い行は「…」で切る。ゲームは止めない | System.notify(message) |
randomInt | name, min, max | min〜max の整数の乱数を整数変数へ入れる | System.randomInt(name, min, max) |
randomSeed | seed | 乱数の種(Math.random と Math.mtRandom の両方) | System.randomSeed(seed) |
returnToTitle | [kind, fadeOutMs] | 確認のうえタイトルへ戻る(kind 既定 titleExit。オート・スキップ・シーン送りは止める) | System.returnToTitle([kind, fadeOutMs]) |
saveData | slot | 使えません(呼ぶと失敗する)。SaveSlot.saveState を使う | System.saveData(slot) |
setAllowedPlugins | [...] | 読んでよいプラグインの一覧 | System.setAllowedPlugins([...]) |
setClearFlag | name, value | クリアフラグ(0 以外で立つ)。systemdata に残る | System.setClearFlag(name, value) |
setCloseFade | [ms] | 右上の×で閉じるときの暗転時間(既定 800) | System.setCloseFade([ms]) |
setDataRoot | path | データルート | System.setDataRoot(path) |
setDebugLogEnabled | on | ログ有効/無効 | System.setDebugLogEnabled(on) |
setDialogImageAssets | kind, background, yesNormal, yesHover, yesPressed, yesDisabled, noNormal, noHover, noPressed, noDisabled | Confirm.setImageAssets と同じ | System.setDialogImageAssets(kind, background, yesNormal, yesHover, yesPressed, yesDisabled, noNormal, noHover, noPressed, noDisabled) |
setDialogImageDirectory | dir | Confirm.setImageDirectory と同じ | System.setDialogImageDirectory(dir) |
setDialogImageLayout | kind, yesX, yesY, noX, noY | Confirm.setImageLayout と同じ | System.setDialogImageLayout(kind, yesX, yesY, noX, noY) |
setDialogImageMessage | kind, messagePath | Confirm.setImageMessage と同じ | System.setDialogImageMessage(kind, messagePath) |
setDialogImagePanel | kind, panelPath | Confirm.setImagePanel と同じ | System.setDialogImagePanel(kind, panelPath) |
setDialogText | kind[, caption, prompt] | 確認ダイアログの題・本文 | System.setDialogText(kind[, caption, prompt]) |
setDialogType | kind, type | 確認ダイアログの種類 | System.setDialogType(kind, type) |
setExitDialog | enabled | 終了確認ダイアログを出すか | System.setExitDialog(enabled) |
setExtension | type, ext | 拡張子設定(systemScript / scenarioScript / image など) | System.setExtension("image", "lgc") |
setFadeEasing | fadeInMode, fadeOutMode | 幕のフェードの効き(0=直線 / 1=減速 / 2=加速 / 3=両端ゆるやか) | System.setFadeEasing(fadeInMode, fadeOutMode) |
setFlowchartFlag | name, value | フローチャートの印(0〜9 に丸める。0 で下ろす)。systemdata に残る | System.setFlowchartFlag(name, value) |
setFolder | key, path | フォルダマッピング | System.setFolder(key, path) |
setIniAutoCreate | on | INI 自動生成 | System.setIniAutoCreate(on) |
setIniBool | section, key, value | INI 値書き込み | System.setIniBool(section, key, value) |
setIniEnabled | on | INI 読み書き有効化 | System.setIniEnabled(on) |
setLoadFade | [fadeOutMs, holdMs, fadeInMs] | ロードの演出(暗転・待ち・明ける。既定 300 / 200 / 400。明ける時間 0 で演出なし) | System.setLoadFade([fadeOutMs, holdMs, fadeInMs]) |
setLoadFadeIn | [ms] | ロードで画面を戻した直後のフェードイン(0 で無効) | System.setLoadFadeIn([ms]) |
setMessageEditStyle | style | editMessage の見た目("image" = 絵で描く・専用素材が要る / "dialog" = OS 標準の窓・既定) | System.setMessageEditStyle(style) |
setRunMode | mode | 実行モード設定("Debug" / "Release") | System.setRunMode(mode) |
setSaveDataID | id | setSaveDataId と同じ | System.setSaveDataID(id) |
setSaveDataId | id | 製品識別子 | System.setSaveDataId(id) |
setSaveDataMode | mode | セーブの書き方("" = 平文 / "c" / "z") | System.setSaveDataMode(mode) |
setSaveFolder | name | セーブフォルダの名前 | System.setSaveFolder(name) |
setSaveFolderName | name | setSaveFolder と同じ | System.setSaveFolderName(name) |
setSaveProduct | brand[, game] | 製品名(ブランド名・作品名。片方だけでもよい) | System.setSaveProduct(brand[, game]) |
setSaveRoot | kind | セーブ先("InstallPath"(exe の隣)/ "MyDocuments" / "MyGamesDocuments" / "AppData") | System.setSaveRoot(kind) |
setSceneVeilImage | jumpImage, backImage | シーン送り/戻しの幕に敷く絵(呼ばなければ黒) | System.setSceneVeilImage(jumpImage, backImage) |
setSceneVeilText | jumpText, backText | シーン送り/戻しの幕に出す文言(呼ばなければ出さない。空で下ろす) | System.setSceneVeilText(jumpText, backText) |
setScriptPassword | pw | .lsf 復号パスワード | System.setScriptPassword(pw) |
setSplashDelay | ms | スプラッシュ遅延 | System.setSplashDelay(ms) |
setSplashFade | fadeInMs, fadeOutMs | スプラッシュフェード | System.setSplashFade(fadeInMs, fadeOutMs) |
setSplashHold | ms | スプラッシュ保持 | System.setSplashHold(ms) |
setStartupDialog | enabled | 起動ダイアログ | System.setStartupDialog(enabled) |
setSystemFlag | name, value | システムフラグ(0〜9 に丸める。0 で下ろす)。systemdata に残る | System.setSystemFlag(name, value) |
setVarInt | name, value | 整数変数 | System.setVarInt(name, value) |
setVarStr | name, value | 文字列変数 | System.setVarStr(name, value) |
setVersion | text | バージョン表示 | System.setVersion(text) |
showAbout | — | 簡易 About 窓 | System.showAbout() |
showDialog(値) | type[, options] | 窓を直接出す(options 既定 "exit")。LUMINA Script では、はいなら 1 を返す | System.showDialog(type[, options]) |
showImage | path[, x, y] | 画像表示 | System.showImage(path[, x, y]) |
showLicenseEmbedded | windowTitle, tab1Title, tab1Text, tab2Title, tab2Text | ライセンスの窓(文を直接渡す) | System.showLicenseEmbedded(windowTitle, tab1Title, tab1Text, tab2Title, tab2Text) |
showLicenseFromFile | windowTitle, tab1Title, tab1Path, tab2Title, tab2Path | ライセンスの窓(ファイルから読む) | System.showLicenseFromFile(windowTitle, tab1Title, tab1Path, tab2Title, tab2Path) |
showText | text[, x, y] | テキスト表示 | System.showText(text[, x, y]) |
showVersionInfo | [appTitle, appVersion, appCopyright, productId, systemName, systemVersion, systemCopyright] | 版の情報の窓(引数は 0 か 7) | System.showVersionInfo([appTitle, appVersion, appCopyright, productId, systemName, systemVersion, systemCopyright]) |
subVarInt | name, value | 整数変数から引く | System.subVarInt(name, value) |
switch | mode, code0, code1, ... | 数値直接分岐 | System.switch(mode, code0, code1, ...) |
switchArg | index, default, code0, ... | コマンドライン引数で分岐 | System.switchArg(index, default, code0, ...) |
switchEnv | var, default, code0, code1, ... | 環境変数で分岐 | System.switchEnv(var, default, code0, code1, ...) |
switchIni | section, key, default, ... | INI 値で分岐 | System.switchIni(section, key, default, ...) |
switchVar | name, code0, code1, ... | 整数変数で分岐 | System.switchVar(name, code0, code1, ...) |
timeline | definition | 時系列ステップ実行 | System.timeline(definition) |
wait | ms | ミリ秒待機(メッセージポンプ) | System.wait(ms) |
warmMessageWindowImages | [folders] | メッセージ枠の絵を裏で先に読んでおく(タイトルが出そろってから呼ぶ。2 度目以降は何もしない。カンマ区切りでフォルダを足せる) | System.warmMessageWindowImages([folders]) |
SystemInfo (1)
| メソッド | 引数 | 説明 | 呼び出し例 |
|---|---|---|---|
show | — | システム情報の窓を出す | SystemInfo.show() |
SystemMenu (8)
| メソッド | 引数 | 説明 | 呼び出し例 |
|---|---|---|---|
addItem | title, actionId | 項目を足す | SystemMenu.addItem(title, actionId) |
addSeparator | — | 区切り線 | SystemMenu.addSeparator() |
apply | — | 反映 | SystemMenu.apply() |
clear | — | 項目を全部消す | SystemMenu.clear() |
enableMenuBar | on | メニューバーの項目を出すか | SystemMenu.enableMenuBar(on) |
enableSystemInfo | on | システム情報の項目を出すか | SystemMenu.enableSystemInfo(on) |
register | actionId, code | 項目のハンドラを登録 | SystemMenu.register(actionId, code) |
remove | actionId | 項目を消す | SystemMenu.remove(actionId) |
TextInput (1)
| メソッド | 引数 | 説明 | 呼び出し例 |
|---|---|---|---|
show(値) | bgPath, x, y[, w, h, initial, maxLen] | 文字入力の枠を出し、確定した文字列を返す(取消は空文字。w, h 既定 640, 120、maxLen 既定 64) | var s = TextInput.show("", 320, 300, 640, 120, "", 16) |
TextureFilter (1)
| メソッド | 引数 | 説明 | 呼び出し例 |
|---|---|---|---|
set | [filter] | 拡大縮小の補間(0=Point / 1=Linear(既定) / 2=Anisotropic) | TextureFilter.set([filter]) |
Timer (7)
| メソッド | 引数 | 説明 | 呼び出し例 |
|---|---|---|---|
elapsed(値) | name | getElapsed と同じ | Timer.elapsed(name) |
getElapsed(値) | name | 経過時間(ms) | Timer.getElapsed(name) |
ifElapsedGreater | timerName, thresholdMs, codeIf[, codeElse] | 経過時間で分岐 | Timer.ifElapsedGreater(timerName, thresholdMs, codeIf[, codeElse]) |
reset | name | stop と同じ(そのタイマーを消す) | Timer.reset(name) |
start | name | タイマーを始める | Timer.start(name) |
stop | name | そのタイマーを消す | Timer.stop(name) |
storeElapsed | timerName, varName | 経過時間(ms)を System の整数変数へ入れる | Timer.storeElapsed(timerName, varName) |
Title (60)
タイトル画面と、同じ仕組みで組むシステム画面(環境設定・セーブ画面など)の API です。座標は設計座標(1280×720)。色は "#AARRGGBB" / "#RRGGBB" か整数で書けます。
| メソッド | 引数 | 説明 | 呼び出し例 |
|---|---|---|---|
addButton | actionId, x, y, normal, hover, pressed, disabled[, w, h] | ボタンを置く。7 引数は絵の実寸、9 引数は大きさを指定 | Title.addButton(actionId, x, y, normal, hover, pressed, disabled[, w, h]) |
addDragFollower | actionId, elementId | 掴んだときに一緒に運ぶ要素 | Title.addDragFollower(actionId, elementId) |
addDropTarget | id, x, y, w, h | 落とし先の枠を足す | Title.addDropTarget(id, x, y, w, h) |
addImage | id, path, x, y, w, h | 押せない飾りの絵を置く | Title.addImage(id, path, x, y, w, h) |
addLabel | id, x, y, w, h, text[, fontSize, color, bold, align] | 文字ラベルを置く(同じ id は作り直し)。align は "left" / "center" / "right" か 0 / 1 / 2(枠の中での寄せ方) | Title.addLabel(id, x, y, w, h, text[, fontSize, color, bold, align]) |
addSprite | id, textureId, x, y, w, h | 作ったテクスチャ(サムネイルなど)をそのまま置く | Title.addSprite(id, textureId, x, y, w, h) |
beginCoverTransition | — | 今の画面を写して残し、次の show で新しい画面を上に重ねてフェードインする | Title.beginCoverTransition() |
beginCoverTransitionBackgroundOnly | — | beginCoverTransition の背景だけ版 | Title.beginCoverTransitionBackgroundOnly() |
beginRebuild | — | 画面の組み立ての始まりの印。show まで途中の画面を描かない(下ろし忘れても 400ms で解除) | Title.beginRebuild() |
clear | — | 全部消す(登録したハンドラも消す) | Title.clear() |
clearButtonDecideVoices | — | ボタンごとの決定音声を全部外す | Title.clearButtonDecideVoices() |
clearButtons | — | ボタンだけ消す(背景と表示状態は残す) | Title.clearButtons() |
clearButtonsExceptPrefixes | prefixesPipe | 接頭辞("|" 区切り)に合わないボタンを消す | Title.clearButtonsExceptPrefixes(prefixesPipe) |
clearButtonsWithPrefix | prefix | 接頭辞に合うボタンを消す | Title.clearButtonsWithPrefix(prefix) |
clearDropTargets | — | 落とし先の枠を全部消す | Title.clearDropTargets() |
clearLabels | — | ラベルを全部消す | Title.clearLabels() |
clearLayout | — | setLayout を外す | Title.clearLayout() |
clearSprites | — | addSprite / addImage で置いた物を消す | Title.clearSprites() |
getHoveredButton(値のみ) | — | 今カーソルが乗っているボタンの識別子(無ければ空) | Title.getHoveredButton() |
getLastClickFracX(値のみ) | — | 直前に押した位置がボタンの中で横のどこか(0.0〜1.0) | Title.getLastClickFracX() |
getLastClickFracY(値のみ) | — | 同じく縦(0.0〜1.0)。スクロールの溝を押したときに使う | Title.getLastClickFracY() |
getLastWaitReason(値のみ) | — | 直前の waitUntilHidden が終わった理由(0=閉じた / 1=ボタン操作などで打ち切り / 2=時間切れ) | Title.getLastWaitReason() |
hide | — | 隠す | Title.hide() |
isButtonEnabled(値のみ) | actionId | ボタンが有効か(1/0) | Title.isButtonEnabled(actionId) |
isVisible(値) | — | 出ているか(1/0) | Title.isVisible() |
preloadImages | folder | フォルダの絵をその場で先読みする | Title.preloadImages(folder) |
preloadImagesInBackground | folder | フォルダの絵を画面を出したあと少しずつ先読みする(その場では数えるだけ) | Title.preloadImagesInBackground(folder) |
register | actionId, code | ボタンのハンドラを登録 | Title.register(actionId, code) |
removeImage | id | addImage で置いた飾りを 1 つ取り除く | Title.removeImage(id) |
setBackground | path | 背景画像 | Title.setBackground(path) |
setButtonAnimation | durationMs, staggerMs, offsetX | ボタンのスライドイン(1 個の時間・ずらし・距離) | Title.setButtonAnimation(durationMs, staggerMs, offsetX) |
setButtonDecideVoice | actionId[, file] | そのボタンだけ決定音声を変える(空ならそのボタンは鳴らさない) | Title.setButtonDecideVoice(actionId[, file]) |
setButtonEnabled | actionId, enabled | ボタン有効化 | Title.setButtonEnabled(actionId, enabled) |
setButtonHint | actionId[, text] | ボタンに乗っている間だけ出す案内(空で外す) | Title.setButtonHint(actionId[, text]) |
setButtonImages | id, normal[, hover, pressed, disabled] | 押した瞬間にボタンの絵を差し替える | Title.setButtonImages(id, normal[, hover, pressed, disabled]) |
setButtonsEnabledExceptPrefixes | prefixesPipe, enabled | 接頭辞に合わないボタンを消さずに有効/無効にする | Title.setButtonsEnabledExceptPrefixes(prefixesPipe, enabled) |
setCharaVisiblePercent | layer, percent | Character.setVisiblePercent と同じ(立ち絵の映す割合) | Title.setCharaVisiblePercent(layer, percent) |
setCoversScene | [on] | 表示中はシナリオの背景・立ち絵を描かない(Windows では何もしない。Windows 以外で使う) | Title.setCoversScene([on]) |
setDecideVoice | file | 決定時に鳴らすシステム音声(data5/sysvoice の名前。空なら鳴らさない) | Title.setDecideVoice(file) |
setDragContextVar | varName | 掴んだ時点で控える変数(ページ番号など) | Title.setDragContextVar(varName) |
setDragFreeMove | actionId[, enabled] | 落とし先を使わず、離した場所へ置く(drag.source / drag.x / drag.y を入れてハンドラを呼ぶ) | Title.setDragFreeMove(actionId[, enabled]) |
setDraggable | actionId[, enabled] | ボタンを掴んで運べるようにする | Title.setDraggable(actionId[, enabled]) |
setDragKeepsSource | keep | 運んでも元を残す(コピーのような操作) | Title.setDragKeepsSource(keep) |
setFade | fadeInMs, fadeOutMs | 出す/隠すときのフェード | Title.setFade(fadeInMs, fadeOutMs) |
setFadeEasing | fadeInMode, fadeOutMode | フェードの効き(0=直線 / 1=減速 / 2=加速 / 3=両端ゆるやか) | Title.setFadeEasing(fadeInMode, fadeOutMode) |
setFrontLayer | id, front | ボタン/ラベルを前面に置く(他の文字より後に描く) | Title.setFrontLayer(id, front) |
setHintStyle | fontSize, textColor, plateColor, offsetY | setButtonHint の案内の見た目 | Title.setHintStyle(fontSize, textColor, plateColor, offsetY) |
setLabelFont | id, family | ラベルの書体(空で画面共通の書体) | Title.setLabelFont(id, family) |
setLabelText | id, text | ラベルの文字を差し替える | Title.setLabelText(id, text) |
setLayout | x, y, w, h | 画面の配置 | Title.setLayout(x, y, w, h) |
setOverlay | path | 重ねる画像 | Title.setOverlay(path) |
setPluginCanvases | [on] | mrumotion の絵を、この画面の背景とボタンの間に載せる(位置は Motion.setPosition で決める) | Title.setPluginCanvases([on]) |
setScrollDrag | buttonId, actionId[, varName, maxIndex] | 溝のボタンを掴んで動かしている間ずっと actionId を呼ぶ(位置は getLastClickFracY)。varName を渡すとハンドラを通さずその変数へ番号(0〜maxIndex)を直接入れる。空の buttonId で解除 | Title.setScrollDrag(buttonId, actionId[, varName, maxIndex]) |
setSegBar | prefix, value, segBase[, count] | 目盛りの絵を押した瞬間に塗り替える(段数 既定 11) | Title.setSegBar(prefix, value, segBase[, count]) |
setSounds | hoverSE, clickSE, cancelSE | ボタン SE | Title.setSounds(hoverSE, clickSE, cancelSE) |
setWheelAction | upAction, downAction[, varName, step, maxIndex] | ホイールで呼ぶ処理。varName を渡すとその変数を step ずつ(既定 3)0〜maxIndex の範囲で増減する。空で解除 | Title.setWheelAction(upAction, downAction[, varName, step, maxIndex]) |
show | — | 出す(beginRebuild / clearButtons で始まった組み立てはここで終わる) | Title.show() |
skipWait | — | waitUntilHidden の待ちを打ち切る | Title.skipWait() |
waitUntilHidden | [timeoutMs] | 画面が閉じるまで待つ(ボタンのハンドラはこの間に動く) | Title.waitUntilHidden([timeoutMs]) |
wasClosedExternally(値) | — | 「タイトルへ戻る」などで外から閉じられたか(1/0。読むと戻る) | Title.wasClosedExternally() |
Transition (8)
| メソッド | 引数 | 説明 | 呼び出し例 |
|---|---|---|---|
beginSnapshot | — | 今の画面を写して一番上に置く(このあと背景や立ち絵を変えても画面は止まって見える) | Transition.beginSnapshot() |
cancelSnapshot | — | 写しを捨てる | Transition.cancelSnapshot() |
crossfade | bgPath, durationMs | 背景をクロスフェードで切り替える | Transition.crossfade(bgPath, durationMs) |
fadeThrough | bgPath, durationMs[, r, g, b] | 色を挟んで切り替える(既定 黒) | Transition.fadeThrough(bgPath, durationMs[, r, g, b]) |
isSnapshotHeld(値) | — | 写しを持っているか(1/0) | Transition.isSnapshotHeld() |
rule | bgPath, durationMs, ruleName[, vague] | ルール画像で背景を切り替える(完了まで待つ。立ち絵は動かさない。vague 既定 64) | Transition.rule(bgPath, durationMs, ruleName[, vague]) |
runSnapshot | ruleName, durationMs[, vague] | 写しを消していき新しい場面を出す(ruleName が空か "crossfade" なら透明度だけで消す) | Transition.runSnapshot(ruleName, durationMs[, vague]) |
wipe | bgPath, durationMs[, dir] | ワイプで切り替える(dir 0=左 / 1=右 / 2=上 / 3=下) | Transition.wipe(bgPath, durationMs[, dir]) |
VoiceCharacter (4)
| メソッド | 引数 | 説明 | 呼び出し例 |
|---|---|---|---|
getVolume(値) | charaId | 話者の音量 | VoiceCharacter.getVolume(charaId) |
isMuted(値) | charaId | 話者を消音しているか(1/0) | VoiceCharacter.isMuted(charaId) |
setMuted | charaId, muted | 話者を消音する | VoiceCharacter.setMuted(charaId, muted) |
setVolume | charaId, vol | 話者の音量(0〜100) | VoiceCharacter.setVolume(charaId, vol) |
Window (27)
| メソッド | 引数 | 説明 | 呼び出し例 |
|---|---|---|---|
applyFPS | — | FPS 適用 | Window.applyFPS() |
applyScreenMode | mode | 画面モードを適用("FALSE"=ウィンドウ / "DirectX12" / "Win32") | Window.applyScreenMode(mode) |
clear | — | 画面の表示レイヤー(背景・立ち絵・イベント CG・スプライト・表示中の画像)を全部消す | Window.clear() |
getContentAspect(値のみ) | — | 4:3 画面モード(0=ワイド / 1=スクエア / 2=自動) | Window.getContentAspect() |
getFPS(値のみ) | — | 目標フレームレート | Window.getFPS() |
getScaleMode(値のみ) | — | 拡大方法(0=内接 / 1=外接 / 2=拡大しない / 3=中間) | Window.getScaleMode() |
getScalingFilter(値のみ) | — | 拡大時のスムージング(0=Lanczos / 1=Cubic / 2=SharpLinear / 3=Linear) | Window.getScalingFilter() |
isVirtualFullscreen(値) | — | 仮想フルスクリーン中か | Window.isVirtualFullscreen() |
resetCursor | — | カーソルリセット | Window.resetCursor() |
setAppId | id | タスクバー AppUserModelID | Window.setAppId(id) |
setAspectLock | mode | アスペクトロック | Window.setAspectLock(mode) |
setContentAspect | mode | 4:3 画面モード(0=ワイド / 1=4:3 / 2=自動) | Window.setContentAspect(mode) |
setCursor | [name] | カーソル("arrow" / "hand" / "wait" / "ibeam" / "cross" / "help" / "no" か .cur / .ani のファイル。空で arrow) | Window.setCursor([name]) |
setFPS | n | フレームレート | Window.setFPS(n) |
setIcon | path または dir, file | アイコン(読めなければ埋め込みのまま) | Window.setIcon(path) |
setMarginWallpaper | path | 余白(4:3 で増やした分・画面比が合わない帯)に敷く絵。空で黒 | Window.setMarginWallpaper(path) |
setMultiCore | enabled, coreCount | マルチコアの使い方(2 引数が要る) | Window.setMultiCore(enabled, coreCount) |
setResizable | bool | リサイズ可否 | Window.setResizable(bool) |
setScaleMode | mode | 拡大方法(0=内接 / 1=外接 / 2=拡大しない / 3=中間) | Window.setScaleMode(mode) |
setScalingFilter | type[, cubicStrength] | 拡大時のスムージング(0=Lanczos / 1=Cubic / 2=SharpLinear / 3=Linear) | Window.setScalingFilter(type[, cubicStrength]) |
setSingleInstance | bool | 多重起動防止 | Window.setSingleInstance(bool) |
setSingleInstanceKey | key | 多重起動キー | Window.setSingleInstanceKey(key) |
setSize | w, h | 窓の中身の大きさ(ブラウザ版はページいっぱいに表示し、ページの上の端に出るメニューの「ウィンドウ表示時サイズ」から選んだときだけその大きさになる。ブラウザ版だけの「ページに合わせる」で戻る) | Window.setSize(w, h) |
setTitle | title | ウィンドウタイトル | Window.setTitle(title) |
setTopMost | bool | 最前面 | Window.setTopMost(bool) |
setVirtualFullscreen | bool | 仮想フルスクリーン | Window.setVirtualFullscreen(bool) |
toggleVirtualFullscreen | — | フルスクリーン切替 | Window.toggleVirtualFullscreen() |
組み込み関数 (7)
LUMINA Script でオブジェクト名を付けずに呼べる関数です。どれも値を返します。ここに無い名前を付けずに呼ぶと Common の命令として実行されます(Wait(500) など)。typeof x も使えます。console は Debug の別名です。
| 関数 | 引数 | 説明 | 呼び出し例 |
|---|---|---|---|
Boolean | x | 真偽値にする | Boolean(x) |
isFinite | x | 有限の数か(true/false) | isFinite(x) |
isNaN | x | NaN か(true/false) | isNaN(x) |
Number | x | 数にする | Number("12") |
parseFloat | s | 文字列を数にする(読めなければ NaN) | parseFloat("3.5") |
parseInt | s[, radix] | 文字列を整数にする("0x" で始まれば 16 進。読めなければ NaN) | parseInt("42") |
String | x | 文字列にする(整数は小数点なし。true / false / null も文字にする) | String(12) |
使えない旧グローバル関数 (29)
この表の関数は現在使えません。システムスクリプトの実行には使われていない旧い評価器にだけ登録されている関数で、呼んでも「知らない命令」として失敗し、何も起きません(値も返りません)。右の列の命令を使ってください。以前この一覧にあった ShowImage / HideImage / PlayMovie / StopMovie は Common の命令として今も使えるので、そちらへ移しました。
| 関数 | 元の役目 | 代わりに使う | 代わりの例 |
|---|---|---|---|
AddCounter | カウンタに足す | System.addVarInt | System.addVarInt("play_count", 1) |
AddFlowchartFlag | フローチャートの印に足す | System.addFlowchartFlag | System.addFlowchartFlag("ch02", 1) |
AddScenarioFlag | シナリオフラグに足す | シナリオの addvar(システムスクリプトからは読み書きできない) | addvar love 2 |
AddSystemFlag | システムフラグに足す | System.addSystemFlag | System.addSystemFlag("route_a", 1) |
CheckFlowchartFlag | フローチャートの印を比べる | System.checkFlowchartFlag(値のみ) | System.checkFlowchartFlag("ch02", ">=", 1) |
CheckScenarioFlag | シナリオフラグを比べる | シナリオの #if | #if "love >= 5" |
CheckSystemFlag | システムフラグを比べる | System.checkSystemFlag(値のみ) | System.checkSystemFlag("route_a", ">=", 2) |
ClearAllClearFlags | クリアフラグを全部消す | System.clearAllClearFlags | System.clearAllClearFlags() |
GetClearFlag | クリアフラグを読む | System.getClearFlag(値のみ) | System.getClearFlag("game_cleared") |
GetCounter | カウンタを読む | System.getVarInt | System.getVarInt("play_count") |
GetFlag | フラグを読む | System.getVarInt | System.getVarInt("opened") |
GetFlowchartFlag | フローチャートの印を読む | System.getFlowchartFlag(値のみ) | System.getFlowchartFlag("ch02") |
GetScenarioFlag | シナリオフラグを読む | シナリオ変数(setvar の値。システムスクリプトからは読めない) | #if "love >= 5" |
GetSystemFlag | システムフラグを読む | System.getSystemFlag(値のみ) | System.getSystemFlag("route_a") |
IsMoviePlaying | 動画が再生中か | Movie.isPlaying | Movie.isPlaying() |
PlayBGM | BGM を鳴らす | Sound.playBgm / bgm_play | Sound.playBgm("title") |
PlaySE | SE を鳴らす | Sound.playSe / se_play | Sound.playSe("click") |
PlayVoice | ボイスを鳴らす | Sound.playVoice | Sound.playVoice("vo01_0001") |
print | ログへ出す | Debug.log / console.log | console.log("value=" + v) |
random | 乱数 | Math.random | Math.random(1, 6) |
SetClearFlag | クリアフラグを立てる | System.setClearFlag | System.setClearFlag("game_cleared", 1) |
SetCounter | カウンタを入れる | System.setVarInt | System.setVarInt("play_count", 0) |
SetFlag | フラグを入れる | System.setVarInt | System.setVarInt("opened", 1) |
SetFlowchartFlag | フローチャートの印を入れる | System.setFlowchartFlag | System.setFlowchartFlag("ch02", 1) |
SetScenarioFlag | シナリオフラグを入れる | シナリオの setvar | setvar love 5 |
SetSystemFlag | システムフラグを入れる | System.setSystemFlag | System.setSystemFlag("route_a", 1) |
SetWindowSize | 窓の大きさ | Window.setSize | Window.setSize(1280, 720) |
SetWindowTitle | 窓のタイトル | Window.setTitle | Window.setTitle("My Game") |
StopBGM | BGM を止める | Sound.stopBgm / bgm_stop | Sound.stopBgm() |