コンテンツにスキップ

プロパティシステム

プロパティシステム

プロパティシステム

概要

プロパティシステムはベースウェアが起動中に保持している各種パラメータに、ゴースト側からアクセスして読み書きする仕組みである。

記述例

プロパティシステムを利用するには、環境変数と通常のタグの二つの方法がある。
SAKURA Scriptおよび環境変数のプロパティシステムの項もそれぞれ参照のこと。

  • %property[プロパティ名]: 環境変数としてプロパティを参照し、値を埋め込む。
    単に値をそのまま表示したい場合に用いる。
    以下はベースウェアの名前とバージョンをその場に埋め込む(表示する)。

    %property[baseware.name] ver,%property[baseware.version]
    
  • \![get,property,イベント名,プロパティ名]: さくらスクリプトのタグによって任意名のSHIORI Eventを発生させ、そのReferenceを通じてプロパティを取得する。
    プロパティをもとにSHIORI側でアクションを起こしたい場合に用いる。
    以下はID「OnGetSakuraName」というSHIORI Eventを発生させ、そのreference0としてゴースト「Emily/Phase4.5」の相方側名(Teddy)を通知させる。

    \![get,property,OnGetSakuraName,ghostlist(Emily/Phase4.5).keroname]
    
  • \![set,property,プロパティ名,値]: さくらスクリプトのタグによってプロパティを書き替える。
    全てのプロパティに対して書き込みが許されているわけではないが、このページの項目で[SET有効]とあるものはこのようにして操作可能。
    以下はシェル「ULTIMATE FORM」を、オーナードローメニューのシェル切り替えメニューから隠す例。

    \![set,property,currentghost.shelllist(ULTIMATE FORM).menu,hidden]
    

system.year

現在年。

対応: SSP / CROW


system.month

現在月。

対応: SSP / CROW


system.day

現在日。

対応: SSP / CROW


system.hour

現在時。

対応: SSP / CROW


system.minute

現在分。

対応: SSP / CROW


system.second

現在秒。

対応: SSP / CROW


system.millisecond

現在ミリ秒。

対応: SSP


system.dayofweek

現在曜日。

対応: SSP


system.cursor.pos

現在のマウスカーソルの位置を直接取得する。カンマ区切りで X,Y。単位ピクセル。

対応: SSP 2.5.43


system.os.(キー)

起動中のOSの情報。(キー)に入る文字列は以下の通り。

  • type: OSの種類。Windows,MacOS,Darwin,Linux,Android,FreeBSD,ReactOSなど。Web上ランタイムなら"Web"。(歴史的経緯で値はTitleCase)
  • arch: OSのアーキテクチャ。x86,x64,arm,arm64,ia64,risc-v,ppc,mips,loongarchなど。確定できない・アーキテクチャ非依存なら"unknown"
  • name: OSの名前。例:Windows 11 22H2
  • version: OSのカーネルバージョン。例:10.0。OSの呼称と食い違う場合がある点に注意。例:Windows 10も11も10.0になる。
  • build: OSのビルド番号。例:22621
  • parenttype: 何らかの互換OS/互換レイヤーで動作している場合はその種類。無い場合は空文字列。今のところ Wine か ReactOS 。
  • parentname: 互換OS/互換レイヤーのホスト側(親側)OSの名前。無い場合は空文字列。例:Linux 5.19.0-23-generic
  • locale: OSのUIロケール名。言語コードと国・地域コードを「-」で連結したもの。例:ja-JP (SSP 2.8.17 以降)
  • locale.language: OSのUI言語コード(ISO 639)。例:ja (SSP 2.8.17 以降)
  • locale.country: OSのUI国・地域コード(ISO 3166)。例:JP (SSP 2.8.17 以降)
  • timezone.offset: 現在のタイムゾーンのUTCからのオフセット(分単位)。UTCに対して進んでいる地域では負の値になる。例:日本標準時なら-540 (SSP 2.8.17 以降)
  • dst: 現在、夏時間(サマータイム)が適用されている場合は1、それ以外は0。 (SSP 2.8.17 以降)
  • uptime: OS起動からの経過時間(秒)。 (SSP 2.8.17 以降)
  • unixtime: 現在時刻のUNIX時間(1970-01-01 00:00:00 UTCからの経過秒数)。 (SSP 2.8.17 以降)
  • idletime: 最後のユーザー入力(キーボード・マウス操作)からの経過時間(秒)。 (SSP 2.8.17 以降)

対応: SSP 2.6.26/27


system.cpu.(キー)

起動中の環境のCPUの情報。(キー)に入る文字列は以下の通り。

  • load: 負荷率(単位%、整数、適宜分単位程度で移動平均を計算して均されているもの)
  • num: OSが認識している全コア数
  • vendor: ベンダー名。例:GenuineIntel
  • name: 名前。例:11th Gen Intel(R) Core(TM) i5-1135G7 @ 2.40GHz
  • clock: クロック周波数
  • features: 解釈可能な拡張命令のリスト(半角空白区切り)。例:MMX SSE SSE2 SSE3

対応: SSP 2.6.26


system.memory.(キー)

起動中の環境の物理メモリの情報。(キー)に入る文字列は以下の通り。

  • load: 使用率(単位%、整数、適宜分単位程度で移動平均を計算して均されているもの)
  • phyt: 全物理メモリ量(MB)
  • phya: 空き物理メモリ量(MB)

対応: SSP 2.6.26


system.monitor.count

接続されているモニターの数。

対応: SSP 2.8.16


system.monitor.index(ID).work

IDのモニターの作業領域(左,上,右,下)。タスクバー等のシステム予約領域を除いたウインドウを配置できる領域。

対応: SSP 2.8.16


system.monitor.index(ID).rect

IDのモニターの矩形座標(左,上,右,下)。

対応: SSP 2.8.16


