コンテンツにスキップ

System

System クラスは 吉里吉里本体や、吉里吉里が実行されている環境に関する情報を取得したり、設定したりするためのクラスです。このクラスからオブジェクトを作成することはできません。

メンバー一覧

プロパティ

メソッド


versionString

プロパティ \ アクセス: r

解説

バージョン文字列

吉里吉里本体のバージョン文字列を得ることができます。

バージョン文字列は以下のような形式です。

1.0.0.1


versionInformation

プロパティ \ アクセス: r

解説

バージョン情報文字列

吉里吉里本体のバージョン情報文字列を得ることができます。

バージョン情報文字列は System.versionString よりも長い形式で、

以下のようになります。

吉里吉里[きりきり] Z 実行コア/1.0.0.0 (Compiled on Dec 16 2013 23:15:27) TJS2/2.4.28 Copyright (C) 1997-2013 W.Dee and contributors All rights reserved.


eventDisabled

プロパティ \ アクセス: r/w

解説

イベント配信が停止されているかどうか

吉里吉里のイベント配信が停止されている場合に true になります。値を設定することもで きます。

イベント配信が停止されると、吉里吉里上のイベントは発生しなくなるか、発生が延期されま す ( イベントの種類によって挙動は異なります )。


graphicCacheLimit

プロパティ \ アクセス: r/w

解説

画像キャッシュ制限

吉里吉里の画像キャッシュ制限をバイト単位で表します。値を設定することもできます。

**gcsAuto** を指定すると、マシンに搭載されているメモリ量に応じて自動的に 値が設定されます。

ルール画像や領域画像は、幅×高さ で表されるバイト数を消費します。それ以外の画像は 幅×高さ×4 で表されるバイト数を消費します。


platformName

プロパティ \ アクセス: r

解説

プラットフォーム名

吉里吉里が動作しているプラットフォーム名を表します。Windows の場合は OS が 32bit 版の時 'Win32' 、64bit 版の時 'Win64' となります。

1.3.0 以前の場合は、常に 'Win32' となります。


osName

プロパティ \ アクセス: r

解説

OS 名

吉里吉里が動作している OS の名前を表します。


exePath

プロパティ \ アクセス: r

解説

吉里吉里本体のあるフォルダのパス

吉里吉里本体が設置してあるパスを表します。パス名は統一ストレージ名で表現されます。

関連: System.appDataPath / System.personalPath


resourcePath

プロパティ \ アクセス: r

解説

エンジン組み込みリソースのあるパス

config.cf / messages.json / 同梱フォント (notosansjp-regular.otf 等) といった エンジン組み込みリソースが置かれている場所を、末尾に / の付いた統一ストレージ名で 返します。

実体はプラットフォームで異なります。

プラットフォーム 実体
WINVER / デスクトップ SDL3 resource://./ exe 埋め込み / OS リソース
ブラウザ (wasm) file://./resource/ 起動時に MEMFS へ preload

ブラウザビルドには resource:// メディア自体が存在しないため、resource://... を 直書きしたスクリプトは Storages.isExistentStorage の 時点で「対応していないメディアタイプです」例外になります。同梱フォントなどを参照する ときは必ずこのプロパティを前置してください。

// 同梱の日本語フォントを参照する
var path = System.resourcePath + "notosansjp-regular.otf";

関連: System.exePath


replWebURL

プロパティ \ アクセス: r

解説

ブラウザ REPL ビューワーの URL

-replweb で開いているブラウザ REPL ビューワーの URL を表します。未起動なら空文字列です。


personalPath

プロパティ \ アクセス: r

解説

マイドキュメントのパス

ユーザのマイドキュメントのパスを表します。Windows の場合、レジストリの HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\Shell Folders の Personal で表されるフォルダが返されます。通常これは「マイドキュメント」フォルダを指します。

このフォルダがない場合は System.exePath と同じフォルダを返します。

関連: System.appDataPath / System.exePath


appDataPath

プロパティ \ アクセス: r

解説

ユーザのホームディレクトリのパス

ユーザのホームディレクトリのパスを表します。Windows の場合、レジストリの HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\Shell Folders の AppData で表されるフォルダが返されます。このフォルダがない場合は System.exePath と同じ フォルダを返します。

これは、通常、以下の通りになります。

XP の場合 C:\Documents and Settings\<ユーザ名>\Application Data\ ( C: の部分は環境によって異なります ) Vista, 7, 8 の場合 C:\Users\<ユーザ名>\AppData\Roaming ( C: の部分は環境によって異なります ) 何らかの理由で レジストリキー ( 上記参照 ) を読み出せなかった場合 吉里吉里の実行可能ファイルのあるフォルダ (System.exePath)になります

Windows ネイティブ ( WINVER ) ビルド限定

このプロパティは SDL3 / 汎用ビルドには存在しません。全ビルドで動く スクリプトでは typeof System.appDataPath で存在を確認するか、 保存先には System.dataPath を使用してください。

関連: System.dataPath / System.exePath / System.personalPath


dataPath

プロパティ \ アクセス: r

解説

データ保存場所のパス

コマンドラインオプションの -datapath で指定したディレクトリを表します。

標準では、ログなどがすべてここに出力されます。

ユーザスクリプトがデータを保存する場合は、ここに保存することを推奨します。

全ビルドに存在するため、保存先の取得はこのプロパティを使うのが安全です ( System.appDataPath / System.personalPath は Windows ネイティブ ビルド限定 )。

関連: System.appDataPath


exeName

プロパティ \ アクセス: r

解説

吉里吉里本体のパス

吉里吉里本体へのパス名を表します。パス名は統一ストレージ名で表現されます。


title

プロパティ \ アクセス: r/w

解説

タイトル

メインウィンドウのタイトルを文字列で表します。値を設定することもできます。

関連: Window.caption


screenWidth

プロパティ \ アクセス: r

解説

画面幅

画面サイズ ( 画面解像度 ) の横サイズをピクセル単位で表します。

値はメインウィンドウのあるディスプレイを対象としたものです。

メインウィンドウがない場合はプライマリーディスプレイが対象となります ( -display で起動ディスプレイを指定している場合は、 メインウィンドウができるまでの間はそのディスプレイが対象となります )。

関連: System.screenHeight / System.desktopLeft / System.desktopTop / System.desktopWidth / System.desktopHeight


screenHeight

プロパティ \ アクセス: r

解説

画面高さ

画面サイズ ( 画面解像度 ) の縦サイズをピクセル単位で表します。

値はメインウィンドウのあるディスプレイを対象としたものです。

メインウィンドウがない場合はプライマリーディスプレイが対象となります ( -display で起動ディスプレイを指定している場合は、 メインウィンドウができるまでの間はそのディスプレイが対象となります )。

関連: System.screenWidth / System.desktopLeft / System.desktopTop / System.desktopWidth / System.desktopHeight


desktopLeft

プロパティ \ アクセス: r

解説

デスクトップ左端位置

デスクトップ ( ウィンドウを表示可能な領域 ) の左端位置をピクセル単位で表します。

Windows ネイティブ ( WINVER ) ビルド限定

desktopLeft / desktopTop / desktopWidth / desktopHeight は SDL3 / 汎用ビルドには存在しません。画面解像度だけであれば全ビルドに ある System.screenWidth / System.screenHeight を使用してください。

値はメインウィンドウのあるディスプレイを対象としたものです。

メインウィンドウがない場合はプライマリーディスプレイが対象となります ( -display で起動ディスプレイを指定している場合は、 メインウィンドウができるまでの間はそのディスプレイが対象となります )。

関連: System.screenWidth / System.screenHeight / System.desktopTop / System.desktopWidth / System.desktopHeight


desktopTop

プロパティ \ アクセス: r

解説

デスクトップ上端位置

デスクトップ ( ウィンドウを表示可能な領域 ) の上端位置をピクセル単位で表します。

値はメインウィンドウのあるディスプレイを対象としたものです。

メインウィンドウがない場合はプライマリーディスプレイが対象となります ( -display で起動ディスプレイを指定している場合は、 メインウィンドウができるまでの間はそのディスプレイが対象となります )。

関連: System.screenWidth / System.screenHeight / System.desktopLeft / System.desktopWidth / System.desktopHeight


desktopWidth

プロパティ \ アクセス: r

解説

デスクトップ幅

デスクトップ ( ウィンドウを表示可能な領域 ) の幅をピクセル単位で表します。

値はメインウィンドウのあるディスプレイを対象としたものです。

メインウィンドウがない場合はプライマリーディスプレイが対象となります ( -display で起動ディスプレイを指定している場合は、 メインウィンドウができるまでの間はそのディスプレイが対象となります )。

関連: System.screenWidth / System.screenHeight / System.desktopLeft / System.desktopTop / System.desktopHeight


desktopHeight

プロパティ \ アクセス: r

解説

デスクトップ高さ

デスクトップ ( ウィンドウを表示可能な領域 ) の高さをピクセル単位で表します。

値はメインウィンドウのあるディスプレイを対象としたものです。

メインウィンドウがない場合はプライマリーディスプレイが対象となります ( -display で起動ディスプレイを指定している場合は、 メインウィンドウができるまでの間はそのディスプレイが対象となります )。

