ユーザ情報ダイアログやシステムによって提供される情報は,ツリー構造の標準プロパティに設定されます.これらの標準プロパティは,書き換えのイベントが起こった際にシステムによって強制的に書き換えられます.
ツリー構造において,各項目名をノード,ノード下のノードを子ノード,一つ上のノードを親ノードと呼びます.各ノードにはUNIXファイルシステム風の"777"からなるアクセス権が設定されます.これは,
| 7 | 7 | 7 | |
| | | | | | | |
| | | | | 全キャラクターにおけるアクセス制御(other) | |
| | | 同一ベンダーコードのキャラクターに関するアクセス制御(group) | ||
| 自キャラクターに関するアクセス制御(user) | |||
であり,それぞれの数字は,下記の意味を持ちます.
| 表現 | 許可された動作 |
|---|---|
| 7 | 読み,書き,下層への移動 |
| 5 | 読み,下層への移動 |
| 4 | 読み |
プロパティ中に指定する画像ファイルは,hp2, hp3形式のグラフィックファイルのことを指します.
\(ルート) -persona.prpからのインポート
User(555)\
LastName ユーザの名字
FirstName ユーザの名前
LastNameR ユーザの名字のよみ
FirstNameR ユーザの名前のよみ
Gender ユーザの性別
BirthYear 誕生年
BirthMonth 誕生月
BirthDay 誕生日
Address 都道府県
e-mail e-mailアドレス
UHID User Hashed ID(MD5)
System(555)\
MajorVersion 1 (1.00の場合)
MinorVersion 00 (1.00の場合)
OptionalVersion a, b, c …
Connect(000)\
(以下,接続タブの設定)
CommonConfig\(555)
Hotkey(550)\ ホットキー設定(キーバインド)
Show (元のサイズに戻す)
Hide (最少化)
LClick (左クリック)
RClick (右クリック)
Tray システムトレイに表示(1:オン,0:オフ)
UseAlphaBlend 半透明表示(1:オン,0:オフ)
[3.10以降]
UseAlphaEdge 画像の端を滑らかにする(1:オン,0:オフ)
[3.10以降]
Vendor(777)\ -share.prpからのインポート
(全ベンダー共有領域)
LF(774)\ -vd.prpからのインポート
(特定ベンダー内共有領域)
HPX-01(774)\
System\ -sys.prpからのインポート
SysConfig(550)\
Action(550)\
AlwaysTop 常に手前に表示(0/1)
AutoMsgBoxClick 0/1
AutoMsgBoxClose 0/1
CGEffect エフェクト(0?5)
CGSize サイズ(標準:0 1/2:1 2/3:2)
DoubleSpeed 0/1
FontSize フォントのサイズ(point)
MsgBoxFont フォント名
Sound 0/1
Fetch(550)\
AinoriFetch 相乗り更新の有無(0/1)
FetchMethod 手動:0 自動:1 指定:2
ConnectMethod LAN:0 ダイヤルアップ:1
NextFetchTiming 次回更新予定(年/月/日/時/分/秒)
FetchMethod=0の場合は空文字列
RejectExeFile EXEファイルを受け取らない(0/1)
Security(550)\
ClearDustBox 利用不可:0 利用可:1
ClearRecentFileList 0/1
ConnectLine 0/1
ExitWindows 0/1
OpenWeb 0/1
GetHTTP 0/1
ThrowHTTP 0/1
DropFilePath ドロップしたファイルのフルパス
ScriptUpdated
HttpResult Get/ThrowHTTP関数のHTTPリザルト
UpdateSuspend ScriptUpdatedが-2でかつこの値が2だった
場合は相乗り更新中になんらかのエラーで
処理が中断されたことを示す.
CancelStatus
TotalExecuteTime 累計の稼動時間(秒)[3.20以降]
ExecuteCount 累計の起動回数[3.20以降]
Vendor\ -aya.prpからのインポート
VdConfig(774)\
Name 春菜
NameR はるな
Version(*) 0.90(文字列)
Profile(*) プロフィール
MainWin(770)\ (キャラクターCG表示設定)
Place 表示スタイル
(下端:0 上端:1 アクティブタイトル
バー(以下ATB)上:2 Free:3 アクティブウィンドウ下端[1.50]:4 )
OffsetX 横オフセット値
OffsetY 縦オフセット値
PercentX ATBモード時の表示位置の設定(0-100)
0が右端で100に近づくタイトルバーの右に表示
CGEffectWait(*) MergeBitmapエフェクトつき使用時のウエイト値[ms]
標準値40
TransparentBorder
透明,不透明を分けるアルファ値の閾値(0-255)
[2.00以降]
Fixed キャラクターウインドウを固定する(0: 通常, 1:固定(マウスで移動不可))
[2.00以降]
DraggableRect ドラッグ可能領域[3.00以降]
MsgBox(770)\ 吹き出しに関する諸設定(MsgBox以下のプロパティ構造を参照)
FetchDataSet(*) 更新するデータセット
GetHTTPStrCode(*) GetHTTP関数で取得する文字列の文字コードを指定
(自動認識:0, SJIS:1, JIS:2, EUC:3, 4: UTF-8 )[1.01]UTF-8は[3.00]
(個別キャラクター利用領域)
HPX-02(774)\
(以下同様)
(他ベンダーコード)\
(他キャラクター型番)\
(以下同様)
Plugin(777)\ -プラグイン用(本体終了時に削除されます)
.\Vendor\VdConfig以下のキーで(*)印が付いている項目は,ReflectConfig関数を使用しなくても適用されます.
各キャラクターに関するベンダーが操作しうる設定,ならびに綾織プロパティ例:(\Vendor\LF\HPX-01\Vendor\以下)は,各キャラクターディレクトリのaya.prpからインポートされます.
また,各キャラクターごとのユーザ設定例:(\Vendor\LF\HPX-01\System\以下)は,同じくsys.prpからインポートされます.この二つのファイルは,各キャラクターのpsnファイルに納められたキャラクター共通暗号鍵で暗号化され,キャラクターの切り替え・終了時にファイルに記録されます.
上記サブツリーを除く,ベンダー名ノード以下のベンダー間共有領域に設定されたプロパティは,ベンダーディレクトリ内のvd.prpに記録されます.vd.prpは,各キャラクターのpsnファイルに記録されたベンダー共通暗号鍵で暗号化されます.
また,\Share以下はpersona.exeと同じディレクトリのshare.prpに,ルート直下の\User\以下と\System\以下はpersona.prpに記録されます.share.prpとpersona.prpはpersona.exe内埋めこみの標準暗号鍵で暗号化されます.
GetProperty,PutPropertyなどのプロパティ操作関数においては,プロパティは\からはじまるフルパスで指定します.ただし,綾織(ayacコンパイラ)では\は制御文字として扱われるので,エスケープして\\と書く必要があります.存在しないプロパティを参照した場合,NULLを返します.
Talk( GetProperty( "\\User\\LastName" ) + "さん,こんにちは\n" ); //表示モードをアクティブタイトルバー追尾モードにセット PutProperty( "\\Vendor\\LF\HPX-01\\VdConfig\\MainWin\\Place", "2" );
ペルソナウェアVer.0.93シリーズとの互換性対策として,フルパス指定でない(\から始まらない)プロパティ指定をマッピングします.
| キー | マッピング先 |
|---|---|
| LastName | \User\以下の同名プロパティにマッピング |
| FirstName | |
| Gender | |
| BirthYear | |
| BirthMonth | |
| BirthDay | |
| Address | |
| 上記以外 | \Vendor\(ベンダーコード)\(キャラクター型番)\Vendor\以下の同名プロパティにマッピング |
| 値 | 解説 |
|---|---|
| 0 | 成功 |
| 8 | [実行可能ファイル配信禁止]時に,実行形式ファイルの指定があった |
| -2 | ユーザによる中止 |
| -6 | サーバのデータが未更新 |
| -12 | mirror.fetの異常 |
| -18 | ミラーサイトの消失 |
| -32 | [2.00系]MD5の不一致エラー又はファイルの差し替えに失敗 [3.00以降]ファイルの差し替えに失敗(ファイルがロックされていて削除 or 移動できない) |
| -35 | [3.00以降]キャラクター更新時のMD5不一致エラーの検出(MD5エラー) |
| その他の値 | HTTPのエラーコードに-1をかけて符号反転したもの |
サーバにアップロードされたindex.fetファイルに記録された更新データファイルの情報が,実際にアップロードされたファイルと異なる場合に発生します.
index.fetを作成するときのファイルと,実際にサーバ上にアップロードしたファイルに違いがないか確認してください.違いがあれば,index.fetを作成するときのファイルをアップロードするか,もう一度index.fetを作成してアップロードしなおすことで解決できます.
index.fetに記載された追加データセット名をコンマ区切りで指定することで,更新時にダウンロードするデータセットの分岐および追加が可能です.追加データセットは,1セット=1サブディレクトリとし,データセット名と同名のディレクトリ以下に配置されます.
標準セットは必ずダウンロードされ,それに指定したセットを加えたものが更新時にダウンロードされます.前回更新時から,あるデータセット指定を削除した場合,更新を行った時点でそのデータセットに含まれるファイルが実際にローカルから削除されます.
キャラクターウインドウドラッグ時にキャラクターを移動できる領域の指定を行います.
指定された部分以外をドラッグしてもキャラクターウインドウは移動しません.このプロパティキーには ドラッグ可能な矩形領域を"[左上x座標], [左上y座標], [右下x座標], [右下y座標]"の形式でコンマ区切りで指定します.
また,ドラッグ可能領域の指定は画像中の位置情報"Draggable"でも行えます. 但しプロパティの指定がある場合はこの指定は無視されます.
いずれのドラッグ可能領域の指定がない場合は,ウインドウのどこをドラッグしても移動することができます(従来どおり)
また,これらのプロパティはReflectConfig(W)指定時に適用されます.
\Vendor\LF\HPX-01\Vendor\VdConfig\MsgBox\
SizeW 一行の文字数( 5-50 )
SizeH 一頁の行数( 1-32 )
PositionX 原点からの横位置
PositionY 原点からの縦位置
BGColor 背景色( RRGGBB形式 )
FontColor 標準のフォント色指定( RRGGBB形式 ) 例. 赤色: FF0000
DisableCancel(*) 1でChoice,Select,Message,Talk,EditBoxの
入力待ちキャンセル禁止.
DisableSkip(*) 1でTalk中の左クリック,CTRLによるメッセージスキップ禁止
ChoiceTimeLimit
EditTimeLimit
HighlightText[1.50] 選択肢での選択された文字列の色を指定( RRGGBB形式 )
""を指定した場合はシステムデフォルト値になる.
Highlight[1.50] 選択肢での選択色の指定( RRGGBB形式 )
""を指定した場合はシステムデフォルト値になる.
UrlColor[1.50] クリッカブルURLの色指定( RRGGBB形式 )
""を指定した場合はシステムデフォルト値になる.
UrlStyle[1.50] クリッカブルURLに下線を引くかどうか.
0なら下線なし,1あるいは""なら下線あり.
Style[1.50] 表示スタイル
DrawRange[1.50] 描画領域
FrameTopBMP[1.50] 背景画像1
FrameMiddleBMP[1.50] 背景画像2
FrameBottomBMP[1.50] 背景画像3
BackgroundBMP[1.50] 背景画像
WaitCursorBMP[1.50] クリック待ち時のカーソルにする画像ファイル
PageCursorBMP[1.50] ページ送り待ち時のカーソルにする画像ファイル
(画像ファイル名 or ""(標準カーソル))
WaitCursorPos[1.50] クリック待ち時のカーソルの表示座標を指定
PageCursorPos[1.50] ページ送り待ち時のカーソルの表示座標を指定
("" or "x座標,y座標" 例:"200,300")
WaitCursorBlink[1.50] クリック待ち時にカーソルを点滅させるかどうかの指定
PageCursorBlink[1.50] ページ送り待ち時にカーソルを点滅させるかどうかの指定
(0:非点滅 1:点滅)
ScrollUpBMP[1.50] 座標と画像ファイルの指定
ScrollUpPos[1.50] 同上
ScrollDownBMP[1.50] 同上
ScrollDownPos[1.50] 同上
CloseBMP[3.00] 同上
ClosePos[3.00] 同上
EditTimeLimitMode[3.00] EditBoxのタイムアウトモード
0:EditTimeLimit時間経過したら終了する(従来どおり)
1:EditTimeLimit時間入力がなかったら終了する(新規)
PositionMode[3.00] 吹き出しの表示位置の制御を行うため以下の数字の指定
が可能です.
0: デフォルト表示(従来と同様,このプロパティが
未指定の場合もこのモードが適用されます)
1: キャラクタウィンドウからの相対位置指定
キャラクターウインドウの左上を基準に
PositionX, PositionYずらした場所に表示します.
PositionMode=0のときと違い,と吹き出し表示方
向の制御,及び画面外に出た際の補正処理も入り
ません
2: スクリーン座標の絶対位置指定
スクリーン座標におけるPositionX, PositionY
座標に吹き出しを表示する
PositionXL[3.00] PositionMode=0の場合に吹き出しが左側に表示する際の
み適用するPositionXです.この値の指定がある場合は,
PositionXの指定は無効となります.
PositionXR[3.00] PositionMode=0の場合に吹き出しが右側に表示する際の
み適用するPositionXです.この値の指定がある場合は,
PositionXの指定は無効となります.
.\Vendor\VdConfig以下のキーで(*)印が付いている項目は,ReflectConfig関数を使用しなくても適用されます.
Style: 表示スタイルの設定
[設定可能な値] 0 or "": 通常表示
背景に画像を貼り付けたい場合は,
BackgroundBMPを使用することができます.
1: 画像ファイルによる固定枠表示BackgroundBMPで指
定したグラフィックファイルの左下を透明色として,
吹き出しの形状を変更します.
BackgroundBMPとDrawRangeを必ず指定する必要があ
ります.この形式の場合のみSizeW,SizeHで指定し
た幅は無視されます.
2: 画像ファイルによる可変枠表示
FrameBitmapに必ず吹き出しの枠となる画像ファイル
を指定する必要があります.
FrameTopBMP, FrameMiddleBMP, FrameBottomBMPと
DrawRangeを必ず指定する必要があります.
BackgroundBMP: 吹き出しの背景に貼り付ける画像ファイル
[設定可能な値] "" or [画像ファイル名]
DrawRange: Style指定が1の際に使用される吹き出しの表示可能
領域を指定します.
[設定可能な値] [描画領域左上点X座標],[左上点Y座標],
[描画可能領域左下点X座標],[左下点Y座標]
指定方法は表示可能領域の左上点 x,y座標
右下点x,y座標をそれぞれコンマ区切りで指定する
また,値をマイナスに指定することにより画面右端
からのドット数を指定することができます
ex) 1.左上点 20, 20 右下点 200, 200の場合
PutProperty( "VdConfig\\MsgBox\\DrawRange", "20,20,200,200");
2.左上点 20, 20 右端から 20, 20の場合
PutProperty( "VdConfig\\MsgBox\\DrawRange", "20,20,-20,-20");
FrameTopBMP: Style指定が2の際に使用される吹き出し枠上部のグラ
フィックファイルを指定します.
[設定可能な値] (左側画像ファイル),(中央画像ファイル),(右側画像ファイル)
吹き出しを以下のように9分割して考えた場合の0,1,2
部分に相当する画像ファイルをコンマ区切
りで指定します.また,各画像ファイルの高さを合わ
せる必要があります.
-------------
| 0 | 1 | 2 |
-------------
| 3 | 4 | 5 | (図1)
-------------
| 6 | 7 | 8 |
-------------
FrameMiddleBMP: Style指定が2の際に使用される吹き出し枠中央部のグラ
フィックファイルを指定します.
[設定可能な値] (左側画像ファイル),(中央画像ファイル),(右側画像ファイル)
吹き出しを図1のように9分割して考えた場合の3,4,5
部分に相当する画像ファイルをコンマ区切
りで指定します.また,3,5に指定した画像ファイル
の高さは合わせる必要があります.4に指定した画像
ファイルは吹き出し全体の背景として,吹き出し全
体サイズの中央に配置されます.
FrameBottomBMP: Style指定が2の際に使用される吹き出し枠下部のグ
ラフィックファイルを指定します.
[設定可能な値] (左側画像ファイル),(中央画像ファイル),(右側画像ファイル)
吹き出しを図1のように9分割して考えた場合の6,7,8
部分に相当する画像ファイルをコンマ区切
りで指定します.また,6,7,8に指定した画像ファイ
ルの高さは合わせる必要があります.
transparentborder
ScrollUpBMP: スクロールアップボタンに指定する画像ファイル(hp2,hp3)
ScrollDownBMP: スクロールダウンボタンに指定する画像ファイル
CloseBMP: 閉じるボタンに指定する画像ファイル
[設定可能な値] "" or [画像ファイル名] or
[通常時の画像], [ボタンにフォーカスがきた時の画像],
[ボタンを押した時の画像]
空白を指定した場合はシステム標準の画像が使われ
ます.
また,3つの画像ファイルをコンマ区切りで指定する
ことで,通常表示時画像ファイル,ボタンにマウスが
乗りフォーカス時が来た際の画像ファイル,ボタンを
押した時の画像ファイルをそれぞれ指定することがで
きます.
ScrollUpPos: スクロールアップボタンの表示座標を指定
ScrollDownPos: スクロールダウンボタンの表示座標を指定
ClosePos: 閉じるボタンの表示座標を指定
[設定可能な値] "" or [表示X座標],[表示Y座標]
ボタンの表示座標ををコンマ区切りで指定する
ex) 座標( 200, 300 )に表示する場合
PutProperty( "VdConfig\\MsgBox\\ScrollDownPos", "200,300");
文字描画領域,ScrollUpボタン,ScrollDownボタン,クリック待ちカーソル,ページ送りカーソルに関しては,?Posプロパティでの指定のほかに,画像に埋め込んだ位置情報によりその表示位置を設定することができます.指定方法としては各ボタンを表示させたい位置を基点とした矩形の位置情報を作成し,「位置情報」の欄に該当するプロパティ名をScrollUpPos等の位置指定を行うプロパティと同名のものを指定します.
描画文字領域DrawRangeの場合は,左上点だけでなく,矩形で指定した領域全体が文字の描画範囲となります.
ただし,プロパティによる指定の方が優先度が高いため,プロパティによる位置設定がなされていた場合は位置情報による位置設定は無視されます.
吹き出し形状がStyle=2の場合,FrameTop,Middle,Bottomの各プロパティにファイル名を指定する必要があります.その際,ワイルドカード'?'を用いた省略指定が行えます.
PutProperty( "VdConfig\\MsgBox\\FrameTopBMP", "vb?.hp2" );
上の設定の'?'の部分に自動的に数字が挿入され,以下の設定を行ったのと同様になります.
PutProperty( "VdConfig\\MsgBox\\\FrameTopBMP", "vb0.hp2, vb1.hp2, vb2.hp2" \
);
PutProperty( "VdConfig\\MsgBox\\\FrameMiddleBMP", "vb3.hp2, vb4.hp2, \
vb5.hp2" );
PutProperty( "VdConfig\\MsgBox\\\FrameBottomBMP", "vb6.hp2, vb7.hp2, \
vb8.hp2" );
これにより簡単に複数のファイルを指定することができます.
プロパティに制限時間を指定することにより,一定時間後に入力をタイムアウトさせることが可能です.
AddItem-Choice構文,Select関数の場合はVdConfig\MsgBox\ChoiceTimeLimitに,EditBox関数の場合はVdConfig\MsgBox\EditTimeLimitにタイムアウト時間をms単位で指定します.
タイムアウトした際,各関数は右クリックによるキャンセル時と同じ値を返します.キャンセルによる終了か,タイムアウトによる終了かを判断するには,プロパティ\Vendor\(VdCode)\(TYPE)\System\CancelStatusの値を参照します.タイムアウトした場合,この値は0以外にセットされます.
また,ChoiceTimeLimit, EditTimeLimitともに,タイムアウトを行うと自動的に値が0(時間制限なし)にセットされます.
またVer3.00からEditTimeLimitModeプロパティにてEditBoxのタイムアウトの方法を変更することができます.あわせて参照してください。
PutProperty( "VdConfig\\MsgBox\\ChoiceTimeLimit", "3000" );
Talk("この選択肢は3秒で自動的に終了します\n");
AddItem("手動終了")
{
Talk("手動で終了しました.\n");
}
AddCancelItem
{
if( GetProperty("\\Vendor\\LF\HPX-01\\System\\CancelStatus") == "0" )
Talk("キャンセルされました.\n");
else
Talk("タイムアウトで終了しました.\n");
}Choice;
//時間の設定
PutProperty( "VdConfig\\MsgBox\\EditTimeLimit", "5000" );
Talk("この入力ボックスは5秒で自動的に終了します.\n");
str = EditBox( 0, 0, "" );
if( str != NULL ) {
Talk("以下の文字が入力されました.\n");
Talk( str );
} else {
if( GetProperty( P + "System\\CancelStatus") == "0" )
Talk("入力はキャンセルされました.\n");
else
Talk("タイムアウトで終了しました.\n");
}
}
アルファチャンネルつき画像をキャラクター画像として使用すると,透明部分との 境目に太く黒い線がでることがあります.これはアルファ値が1以上のピクセルが不透明として処理している為, 特に境目などの薄く色が入っている部分(アルファ値が小さい部分)でも黒として表示される為に起こります.
この現象を緩和する為に透明,不透明を分けるアルファ値の閾値をこのパラメータで指定できます.この値には0〜255の値を代入することが可能で,0に近づくほど薄い色でも不透明と判断する為黒い部分が増えます(薄い色は黒になります).逆に255に近づくほど濃い色でないと不透明と判断しないので黒い部分が減ります.標準値は1です.この設定を行うことで"端を滑らかにする"の設定がオフの場合でもαチャンネル付き画像をそこそこ綺麗に画像の端を表示することが可能になります.