system.monitor.index(ID).bpp

IDのモニターの色深度(bits per pixel)。

対応: SSP 2.8.16


system.monitor.index(ID).dpi

IDのモニターのDPI。

対応: SSP 2.8.16


system.monitor.index(ID).primary

IDのモニターがプライマリモニターかどうか。プライマリの場合は1、それ以外は0。

対応: SSP 2.8.16


system.power.(キー)

電源・バッテリーの状態。(キー)に入る文字列は以下の通り。情報が取得できない環境(デスクトップPC等でバッテリーが存在しない場合を含む)では、各値は下記の「取得不能時」の値になる。

  • source: 現在の電源供給元。battery(バッテリー駆動)、ac(AC電源/コンセント接続)、ups(UPS経由)のいずれか。取得不能時はunknown。
  • battery.percent: バッテリー残量(%、整数)。取得不能時・残量不明時は-1。
  • battery.lifetime: バッテリーのみで動作可能な残り時間(秒)。取得不能時・残り時間不明時は-1。
  • battery.flag: バッテリーの状態フラグ。該当する状態をカンマ区切りで列挙する。取り得る値は high(残量十分)、low(残量低下)、critical(残量危機的)、charging(充電中)、no_battery(バッテリーなし)、power_saving(バッテリー節約機能が有効、Windows 10以降のみ)。取得不能時は空文字列。

対応: SSP 2.8.17


system.disk.count

OSが認識しているドライブ(論理ドライブ)の数。

対応: SSP 2.8.17


system.disk.index(ID).(キー)

ID番目(0始まり)のドライブの情報。IDの範囲は0から system.disk.count - 1 まで。(キー)に入る文字列は以下の通り。

  • mountpoint: Windowsではドライブレター(末尾の「\」を除いたもの)、他OSではマウントポイント。例: C: /home
  • type: ドライブの種類。fixed(固定ディスク)、removable(リムーバブルディスク)、network(ネットワークドライブ)、optical(光学ドライブ)、ram(RAMディスク)、unknown(不明)のいずれか。
  • total: ドライブの総容量(MB)。容量を取得できない場合(メディア未挿入等)は-1。
  • free: ドライブの空き容量(MB)。容量を取得できない場合(メディア未挿入等)は-1。

対応: SSP 2.8.17


system.network.(キー)

ネットワーク接続の状態。(キー)に入る文字列は以下の通り。

  • status: ネットワーク接続状態。online(接続あり)またはoffline(接続なし)。
  • ipaddress: ローカルIPアドレス。
  • type: 接続の種類。bluetooth、cellular、ethernet、none、wifi、wimax、other、unknown のいずれか。
  • cost: 接続のコスト区分。unknown(不明)、unrestricted(無制限)、fixed(定額)、variable(従量制)のいずれか。
  • downlink: 下り方向の最大リンク速度(Mbps)。
  • downlink.estimate: 下り方向の推定リンク速度(Mbps)。実測に基づき算出される、より控えめな見積もり値。

対応: SSP 2.8.17


system.theme.app.mode

SSPのアプリUIのテーマモード。dark(ダークテーマ)またはlight(ライトテーマ)。

対応: SSP 2.8.17


system.theme.os.mode

OSのテーマモード。dark(ダークテーマ)またはlight(ライトテーマ)。

対応: SSP 2.8.17


system.dnd.mode

システムのDo Not Disturb(邪魔しない)モードの状態。quiet(有効)またはnormal(無効)。

対応: SSP 2.8.17


baseware.version

ベースウェアのバージョン情報。

対応: SSP / CROW


baseware.name

ベースウェア名。

対応: SSP / CROW


baseware.windowmode

SSPのウインドウモードの状態。normal(通常モード)、shared(ウインドウモード・全ゴーストで1枚のコンテナを共有)、perghost(ウインドウモード・ゴースト1体につき1枚のコンテナ)のいずれか。
切り替えられた際にはOnWindowModeChangeが発生する。

対応: SSP 2.8.93


ghostlist.count

インストールされているゴーストの数。

対応: SSP / CROW


ghostlist(ゴースト名/本体側名/パス).汎用プロパティ名

そのゴーストのゴースト名(name)、本体側名(sakuraname)、パスのいずれかから情報を取得。

対応: SSP / CROW


ghostlist(ゴースト名/本体側名/パス).icon

そのゴーストのアイコンのパス。

対応: SSP


ghostlist.index(ID).汎用プロパティ名

リスト内のIDの位置のゴーストから情報を取得。

対応: SSP / CROW


ghostlist.current.汎用プロパティ名

リスト内の現在の位置のゴーストから情報を取得。

対応: SSP


activeghostlist(ゴースト名/本体側名/パス).汎用プロパティ名

起動中ゴーストのゴースト名(name)、本体側名(sakuraname)、パスのいずれかから情報を取得。

対応: SSP


activeghostlist(ゴースト名/本体側名/パス).ext.拡張プロパティ名

SHIORIイベント(property.get・property.set)を起こし、ゴースト内部の拡張プロパティを取得・設定する。

対応: SSP 2.7.85


activeghostlist.index(ID).汎用プロパティ名

起動中ゴーストのリスト内のID位置のゴーストから情報を取得。

対応: SSP


activeghostlist.index(ID).ext.拡張プロパティ名

SHIORIイベント(property.get・property.set)を起こし、ゴースト内部の拡張プロパティを取得・設定する。

対応: SSP 2.7.85


activeghostlist.current.汎用プロパティ名

起動中ゴーストの現在のゴーストから情報を取得。

対応: SSP


currentghost.汎用プロパティ名

現在のゴーストから情報を取得。

対応: SSP


currentghost.status

現在のゴーストの状態(SHIORI Statusヘッダ)。

対応: SSP


補足

※SHIORI Statusヘッダ

