プロパティシステムはベースウェアが起動中に保持している各種パラメータに、ゴースト側からアクセスして読み書きする仕組みである。
プロパティシステムを利用するには、環境変数と通常のタグの二つの方法がある。
SAKURA Scriptおよび環境変数のプロパティシステムの項もそれぞれ参照のこと。
%property[baseware.name] ver,%property[baseware.version]
\![get,property,OnGetSakuraName,ghostlist(Emily/Phase4.5).keroname]
\![set,property,currentghost.shelllist(ULTIMATE FORM).menu,hidden]
現在年。
現在月。
現在日。
現在時。
現在分。
現在秒。
現在ミリ秒。
現在曜日。
現在のマウスカーソルの位置を直接取得する。カンマ区切りで X,Y。単位ピクセル。
起動中のOSの情報。(キー)に入る文字列は以下の通り。
起動中の環境のCPUの情報。(キー)に入る文字列は以下の通り。
起動中の環境の物理メモリの情報。(キー)に入る文字列は以下の通り。
接続されているモニターの数。
IDのモニターの作業領域(左,上,右,下)。タスクバー等のシステム予約領域を除いたウインドウを配置できる領域。
IDのモニターの矩形座標(左,上,右,下)。
IDのモニターの色深度(bits per pixel)。
IDのモニターのDPI。
IDのモニターがプライマリモニターかどうか。プライマリの場合は1、それ以外は0。
電源・バッテリーの状態。(キー)に入る文字列は以下の通り。情報が取得できない環境(デスクトップPC等でバッテリーが存在しない場合を含む)では、各値は下記の「取得不能時」の値になる。
OSが認識しているドライブ(論理ドライブ)の数。
ID番目(0始まり)のドライブの情報。IDの範囲は0から system.disk.count - 1 まで。(キー)に入る文字列は以下の通り。
ネットワーク接続の状態。(キー)に入る文字列は以下の通り。
SSPのアプリUIのテーマモード。dark(ダークテーマ)またはlight(ライトテーマ)。
OSのテーマモード。dark(ダークテーマ)またはlight(ライトテーマ)。
システムのDo Not Disturb(邪魔しない)モードの状態。quiet(有効)またはnormal(無効)。
ベースウェアのバージョン情報。
ベースウェア名。
インストールされているゴーストの数。
そのゴーストのゴースト名(name)、本体側名(sakuraname)、パスのいずれかから情報を取得。
そのゴーストのアイコンのパス。
リスト内のIDの位置のゴーストから情報を取得。
リスト内の現在の位置のゴーストから情報を取得。
起動中ゴーストのゴースト名(name)、本体側名(sakuraname)、パスのいずれかから情報を取得。
SHIORIイベント(property.get・property.set)を起こし、ゴースト内部の拡張プロパティを取得・設定する。
起動中ゴーストのリスト内のID位置のゴーストから情報を取得。
SHIORIイベント(property.get・property.set)を起こし、ゴースト内部の拡張プロパティを取得・設定する。
起動中ゴーストの現在のゴーストから情報を取得。
現在のゴーストから情報を取得。
現在のゴーストの状態(SHIORI Statusヘッダ)。
複数がカンマ(,)区切りで返ったり、空が返る場合もある
※Statusヘッダは、SHIORI毎に以下のようにも取得出来ます。
現在のゴーストのシェル名もしくはパスから情報を取得。
現在のゴーストのリスト内ID位置のシェルから情報を取得。
現在のゴーストの現在のシェルから情報を取得。
インストールされているシェルの数。
現在有効な最大キャラ数。
現在のゴーストのスコープIDのサーフェスID。設定も可能で\s[]タグと同じ挙動になる。
現在のゴーストのスコープIDのアニメーションID。
取得時:現在実行中のアニメーションIDのカンマ区切りのリスト。あくまでも取得した瞬間の実行状態であり、結果を受け取って処理した後でなおアニメーションが実行中であるかは保証されない。
設定時:指定したアニメーションIDを追加で実行する。指定されていないIDのアニメーションが停止するわけではなくあくまで追加。カンマ区切りで複数一括設定でき、\i[]タグを複数連続指定した場合と同じ挙動になる。
現在のゴーストのデフォルトサーフェス。設定も可能。
現在のゴーストのスコープIDのサーフェスのX座標。
現在のゴーストのスコープIDのサーフェスY座標。
現在のゴーストのスコープIDのサーフェスの基準点のスクリーンにおけるX座標。
マルチモニタの場合、プライマリモニタ左上を原点とする仮想デスクトップ全体での位置。
基準点は通常サーフェス中央下。GHOSTおよびSHELLのdescript.txtの、sakura(kero、char*).defaultxで設定可能。
現在のゴーストのスコープIDのサーフェスの基準点のスクリーンにおけるY座標。
マルチモニタの場合、プライマリモニタ左上を原点とする仮想デスクトップ全体での位置。
基準点は通常サーフェス中央下。GHOSTおよびSHELLのdescript.txtの、sakura(kero、char*).defaultyで設定可能。
現在のゴーストのスコープIDのウインドウ矩形座標(左,上,右,下)。
現在のゴーストのスコープIDの名前。
0番はdescript.txtのsakura.nameと同じ、1番はkero.nameと同じ、以降2番以降はchar?.nameと同じ。
現在のゴーストのスコープIDの実効拡大率。ユーザー設定×タグ設定×SERIKO設定の結果なので、小数点以下が出る場合あり。
現在のゴーストのスコープIDのウインドウが表示されているモニターの作業領域(左,上,右,下)。タスクバー等のシステム予約領域を除いたウインドウを配置できる領域。
現在のゴーストのスコープIDのウインドウが表示されているモニターの矩形座標(左,上,右,下)。
現在のゴーストのスコープIDのウインドウが表示されているモニターの色深度(bits per pixel)。
現在のゴーストのスコープIDのウインドウが表示されているモニターのDPI。
現在のゴーストのスコープIDのウインドウが表示されているモニターがプライマリモニターかどうか。プライマリの場合は1、それ以外は0。
現在のゴーストの指定したスコープIDで、指定したサーフェスIDがどのようなウインドウ矩形座標(左,上,右,下)で表示されるかをあらかじめ確認できる。
現在のゴーストのバルーンから情報を取得。
現在のゴーストのバルーンの数。
ゴーストで操作できる部分を示すカーソルファイル名(指先)
以降currentghost.mousecursor / currentghost.balloon.mousecursor で始まるプロパティに共通:
相対パス指定はシェル→ゴーストフォルダ内の順で探索する。
空文字列を指定してSETすると、定義削除扱いとなり、set前の表示に戻すことができる。
カーソル指定はsurfaces.txtのcursorセクションと同じ指定が可能。
[SET有効]
入力ボックスのカーソルファイル名
なにか処理中で応答できないときに使用するカーソル(腕時計型)のファイル名。
ゴーストの掴める部分を示すカーソル(手を開いた形)のファイル名。
ゴーストの掴める部分を掴んだ状態を示すカーソル(手を握った形)のファイル名。
ゴーストで操作できない部分を示すカーソルファイル名(矢印)
バルーンで操作できる部分を示すカーソルファイル名(指先)
バルーンの入力ボックスのカーソルファイル名
バルーンでなにか処理中で応答できないときに使用するカーソル(腕時計型)のファイル名。
バルーンで操作できない部分を示すカーソルファイル名(矢印)
指定した当たり判定名のカーソルファイル名(相対パス:シェル→ゴーストフォルダ内の順で探索)
mouse????listは以下の指定が可能:mouseuplist・mousedownlist・mousehoverlist・mousewheellist
空文字列を指定してSETすると、定義削除扱いとなり、シェルの標準カーソルの表示に戻すことができる。
カーソル指定はsurfaces.txtのcursorセクションと同じ指定が可能。
[SET有効]
\![set,property,currentghost.seriko.cursor.scope(0).mouseuplist(Head).path,頭.cur]Head当たり判定で使うカーソルを頭.curに変更\![set,property,currentghost.seriko.cursor.scope(0).mouseuplist(Head).path,]空っぽの指定だと定義削除となりシェルの標準カーソルとなる
指定した当たり判定名の当たり判定名。index指定との互換用の記述であり、特に意味はない。
マウスカーソル定義リスト内の指定した位置のカーソルファイル名(相対パス)。
[SET有効]
マウスカーソル定義リスト内の指定した位置の当たり判定名。
マウスカーソル定義リストの数。
指定した当たり判定名のツールチップ表示文字列。
空文字列を指定してSETすると、ツールチップ定義削除扱いとなり、ツールチップを表示しないようにできる。
[SET有効]
\![set,property,currentghost.seriko.tooltip.scope(0).textlist(Head).text,頭をなでる]Head当たり判定で表示するツールチップを「頭をなでる」に変更\![set,property,currentghost.seriko.tooltip.scope(0).textlist(Head).text,]空っぽの指定だと定義削除となり表示されなくなる
指定した当たり判定名の当たり判定名。index指定との互換用の記述であり、特に意味はない。
ツールチップ定義リスト内の指定した位置のツールチップ文字列。
[SET有効]
ツールチップ定義リスト内の指定した位置の当たり判定名。
ツールチップ定義リストの数。
シェル上で有効なサーフェスIDのすべてのリスト。カンマ区切り。
シェル上で有効なサーフェスIDの中で、surfaces.txt内に有効な定義のあるもののリスト。カンマ区切り。
現在のバルーンのバルーン画像数。
現在のバルーンのID。
現在のバルーンのX座標。
現在のバルーンのY座標。
現在のバルーンの矩形領域。
現在のバルーンの文字描画に使える幅。baseposに関係なく描画範囲全てを示す。
現在のバルーンの文字描画に使える幅(basepos.x=文字開始点を考慮したもの)
現在のバルーンの文字描画に使える高さ。baseposに関係なく描画範囲全てを示す。スクロール後の描画高さと一致。
現在のバルーンの文字描画に使える高さ。basepos.y=文字開始点を考慮したもの。スクロール前の描画高さと一致。
現在のバルーンのおさまる行数の最大値。baseposに関係なく描画範囲全てを示す。スクロール後の表示行数と一致。
現在のバルーンのおさまる行数の最大値。basepos.y=文字開始点を考慮したもの。スクロール前の表示行数と一致。
現在のバルーンの文字描画開始点(X座標)。描画範囲の左端とは限らない。
現在のバルーンの文字描画開始点(Y座標)。描画範囲の上端とは限らない。
バルーン標準フォントでの半角文字列幅。等幅フォントでは文字高さ÷2、プロポーショナルフォントでは半角大文字A~Zの幅の平均値。
バルーンの背景色を R,G,B の値で取得する。
「背景色」とは、バルーンの中で最も頻繁に使われている色(代表色)か、バルーン全体の平均色のいずれかであり、この色とテキストの色が十分コントラストが出るように制御するなどの用途が考えらえる。
参考:SSP 2.7.81時点の実装は「代表色」である。
現在のバルーンの実効拡大率。ユーザー設定×タグ設定×SERIKO設定の結果なので、小数点以下が出る場合あり。
現在のゴーストが管理しているメディアの数。
\![sound,play]・\![sound,loop]・\![sound,preload]などで開かれ、まだ閉じられていないものすべてが対象。再生中のものだけではないことに注意。
個々のメディアが再生中かどうかはplayingで判別する。
現在のゴーストが管理しているメディアのうち、ID番目のものから情報を取得。
IDは新しく開かれたものから順に0,1,2...となる。範囲外のIDを指定した場合は取得失敗となる。
サウンドプロパティ名は後述。書き込みが可能なものと、その際の注意点についてはこちら。
現在のゴーストが管理しているメディアのうち、要素名が一致する最も新しいものから情報を取得。
要素名は\![sound,play,~]などで指定したファイル名/パス/URLそのもの。
ドットを挟まず括弧を直接続けることに注意(currentghost.sound(~)であってcurrentghost.sound.(~)ではない)。
サウンドプロパティ名は後述。書き込みが可能なものと、その際の注意点についてはこちら。
バルーンの名前もしくはパスから情報を取得。
リスト内のIDの位置のバルーンから情報を取得。
インストールされているバルーンの数。
ヘッドラインの名前もしくはパスから情報を取得。
リスト内のIDの位置のヘッドラインから情報を取得。
インストールされているヘッドラインの数。
プラグインの名前もしくはパス、IDから情報を取得。
リスト内のIDの位置のプラグインから情報を取得。
プラグインイベント(property.get・property.set)を起こし、プラグイン内部の拡張プロパティを取得・設定する。
プラグインイベント(property.get・property.set)を起こし、プラグイン内部の拡張プロパティを取得・設定する。
インストールされているプラグインの数。
最近使ったもののゴースト名もしくはパスから情報を取得。
最近使ったもののリスト内のIDの位置のゴーストから情報を取得。
最近使ったものゴーストの数。
最近使ったもののバルーンの名前もしくはパスから情報を取得。
最近使ったもののリスト内のIDの位置のバルーンから情報を取得。
最近使ったものバルーンの数。
最近使ったもののヘッドラインの名前もしくはパスから情報を取得。
最近使ったもののリスト内のIDの位置のヘッドラインから情報を取得。
最近使ったものヘッドラインの数。
最近使ったもののプラグインの名前もしくはパス、IDから情報を取得。
最近使ったもののリスト内のIDの位置のプラグインから情報を取得。
最近使ったもののプラグインの数。
そのゴーストの名称。
そのゴーストの本体側の名前。
そのゴーストの相方側の名前。
そのゴーストの起動回数。
そのゴーストの起動時間。(分単位)
そのゴーストの起動回数。(週報版、今日から7日前までの集計)
そのゴーストの起動時間。(分単位、週報版、今日から7日前までの集計)
そのゴーストの起動回数。(月報版、今日から30日前までの集計)
そのゴーストの起動時間。(分単位、月報版、今日から30日前までの集計)
そのゴーストの起動時間割合。(パーセント、小数)
そのゴーストの起動時間割合。(パーセント、小数、週報版、今日から7日前までの集計)
そのゴーストの起動時間割合。(パーセント、小数、月報版、今日から30日前までの集計)
使用率のその順位のゴーストの名称。
使用率のその順位のゴーストの本体側の名前。
使用率のその順位のゴーストの相方側の名前。
使用率のその順位のゴーストの起動回数。
使用率のその順位のゴーストの起動時間。(分単位)
使用率のその順位のゴーストの起動回数。(週報版、今日から7日前までの集計)
使用率のその順位のゴーストの起動時間。(分単位、週報版、今日から7日前までの集計)
使用率のその順位のゴーストの起動回数。(月報版、今日から30日前までの集計)
使用率のその順位のゴーストの起動時間。(分単位、月報版、今日から30日前までの集計)
使用率のその順位のゴーストの起動時間割合。(パーセント、小数)
使用率のその順位のゴーストの起動時間割合。(パーセント、小数、週報版、今日から7日前までの集計)
使用率のその順位のゴーストの起動時間割合。(パーセント、小数、月報版、今日から30日前までの集計)
対象の名前。
対象のゴーストの本体側の名前。
対象のゴーストの相方側の名前。
対象の作者名。
対象の配布先URL。
対象のパス。
対象のサムネイル。
対象のアップデートリザルト。
対象のアップデート時間。
対象のhomeurl。
対象のusername(呼ばれ方)。同時起動している場合、かつ相手がusernameの取得に対応している場合のみ取得できる。 SSP 2.3.51以降。
対象のゴーストのSHIORI。
対象のリスト内の位置。
対象のメディアの要素名。\![sound,play,~]などで指定したファイル名/パス/URLそのもの。
対象のメディアの解決後のフルパス。URL指定の場合はURLそのもの。
対象のメディアに割り当てられたプロセス内で一意の識別番号。
同じメディアを指し続けているかどうかの確認に使える。
対象のメディアの現在の再生位置。ミリ秒。
位置を取得できない実装・フォーマットの場合は-1。
[SET有効]SETすると\![sound,option,~]の--seektime=と同じ効果。
値の書式も--seektime=と同じで、「:」を含まない場合はミリ秒単位の整数、「:」を含む場合は[[時:]分:]秒[.ミリ秒]として解釈する。頭に@をつけると現在の再生位置からの相対指定となり、負の値も指定できる(例:@-5000で5秒巻き戻し)。
対象のメディア全体の長さ。ミリ秒。
長さを取得できない実装・フォーマットの場合は-1。
対象のメディアが再生中なら1、さもなくば0。
一時停止中も1のままなので、必要ならpauseと併用する。
[SET有効]1をSETすると\![sound,play,~]、0をSETすると\![sound,stop,~]と同じ効果。
1をSETして再生を開始する場合、対象のメディアの現在のループ指定などはそのまま維持される。
対象のメディアが一時停止中なら1、さもなくば0。
[SET有効]1をSETすると\![sound,pause,~]、0をSETすると\![sound,resume,~]と同じ効果。
対象のメディアが\![sound,preload]で開かれたものなら1、さもなくば0。
対象のメディアがループ再生指定(\![sound,loop])なら1、さもなくば0。
対象のメディアで直近に発生したエラーメッセージ。エラーがなければ空文字列。
対象のメディアのタグに記録された曲名(タイトル)。
タグが無い場合や取得できない場合の挙動はこちら。
対象のメディアのタグに記録されたアーティスト名。
複数記録されている場合は「; 」(セミコロンと半角空白)区切りで連結される。
タグが無い場合や取得できない場合の挙動はこちら。
対象のメディアのタグに記録されたアルバムアーティスト名。
複数記録されている場合は「; 」(セミコロンと半角空白)区切りで連結される。
タグが無い場合や取得できない場合の挙動はこちら。
対象のメディアのタグに記録されたアルバム名。
タグが無い場合や取得できない場合の挙動はこちら。
対象のメディアのタグに記録されたジャンル。
複数記録されている場合は「; 」(セミコロンと半角空白)区切りで連結される。
タグが無い場合や取得できない場合の挙動はこちら。
対象のメディアのタグに記録された年(西暦)。
タグが無い場合や取得できない場合の挙動はこちら。
対象のメディアのタグに記録されたトラック番号。
タグが無い場合や取得できない場合の挙動はこちら。
対象のメディアのアルバムアートワークの画像ファイルパス。
タグが無い場合や取得できない場合の挙動はこちら。
meta.で始まるサウンドプロパティは、メディアファイルに埋め込まれたタグ情報(ID3、Vorbis Comment、MP4のメタデータatom、ASFの属性など)を取得する。すべて読み取り専用。
タグが存在しない場合や、何らかの理由で取得できなかった場合は、そのプロパティ自体が存在しないものとして扱われる。errorのように空文字列が返るのではなく、プロパティの参照自体が失敗する点に注意(存在しないプロパティ名を指定した場合と同じ挙動になる)。タグの有無が不定のメディアを扱う場合は、この前提でスクリプトを書くこと。
なおwav等のタグを持たないフォーマットでは、当然ながらすべてのmeta.プロパティが取得失敗となる。
サウンドプロパティのうちposition・playing・pauseは\![set,property,~]による書き込みに対応する。それ以外のサウンドプロパティは読み取り専用。
書き込みは対応するさくらスクリプトのタグと同じ処理に変換して実行される。したがってタグを直接書いた場合とまったく同じ結果になり、指定が無効な場合(既に停止しているメディアにpauseを書き込んだ場合など)もタグと同様に何も起こらない。
変換されるタグは要素名で対象を指定するため、同じ要素名のメディアが複数ある場合はindex(ID)で対象を指定しても、書き込みは要素名が一致する最も新しいメディアに対して行われる。読み取りとは対象が異なる場合があることに注意。
また書き込みは非同期に実行されるため、書き込んだ直後に同じプロパティを読み取っても結果がまだ反映されていない場合がある。