関連: System.screenWidth / System.screenHeight / System.desktopLeft / System.desktopTop / System.desktopWidth


exitOnWindowClose

プロパティ \ アクセス: r/w

解説

メインウィンドウが閉じたときに終了するかどうか

メインウィンドウ(一番最初に作成したWindowクラスのインスタンス)が閉じたときに終了するかどうかを表します。値を設定することもできます。デフォルトは真です。

メインウィンドウが閉じ、ほかのデバッグ関連ウィンドウも表示していない場合は吉里吉里は終了すること無くシステムに残り、制御不能に陥る可能性がありますので注意してください(タスクマネージャからプロセスを終了させるしか無くなる可能性があります)。


exceptionHandler

プロパティ \ アクセス: r/w

解説

捕捉されなかった例外のためのハンドラ関数

捕捉されなかった例外 (どこにも捕捉されずに吉里吉里本体に渡された例外) を処理する関数を表します。

null を指定すると、デフォルトの動作になります。

デフォルトの動作とは、

  • 非同期イベントの配信を停止する (System.eventDisabled を 真 に設定)
  • ログをファイルに出力開始する (Debug.logAsError を呼ぶ)
  • エラーを通知するダイアログボックスを表示し、スクリプトエディタでその箇所を示す

です。

ハンドラ関数は引数を一つ取り、それが例外オブジェクトになります。

ハンドラ関数が指定されないか、あるいはハンドラ関数が null であるか、あるいはハンドラ関数が偽を返すと、デフォルトの動作が行われます。

ハンドラ関数が真を返すと上記のデフォルトの動作は行われません。

ハンドラ関数を実行中に非同期イベントが発生する可能性を考慮してください。吉里吉里本体が非同期イベントを処理できてしまうと、例外ハンドラを実行中に再び予期せぬ例外が発生する可能性があります。これを避けるため、通常、ハンドラ関数内でなにかを待つような処理をする場合 (吉里吉里が非同期イベントを処理する機会がある場合 )、非同期イベントの発生を停止させます。

System.exceptionHandler = function (e)

{

// どこにも捕捉されない例外がシステム側で捕捉された場合、この関数が

// 呼ばれる。e は例外オブジェクト。

if(e instanceof "ConductorException")

{

// コンダクタの投げた例外の場合

Debug.logAsError(); // ログのファイルへの書き出し動作の開始など

var event_disabled = System.eventDisabled;

System.eventDisabled = true;

// エラーの理由を表示させている間にイベントが発生すると

// やっかいなのでいったんイベント発生を停止させる

System.inform(e.message);

System.eventDisabled = event_disabled;

// イベントを発生するかどうかを元の状態に

return true; // true を返すと本体側で例外の処理は行わなくなる

}

else

{

return false; // false を返すと通常の例外処理

}

};

関連: System.eventDisabled / Debug.logAsError


onActivate

プロパティ \ アクセス: r/w

解説

アプリケーションがアクティブになったとき

アプリケーションがアクティブになったときに呼び出されるイベント関数を表します。

null を指定すると関数は呼び出されません。

通常のイベントハンドラと異なり、このイベントを受け取りたい場合は、呼び出したい関数をこのプロパティに設定してください。

Window.onActivate は、同じアプリケーション内のそれぞれのウィンドウがアクティブになったときに発生しますが、このイベントは、メインウィンドウがアクティブになった場合に発生します。

このイベントは、メインウィンドウが既にアクティブの場合にも発生する可能性があるので注意してください (完全に onActivate → onDeactivate → onActivate → …… の順に発生する保証がない )。

関連: System.onDeactivate / Window.onActivate / Window.onDeactivate


onDeactivate

プロパティ \ アクセス: r/w

解説

アプリケーションが非アクティブになったとき

アプリケーションが非アクティブになったときに呼び出されるイベント関数を表します。

null を指定すると関数は呼び出されません。

通常のイベントハンドラと異なり、このイベントを受け取りたい場合は、呼び出したい関数をこのプロパティに設定してください。

Window.onDeactivate は、同じアプリケーション内のそれぞれのウィンドウが非アクティブになったときに発生しますが、このイベントは、メインウィンドウが非アクティブになった場合に発生します。

このイベントは、メインウィンドウが既に非アクティブの場合にも発生する可能性があるので注意してください (完全に onActivate → onDeactivate → onActivate → …… の順に発生する保証がない )。

関連: System.onActivate / Window.onActivate / Window.onDeactivate


onJoypadChange

プロパティ \ アクセス: r/w

解説

ジョイパッド構成変更時に呼び出されるイベント

ジョイパッドの接続・切断などで構成が変化したときに呼び出されるイベント関数を表します。

null を指定すると関数は呼び出されません。

通常のイベントハンドラと異なり、このイベントを受け取りたい場合は、呼び出したい関数をこのプロパティに設定してください。


drawThreadNum

プロパティ \ アクセス: r/w

解説

描画に使用するスレッドの数

吉里吉里のレイヤシステムが描画時に使用するスレッド数を表します。値を設定することもできます。

**dtnAuto** を指定すると、OSの認識するプロセッサ数と同数のスレッドが自動的に割り当てられます。

描画スレッドを複数設定することで、マルチコア環境での描画パフォーマンスを向上させられる可能性がありますが、逆にパフォーマンスが低下する場合もあります。

描画面積が大きい処理、Affine系の高負荷な処理、演算の重いレイヤ合成処理などに適用することで、良好な結果を得られる可能性があります。

マルチスレッドを使用するように設定しても、描画処理の負荷が軽くマルチスレッド化の効果が得られないとシステムが判断した場合は、マルチスレッドで実行されない場合があります。


savedGamesPath

プロパティ \ アクセス: r

解説

保存したゲームのパス(1.1.0以降)

保存したゲームのパスを表します。

これは、通常、以下の通りになります。

C:\Users\<ユーザ名>\Saved Games


exeBits

プロパティ \ アクセス: r

解説

吉里吉里本体が 32bit 版か 64bit 版か(1.3.0以降)

実行バイナリが 32bit 版か 64bit 版かを整数の 32 か 64 で表します。

関連: System.osBits / System.platformName


osBits

プロパティ \ アクセス: r

解説

OS が 32bit 版か 64bit 版か(1.3.0以降)

OS が 32bit 版か 64bit 版かを整数の 32 か 64 で表します。

関連: System.exeBits / System.platformName


exitOnNoWindowStartup

プロパティ \ アクセス: r/w

: Boolean

解説

ウィンドウ無し起動時の自動終了

真の場合、ウィンドウを 1 つも作成せずに起動が完了したときにエンジンを 自動的に終了させます。デバッグ用途やバッチ処理時の制御に用います。


isGeneric

プロパティ \ アクセス: r/w

: Boolean

解説

汎用ビルドかどうかの判定

SDL3 ベースのクロスプラットフォームビルド ( generic / SDL ) では真、 Win32 ネイティブビルド ( WINVER ) では偽が返ります。 読み出し専用。

関連: System.isWindows


isWindows

プロパティ \ アクセス: r/w

解説

システムがWindowsかどうか判定[r]


licenseText

プロパティ \ アクセス: r/w

: String

解説

ライセンス文字列

吉里吉里Z 本体に組み込まれたライセンス表示用の文字列を返します。 「吉里吉里設定」ダイアログ等で表示するために使用します。 本体条項に続けて、同梱コンポーネントのライセンス一覧 ( getLicenseList と同じ内容 ) が付きます。個々の全文が要るときは getLicenseText を使ってください。 読み出し専用。


openGLESVersion

プロパティ \ アクセス: r/w

解説

OpenGL ES のバージョン

実際の値を100倍した数、つまり2.0なら200、3.0なら300が返ります。


processorNum

プロパティ \ アクセス: r/w

: Integer

解説

論理プロセッサ数

OS から認識されている論理プロセッサ数を返します。 描画スレッド数の自動決定などに利用されます。読み出し専用。


renderStats

プロパティ \ アクセス: r/w

: Dictionary

解説

画面転送コストの計測値

合成済みの画面バッファを GPU テクスチャへ転送するのにかかった時間を 返します。読み出し専用。返る辞書のキーは次の通りです。

キー 意味
texUploadUs 転送呼び出しの累計時間 (マイクロ秒)
texUploads 転送回数 (ダーティ矩形単位)
texUploadBytes 転送した累計バイト数
frames 合成フレームを描いた回数 (転送の有無に依らず)

すべて累積値なので、2 回読んで差分を取り、経過実時間との比で 「1 秒あたり転送に何ミリ秒使ったか」を見ます。 System.renderStatsReset() で 0 に戻せます。

画面に変化が無いフレームでは転送そのものを行わないため、静止中は texUploads が増えません ( frames は増えます )。逆に静止しているのに texUploadBytes が毎フレーム画面サイズぶん増えていく場合は、どこかが 全面更新を出しています。

転送はドライバの都合でブロックすることがあり (転送先テクスチャを GPU がまだ参照している場合など)、その待ちもこの時間に含まれます。 描画デバイスによって転送方法が違う (OpenGL = glTexSubImage2D / SDLDrawDevice = SDL_UpdateTexture / Windows ネイティブ = UpdateSubresource) ので、実機で詰まっていないかの一次指標として使います。