複数がカンマ(,)区切りで返ったり、空が返る場合もある

  • talking: 現在スクリプトを実行中(喋り中)。
  • passive: passiveモード中(\![enter,passivemode])。
  • induction: inductionモード中(\![enter,inductionmode])。
  • timecritical: \tタグでロック中。
  • nouserbreak: nouserbreakモード中(\![enter,nouserbreak])。
  • online: オンライン中(ヘッドラインデータ取得中や時刻あわせ中、自分自身のネットワーク更新中など)。
  • choosing: \q、\__qタグによる選択肢表示中。
  • minimizing: 最小化中(タスクトレイアイコン化中)。
  • opening(種類): 入力ウィンドウ展開中。
    種類の部分にはcommunicate,input,teach,textarea,dialogのうち、開いている物がスラッシュ区切りで入る。
    例:opening(input/dialog)
    ※SSP 2.3.97よりスラッシュ。それ以前はカンマ区切り
    ※textareaはSSP 2.9.10から
  • balloon(情報): バルーン表示中。
    情報の部分には(キャラID)=(バルーンID)の形式で表示中のバルーンが列挙される。バルーンIDは左右の区別はない(常に偶数)。
    例:balloon(0=2/1=0)
    ※SSP 2.3.97よりスラッシュ。それ以前はカンマ区切り

※Statusヘッダは、SHIORI毎に以下のようにも取得出来ます。

  • 華和梨……System.Request.Statusエントリ
  • YAYA……status変数内
  • 里々……情報取得変数(Status)

currentghost.shelllist(シェル名/パス).汎用プロパティ名

現在のゴーストのシェル名もしくはパスから情報を取得。

対応: SSP / CROW


currentghost.shelllist.index(ID).汎用プロパティ名

現在のゴーストのリスト内ID位置のシェルから情報を取得。

対応: SSP / CROW


currentghost.shelllist.current.汎用プロパティ名

現在のゴーストの現在のシェルから情報を取得。

対応: SSP / CROW


currentghost.shelllist.count

インストールされているシェルの数。

対応: SSP / CROW


currentghost.scope.count

現在有効な最大キャラ数。

対応: SSP


currentghost.scope(ID).surface.num

現在のゴーストのスコープIDのサーフェスID。設定も可能で\s[]タグと同じ挙動になる。

対応: SSP / CROW


currentghost.scope(ID).animation.num

現在のゴーストのスコープIDのアニメーションID。
取得時:現在実行中のアニメーションIDのカンマ区切りのリスト。あくまでも取得した瞬間の実行状態であり、結果を受け取って処理した後でなおアニメーションが実行中であるかは保証されない。
設定時:指定したアニメーションIDを追加で実行する。指定されていないIDのアニメーションが停止するわけではなくあくまで追加。カンマ区切りで複数一括設定でき、\i[]タグを複数連続指定した場合と同じ挙動になる。

対応: SSP 2.8.28


currentghost.scope(ID).seriko.defaultsurface

現在のゴーストのデフォルトサーフェス。設定も可能。

対応: SSP


currentghost.scope(ID).surface.x

現在のゴーストのスコープIDのサーフェスのX座標。

対応: CROW


currentghost.scope(ID).surface.y

現在のゴーストのスコープIDのサーフェスY座標。

対応: CROW


currentghost.scope(ID).x

現在のゴーストのスコープIDのサーフェスの基準点のスクリーンにおけるX座標。
マルチモニタの場合、プライマリモニタ左上を原点とする仮想デスクトップ全体での位置。
基準点は通常サーフェス中央下。GHOSTおよびSHELLのdescript.txtの、sakura(kero、char*).defaultxで設定可能。

対応: SSP


currentghost.scope(ID).y

現在のゴーストのスコープIDのサーフェスの基準点のスクリーンにおけるY座標。
マルチモニタの場合、プライマリモニタ左上を原点とする仮想デスクトップ全体での位置。
基準点は通常サーフェス中央下。GHOSTおよびSHELLのdescript.txtの、sakura(kero、char*).defaultyで設定可能。

対応: SSP


currentghost.scope(ID).rect

現在のゴーストのスコープIDのウインドウ矩形座標(左,上,右,下)。

対応: SSP


currentghost.scope(ID).name

現在のゴーストのスコープIDの名前。
0番はdescript.txtのsakura.nameと同じ、1番はkero.nameと同じ、以降2番以降はchar?.nameと同じ。

対応: SSP 2.6.67


currentghost.scope(ID).scaling

現在のゴーストのスコープIDの実効拡大率。ユーザー設定×タグ設定×SERIKO設定の結果なので、小数点以下が出る場合あり。

対応: SSP 2.7.89


currentghost.scope(ID).currentmonitor.work

現在のゴーストのスコープIDのウインドウが表示されているモニターの作業領域(左,上,右,下)。タスクバー等のシステム予約領域を除いたウインドウを配置できる領域。

対応: SSP 2.8.16


currentghost.scope(ID).currentmonitor.rect

現在のゴーストのスコープIDのウインドウが表示されているモニターの矩形座標(左,上,右,下)。

対応: SSP 2.8.16


currentghost.scope(ID).currentmonitor.bpp

現在のゴーストのスコープIDのウインドウが表示されているモニターの色深度(bits per pixel)。

対応: SSP 2.8.16


currentghost.scope(ID).currentmonitor.dpi

現在のゴーストのスコープIDのウインドウが表示されているモニターのDPI。

対応: SSP 2.8.16


currentghost.scope(ID).currentmonitor.primary

現在のゴーストのスコープIDのウインドウが表示されているモニターがプライマリモニターかどうか。プライマリの場合は1、それ以外は0。

対応: SSP 2.8.16


currentghost.scope(ID).surface(ID).rect

現在のゴーストの指定したスコープIDで、指定したサーフェスIDがどのようなウインドウ矩形座標(左,上,右,下)で表示されるかをあらかじめ確認できる。

