プロパティシステム

プロパティシステム

プロパティシステム

概要

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

記述例

プロパティシステムを利用するには、環境変数と通常のタグの二つの方法がある。
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.(id)

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

type
OSの種類。SSPの場合Windows固定。
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
  • SSP 2.6.26/27
system.cpu.(id)

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

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.(id)

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

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

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

  • SSP
  • CROW
baseware.name

ベースウェア名。

  • SSP
  • CROW
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.index(ID).汎用プロパティ名

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

  • SSP
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,dialogのうち、開いている物がスラッシュ区切りで入る。
例:opening(input/dialog)
※SSP 2.3.97よりスラッシュ。それ以前はカンマ区切り
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。

  • SSP
  • CROW
currentghost.scope(ID).seriko.defaultsurface

現在のゴーストのデフォルトサーフェス。

  • SSP
currentghost.scope(番号).surface.x

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

  • CROW
currentghost.scope(番号).surface.y

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

  • CROW
currentghost.scope(番号).x

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

  • SSP
currentghost.scope(番号).y

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

  • SSP
currentghost.scope(番号).rect

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

  • SSP
currentghost.scope(番号).name

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

  • SSP 2.6.67
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.balloon.scope(ID).count

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

  • SSP
currentghost.balloon.scope(ID).num

現在のバルーンのID。

  • SSP
currentghost.balloon.scope(ID).validwidth

現在のバルーンの文字描画に使える幅。baseposに関係なく描画範囲全てを示す。

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

現在のバルーンの文字描画に使える幅(basepos.x=文字開始点を考慮したもの)

  • SSP(2.3.72)
currentghost.balloon.scope(ID).validheight

現在のバルーンの文字描画に使える高さ。baseposに関係なく描画範囲全てを示す。スクロール後の描画高さと一致。

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

現在のバルーンの文字描画に使える高さ。basepos.y=文字開始点を考慮したもの。スクロール前の描画高さと一致。

  • 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座標)。描画範囲の左端とは限らない。

  • SSP(2.3.72)
currentghost.balloon.scope(ID).basepos.y

現在のバルーンの文字描画開始点(Y座標)。描画範囲の上端とは限らない。

  • SSP(2.3.72)
currentghost.balloon.scope(ID).char_width

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

  • SSP
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.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(名前).percent

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

  • SSP
rateofuselist.index(順位).name

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

  • SSP
rateofuselist.index(順位).sakuraname

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

  • SSP
rateofuselist.index(順位).keroname

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

  • SSP
rateofuselist.index(順位).boottime

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

  • SSP
rateofuselist.index(順位).bootminute

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

  • SSP
rateofuselist.index(順位).percent

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

  • 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
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