ビルドオプションは不要で常に計測されます (1 フレームに数回の カウンタ加算のみ)。オーバーレイダイアログ側の内訳は ElementsDialog.renderStats を参照してください。

数値の読み方

転送率 ( 転送時間 / 経過実時間 ) が高くても fps が出ていれば、 待ちの大半は vsync 同期ぶんです ( ドライバが転送呼び出しの中で 次フレームを待つ )。本当に転送が足を引っ張っている場合は fps が 落ちます。この判定基準や経路ごとの違い、計測の進め方は コアデモ perf_stats と、エンジン付属文書 src/core/doc/ScreenTransfer.md にまとめてあります。

関連: System.renderStatsReset


texUploadUsePBO

プロパティ \ アクセス: r/w

: Boolean

解説

テクスチャ転送に PBO を使うかの強制指定

画面バッファを GPU テクスチャへ転送する経路を、計測・比較のために 強制します。設定できる値は次の通りです。

意味
void (既定) 用途ごとの既定に従う (本画面 = 転送サイズで自動判定 / オーバーレイ = 直接転送)
true 常に PBO 経由で転送する
false 常に glTexSubImage2D で直接転送する

既定では転送バイト数が 256KB 以上なら PBO、それ未満なら直接転送を 選びます。小さい矩形を多数更新する画面では PBO の固定コストが効いて 不利になるためです。また ANGLE 実装 (Windows の GLES → D3D11 エミュレーション) ではサイズによらず常に直接転送になります。

A/B 比較には System.renderStatsReset()System.renderStats を 併用します。環境変数 KRKRZ_GLTEXUP=pbo|direct でも同じ指定が できますが、環境変数を渡せない環境ではこちらを使います。

OpenGL 描画を有効にしたビルドでのみ存在します (既定で有効)。

関連: System.renderStats


touchDevice

プロパティ \ アクセス: r/w

: Boolean

解説

タッチデバイスの利用可否

実行環境にタッチ入力デバイスが存在する場合に真を返します。 読み出し専用。


platformTag

プロパティ \ アクセス: r/w

: String

解説

プラットフォームタグ

実行中のプラットフォームを表す短い識別子です ( "windows" / "android" / "macos" / "linux" / "web" など )。読み出し専用。

System.platformName は OS から得た生の文字列で 空白や表記ゆれを含むため、ファイル名や条件分岐には使いにくいのに対し、 こちらは小文字・空白無しに正規化されているので、そのまま機種分岐に使えます。

複数のタグが該当する環境 ( 世代違いのコンソールなど ) では、最も具体的なものが 返ります。

機種別のエンジン設定 config_<tag>.cf

リソース内の設定ファイルは、共通の config.cf に加えて config_<タグ>.cf を置くと機種別に上書きできます。 読み込みは「具体的なタグ → 一般的なタグ → 共通 config.cf」の順で、 先に読まれたものが優先されます。存在しないファイルは単に読み飛ばされます。

関連: System.platformName / System.osName


systemLanguage

プロパティ \ アクセス: r/w

: String

解説

本体の表示言語

OS ( 家庭用ゲーム機ならハード ) に設定されている表示言語を BCP-47 の言語タグで返します。 読み出し専用。"ja-JP" / "en-US" / "zh-Hant" / "zh-Hans" のような 値になります。

ゲームの既定言語をハードの設定に合わせるための口です。言語の選択と 保存はゲーム側の責務で、このプロパティは「本体が何語設定か」だけを返します。 地域まで要らない場合は - より前を見てください。

var lang = System.systemLanguage;
var code = lang.indexOf("-") >= 0 ? lang.substring(0, lang.indexOf("-")) : lang;
if(code == "") code = "ja";   // 取得できない環境はゲーム既定へ

取得できない環境では空文字列

言語を取得する手段が無い環境では空文字列を返します。 呼び出し側でゲームの既定言語へフォールバックしてください。

取得元は環境ごとに異なります ( Windows ネイティブ版 = GetUserDefaultLocaleName / SDL3 版 = SDL_GetPreferredLocales の先頭。 家庭用ゲーム機は各ハードの API )。SDL3 版では地域が取れない場合、 "ja" のように言語のみが返ります。

エンジン自身のメッセージ ( エラー文言等 ) とオプション解説の言語選択 ( ja / en / chs / cht ) もこの値に追従します。起動オプション -language で 明示指定して上書きできます ( コマンドラインオプション )。

関連: System.platformTag


padButtonMapping

プロパティ \ アクセス: r/w

: String

解説

パッドのボタン割り当て方式

ゲームパッドの物理ボタンを VK_PAD1VK_PAD4 へどう割り当てるかを表す 文字列です。値を設定することもできます。

  • "label" ( 既定 ) … ボタンの刻印で割り当てます。VK_PAD1 = 刻印 A ( PlayStation では ✕ )、VK_PAD2 = B ( ○ )、VK_PAD3 = X ( □ )、 VK_PAD4 = Y ( △ )。任天堂系のように A/B・X/Y の位置が入れ替わっている コントローラでも、画面表示と実際に押すボタンが一致します。
  • "position" … 従来どおり位置で割り当てます ( 下 = VK_PAD1、 右 = VK_PAD2、左 = VK_PAD3、上 = VK_PAD4 )。

刻印が判定できないコントローラでは自動的に位置基準へフォールバックします。 PlayStation / Xbox 系はどちらの方式でも結果が同じです。

起動オプション -padbuttons=label|position ( config.cf でも可 ) でも 指定できます。"label" / "position" 以外を代入すると例外になります。

SDL3 / 汎用ビルド限定

このプロパティは SDL3 / 汎用ビルドにのみ存在します。Windows ネイティブ ( WINVER ) ビルドのパッド入力は XInput ベースで、ボタンの刻印が Xbox 系に固定されているため位置と刻印が食い違いません。

関連: System.getJoypadType


padStyle

プロパティ \ アクセス: r/w

: String

解説

接続パッドのボタン表記の系統 ( 読み取り専用 )

「最後に操作したパッド」のボタン表記の系統を表す文字列です。 "xbox" / "ps" / "switch" のいずれかで、判定できない場合は 空文字列になります。

画面に表示するボタン絵 ( 操作ガイドなど ) をどの系統にするかの判断に 使えます。ElementsDialog.setPadTheme"auto" を 指定した場合の自動選択も、このプロパティと同じ判定を参照します。

関連: System.padButtonMapping / System.getJoypadType


buildVariantName

プロパティ \ アクセス: r

: String

解説

ビルドバリアント名

実行中のエンジンビルドのバリアント名を返します。

  • WIN ... Win32 ネイティブビルド ( WINVER )
  • SDL ... SDL3 ベースの汎用ビルド ( generic / SDL )
  • LIB ... 静的ライブラリ形式 ( libkrkrz )

読み出し専用。System.isGeneric よりも具体的なバリアント識別が必要な 場合に使います。

関連: System.isGeneric / System.platformName


padAxisLeftX

プロパティ \ アクセス: r

: Integer

解説

パッド軸 ID: 左スティック X 軸

System.getPadAxis の axisId 引数に指定する定数。 読み出し専用。


padAxisLeftY

プロパティ \ アクセス: r

: Integer

解説

パッド軸 ID: 左スティック Y 軸


padAxisRightX

プロパティ \ アクセス: r

: Integer

解説

パッド軸 ID: 右スティック X 軸


padAxisRightY

プロパティ \ アクセス: r

: Integer

解説

パッド軸 ID: 右スティック Y 軸


padAxisLeftTrigger

プロパティ \ アクセス: r

: Integer

解説

パッド軸 ID: L トリガ


padAxisRightTrigger

プロパティ \ アクセス: r

: Integer

解説

パッド軸 ID: R トリガ


padEnabled

プロパティ \ アクセス: r/w

: Boolean ( 真 = 有効 / 偽 = 無効。既定は有効 )

解説

ゲームパッド機能の有効/無効

偽を代入するとゲームパッド機能を完全に無効化します ( 状態取得・キーイベント 生成をいずれも行わなくなります )。真で再度有効化します。実行時にいつでも 切り替えられます。

他のデバイスが誤ってゲームパッドとして認識され誤動作するようなケースへの 対処 ( 設定画面での無効化オプションなど ) に利用できます。コマンドライン オプション -joypad=no でも起動時から無効化できますが、このプロパティで 明示的に設定した場合はそちらが優先されます。


terminate

メソッド

引数

引数 既定値 説明
code 0 プロセスの終了コードを指定します

解説

吉里吉里の非同期終了

吉里吉里を終了させます。

このメソッドを呼び出してもすぐには吉里吉里は終了しません。

すべてのイベントハンドラから吉里吉里に制御が戻った際に終了します。


exit

メソッド

引数

引数 既定値 説明
code 0 プロセスの終了コードを指定します

解説

吉里吉里の同期終了

吉里吉里を終了させます。

このメソッドは System.terminate と異なり、呼び出した時点で終了します。そのため、 このメソッドは戻ることはありません。


addContinuousHandler

メソッド

引数

引数 既定値 説明
callback &nbsp; ハンドラとなる関数を指定します。

解説

Continuous ハンドラの追加

Continuous ハンドラを登録します。

Continuous ハンドラは、「できる限り頻繁に」呼び出されるイベントハンドラです。