対応: SSP 2.8.57


currentghost.balloon.汎用プロパティ名

現在のゴーストのバルーンから情報を取得。

対応: SSP


currentghost.balloon.count

現在のゴーストのバルーンの数。

対応: SSP


currentghost.mousecursor

ゴーストで操作できる部分を示すカーソルファイル名(指先)
以降currentghost.mousecursor / currentghost.balloon.mousecursor で始まるプロパティに共通:
相対パス指定はシェル→ゴーストフォルダ内の順で探索する。
空文字列を指定してSETすると、定義削除扱いとなり、set前の表示に戻すことができる。
カーソル指定はsurfaces.txtのcursorセクションと同じ指定が可能。
[SET有効]

対応: SSP [2.6.11]


currentghost.mousecursor.text

入力ボックスのカーソルファイル名

対応: SSP [2.6.11]


currentghost.mousecursor.wait

なにか処理中で応答できないときに使用するカーソル(腕時計型)のファイル名。

対応: SSP [2.6.11]


currentghost.mousecursor.hand

ゴーストの掴める部分を示すカーソル(手を開いた形)のファイル名。

対応: SSP [2.6.11]


currentghost.mousecursor.grip

ゴーストの掴める部分を掴んだ状態を示すカーソル(手を握った形)のファイル名。

対応: SSP [2.6.11]


currentghost.mousecursor.arrow

ゴーストで操作できない部分を示すカーソルファイル名(矢印)

対応: SSP [2.6.11]


currentghost.balloon.mousecursor

バルーンで操作できる部分を示すカーソルファイル名(指先)

対応: SSP [2.6.11]


currentghost.balloon.mousecursor.text

バルーンの入力ボックスのカーソルファイル名

対応: SSP [2.6.11]


currentghost.balloon.mousecursor.wait

バルーンでなにか処理中で応答できないときに使用するカーソル(腕時計型)のファイル名。

対応: SSP [2.6.11]


currentghost.balloon.mousecursor.arrow

バルーンで操作できない部分を示すカーソルファイル名(矢印)

対応: SSP [2.6.11]


currentghost.seriko.cursor.scope(ID).mouse????list(当たり判定名).path

指定した当たり判定名のカーソルファイル名(相対パス:シェル→ゴーストフォルダ内の順で探索)
mouse????listは以下の指定が可能:mouseuplist・mousedownlist・mousehoverlist・mousewheellist
空文字列を指定してSETすると、定義削除扱いとなり、シェルの標準カーソルの表示に戻すことができる。
カーソル指定はsurfaces.txtのcursorセクションと同じ指定が可能。
[SET有効]

対応: SSP (2.3.83)

記述例

\![set,property,currentghost.seriko.cursor.scope(0).mouseuplist(Head).path,頭.cur]Head当たり判定で使うカーソルを頭.curに変更\![set,property,currentghost.seriko.cursor.scope(0).mouseuplist(Head).path,]空っぽの指定だと定義削除となりシェルの標準カーソルとなる

currentghost.seriko.cursor.scope(ID).mouse????list(当たり判定名).name

指定した当たり判定名の当たり判定名。index指定との互換用の記述であり、特に意味はない。

対応: SSP (2.3.83)


currentghost.seriko.cursor.scope(ID).mouse????list.index(ID2).path

マウスカーソル定義リスト内の指定した位置のカーソルファイル名(相対パス)。
[SET有効]

対応: SSP (2.3.83)


currentghost.seriko.cursor.scope(ID).mouse????list.index(ID2).name

マウスカーソル定義リスト内の指定した位置の当たり判定名。

対応: SSP (2.3.83)


currentghost.seriko.cursor.scope(ID).mouse????list.count

マウスカーソル定義リストの数。

対応: SSP (2.3.83)


currentghost.seriko.tooltip.scope(ID).textlist(当たり判定名).text

指定した当たり判定名のツールチップ表示文字列。
空文字列を指定してSETすると、ツールチップ定義削除扱いとなり、ツールチップを表示しないようにできる。
[SET有効]

対応: SSP (2.3.83)

記述例

\![set,property,currentghost.seriko.tooltip.scope(0).textlist(Head).text,頭をなでる]Head当たり判定で表示するツールチップを「頭をなでる」に変更\![set,property,currentghost.seriko.tooltip.scope(0).textlist(Head).text,]空っぽの指定だと定義削除となり表示されなくなる

currentghost.seriko.tooltip.scope(ID).textlist(当たり判定名).name

指定した当たり判定名の当たり判定名。index指定との互換用の記述であり、特に意味はない。

対応: SSP (2.3.83)


currentghost.seriko.tooltip.scope(ID).textlist.index(ID2).text

ツールチップ定義リスト内の指定した位置のツールチップ文字列。
[SET有効]

対応: SSP (2.3.83)


currentghost.seriko.tooltip.scope(ID).textlist.index(ID2).name

ツールチップ定義リスト内の指定した位置の当たり判定名。

対応: SSP (2.3.83)


currentghost.seriko.tooltip.scope(ID).textlist.count

ツールチップ定義リストの数。

対応: SSP (2.3.83)


currentghost.seriko.surfacelist.all

シェル上で有効なサーフェスIDのすべてのリスト。カンマ区切り。

対応: SSP (2.5.98)


currentghost.seriko.surfacelist.defined

シェル上で有効なサーフェスIDの中で、surfaces.txt内に有効な定義のあるもののリスト。カンマ区切り。

対応: SSP (2.5.98)


currentghost.seriko.sticky-window

現在の\![set,sticky-window,~]の設定状態。
グループ内のスコープIDをカンマ区切り、グループ同士をセミコロン区切りで並べたもの。
例えばスコープ0と1、スコープ2と3をそれぞれくっつけている場合は 0,1;2,3 となる。
設定が一つもない場合は値なし。
[SET有効]

