標準条件判断記述について
§リンク
  →チュートリアル一覧
  →GLOSSARY一覧
  →重要な情報一覧

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

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

§各種フォーマット
  色/RRGGBB形式
  標準シナリオ書式
  標準立ち位置指定
  標準透明度指定
  標準透明色指定
  標準補間指定
  標準条件判断書式
  標準「式」書式
  標準アニメシーケンス
   
■概要
sketch上で表記する標準的な条件判断の記述方法を解説します。
記述例は、一番下にあります。
 
■条件判断の最小単位(式)
条件判断を記述する最小単位は、比較関数、または「左辺値」「比較演算子」「右辺値」の構造を持っています。
関数は、@で始まる文字列で、@関数名(パラメータ数'p0'p1....) という形をしています。
条件を比較するための、比較演算子には、全角の「=≠≧>≦<」が利用できます。また、Cの比較演算子「==,!=,>=,>,<=,<」も同様に使用できます。
左辺値とは、比較演算子の左側に位置することの出来る値で、右辺値とは、比較演算子の右側に位置することの出来る値です。具体的には次の書式が利用できます。 各レジスタの詳細については「レジスタの利用状況」をご覧下さい
表記 左辺値 右辺値 説明
R* R1234, R35 通常レジスタの値です。
S* S1234, S35 システムレジスタの値です。
L* L18, L3 ローカルレジスタの値です。
F* F0〜F31 拡張フラグ領域の値で0か1になります。
ユーザーが自由に設定できるインデックス範囲は8〜15で、CMD_DEFCONFIGのユーザー拡張部分で値の受け渡しに使用できるため、め、コンフィグ画面(SystemSettings)の拡張に使われます。
各フラグの意味は次の通り。
0. 表示履歴にAAを適用する
1. 非公開
2. 簡易履歴表示を使用する
3. 拡大縮小時、常時高画質で演算する
4. abort/save/load/config のプロパティを左クリックで表示する
5-7. システム予約
8-15. ユーザー定義
16-23. ユーザー定義予約(現在は使用しないでください)
23-31. システム予約
Q* Q0 Q0〜で、特殊な調査用表記。
       
表記

解説

Q0 セーブデータがあれば1、なければ0。
Q1 セーブデータがあれば1、なければ0。ただしクイックセーブを調査対象にしない。
Q2 現在実行されているモードを取得する
 
戻値(10進)   説明
0x01(1)   メッセージ表示のキー待ち中
0x02(2)   文字列標準選択中
0x04(4)   選択アイテムコマンドによる選択中
0x08(8)   タイトルメニュー中
0x10(16)   それ以外の選択汎用
0x80(128)   非公開:ACTIONから呼び出された
Q3 現在実行されているOSを返す
 
戻値   説明
1   windows 95
2   windows 98
3   widoows Me
100   windows NT4.0
101   windows 2000
102   windows Xp
103   windows server 2003
104   windows VISTA / windows server 2008
105   windows 7 / windows server 2008 R2
Q4 強制画面モードを返す。
 
戻値   説明
0   なし(指定通り)
1   Yのほうが大きい画面
11   正方形
54   5:4 大抵は1280x1024
43   4:3
1609   ワイド 16:9
1610   ワイド 16:10
1616   それ以外のワイド
Q5 表記名の変更が行われていれば1。なければ0。
Q10 現在時間(ローカル時間)を取得します。戻り値は4桁の整数で hhmm です。hhは24時間制。
 

以下、Q11〜Q18は、Q10で取得したデータの値を返し、新規に時間を取得しない。

 
表記   戻値
Q11   西暦年(4桁)
Q12   月(1-12)
Q13   週(0:日-6:土)
Q14   日(1-31)
Q15   時間(0-23)
Q16   分(0-59)
Q17   秒(0-59)
Q18   ミリ秒(0-999)
Q20
|
Q29
拡張DLLがロードされているかどうか。下位一桁がDLL ID。
ロードされていれば1を、されていなければ0を返す
 

 

   
         
Mm* Mm24 音楽用既聴フラグの参照です。0か1になります。
Ms* Ms12 シーン用既遊フラグの参照です。0か1になります。
Mg* Mg300 イベントCG用既見フラグの参照です。0か1になります。
Mv* Mv12532 メッセージ既読フラグの参照です。0か1になります。
         
直値 800, -3,
0x24F8
× 直接的な数値です。32bit整数の範囲です。0xで始めると16進数を、0bで始めると2進数を記述できます。xおよびbは小文字でなければなりません。
         
@* @isValidItem - - 条件判断で利用される場合は単独(右辺値のない左辺値扱い)で利用しなければなりません。戻り値が0ならfalse、それ以外はtrue扱いされます。つまり常に、@func(params) != 0 と指定されているものとみなされます。関数の一覧は、式の項目をご覧下さい。
 
■式のAND
式どうしのANDを取るためには、半角のアンパサンドを使用します。
評価は左から順番に行われます。括弧による優先順位の変更は出来ません。ご注意下さい。
例(1204番レジスタが2で、かつ18番レジスタが4以上):R1204==2 & R18>=4
 
■式のOR
歴史的経緯から、式のORは入力する場所が異なっていることが多いのですが、最終的には、半角のセミコロン;で表現されます。
例(800番レジスタが3か、801番レジスタが4):R800==3; R801==4
 
■式の評価順
条件式は次の手順で評価されます。通常の数式と異なるのでご注意下さい。
1. 式を半角のセミコロンで分断する。分断した式をOr0〜Ornとします。
2. Or0 を半角のアンパサンドで分断しA0〜Anにします。A0〜Anは、最小単位になっているはずですから、それをひとつひとつチェックしながら、A0〜AnでANDをとります。
3. 2番の操作を、Or0〜Ornが無くなるまで繰り返し、それぞれの結果のORを取ります。
4. 3で得られた結果を返します。
平たく言えば、全ての式が左から評価され、評価結果に対して全てのANDが左から実行され、その結果に対して全てのORが左から実行されます。
もちろん、無駄な評価は行われません。例えば、R10==2; R11==1 なら、R10が2の段階で残りの式は評価されませんし、S23==4 & R11==8 & S21!=3 なら、S23が4でない時点で、残りの式は評価されません。
左辺や右辺や演算子の間には、半角スペースを入れることが出来ます。
 
■記述例
R1200==5   通常レジスタの1200番が5だったら。
S100!=1   システムレジスタの100番が1じゃなかったら。
R8==S25   通常レジスタ8番とシステムレジスタ25番が等しかったら
R50==R42+1   こんなことはできません!
MV12005==1   メッセージID 12005 番を読んでいたら。
MG321==0   0321.gyu を見ていなかったら。
R3==200&R20>=1; R3==201&R20==1   通常レジスタの3番が200かつ20番が1以上か、通常レジスタの3番が201かつ20番が1の時、真。
R20<=3&MG300==1   通常レジスタ20番が3以下で、0300.gyuを見ていたら、真。
Q0==0   セーブデータがなければ
@isStrEmpty(1'20)   文字列レジスタの20番の内容が空なら真。