他にする処理がない場合、吉里吉里は Continuous ハンドラを呼び出し続けます。 他にイベントなどが起きた場合はそちらが優先されます。

ただし、コマンドラインオプションの -contfreq で呼び出しの頻度が指定されている 場合はそれに従います。


removeContinuousHandler

メソッド

引数

引数 既定値 説明
callback &nbsp; ハンド関数を指定します。

解説

Continuous ハンドラの削除

Continuous ハンドラを削除します。


inform

メソッド

引数

引数 既定値 説明
text &nbsp; 表示するメッセージを指定します。
caption "" ウィンドウのキャプションとなる文字列を指定します。

解説

メッセージの表示

ユーザにメッセージを示すためのウィンドウを表示します。

ウィンドウはモーダルで表示されます ( つまり、表示中は他のウィンドウは操作できない )。


confirm

メソッド

引数

引数 既定値 説明
text &nbsp; 表示するメッセージを指定します。
caption "" ウィンドウのキャプションとなる文字列を指定します。
window void 親にするウィンドウを指定します ( 省略可 )。WINVER ビルドでのみ
親指定が反映されます。

戻り値

ユーザが「はい」を選んだ場合は真、「いいえ」またはダイアログを閉じた 場合は偽が返ります。

解説

確認メッセージの表示 ( Yes / No )

ユーザに「はい / いいえ」を問うためのモーダルウィンドウを表示します ( System.inform の Yes/No 版 )。表示中は他のウィンドウは 操作できません。 REPL / ヘッダレス駆動中はブロッキングダイアログを表示せず、 内容をログへ出力して既定応答 ( 真 ) を返します。


inputString

メソッド

引数

引数 既定値 説明
caption &nbsp; ダイアログのタイトルを指定します。
prompt "" 入力を促す説明文を指定します ( 省略時は caption を使用 )。
default "" 入力欄の初期値を指定します ( 省略可 )。

戻り値

ユーザが入力した文字列が返ります。キャンセルした場合は void が返ります。

解説

文字列の入力

ユーザに 1 行のテキストを入力させるモーダルダイアログを表示します ( 吉里吉里2 互換 )。 WINVER ビルドではネイティブの入力ダイアログを、SDL ビルドでは Elements ベースの入力ダイアログを表示します。プラットフォームによっては OS の ソフトウェアキーボード等に差し替えられる場合があります ( 未対応環境では void )。 REPL 駆動中はブロッキングダイアログを出さず、REPL の応答チャネル経由で 入力を受け取ります ( 応答口が無い場合は default を返します )。


getTickCount

メソッド

戻り値

ティックカウント(64bitの整数)が戻ります。

解説

ティックカウントの取得

ティックカウントは 1/1000 秒ごとにカウントアップする数値です。二つの時点でこのメソッドを 用いてティックカウントを取得し、その差をとれば、二つの時点の時間差を知ることができます。


getKeyState

メソッド

引数

引数 既定値 説明
code &nbsp; 状態を取得する仮想キーコード を指定します。

戻り値

キーが押されていれば真、押されていなければ偽になります。

解説

キー状態の取得

code で指定したキーコードに対応するキーが、このメソッドを呼んだ時点で押されているかどうかを 取得します。


registerHotKey

メソッド

引数

引数 既定値 説明
key &nbsp; 仮想キーコード ( VK_RETURN / VK_ESCAPE / VK_F1 等 )。
mods &nbsp; ssShift / ssAlt / ssCtrl の組み合わせ。照合はこの 3 ビットのみで、
NumLock / CapsLock 等の状態は無視します。
callback &nbsp; 押下時に呼ばれる関数。callback(key, shift) の形で呼ばれ、
false ( または 0 ) を返すと消費せず通常の dispatch へ流します
( void を含むそれ以外の戻り値は消費 )。

解説

最上位ホットキーの登録

イベントポンプの入口でキーを照合し、フォーカス中のレイヤ / テキスト入力 / ElementsDialog ( モーダル含む ) より先に callback を同期呼び出しします。 Alt+Enter のフルスクリーン切替や Esc の終了確認のように「画面が何であっても 効いてほしい」キーを 1 箇所で扱うための仕組みです。

同一の key + mods への再登録は差し替えになります。登録テーブルはプロセス共有で ( Window 単位ではありません )、エンジン終了時に解放されます。

// Esc は終了確認。ただしモーダルダイアログ表示中は素通しする
System.registerHotKey(VK_ESCAPE, 0, function(key, shift) {
if(ElementsDialog.modalActive) return false;   // 消費せず通常の dispatch へ
askQuit();
return true;
});

押しっぱなしのリピートではコールバックは再発火せず ( 消費だけされます )、 up は key のみで照合して対応する down を消費したキーは必ず消費します ( 修飾キーを先に離しても片割れが入力レイヤへ漏れません )。コールバックが 例外を投げてもポンプは壊れず、ログへ残して続行します。

プラットフォームによる差異

フックは SDL3 系ビルドのイベントポンプ入口のみに配線されています。WINVER ( Windows ネイティブ ) ビルドでは登録しても発火しません。

ダイアログにフォーカスを渡したまま特定のキーだけホスト側で受けたい場合は、 用途の違う ElementsDialog.registerHotKey ( ダイアログへ 渡さず通常のゲーム入力経路へ素通しする。モーダル中は無効 ) を使います。

関連: System.unregisterHotKey / ElementsDialog.modalActive


unregisterHotKey

メソッド

引数

引数 既定値 説明
key &nbsp; 登録時に指定した仮想キーコード。
mods &nbsp; 登録時に指定した修飾キーの組み合わせ。

戻り値

解除できたかどうか ( 登録が無ければ偽 )。

解説

最上位ホットキーの解除

registerHotKey で登録したホットキーを解除します。

関連: System.registerHotKey


shellExecute

メソッド

引数

引数 既定値 説明
target &nbsp; 実行するファイルやソフトウェアを指定します。
ファイルを指定された場合は、それに関連づけられたプログラムが起動します。
param "" 実行するソフトウェアに渡すパラメータを指定します。
target 引数にファイルを指定した場合はこの引数を省略するか、あるいは空文字列を
指定してください。
プラットフォームによる差異
Windows ネイティブ版では ShellExecute を、SDL 版では SDL_OpenURL を用いて
target を OS 既定のハンドラで開きます ( URL やファイルのオープンに対応 )。
SDL 版では param ( 引数 ) は無視されます ( 引数付きのプログラム実行には非対応 )。

戻り値

実行に成功すれば真、失敗すれば偽が返ります。

解説

ファイル/プログラムの実行

target で指定したファイルやソフトウェアを実行します。


readRegValue

メソッド

引数

引数 既定値 説明
key &nbsp; 読み込むレジストリキーを指定します。

戻り値

実行に成功すればレジストリの値、失敗すれば void が返ります。

解説

レジストリの読み込み

key で指定した Windows レジストリを読み込みます。

レジストリキーは、以下のルートキー名で始めることができます。

`HKEY_CLASSES_ROOT HKEY_CURRENT_CONFIG HKEY_CURRENT_USER

HKEY_LOCAL_MACHINE HKEY_USERS HKEY_PERFORMANCE_DATA

HKEY_DYN_DATA ` たとえば、以下のような文字列を key に指定することができます。

HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\hoeg\installdir

数値、単一文字列のみを読み込むことができます。数値の場合は整数型、文字列の場合は文字列型 の結果が返ります。


getArgument

メソッド

引数

引数 既定値 説明
name &nbsp; 取得するコマンドラインオプション名を指定します。最初に '-'
( ハイフン ) をつけてください ( 例 : '-nosplash' )。

戻り値

コマンドラインオプションが指定されていればその値、指定されていなければ void が返ります。

解説

コマンドラインオプションの取得

コマンドラインオプションは、

-name=value

または

-name

の形式で吉里吉里に渡されている必要があります。前者の場合は値として value が 返り、前者の場合は値として 'yes' が返ります。

関連: System.setArgument


setArgument

メソッド

引数

引数 既定値 説明
name &nbsp; 設定するコマンドラインオプション名を指定します。最初に '-'
( ハイフン ) をつけてください ( 例 : '-contfreq' )。
value &nbsp; 設定する値を指定します。 ( 例 : '60' )。

解説

コマンドラインオプションの設定

動的にコマンドラインオプションを設定します。すべてのコマンドラインオプションが設定可能な訳ではありません。

設定可能なコマンドラインオプションについては コマンドラインオプション を参照してください。ここで動的に変更可能という表記のないオプションについては変更を行わないでください。

このメソッドは、そのオプションが動的に変更可能かどうかやオプションの存在、値の有効性などをチェックしません。値の設定には十分気をつけてください。

関連: System.getArgument


toActualColor

メソッド

引数

引数 既定値 説明
color &nbsp; 色定数を指定します ( 色定数 を参照 )。
通常の 0xRRGGBB 形式の色を指定した場合はそのままの値が返ります。

戻り値

指定された色定数が表す実際の色が 0xRRGGBB 形式で返ります。

解説

色定数の実際の色の取得

色定数を実際の色に変換し、0xRRGGBB 形式で返します。


createAppLock

メソッド

引数