書き込みの場合は同じ書式で現在の設定を完全に置き換える。さくらスクリプトのタグがグループを追加していくのとは異なる点に注意。
空文字列を書き込むとすべてのくっつき設定が解除される。
要素が2つ未満のグループ、および既に他のグループで使われているスコープIDを含むグループは無視される。

対応: SSP 2.8.78


currentghost.seriko.zorder

現在の\![set,zorder,~]の設定状態。
グループ内の要素をカンマ区切り、グループ同士をセミコロン区切りで並べたもの。要素は手前にあるものから順に並ぶ。
要素を明示指定するモードでは s0,b0,s1;s2,b2 のように s(サーフェス)・b(バルーン)+スコープIDの短縮形で返る。
スコープIDのみを指定する従来のモードでは 0,1;2,3 のように数値だけが返る。
設定が一つもない場合は値なし。
[SET有効]

書き込みの場合は同じ書式で現在の設定を完全に置き換える。さくらスクリプトのタグがグループを追加していくのとは異なる点に注意。
空文字列を書き込むとすべてのZオーダー設定が解除される。
読み取った値をそのまま書き戻せば元の状態を再現できる。
要素が2つ未満のグループは無視される。また明示指定モードと従来モードは排他のため、s0,b0;2,3 のように両モードを混在させることはできない。

対応: SSP 2.8.78


currentghost.balloon.scope(ID).count

現在のバルーンのバルーン画像数。

対応: SSP


currentghost.balloon.scope(ID).num

現在のバルーンのID。

対応: SSP


currentghost.balloon.scope(ID).x

現在のバルーンのX座標。

対応: SSP 2.8.39


currentghost.balloon.scope(ID).y

現在のバルーンのY座標。

対応: SSP 2.8.39


currentghost.balloon.scope(ID).rect

現在のバルーンの矩形領域。

対応: SSP 2.8.39


currentghost.balloon.scope(ID).validwidth

現在のバルーンの文字描画に使える幅。baseposに関係なく描画範囲全てを示す。
縦書きの場合は列が並ぶ方向(右から左)に使える幅で、スクロール後の描画幅と一致する。

対応: SSP


currentghost.balloon.scope(ID).validwidth.initial

現在のバルーンの文字描画に使える幅(basepos.x=文字開始点を考慮したもの)
縦書きの場合は列が並ぶ方向に使える幅で、1列目の開始位置(basepos)を考慮したもの。

対応: SSP (2.3.72)


currentghost.balloon.scope(ID).validheight

現在のバルーンの文字描画に使える高さ。baseposに関係なく描画範囲全てを示す。スクロール後の描画高さと一致。
縦書きの場合は1列の長さ(=1列に書ける字送りの長さ)で、スクロールしても変化しない。

対応: SSP


currentghost.balloon.scope(ID).validheight.initial

現在のバルーンの文字描画に使える高さ。basepos.y=文字開始点を考慮したもの。スクロール前の描画高さと一致。
縦書きの場合は1列の長さで、字送りの開始位置(basepos)を考慮したもの。

対応: SSP (2.3.72)


currentghost.balloon.scope(ID).lines

現在のバルーンのおさまる行数の最大値。baseposに関係なく描画範囲全てを示す。スクロール後の表示行数と一致。
縦書きの場合は「行」が「列」に読み替わり、おさまる列数になる。

対応: SSP


currentghost.balloon.scope(ID).lines.initial

現在のバルーンのおさまる行数の最大値。basepos.y=文字開始点を考慮したもの。スクロール前の表示行数と一致。
縦書きの場合は「行」が「列」に読み替わり、おさまる列数になる。

対応: SSP (2.3.72)


currentghost.balloon.scope(ID).basepos.x

現在のバルーンの文字描画開始点(X座標)。描画範囲の左端とは限らない。バルーン画像の左上を原点とした座標。
縦書きの場合は1列目の右端(=origin.x)を指す。

対応: SSP (2.3.72)


currentghost.balloon.scope(ID).basepos.y

現在のバルーンの文字描画開始点(Y座標)。描画範囲の上端とは限らない。バルーン画像の左上を原点とした座標。
縦書きの場合は字送りの開始位置(1文字目の上端。=origin.y)を指す。

対応: SSP (2.3.72)


currentghost.balloon.scope(ID).char_width

バルーン標準フォントでの半角文字列幅。等幅フォントでは文字高さ÷2、プロポーショナルフォントでは半角大文字A~Zの幅の平均値。

対応: SSP


currentghost.balloon.scope(ID).background.color

バルーンの背景色を R,G,B の値で取得する。
「背景色」とは、バルーンの中で最も頻繁に使われている色(代表色)か、バルーン全体の平均色のいずれかであり、この色とテキストの色が十分コントラストが出るように制御するなどの用途が考えらえる。
参考:SSP 2.7.81時点の実装は「代表色」である。

対応: SSP 2.7.81


currentghost.balloon.scope(ID).scaling

現在のバルーンの実効拡大率。ユーザー設定×タグ設定×SERIKO設定の結果なので、小数点以下が出る場合あり。

対応: SSP 2.7.89


currentghost.balloon.scope(ID).vertical

現在のバルーンが縦書きかどうか。縦書きなら1、横書きなら0。
validwidth・validheightは縦書きでも名前どおり「画面上の向き」の値で、縦書きではvalidwidthが「列が進む方向に使える幅」、validheightが「1列の長さ」になる。linesは縦横どちらでも「収まる行数」(縦書きでは列数)を示す。
1行(1列)に何文字入るかを計算したい場合は、縦書きならvalidheight、横書きならvalidwidthを見ること。この判別のためにこのプロパティを使う。
※SSP 2.8.83で仕様変更。2.8.80では縦書き時のvalidwidth・validheightが「文字の送り方向を基準にした向き」の値だった。

