ExHIBITにおけるレジスタの使用について
§リンク
  →チュートリアル一覧
  →GLOSSARY一覧
  →重要な情報一覧

§操作
  プロジェクトエディタ
  演出エディタ(演出ビュー)

§解説
  RSD/RLD
  演出の再利用
  オブジェクトID一覧
  キャラの名前
  キャラ作成用画像
  キャラの表示位置
  選択アイテムの返値
  デバッグ手法
  描画フィルタ
  フォントの設定
  プロジェクト設定項目一覧
  ブロック
  ボリューム
  リソースIDとファイル
  レイヤー構造詳細
  レジスタの利用状況

§各種フォーマット
  色/RRGGBB形式
  標準シナリオ書式
  標準立ち位置指定
  標準透明度指定
  標準透明色指定
  標準補間指定
  標準条件判断書式
  標準「式」書式
  標準アニメシーケンス
   
■概要
ExHIBITでは、特定の領域をシステム予約していて、ユーザーが任意に利用できる領域は限られています。ここでは、使用できるレジスタの番号を解説します。
 
■通常レジスタ
通常レジスタは、32bit整数の値を保持できるレジスタです。
あるプレイの間だけ有効で、他のプレイからは参照できません(全てのプレイから共通して参照できるレジスタを、システムレジスタと呼びます)
通常レジスタは、game/userdata/* に保存されています。
ExHIBITにおける通常レジスタの利用状況は、次の通りです。
番号 用途
0-99 ExHIBITが内部で利用しています。
外部には3番のみが公開されていて、ロード時のロードブロックの番号を保持しています。
100-999 ExHIBITが、キャラ関連の情報を保持するのに使用しています。
キャラ情報の保持に、1キャラあたり8個のレジスタが使われます(つまり、100+(8*キャラ数)番までの通常レジスタを使用します)そのため、112キャラ以上のキャラを登録しようとすると、この領域をはみ出します。そのため、そういうプロジェクトでは、ユーザーは予め任意に利用できるレジスタ番号を確認しておかなければなりません。
登録キャラが100キャラを越えるとsketchがワーニングを出します。
1000- 上記の制限に引っかからなければ(登録キャラが112未満なら)、ユーザーが任意に使用できます。デフォルトでは、2045まで使用できますが、「プロジェクトの設定」で使用個数を増やすこともできます。
 
■文字列レジスタ
文字列レジスタは、参照範囲に関しては通常レジスタと同じですが、値として文字列を保持できます。
ただし、現在ではほとんど使用されることはありません。
文字列レジスタは、game/user/* に保存されています。
ExHIBITにおける文字列レジスタの利用状況は、次の通りです。
番号 用途
0-9 ExHIBITが内部で予約しています。
10- ユーザーが任意に使用できます。デフォルトでは、255まで使用できますが、「プロジェクトの設定」で使用個数を増やすこともできます。ver.1.63以降は、10-199までが利用でき、必ず256個以上の文字列レジスタが必要です。
200-255 ver.1.63以降はシステムによって予約されています。そのためver.1.63以降、文字列レジスタは、最低でも256個必要です。
256- ユーザーが任意に使用できます。「プロジェクトの設定」で設定した個数-1まで利用できます。
 
■システムレジスタ
システムレジスタは、32bit整数の値を保持できるレジスタですが、通常レジスタと違って、どのプレイからも共有されています。主に既読等のリソース管理に使われているため、利用領域管理が大変デリケートになります。そのため、現在ではローカルシステムレジスタが別途定義され、システムレジスタを直接設定/参照することは推奨されていません。
システムレジスタは、game/userdata/*.system.dat に保存されています。
ExHIBITにおけるシステムレジスタの利用状況は、次の通りです。
番号 用途
0-42 retouchが内部で使用しています。コンフィグの設定等が保存されていて、基本的にユーザーは利用できません。特にグレー文字は変更されたり、バージョンによって定義されていない可能性があります。
 
0 使用不可(FLUSH用)
1 起動回数
2 パフォーマンス値
3 同上
4 未使用
5 直前にセーブ/ロードされたアイテム番号
6 未使用
7 オートセーブインデックス
8 未使用
9 未使用
10- 以下は、retouchのバージョンによって異なります。最新の詳細情報は、RetouchCommon.h参照。
43-88 開始の値は、アプリケーションによって異なります。
主にキャラクター関連の値が保存されています。
89-108 開始の値は、アプリケーションによって異なります。
ローカルシステムレジスタがマップされている領域で、ユーザーが任意に操作できるのはここになります。必ず、ローカルシステムレジスタの番号を利用してアクセスして下さい。直接システムレジスタの番号でアクセスしてはいけません。
プロジェクトの設定」で指定された個数が確保されるため、最後の番号も変化します。
109- リソースマネージャが管理に利用する領域です。
先頭の番号は、アプリケーションによって異なるため、直接システムレジスタの番号ではアクセスできません。ユーザーがこの領域に書き込みを行いたい場合は、演出ビューの右クリックメニューから、ExHIBITコマンドを選択し、「リソース管理の手動設定」サブコマンドを利用して下さい。参照は、各条件判断文の中で記述できます。詳細は、「標準条件判断書式」を参照して下さい。
 
■ローカルシステムレジスタ
システムレジスタの管理が複雑になったため、システムレジスタの一部を切り取って、独自の番号でアクセスできるようにしたレジスタです。ユーザーが任意にシステムレジスタを使用したい場合は、こちらを利用します。システムレジスタの一部なので、game/userdata/*.system.dat に保存されています。
ExHIBITにおけるローカルシステムレジスタの利用状況は、次の通りです。
番号 用途
0-9 ExHIBITが内部で利用しています。非公開(グレーの文字)部分は変更される可能性があります。
 
0 右クリックメニューの表示エフェクト(0:なし 1:フェード 2:アニメーション)
1 save/load/config メニューの表示エフェクト(0:なし 1:フェード 2:アニメーション)
2 メッセージウィンドウの表示エフェクト(0:なし 1:フェード 2:アニメーション)
3 高音質音声設定用フラグ(0:通常 1:高音質)
4 拡張フラグ領域(下記参照)
5 1文字の表示時間 (0:機能自体を使用しない 1以上:1文字表示時間 ms)
※現状では、有効にすると禁則が無効になります。
6 メッセージソケット情報の保存
7 旧clearGame(endingId)用。要変更。ここからendingIdの最大個数が利用される。
8 キャラの補正系データ保存
9 メインメッセージフレームをコンフィグで変更できるタイプのゲームに利用される。現在利用されているメインフレームのID。
10- ユーザーが任意に使用できます。ver.1.62以前は「プロジェクトの設定」で設定した個数-1まで利用できます。
 
■拡張フラグ領域
コンフィグの項目をユーザーが拡張するために用意されたフラグ領域で、実際はローカルシステムレジスタの4番にマップされています。そのため、0〜31のインデックスが利用できますが、ユーザーに解放されているのは8〜31です。
ExHIBITにおける拡張フラグ領域の利用状況は次の通りです。
番号 意味
0 1:履歴一覧表示にアンチエリアシングを使用します
1 システム予約
2 1:簡易履歴表示を使用します
3 1:拡大縮小の途中部分にも高画質(で重い)アルゴリズムを適用します
4 1:abort/save/load/configのコントロールへの右クリックと左クリックを入れ替えます(1.20以降)
5 1:スキップ時の画面更新を最小にしてスキップ速度を優先します(1.72 rev.5以降)
6 システム予約
7 1:行単位セーブが有効
8-15 ユーザーが任意に使用できます。
16-23 ユーザー領域として予約
24-31 システム予約