引数 既定値 説明
key &nbsp; チェックを行うためのキー文字列を指定します。同じキー文字列をほかの
実行中の吉里吉里がこのメソッドに指定していた場合、false が戻ります。
キー文字列には基本的には TJS の変数の命名規則と同じ文字のみが使えると
考えてください。
キー文字列は十分にユニークな物である必要があります。

戻り値

すでに同じキー文字列が指定された吉里吉里が実行中の場合は false、そうでなければ true が戻ります。

解説

二重起動のチェック

他に同じキー文字列を指定された吉里吉里が実行中ならば false、そうでなければ true が戻ります。

二重起動の防止に用います。


createUUID

メソッド

戻り値

生成された UUID 文字列が "e8b2a2b5-5ceb-4f75-a08b-1f1bdfdca4f1" の形式 (ハイフンを除く各英数字は16進数の数字) で戻ります。

解説

UUID 文字列の生成

UUID 文字列を生成して返します。このメソッドはランダムビット列を元に生成された 128bitの UUID (universal unique identifier) を生成します。

吉里吉里に実装されている UUID 生成アルゴリズムは、 ある程度、環境ノイズを拾ってランダムビット列を生成しますが、 高度なセキュリティが要求されるような用途に使用することはおすすめしません。しかし、 他の UUID とは「非常に非常に高い確率で重ならない」と考えられます。


assignMessage

メソッド

引数

引数 既定値 説明
id &nbsp; 割り当てるメッセージ ID を指定します。
msg &nbsp; id で指定された ID に割り当てるメッセージを指定します。

戻り値

ID が存在し、メッセージの割り当てが成功すれば真、そうでなければ偽が戻ります。

解説

メッセージ割り当ての変更

メッセージ割り当てを変更します。

吉里吉里が内蔵しているメッセージをこのメソッドで別のメッセージに変更することができます。

通常、メッセージマップファイル内に記述します ( 起動 参照 )。

設定可能な ID と、それに現在割り当てられているメッセージの一覧を取得するには Controller から 「メッセージマップファイルの作成」を実行してください。


doCompact

メソッド

引数

引数 既定値 説明
level clAll レベルを指定します。
clIdle を指定すると、システムがアイドル状態 (システムが比較的動作をしていない状態) に実行されるコンパクト化と同じ処理が行われます。現バージョンでは TJS2 のガベージコレクションが行われます。
clDeactivate を指定すると、吉里吉里が非アクティブになったとき (他のアプリケーションがアクティブになったとき) に実行されるコンパクト化と同じ処理が行われます。現バージョンではレイヤの演算用の一時画像バッファ、レイヤキャッシュ、XP3 アーカイブのセグメント(ストレージの断片) キャッシュ、自動検索パスのキャッシュがクリアされます。
clMinimize を指定すると、吉里吉里が最小化されたときに実行されるコンパクト化と同じ処理が行われます。現バージョンでは、描画文字のキャッシュ、画像キャッシュがクリアされます。
clAll を指定すると、上記のコンパクト化の全てが実行されます。
コンパクト化のレベルは、clIdle < clDeactivate < clMinimize < clAll の順に強くなります。より上位のレベルを指定すると、下位のレベルで行われるコンパクト化も行われます。たとえば、clDeactivate を実行すると、clIdle での処理も実行されます。
引数を省略すると clAll が指定された物と見なされます。

解説

メモリのコンパクト化

メモリのコンパクト化を行います。コンパクト化とは、使用していないメモリや各種キャッシュ用メモリを解放して、メモリ使用量を減らす処理です。

吉里吉里は自動でこれを行うので通常はあまり気にする必要はありませんが、強制的にプログラム側の処理で行いたい場合にこのメソッドを使用することができます。


touchImages

メソッド

引数

引数 既定値 説明
storages &nbsp; キャッシュに入れたい画像ストレージ名を配列(Arrayクラスのオブジェクト)で渡します。
先に書いた物ほど優先されます。
吉里吉里は、Layer.loadImages の第1引数に指定された
文字列をそのままキーにしてキャッシュを管理するため、
キャッシュを意味のある物にするには、
ここで指定する画像ストレージ名は Layer.loadImages の第1引数に指定するものと
同一である必要があります。
limitbytes 0 このメソッドの呼び出しで使用するキャッシュ容量の制限値をバイト単位で指定します。
0 を指定すると、キャッシュをすべて使用します。
正の数を指定すると、そのバイト数までキャッシュを使用しようとします。
負の数を指定すると、現在のキャッシュの
制限値 ( System.graphicCacheLimit ) からその数値が加算された数 ( ただし
「負の数」を加算するので実際は減算 ) が制限値として使用されます。その結果制限値が
0 または負になってしまった場合は、このメソッドは何もせずに終了します。たとえば、
-210241024 を指定すれば、現在のキャッシュ制限値から 2MB が引かれた数値が指定さ
れたとみなされます。これは、キャッシュの残り容量に余裕を残したい場合に便利です。
timeout 0 タイムアウト ( 時間制限 ) を ms 単位で指定します。0 を指定すると無制限と
なります。
このメソッドはこの引数で指定された時間が経過すると、以降の画像の読み込みを中止し、
戻ります。ただし、ある画像の読み込み中にタイムアウトになっても、その画像の読み
込みが終了するまでは戻りません。

解説

画像のキャッシュへの読み込み

このメソッドは、指定された画像をキャッシュに入れようと試行します。ただし、このメソッドは キャッシュに画像を入れようと努力はしますが、実際に画像がキャッシュにはいる保証 はありません。画像キャッシュの制限値をすぎたり、タイムアウトすると画像読み込みを中断します。 画像は、storages引数に指定した物のうち、最初に書いた物ほどキャッシュに入る可能性が大きくなり ます ( 優先されます )。すでに指定された画像がキャッシュに入っていた場合は、キャッシュ中での 生存の順位を引き上げるだけの動作をします。

このメソッドは、画像読み込み中のエラーはすべて無視します。

現バージョンでは、このメソッドでキャッシュに入れることのできる画像は、通常 Layer.loadImages で読み込み可能な画像で、かつカラーキーを指定しない画像 です ( アルファチャンネル付き画像は問題ありません )。ユニバーサルトランジションのルール画像や、 領域画像は読み込む動作はしますが、キャッシュとして有効なデータにはなりません ( 読み込んだ データは無駄になります ) ので、指定しないようにしてください。

画像がキャッシュで使用するバイト数については System.graphicCacheLimit を参照 してください。


showVersion

メソッド

解説

aboutダイアログの表示(1.1.0以降)

aboutダイアログを表示します。


dumpHeap

メソッド

解説

ヒープ情報ダンプ(1.1.0以降)

ヒープの情報をコンソールに出力します。


captureScreen

メソッド

引数

引数 既定値 説明
path &nbsp; 保存先の統一ストレージパス (.png)
x 0 = 0 保存範囲の左端
y 0 = 0 保存範囲の上端
w 0 = 0 保存範囲の幅 (0 で画面全体)
h 0 = 0 保存範囲の高さ (0 で画面全体)

解説

実画面を PNG 保存する

次フレームの present 直前に、オーバーレイ込みの実画面を読み戻して path へ PNG 保存する 要求を立てます (実際の保存は DrawDevice の描画時)。x,y,w,h で保存範囲を指定でき、 w/h を 0 にすると画面全体になります。SDL の Agent.captureScreen と同等で、Agent 非対応の WINVER でも使えるよう REPL 有効時に用意される、テスト/検証用の機能です。戻り値は保存先パス。


renderStatsReset

メソッド

解説

画面転送コストの計測値をリセットする

System.renderStats の累積カウンタを 0 に戻します。 計測区間の開始点として呼びます。

関連: System.renderStats


addFont

メソッド

引数

引数 既定値 説明
storage &nbsp; 追加するフォントファイルのストレージ名を指定します。

戻り値

追加されたフォントが提供する face 名の配列が返ります。

解説

フォントの追加

ストレージ内のフォントファイルをエンジンに追加します。 追加されたフォントはレイヤやフォント描画 API から face 名で参照可能になります。

関連: Font


clearGraphicCache

メソッド

解説

グラフィックキャッシュの破棄

Layer.loadImages 等が使用する内部のグラフィックキャッシュを破棄します。 メモリ使用量の急な削減や、画像差し替え後の再読込を強制したい場合に呼び出します。


getJoypadType

メソッド

引数

引数 既定値 説明
no 0 パッド番号を指定します ( 既定値 0 )。0 は「最後に操作した
パッド」を指す特別番号
で、1 以上は接続順の実パッド ( 1 番目, 2 番目, … )
を指します。パッド関連 API とキーイベント ( VK_PAD* ) はいずれもこの
番号体系に従い、キーイベントは常に 0 番 ( = 最後に操作したパッド ) を
発生源とします。接続台数は System.getJoypadCount() で取得できます。

戻り値

ジョイパッドの機種名を表す文字列が返ります。指定番号のパッドが 無い場合は空文字列が返ります。

解説

接続されているジョイパッドの種別 ( 機種名 ) 取得

指定番号のジョイパッドの種別を機種名の「文字列」で返します ( 数値の種別 ID ではありません )。文字列は環境依存で、SDL ビルドでは SDL が認識した機種名 ( 例: "Xbox Series X Controller" )、WINVER ビルドでは XInput 由来の汎用名 ( "XInput Controller" ) になります。