対応: SSP 2.8.80


currentghost.sound.count

現在のゴーストが管理しているメディアの数。
\![sound,play]・\![sound,loop]・\![sound,preload]などで開かれ、まだ閉じられていないものすべてが対象。再生中のものだけではないことに注意。
個々のメディアが再生中かどうかはplayingで判別する。

対応: SSP 2.8.72


currentghost.sound.index(ID).サウンドプロパティ名

現在のゴーストが管理しているメディアのうち、ID番目のものから情報を取得。
IDは新しく開かれたものから順に0,1,2...となる。範囲外のIDを指定した場合は取得失敗となる。
サウンドプロパティ名は後述。書き込みが可能なものと、その際の注意点についてはこちら。

対応: SSP 2.8.72


currentghost.sound(要素名).サウンドプロパティ名

現在のゴーストが管理しているメディアのうち、要素名が一致する最も新しいものから情報を取得。
要素名は\![sound,play,~]などで指定したファイル名/パス/URLそのもの。
ドットを挟まず括弧を直接続けることに注意(currentghost.sound(~)であってcurrentghost.sound.(~)ではない)。
サウンドプロパティ名は後述。書き込みが可能なものと、その際の注意点についてはこちら。

対応: SSP 2.8.72


balloonlist(バルーン名/パス).汎用プロパティ名

バルーンの名前もしくはパスから情報を取得。

対応: SSP


balloonlist.index(ID).汎用プロパティ名

リスト内のIDの位置のバルーンから情報を取得。

対応: SSP


balloonlist.count

インストールされているバルーンの数。

対応: SSP


headlinelist(ヘッドライン名/パス).汎用プロパティ名

ヘッドラインの名前もしくはパスから情報を取得。

対応: SSP


headlinelist.index(ID).汎用プロパティ名

リスト内のIDの位置のヘッドラインから情報を取得。

対応: SSP


headlinelist.count

インストールされているヘッドラインの数。

対応: SSP


pluginlist(プラグイン名/パス/ID).汎用プロパティ名

プラグインの名前もしくはパス、IDから情報を取得。

対応: SSP


pluginlist.index(ID).汎用プロパティ名

リスト内のIDの位置のプラグインから情報を取得。

対応: SSP


pluginlist(プラグイン名/パス/ID).ext.拡張プロパティ名

プラグインイベント(property.get・property.set)を起こし、プラグイン内部の拡張プロパティを取得・設定する。

対応: SSP 2.7.85


pluginlist.index(ID).ext.拡張プロパティ名

プラグインイベント(property.get・property.set)を起こし、プラグイン内部の拡張プロパティを取得・設定する。

対応: SSP 2.7.85


pluginlist.count

インストールされているプラグインの数。

対応: SSP


history.ghost(ゴースト名/パス).汎用プロパティ名

最近使ったもののゴースト名もしくはパスから情報を取得。

対応: SSP


history.ghost.index(ID).汎用プロパティ名

最近使ったもののリスト内のIDの位置のゴーストから情報を取得。

対応: SSP


history.ghost.count

最近使ったものゴーストの数。

対応: SSP


history.balloon(バルーン名/パス).汎用プロパティ名

最近使ったもののバルーンの名前もしくはパスから情報を取得。

対応: SSP


history.balloon.index(ID).汎用プロパティ名

最近使ったもののリスト内のIDの位置のバルーンから情報を取得。

対応: SSP


history.balloon.count

最近使ったものバルーンの数。

対応: SSP


history.headline(ヘッドライン名/パス).汎用プロパティ名

最近使ったもののヘッドラインの名前もしくはパスから情報を取得。

対応: SSP


history.headline.index(ID).汎用プロパティ名

最近使ったもののリスト内のIDの位置のヘッドラインから情報を取得。

対応: SSP


history.headline.count

最近使ったものヘッドラインの数。

対応: SSP


history.plugin(プラグイン名/パス/ID).汎用プロパティ名

最近使ったもののプラグインの名前もしくはパス、IDから情報を取得。

対応: SSP


history.plugin.index(ID).汎用プロパティ名

最近使ったもののリスト内のIDの位置のプラグインから情報を取得。

対応: SSP


history.plugin.count

最近使ったもののプラグインの数。

対応: SSP


rateofuselist(名前).name

そのゴーストの名称。

対応: SSP


rateofuselist(名前).sakuraname

そのゴーストの本体側の名前。

対応: SSP


rateofuselist(名前).keroname

そのゴーストの相方側の名前。

対応: SSP


rateofuselist(名前).boottime

そのゴーストの起動回数。

対応: SSP


rateofuselist(名前).bootminute

そのゴーストの起動時間。(分単位)

対応: SSP


rateofuselist(名前).boottimeweekly

そのゴーストの起動回数。(週報版、今日から7日前までの集計)

対応: SSP 2.8.54


rateofuselist(名前).bootminuteweekly

そのゴーストの起動時間。(分単位、週報版、今日から7日前までの集計)

対応: SSP 2.8.54


rateofuselist(名前).boottimemonthly

そのゴーストの起動回数。(月報版、今日から30日前までの集計)

対応: SSP 2.8.54


rateofuselist(名前).bootminutemonthly

そのゴーストの起動時間。(分単位、月報版、今日から30日前までの集計)

対応: SSP 2.8.54


rateofuselist(名前).percent

そのゴーストの起動時間割合。(パーセント、小数)

対応: SSP


rateofuselist(名前).percentweekly

そのゴーストの起動時間割合。(パーセント、小数、週報版、今日から7日前までの集計)

対応: SSP 2.8.54


rateofuselist(名前).percentmonthly

そのゴーストの起動時間割合。(パーセント、小数、月報版、今日から30日前までの集計)

対応: SSP 2.8.54