nullpo

メソッド

解説

nullポインターアクセスを発生させます

呼ばないでください。


system

メソッド

引数

引数 既定値 説明
command &nbsp; 実行するコマンド文字列を指定します。

戻り値

_wsystem() の戻り値がそのまま返ります。

解説

シェルコマンドの実行

OS の system(3) 相当でシェルコマンドを同期実行します。Win32 ビルド専用。 実行直後に TVP_COMPACT_LEVEL_MAX レベルのコンパクトイベントが発行され、 すべてのキャッシュが破棄されます。


getSystemAllocatorInfo

メソッド

戻り値

上記キーを含む辞書が返ります。

解説

プラットフォームアロケータ情報の取得

プロセスやシステムのメモリ状態を一度に取得します。値が取得できなかった 項目はキー自体が辞書に存在しないため、"xxx" in dict で判定可能です。

返される辞書のキー (環境により一部欠落):

  • totalFreeSize : ヒープ全体の空き容量 ( バイト )
  • allocatableSize : 確保可能な最大連続領域 ( バイト )
  • usedSize : 現在の使用量 ( バイト )
  • peakUsedSize : 起動以来の使用量ピーク ( バイト )
  • totalSize : ヒープの総容量 ( バイト )
  • processRss : プロセス RSS ( バイト )
  • processPeakRss : プロセス peak RSS ( バイト )
  • processVsize : プロセス仮想サイズ ( バイト )
  • systemTotalPhysical : システム物理メモリ総量 ( バイト )
  • systemAvailPhysical : システム利用可能物理メモリ ( バイト )

関連: System.resetMemoryPeak


resetMemoryPeak

メソッド

解説

メモリピーク計測のリセット

File / Bitmap / Sound アロケータの peak_used を current_used に揃え 直し、Krkrz グローバルアロケータのピーク値もリセットします。 MemoryOverlay(peak X.XX) 表示を「ここから先の最大」にしたい ときに使います。REPL .mempeakclear と同等。


beginAllocTag

メソッド

引数

引数 既定値 説明
name &nbsp; タグ名を指定します。

解説

メモリアロケータタグスコープの開始

thread-local なタグスタックに name を push します。以降この スレッドから走るエンジン側 ( Krkrz ) のメモリ確保は、このタグに 振り分けて計測されます。System.endAllocTag() で対応する pop を 行う必要があります。

利用例:

System.beginAllocTag("User");
loadChapter(3);
System.endAllocTag();

既知のタグ名 ( TVPAllocTag 列挙名: TJS2 / User / GraphicsLoader 等 ) と一致しない名前は User として扱われます。

関連: System.endAllocTag


endAllocTag

メソッド

解説

メモリアロケータタグスコープの終了

System.beginAllocTag で push したタグを 取り出します。

関連: System.beginAllocTag


setMemoryOverlay

メソッド

引数

引数 既定値 説明
enable &nbsp; 真で表示、偽で非表示。引数を省略 ( または void ) すると
現在の状態をトグルします。

戻り値

設定後の状態が真 ( 1 ) または偽 ( 0 ) で返ります。

解説

メモリ状態オーバレイの設定

画面右上にエンジンのメモリ状態をリアルタイム表示するオーバレイの 表示有無を切り替えます。フラグ自体は全ビルドで切り替わりますが、 描画するのは OGL 系 DrawDevice ( OGLDrawDevice / SDLOGLDrawDevice ) と SDL の SDLDrawDevice です。Windows ネイティブ ( WINVER ) ビルドの 既定 BasicDrawDevice (D3D11) には描画フックが無いため表示されませんが、 WINVER でも Window.drawDevice を OGL 系へ切り替えれば表示されます。


setPadOverlay

メソッド

引数

引数 既定値 説明
enable &nbsp; 真で表示、偽で非表示。引数を省略 ( または void ) すると
現在の状態をトグルします。

戻り値

設定後の状態が真 ( 1 ) または偽 ( 0 ) で返ります。

解説

ゲームパッド状態オーバレイの設定

画面左上にゲームパッド 16 ボタンと 6 軸のアナログ値のオーバレイを 表示するかを切り替えます。フラグ自体は全ビルドで切り替わりますが、 描画するのは OGL 系 DrawDevice ( OGLDrawDevice / SDLOGLDrawDevice ) と SDL の SDLDrawDevice です。Windows ネイティブ ( WINVER ) ビルドの 既定 BasicDrawDevice (D3D11) には描画フックが無いため表示されませんが、 WINVER でも Window.drawDevice を OGL 系へ切り替えれば表示されます ( パッドの状態取得は全ビルド共通の論理層を使うため、WINVER でも XInput のパッド名・ボタン・軸が表示されます )。


setDrawStatsLog

メソッド

引数

引数 既定値 説明
enable &nbsp; 真でログ出力、偽で停止。引数を省略 ( または void ) すると
現在の状態をトグルします。

戻り値

設定後の状態が真 ( 1 ) または偽 ( 0 ) で返ります。

解説

描画統計ログ出力の設定

KRKRZ_DRAW_STATS=ON ビルドかつ MemoryOverlay 表示中、500ms ごとに DrawThreadPool 利用統計をログに書き出すモードを切り替えます。 実機 ( Switch 等 ) でリアルタイム表示が速く流れて読めない場合に 利用します。OFF ビルドや MemoryOverlay 非表示時に呼んでも実害は ありませんが、ログは出力されません。


getTextureMemory

メソッド

引数

引数 既定値 説明
tag &nbsp; 文字列を渡すと、その名前付きで使用量を 1 行ログにも出力します。
シーンの境界などに目印を打ちたいときに使います。省略時はログを出力しません。

戻り値

使用量の辞書配列

解説

GL テクスチャメモリ使用量の取得

GL 系 DrawDevice が確保しているテクスチャ類のメモリ使用量を辞書で返します。 アロケータやプロセスの使用量 ( REPL の .mem 等 ) が扱う CPU 側のメモリには GL ドライバが確保するテクスチャは含まれないため、こちらで別途計測します。

返される辞書のメンバは次の通りです ( 単位はバイト )。

メンバ 内容
texture Texture ( GL テクスチャ ) 実体の合計
pbo アップロード用 PBO の合計。更新されるテクスチャだけが持ちます ( 遅延確保 )
total texture + pbo
peak 合計の最大値
textureCount 生存しているテクスチャ数
pboCount 生存している PBO 数

peakOffscreen が使う FBO のぶんも含んだ合計の最大値なので、 FBO を使っている場合は total より大きい値になります ( total は FBO を含みません )。

SDL3 / LIB ビルドかつ OpenGL 描画を有効にしたビルドでのみ存在します。 WINVER ビルドには現在ありません。

関連: System.setTextureMemoryLog / System.resetTextureMemoryPeak


setTextureMemoryLog

メソッド

引数

引数 既定値 説明
enable &nbsp; 真でログ出力、偽で停止。引数を省略 ( または void ) すると
現在の状態をトグルします。

戻り値

設定後の状態が真 ( 1 ) または偽 ( 0 ) で返ります。

解説

GL テクスチャメモリログ出力の設定

GL テクスチャメモリの合計が 8MiB 増減するたびに、使用量をログへ書き出す モードを切り替えます。既定は無効です。

SDL3 / LIB ビルドかつ OpenGL 描画を有効にしたビルドでのみ存在します

関連: System.getTextureMemory


resetTextureMemoryPeak

メソッド

解説

GL テクスチャメモリのピーク値のリセット

System.getTextureMemory が返す peak を現在値へ リセットします。「ここから先の最大値」を測りたいときに使います。

SDL3 / LIB ビルドかつ OpenGL 描画を有効にしたビルドでのみ存在します

関連: System.getTextureMemory


getJoypadCount

メソッド

戻り値

ゲームパッド数 ( 整数 )。

解説

接続中のゲームパッド数の取得

現在接続が認識されているゲームパッドの数を返します。

関連: System.hasJoypad


hasJoypad

メソッド

引数

引数 既定値 説明
no 0 ゲームパッド番号を指定します ( 既定値 0 )。

戻り値

接続されていれば真、そうでなければ偽。

解説

ゲームパッドの接続確認

指定番号のゲームパッドが接続されているかを返します。

関連: System.getJoypadCount


getPadAxis

メソッド

引数

引数 既定値 説明
no &nbsp; パッド番号を指定します ( 0 = 最後に操作したパッド、1 以上 = 接続順の実パッド )。
axisId &nbsp; 軸 ID を指定します。

戻り値

軸のアナログ値が実数で返ります。

解説

ゲームパッドの軸アナログ値の取得

指定パッドの指定軸のアナログ値を返します。軸 ID には System.padAxisLeftX 等の定数を使用してください。

戻り値の範囲:

  • スティック軸 ( LeftX / LeftY / RightX / RightY ) ... -1.0 〜 +1.0
  • トリガ軸 ( LeftTrigger / RightTrigger ) ... 0.0 〜 +1.0

未接続、無効な軸 ID 等の場合は 0.0 が返ります。

関連: System.padAxisLeftX / System.padAxisLeftY / System.padAxisRightX / System.padAxisRightY / System.padAxisLeftTrigger / System.padAxisRightTrigger


rumblePad

メソッド

引数

引数 既定値 説明
no &nbsp; パッド番号を指定します ( 0 = 最後に操作したパッド )。
low &nbsp; 低周波モータの強度 ( 0〜255 )。
high &nbsp; 高周波モータの強度 ( 0〜255 )。
duration &nbsp; 駆動時間をミリ秒で指定します。

戻り値

開始に成功すれば真、失敗すれば偽。

解説

ゲームパッドの振動開始

指定パッドのランブルモータを駆動します。

関連: System.stopRumblePad


stopRumblePad

メソッド

引数

引数 既定値 説明
no 0 パッド番号を指定します ( 既定値 0 )。

戻り値

停止に成功すれば真、失敗すれば偽。

解説

ゲームパッドの振動停止

System.rumblePad で開始した振動を停止します。

関連: System.rumblePad


getLicenseList

メソッド

戻り値

ライセンス情報 ( 辞書 ) の配列

解説

ライセンス一覧の取得

エンジンとプラグインが内蔵する第三者コンポーネントのライセンス情報と、 プロジェクトの licenses/ フォルダに置かれたライセンスファイル ( licenses/*.txt または .md ) をまとめた一覧を返します。 ゲーム内のライセンス表示画面 ( フォント選択画面など ) を スクリプト側で自由に組むための情報源です。

各要素は辞書で、以下のメンバを持ちます: + name : 表示名 ( getLicenseText に渡す ) + group : 分類 ( "engine" / "font" / "font-engine" / "audio" / "video" / "ui" / "platform" / "plugin:~" / "data" 等 ) + source : 出所 ( "builtin" = 本体内蔵 / "plugin" = プラグイン登録 / "storage" = プロジェクトの licenses/ フォルダ )

同名のライセンスが複数の出所にある場合は 1 件にまとめられます ( プラグイン登録 > 本体内蔵 > storage の優先 )。

関連: System.getLicenseText


getLicenseText

メソッド

引数

引数 既定値 説明
name &nbsp; ライセンス名

戻り値

ライセンス文 ( 見つからなければ void )

解説

ライセンス文の取得

System.getLicenseListname を指定して ライセンス文全体を文字列で取得します。見つからない場合は void を返します。

プロジェクトの licenses/ フォルダに置いたファイル ( 追加フォントの ライセンス文など ) も同じ名前解決で取得できます ( licenses/<name>.txt → 無ければ .md )。

関連: System.getLicenseList


プラグイン拡張: process

メンバー一覧

メソッド


commandExecute

メソッド

引数

引数 既定値 説明
target &nbsp; プログラム
param &nbsp; 引数
timeout 0 タイムアウト時間(ms)

戻り値

%[ status: ok/error/timeoutのいずれかの文字列, stdout: コンソール出力文字列配列(改行で分離) exitcode: 終了コード(status=="ok"時のみ), message: エラーメッセージ(status!="ok"時のみ) ];

解説

コンソール出力取得つきコマンドラインプログラムの実行

バックグラウンド処理はありません。実行対象のプログラムが終了するまで吉里吉里が停止します。


プラグイン拡張: shellExecute

メンバー一覧

メソッド


commandExecute

メソッド

引数

引数 既定値 説明
target &nbsp; プログラム
param &nbsp; 引数
timeout 0 タイムアウト時間(ms)

戻り値

%[ status: ok/error/timeoutのいずれかの文字列, stdout: コンソール出力文字列配列(改行で分離) exitcode: 終了コード(status=="ok"時のみ), message: エラーメッセージ(status!="ok"時のみ) ];

解説

コンソール出力取得つきコマンドラインプログラムの実行

バックグラウンド処理はありません。実行対象のプログラムが終了するまで吉里吉里が停止します。


プラグイン拡張: stdio

System クラスへの標準入出力拡張

メンバー一覧

プロパティ

メソッド


stdioState

プロパティ \ アクセス: r/w

解説

標準入出力との接続状態を返す


attachConsole

メソッド

引数

引数 既定値 説明
bind 0 0:未接続の部分だけ接続 それ以外:指定した部分を強制接続
標準入力:0x01 標準出力:0x02 標準エラー出力:0x04 の論理和

戻り値

成功したかどうか

解説

標準入出力を既存のコンソールと接続する


allocConsole

メソッド

引数

引数 既定値 説明
bind 0 0:未接続の部分だけ接続 それ以外:指定した部分を強制接続
標準入力:0x01 標準出力:0x02 標準エラー出力:0x04 の論理和

戻り値

成功したかどうか

解説

標準入出力をコンソールを作成して接続する


freeConsole

メソッド

戻り値

成功したかどうか

解説

コンソールから切り離す


stdin

メソッド

戻り値

入力されたテキスト

解説

標準入力からテキストを入力する。入力はブロッキングします。


stdout

メソッド

引数

引数 既定値 説明
string &nbsp; 出力するメッセージ

解説

標準出力に文字列を出力


stderr

メソッド

引数

引数 既定値 説明
string &nbsp; 出力するメッセージ

解説

標準エラー出力に文字列を出力


flush

メソッド

解説

標準出力をフラッシュする


プラグイン拡張: systemEx

擬似コードによるマニュアル

メンバー一覧

メソッド


writeRegValue

メソッド

引数

引数 既定値 説明
key &nbsp; 書き込み先のキー(readRegValue と同様に HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\hoeg\installdir と指定する)
value &nbsp; 書き込む値(文字列又は整数値)

解説

レジストリにデータを書き込みます


readEnvValue

メソッド

引数

引数 既定値 説明
name &nbsp; 環境変数名

戻り値

環境変数値(未定義の場合はvoid)

解説

環境変数を取得

レジストリの読み込みは、組み込みの System.readRegValue を使用のこと


writeEnvValue

メソッド

引数

引数 既定値 説明
name &nbsp; 環境変数名
value &nbsp; 設定する値

戻り値

元の環境変数値(未定義の場合はvoid)

解説

環境変数を設定


expandEnvString

メソッド

引数

引数 既定値 説明
text &nbsp; 展開する文字列

戻り値

展開後文字列

解説

文字列内の「%~%」を環境変数で展開


urlencode

メソッド

引数

引数 既定値 説明
str &nbsp; 元文字列
utf8 true UTF8で出力する場合はtrue

戻り値

URLEncodeされた文字列

解説

URLEncode処理を行う


urldecode

メソッド

引数

引数 既定値 説明
str &nbsp; 元文字列
utf8 true UTF8として処理する場合はtrue

戻り値

URLDecodeされた文字列

解説

URLDecode処理を行う


getAboutString

メソッド

戻り値

テキスト(TVPGetAboutString)

解説

Ctrl+F12で表示される環境情報テキストを取得する


confirm

メソッド

引数

引数 既定値 説明
text &nbsp; 表示するメッセージ
caption "" ウインドウのキャプション文字列
window void 指定があった場合はそのウインドウを親として表示します

戻り値

YESがおされたら true

解説

確認用メッセージ窓を表示します。ウインドウはモーダルで表示されます。

※本体に System.confirm が実装されている環境では本体版が使われます (本プラグインは本体に無い旧環境でのみ補完登録します)。


waitForAppLock

メソッド

引数

引数 既定値 説明
key &nbsp; AppLockのキー文字列
timeout 0 タイムアウト待ち時間(ms)

戻り値

true:正常終了(AppLockは存在しないもしくはタイムアウト時間内に消えた), false:タイムアウトした, (void:エラー)

※この関数の後に再度同じキーでcreateAppLockを呼ぶ必要はありません(すでに所有権があるため失敗する)

解説

他プロセスのSystem.createAppLockで作成されたMutexがリリースされるのを待ち所有権を取得する


setDpiAwareness

メソッド

引数

引数 既定値 説明
context &nbsp; : コンテキスト値(-1~-5)
DPI_AWARENESS_CONTEXT_UNAWARE : -1
DPI_AWARENESS_CONTEXT_SYSTEM_AWARE : -2
DPI_AWARENESS_CONTEXT_PER_MONITOR_AWARE : -3
DPI_AWARENESS_CONTEXT_PER_MONITOR_AWARE_V2 : -4 (Creators Update or later)
DPI_AWARENESS_CONTEXT_UNAWARE_GDISCALED : -5 (October 2018 update or later)

戻り値

前の値(※設定できなかった場合は0)

解説

DPI Awarenessを設定する

Windows10 Redstone1 (ver 1607) 以降にて有効


getOSVersion

メソッド

戻り値

void or %[ major, minor, build, platform, spmajor, spminor, servevicepack, suite, type ];

解説

OSのバージョン情報詳細を取得

RtlGetVersion API および RTL_OSVERSIONINFOW 構造体を参照のこと (October 2018 update or later)


getKnownFolderPath

メソッド

引数

引数 既定値 説明
folderid &nbsp; 取得したいFOLDERID (String or GUID-octet)
flags 0 KF_FLAG_* 値(KF_FLAG_CREATE = 0x00008000 等)

戻り値

結果のローカルパス文字 or ""(不明) or void(失敗)

解説

SHGetKnownFolderPath ラッパー

FOLDERIDが文字列の場合は FOLDERID_{} の {} 部分の文字列を指定。GUIDは <% 00000000 0000 0000 0000 0000000000000 %> の 16byte octet を指定 この関数独自の特殊指定として folderid に "Captures" が指定可能(GameBarのキャプチャフォルダ[Video\Captures] : GUID {EDC0FE71-98D8-4F4A-B920-C8DC133CB165} 指定と同等の動作)


processApplicationMessages

メソッド

解説

メッセージの処理 ( 本体の TVPProcessApplicationMessages() 呼び出し )

System.breathe() と違い吉里吉里のイベントも処理されます。 基本的に processApplicationMessages はアプリが終了するまで返らないので注意。

イベントハンドラ内で例外が発生した場合、このメソッドからは伝播しません。 プラグイン側は本体呼び出しをそのまま通すだけで、例外は本体のイベント配送側が 捕捉し、通常の未処理スクリプト例外として処理されます ( 例外ダイアログ / ログ 出力、System.exceptionHandler が設定されていればそちらへ通知 )。


handleApplicationMessage

メソッド

解説

メッセージを 1 件処理する ( 本体の TVPHandleApplicationMessage() 呼び出し )

例外の扱いは processApplicationMessages と同じです。


setDefaultDllDirectories

メソッド

引数

引数 既定値 説明
flags &nbsp; lls*フラグ組み合わせ

戻り値

成功したらtrue

解説

::SetDefaultDllDirectoriesラッパー


addDllDirectory

メソッド

引数

引数 既定値 説明
path &nbsp; 追加するローカルパス(※Storages.getLocalNameしておくこと)

戻り値

removeDllDirectoryに渡す用の固有値(0だった場合は失敗) setDefaultDllDirectoriesでllsUserDirsフラグを立てておくこと

解説

::AddDllDirectoryラッパー

0x00000400


removeDllDirectory

メソッド

引数

引数 既定値 説明
cookie &nbsp; 削除するaddDllPath固有値

戻り値

成功したらtrue

解説

::RemoveDllDirectoryラッパー


プラグイン拡張: tftSave

システム拡張

メンバー一覧

メソッド


savePreRenderedFont

メソッド

引数

引数 既定値 説明
storage &nbsp; 保存するファイル名
characters &nbsp; 保存する文字(キャラクタコード)の入った配列
callback &nbsp; 情報とイメージを取得するコールバック
キャラクタコードを引数に取り,レイヤ(PreRenderedFontImage)を返す関数であること
function(ch)

解説

レンダリング済みフォントデータをファイルに保存する


loadPreRenderedFont

メソッド

引数

引数 既定値 説明
storage &nbsp; 読み込みファイル名
characters &nbsp; 一覧の文字を受け取るための配列
callback &nbsp; 将来的に画像イメージを受け取るコールバックが実装される予定(現状では必ずvoidを渡すこと)

解説

レンダリング済みフォントデータをファイルから読み込む


modifyPreRenderedFont

メソッド

引数

引数 既定値 説明
storage &nbsp; 読み込みファイル名
callback &nbsp; 情報取得・更新用コールバック
function(ch, info = %[ blackbox_x|y, origin_x|y, inc_x|y, inc ])

解説

レンダリング済みフォントデータのグリフ情報を更新する(変更できるのはorigin_x|y, inc_x|y, incのみ/blackboxは固定)


プラグイン拡張: windowEx

System拡張

メンバー一覧

メソッド


getDisplayMonitors

メソッド

戻り値

[ %[ name, primary, monitor:%[ x, y, w, h ], work:%[ x,y,w,h ], intersect:%[ x,y,w,h ] ], ... ]; name: モニタの名前('\.\DISPLAY?' 等) primary: プライマリモニタかどうか monitor: モニタの範囲辞書 work: モニタのワークエリア範囲(ウィンドウを最大化したときなどの表示範囲) intersect: 指定範囲と交わる領域(指定しなかった場合は monitor と同じ)

解説

モニタの情報一覧を取得

全てのモニタを列挙する


getDisplayMonitors

メソッド

引数

引数 既定値 説明
x &nbsp;
y &nbsp;
w &nbsp;
h &nbsp;

解説

指定範囲に交わるモニタのみ列挙する


getMonitorInfo

メソッド

戻り値

%[ name, primary, monitor:%[ x, y, w, h ], work:%[ x, y, w, h ] ]; モニタの情報。辞書内容は getDisplayMonitors と同じ (ただし intersect 情報は無い)。 near=false 時でモニタが無い場合は void を返す。

解説

モニタ情報を取得

プライマリモニタを返す


getMonitorInfo

メソッド

引数

引数 既定値 説明
near &nbsp;
x &nbsp;
y &nbsp;

解説

指定座標の位置のモニタを返す


getMonitorInfo

メソッド

引数

引数 既定値 説明
near &nbsp;
x &nbsp;
y &nbsp;
w &nbsp;
h &nbsp;

解説

指定座標の範囲にもっとも多く交わるモニタを返す


getMonitorInfo

メソッド

引数

引数 既定値 説明
near &nbsp;
window &nbsp;

解説

指定ウィンドウの範囲にもっとも多く交わるモニタを返す


setDpiAwareness

メソッド

引数

引数 既定値 説明
context &nbsp;

解説

SetThreadDpiAwarenessContext を呼び出す


setCursorPos

メソッド

引数

引数 既定値 説明
x &nbsp;
y &nbsp;

戻り値

get時:%[ x, y ] または void(取得失敗時)

解説

マウスカーソルのスクリーン座標を設定・取得


getCursorPos

メソッド


setClipCursor

メソッド

引数

引数 既定値 説明
win_or_rect &nbsp;

解説

カーソル位置クリップ処理


getSystemMetrics

メソッド

引数

引数 既定値 説明
index &nbsp; SM_ の「」部分の文字列(ただし大文字小文字は無関係)

戻り値

メトリクス値(indexにより内容が異なる)

解説

システムメトリクス情報を取得

詳細は GetSystemMetrics() API のマニュアルを参照 SW_ARRANGE は ARW_* の定義がないので直接数値指定で比較すること


getDoubleClickTime

メソッド

戻り値

時間(ms) 既定値は500ms

解説

システムのダブルクリック許容時間を取得

詳細は GetDoubleClickTime() API のマニュアルを参照 ダブルクリックの許容移動範囲はgetSystemMetricsのCXDOUBLECLK/CYDOUBLECLKで取得可能 Layer.onDoubleClickを使わずにソフトウェアで擬似的にダブルクリック判定を行う場合に使用(時間決め打ちでも問題ないけど一応…)


readEnvValue

メソッド

引数

引数 既定値 説明
name &nbsp; 環境変数名

戻り値

環境変数値(未定義の場合はvoid)

解説

環境変数を取得


expandEnvString

メソッド

引数

引数 既定値 説明
text &nbsp; 展開する文字列

戻り値

展開後文字列

解説

文字列内の「%~%」を環境変数で展開


setApplicationIcon

メソッド

引数

引数 既定値 説明
file &nbsp; アイコンファイルまたはvoid (voidか""で初期状態にリセット)

解説

タスクバーやALT+TABなどで表示されるアプリケーションアイコンを変更する

※ アーカイブ内のファイル指定は不可,exeやDLLを指定した場合は一番最初のアイコンが設定される


setIconicPreview

メソッド

引数

引数 既定値 説明
iconic &nbsp; trueならサムネイルの代わりにアイコンを表示する/falseなら設定解除

戻り値

成功したかどうか(XP以前では常に失敗)

解説

Vista以降のタスクバーやAlt+TABでのサムネイル表示を強制的にアプリケーションアイコン表示にする

※ アプリケーションウィンドウに DWMWA_FORCE_ICONIC_REPRESENTATION が設定される


breathe

メソッド

解説

TVPBreathe, TVPGetBreathing のラッパ


isBreathing

メソッド


findWindowEx

メソッド

引数

引数 既定値 説明
winname void ウインドウ名
clsname void クラス名
parwin void 親ウインドウ(Windowクラス指定かHWND数値)
childafter void 検索開始位置ウインドウ(〃)

戻り値

成功した場合はHWND数値

解説

findWindoeEx のラッパ


classLongPtr

メソッド

引数

引数 既定値 説明
win &nbsp; 対象ウインドウ(Windowクラス指定かHWND数値)
key &nbsp; 対象インデックス 現状の実装では {cursor,icon,iconsm,brbackground} の文字列いずれか
setvalue_or_getasvoid void 取得する場合はvoid, 数値指定の場合はset (ただし key=brbackground の場合は {black,white,gray,ltgray,dkgray} のStockブラシを指定可)

戻り値

成功した場合は現在(もしくは直前)のLONG_PTR数値/失敗時はvoid

解説

{Get,Set}ClassLongPtr のラッパ


loadCursor

メソッド

引数

引数 既定値 説明
idc_or_res &nbsp; 数値>=0の場合はMAKEINTRESOURCE, 数値<0の場合はcrXXXX,文字列の場合はリソース名
hmodule void リソース対象のHMODULE値

戻り値

HCURSOR数値

解説

LoadCursorのラッパ


mapVirtualKey

メソッド

引数

引数 既定値 説明
code &nbsp; 仮想キーコードもしくはスキャンコード
maptype &nbsp; MAPVK_*値

戻り値

keycode

解説

MapVirtualKeyのラッパ