rateofuselist.index(順位).name

使用率のその順位のゴーストの名称。

対応: SSP


rateofuselist.index(順位).sakuraname

使用率のその順位のゴーストの本体側の名前。

対応: SSP


rateofuselist.index(順位).keroname

使用率のその順位のゴーストの相方側の名前。

対応: SSP


rateofuselist.index(順位).boottime

使用率のその順位のゴーストの起動回数。

対応: SSP


rateofuselist.index(順位).bootminute

使用率のその順位のゴーストの起動時間。(分単位)

対応: SSP


rateofuselist.index(順位).boottimeweekly

使用率のその順位のゴーストの起動回数。(週報版、今日から7日前までの集計)

対応: SSP 2.8.54


rateofuselist.index(順位).bootminuteweekly

使用率のその順位のゴーストの起動時間。(分単位、週報版、今日から7日前までの集計)

対応: SSP 2.8.54


rateofuselist.index(順位).boottimemonthly

使用率のその順位のゴーストの起動回数。(月報版、今日から30日前までの集計)

対応: SSP 2.8.54


rateofuselist.index(順位).bootminutemonthly

使用率のその順位のゴーストの起動時間。(分単位、月報版、今日から30日前までの集計)

対応: SSP 2.8.54


rateofuselist.index(順位).percent

使用率のその順位のゴーストの起動時間割合。(パーセント、小数)

対応: SSP


rateofuselist.index(順位).percentweekly

使用率のその順位のゴーストの起動時間割合。(パーセント、小数、週報版、今日から7日前までの集計)

対応: SSP 2.8.54


rateofuselist.index(順位).percentmonthly

使用率のその順位のゴーストの起動時間割合。(パーセント、小数、月報版、今日から30日前までの集計)

対応: SSP 2.8.54


developer.log.ログ種別.count

SSPが記録しているログの現在の件数。ログ種別に入る文字列は以下の通り。

  • script: スクリプトログ(ログウインドウの種別Script)。
  • error: エラーログ(同Error)。
  • network: ネットワークログ(同Network)。
  • update: アップデートログ(同Update)。

各ログが保持する件数には上限があり(既定50件)、上限を超えると古いものから消えていく。
developer.log.~ はすべて読み取り専用で、開発者機能の設定に関わらず取得できる。
エラーログでは、同じ内容のログが続くとtypeがSystemの要約1件にまとめられることがある。

対応: SSP


developer.log.ログ種別.index(ID).ログプロパティ名

ログのうちID番目のものから情報を取得。
IDは新しいものから順に0,1,2...となる。範囲外のIDを指定した場合は取得失敗となる。
ログ種別はdeveloper.log.ログ種別.countを参照。ログプロパティ名に入る文字列は以下の通り。

  • type: ログの種類。
    scriptではGhost(~)またはSSTP(~)の形式で、括弧内には該当する属性がカンマ区切りで入る(Ghost:External、Embed、SSF、Plugin SSTP:LocalまたはRemote、TempGhost、Auth 共通:NoTranslate)。Ghostで該当する属性が無い場合は括弧ごと省略されGhostのみになる。付加情報がある場合は末尾に「:付加情報」が付く。
    その他のログ種別ではInfo、Notice、Warning、Error、Critical、Systemのいずれか。
  • name: ログの発生元の名前(ゴースト名など)。発生元が無い場合は[SYSTEM]。
  • value: ログの本文。長いものも省略されずに全文が返る。
  • time: ログが記録された日時。ローカル時刻で、OSの短い日付形式と24時間表記の時:分を半角スペースで区切ったもの。書式はOSの地域設定に依存する。

対応: SSP


developer.log.ログ種別(名前).count

ログのうち、nameが名前と一致するものの件数。大文字小文字は区別しない。
ドットを挟まず括弧を直接続けることに注意(developer.log.script(~)であってdeveloper.log.script.(~)ではない)。

対応: SSP


developer.log.ログ種別(名前).index(ID).ログプロパティ名

ログのうち、nameが名前と一致するものの中でID番目のものから情報を取得。
IDは新しいものから順に0,1,2...となる。.index(ID)を省略した場合(developer.log.ログ種別(名前).ログプロパティ名)は最も新しいものが対象になる。
ドットを挟まず括弧を直接続けることに注意。ログプロパティ名はこちら。

対応: SSP


汎用プロパティ名

name

対象の名前。

対応: SSP / CROW


sakuraname

対象のゴーストの本体側の名前。

対応: SSP / CROW


keroname

対象のゴーストの相方側の名前。

対応: SSP / CROW


craftmanw

対象の作者名。

対応: SSP / CROW


craftmanurl

対象の配布先URL。

対応: SSP


path

対象のパス。

対応: SSP / CROW


thumbnail

対象のサムネイル。

対応: SSP


update_result

対象のアップデートリザルト。

対応: SSP


update_time

対象のアップデート時間。

対応: SSP


homeurl

対象のhomeurl。

対応: SSP


username

対象のusername(呼ばれ方)。同時起動している場合、かつ相手がusernameの取得に対応している場合のみ取得できる。 SSP 2.3.51以降。

対応: SSP


shiori.変数名

対象のゴーストのSHIORI。

対応: CROW


index

対象のリスト内の位置。

対応: SSP / CROW


(currentghost.shelllistのみ有効)対象シェルの、シェル変更メニューでの、項目非表示状態。
非表示設定時hidden、さもなくば空
[SET有効]初期値はshell側descript.txtの「menu」

対応: SSP


sakura.bind.menu

(currentghostのみ有効)対象シェルの本体側スコープの着せ替えのメニューでの、項目非表示状態。
非表示設定時hidden、自動列挙モードはauto、さもなくばnone
[SET有効]初期値はshell側descript.txtのsakura.menu

対応: SSP


kero.bind.menu

(currentghostのみ有効)対象シェルの相方側スコープの着せ替えのメニューでの、項目非表示状態。
非表示設定時hidden、自動列挙モードはauto、さもなくばnone
[SET有効]初期値はshell側descript.txtのkero*.menu

対応: SSP


char*.bind.menu

(currentghostのみ有効)対象シェルの*番スコープの着せ替えのメニューでの、項目非表示状態。
非表示設定時hidden、自動列挙モードはauto、さもなくばnone
[SET有効]初期値はshell側descript.txtのchar*.menu

対応: SSP


サウンドプロパティ名

name

対象のメディアの要素名。\![sound,play,~]などで指定したファイル名/パス/URLそのもの。

対応: SSP 2.8.72


path

対象のメディアの解決後のフルパス。URL指定の場合はURLそのもの。

対応: SSP 2.8.72


id

対象のメディアに割り当てられたプロセス内で一意の識別番号。
同じメディアを指し続けているかどうかの確認に使える。

対応: SSP 2.8.72


position

対象のメディアの現在の再生位置。ミリ秒。
位置を取得できない実装・フォーマットの場合は-1。
[SET有効]SETすると\![sound,option,~]の--seektime=と同じ効果。
値の書式も--seektime=と同じで、「:」を含まない場合はミリ秒単位の整数、「:」を含む場合は[[時:]分:]秒[.ミリ秒]として解釈する。頭に@をつけると現在の再生位置からの相対指定となり、負の値も指定できる(例:@-5000で5秒巻き戻し)。

対応: SSP 2.8.72


duration

対象のメディア全体の長さ。ミリ秒。
長さを取得できない実装・フォーマットの場合は-1。

対応: SSP 2.8.72


playing

対象のメディアが再生中なら1、さもなくば0。
一時停止中も1のままなので、必要ならpauseと併用する。
[SET有効]1をSETすると\![sound,play,~]、0をSETすると\![sound,stop,~]と同じ効果。
1をSETして再生を開始する場合、対象のメディアの現在のループ指定などはそのまま維持される。

対応: SSP 2.8.72


pause

対象のメディアが一時停止中なら1、さもなくば0。
[SET有効]1をSETすると\![sound,pause,~]、0をSETすると\![sound,resume,~]と同じ効果。

対応: SSP 2.8.72


preload

対象のメディアが\![sound,preload]で開かれたものなら1、さもなくば0。

対応: SSP 2.8.72


loop

対象のメディアがループ再生指定(\![sound,loop])なら1、さもなくば0。

対応: SSP 2.8.72


error

対象のメディアで直近に発生したエラーメッセージ。エラーがなければ空文字列。

対応: SSP 2.8.72


meta.title

対象のメディアのタグに記録された曲名(タイトル)。
タグが無い場合や取得できない場合の挙動はこちら。

対応: SSP 2.8.73


meta.artist

対象のメディアのタグに記録されたアーティスト名。
複数記録されている場合は「; 」(セミコロンと半角空白)区切りで連結される。
タグが無い場合や取得できない場合の挙動はこちら。

対応: SSP 2.8.73


meta.albumartist

対象のメディアのタグに記録されたアルバムアーティスト名。
複数記録されている場合は「; 」(セミコロンと半角空白)区切りで連結される。
タグが無い場合や取得できない場合の挙動はこちら。

対応: SSP 2.8.73


meta.album

対象のメディアのタグに記録されたアルバム名。
タグが無い場合や取得できない場合の挙動はこちら。

対応: SSP 2.8.73


meta.genre

対象のメディアのタグに記録されたジャンル。
複数記録されている場合は「; 」(セミコロンと半角空白)区切りで連結される。
タグが無い場合や取得できない場合の挙動はこちら。

対応: SSP 2.8.73


meta.year

対象のメディアのタグに記録された年(西暦)。
タグが無い場合や取得できない場合の挙動はこちら。

対応: SSP 2.8.73


meta.track

対象のメディアのタグに記録されたトラック番号。
タグが無い場合や取得できない場合の挙動はこちら。

対応: SSP 2.8.73


meta.artwork

対象のメディアのアルバムアートワークの画像ファイルパス。
タグが無い場合や取得できない場合の挙動はこちら。

対応: SSP 2.8.73


サウンドプロパティのメタデータ(meta.~)について [2.8.73]

meta.で始まるサウンドプロパティは、メディアファイルに埋め込まれたタグ情報(ID3、Vorbis Comment、MP4のメタデータatom、ASFの属性など)を取得する。すべて読み取り専用。

タグが存在しない場合や、何らかの理由で取得できなかった場合は、そのプロパティ自体が存在しないものとして扱われる。errorのように空文字列が返るのではなく、プロパティの参照自体が失敗する点に注意(存在しないプロパティ名を指定した場合と同じ挙動になる)。タグの有無が不定のメディアを扱う場合は、この前提でスクリプトを書くこと。

なおwav等のタグを持たないフォーマットでは、当然ながらすべてのmeta.プロパティが取得失敗となる。


サウンドプロパティの書き込みについて [2.8.72]

サウンドプロパティのうちposition・playing・pauseは\![set,property,~]による書き込みに対応する。それ以外のサウンドプロパティは読み取り専用。

書き込みは対応するさくらスクリプトのタグと同じ処理に変換して実行される。したがってタグを直接書いた場合とまったく同じ結果になり、指定が無効な場合(既に停止しているメディアにpauseを書き込んだ場合など)もタグと同様に何も起こらない。

変換されるタグは要素名で対象を指定するため、同じ要素名のメディアが複数ある場合はindex(ID)で対象を指定しても、書き込みは要素名が一致する最も新しいメディアに対して行われる。読み取りとは対象が異なる場合があることに注意。

また書き込みは非同期に実行されるため、書き込んだ直後に同じプロパティを読み取っても結果がまだ反映されていない場合がある。