WOLF RPGエディター(ウディタ)/変数【サイトトップへ戻る】
■システム変数[77〜120]の説明
(更新:2024/05/06)


システム変数[77〜120]について解説します。


ショートカット
Sys77:現在の[年]
Sys78:現在の[月]
Sys79:現在の[日]
Sys80:現在の[時]
Sys81:現在の[分]
Sys82:現在の[秒]
Sys83:未使用
Sys84:画面サイズ(0=320x240,1=640x480 2=800x600 他=-1)
Sys85:描画モード(0=3Dモード,1=ソフトウェア)
Sys86:未使用
Sys87:仲間1影番号(-1=主人公と同じ)
Sys88:仲間2影番号(-1=主人公と同じ)
Sys89:仲間3影番号(-1=主人公と同じ)
Sys90:仲間4影番号(-1=主人公と同じ)
Sys91:仲間5影番号(-1=主人公と同じ)
Sys92:未使用
Sys93:未使用
Sys94:未使用
Sys95:再生中BGM音量[%]
Sys96:再生中BGMテンポ/周波数[%]
Sys97:再生中BGS音量[%]
Sys98:再生中BGSテンポ/周波数[%]
Sys99:未使用
Sys100:BGM音量補正[%]
Sys101:BGS音量補正[%]
Sys102:SE音量補正[%]
Sys103:未使用
Sys104:Xスクロール値
Sys105:Yスクロール値
Sys106:未使用
Sys107:未使用
Sys108:[読]現フレーム開始からのコマンド処理数
Sys109:未使用
Sys110:現在の乱数のシード(種)
Sys111:[読]画面アクティブ状態(1=アクティブ)
Sys112:[読]テストプレイ中?(1=YES)
Sys113:未使用
Sys114:未使用
Sys115:[読]Game.exeバージョン(x100)
Sys116:[読]画面サイズX
Sys117:[読]画面サイズY
Sys118:[読]タイルサイズ
Sys119:[読]基本画面倍率x[1-3]
Sys120:リセット履歴 0=ナシ/1=F12/2=コマンド
【システム変数[0〜34]の説明ページを開く】
【システム変数[35〜76]の説明ページを開く】
【システム変数[121〜148]の説明ページを開く】
【システム文字列[0〜49]の説明ページを開く】
【システム文字列[50〜76]の説明ページを開く】

「変数」や「システム変数・システム文字列」に関する基本説明は、別ページに記載しています。
【変数の説明を開く】
【システム変数・システム文字列の説明を開く】


  
■[Sys77:現在の[年]]
■[Sys78:現在の[月]]
■[Sys79:現在の[日]]
■[Sys80:現在の[時]]
■[Sys81:現在の[分]]
■[Sys82:現在の[秒]]

[読み取り専用]

パソコン内で動いている時計から現在の年月日時分秒を取得します。



▼【使用例】現在の年月日時分秒を表示

【イベントコード表示】

■文章:\sys[77]年\sys[78]月\sys[79]日\sys[80]時\sys[81]分\sys[82]秒

▼動作イメージ




上記の設定では「8日」「6分」などと十の位に「0」の表示がありませんが、
「08日」「06分」などと十の位に「0」を表示する場合は、以下のように設定してください。

【イベントコード表示】

■変数操作: このEvのSelf0 = Sys78:現在の[月] / 10
■変数操作: このEvのSelf1 = Sys78:現在の[月] % 10
■変数操作: このEvのSelf2 = Sys79:現在の[日] / 10
■変数操作: このEvのSelf3 = Sys79:現在の[日] % 10
■変数操作: このEvのSelf4 = Sys80:現在の[時] / 10
■変数操作: このEvのSelf5 = Sys80:現在の[時] % 10
■変数操作: このEvのSelf6 = Sys81:現在の[分] / 10
■変数操作: このEvのSelf7 = Sys81:現在の[分] % 10
■変数操作: このEvのSelf8 = Sys82:現在の[秒] / 10
■変数操作: このEvのSelf9 = Sys82:現在の[秒] % 10
■文章:\sys[77]年\self[0]\self[1]月\self[2]\self[3]日\self[4]\self[5]時\self[6]\self[7]分\self[8]\self[9]秒

▼動作イメージ




▼【使用例】時間によって挨拶が変わる

現在の時間に合わせて挨拶を変えます。

【イベントコード表示】

■条件分岐(変数): 【1】 Sys80:現在の[時] が 5 未満
         【2】 Sys80:現在の[時] が 11 未満
         【3】 Sys80:現在の[時] が 18 未満
-◇分岐: 【1】 [ Sys80:現在の[時] が 5 未満 ]の場合↓
|■文章:こんばんわ!
|■
-◇分岐: 【2】 [ Sys80:現在の[時] が 11 未満 ]の場合↓
|■文章:おはよう!
|■
-◇分岐: 【3】 [ Sys80:現在の[時] が 18 未満 ]の場合↓
|■文章:こんにちわ!
|■
-◇上記以外
|■文章:こんばんわ!
|■
◇分岐終了◇

応用として、時間によって建物に入れるかどうかが変わったり、
年月日の取得から12月25日などの特定の日には、
何らかの特別なイベントが発生するようなイベントを作る事もできます。



他の使用例として、年月日を指定すると曜日や日数などが分かるイベントを作る事もできます。
【年月日から曜日や日数を算出するページを開く】


▲トップへ戻る▲


  
■[Sys84:画面サイズ(0=320x240,1=640x480 2=800x600 他=-1)]
[読み取り専用]

ゲーム画面のサイズを調べる時に使用しており、ウディタ[2.10]まで使われていました。

システム変数[84]=0 → 320×240(倍)
システム変数[84]=1 → 640×480
システム変数[84]=2 → 800×600
システム変数[84]=-1上記以外の画面サイズ



ウディタ[2.20]以降では、
システム変数[116:[読]画面サイズX][117:[読]画面サイズY]で画面サイズを調べる形になり、
このシステム変数[84:画面サイズ(0=320x240,1=640x480 2=800x600 他=-1)]使われなくなりました。



▼古いコモン素材を使う場合の注意点

ウディタ[2.20]が公開される以前(2017年3月22日以前)に作られたコモン素材では、
このシステム変数[84:画面サイズ(0=320x240,1=640x480 2=800x600 他=-1)]が使われている事があります。

もしもゲーム画面のサイズが「320×240(倍)」「640×480」「800×600」以外を使っている場合で、
システム変数[84:画面サイズ(0=320x240,1=640x480 2=800x600 他=-1)]が使われているコモン素材を使う場合は、
以下の部分を修正する必要があります。

▼修正前の設定例
■条件分岐(変数): 【1】 Sys84:画面サイズ(0=320x240,1=640x480 2=800x600 ・ が 0 と同じ
         【2】 Sys84:画面サイズ(0=320x240,1=640x480 2=800x600 ・ が 1 と同じ
-◇分岐: 【1】 [ Sys84:画面サイズ(0=320x240,1=640x480 2=800x600 ・ が 0 と同じ ]の場合↓
|■変数操作: CSelf10[画面サイズX] = 320 + 0
|■変数操作: CSelf11[画面サイズY] = 240 + 0
|■
-◇分岐: 【2】 [ Sys84:画面サイズ(0=320x240,1=640x480 2=800x600 ・ が 1 と同じ ]の場合↓
|■変数操作: CSelf10[画面サイズX] = 640 + 0
|■変数操作: CSelf11[画面サイズY] = 480 + 0
|■
-◇上記以外
|■変数操作: CSelf10[画面サイズX] = 800 + 0
|■変数操作: CSelf11[画面サイズY] = 600 + 0
|■
◇分岐終了◇

▼修正後の設定例
■変数操作: CSelf10[画面サイズX] = Sys116:[読]画面サイズX + 0
■変数操作: CSelf11[画面サイズY] = Sys117:[読]画面サイズY + 0


▲トップへ戻る▲


  
■[Sys85:描画モード(0=3Dモード,1=ソフトウェア)]
[読み取り専用]

システム変数[85]=03Dモード
システム変数[85]=1ソフトウェアモード

ゲーム画面を表示する描画の処理方法を取得する時に使います。

ソフトウェアモードは、処理速度が遅くなる傾向があるので、
プレイヤーがソフトウェアモードに切り替えてゲームを実行した時には、
処理落ちしやすい演出(エフェクト表示など)を減らすなどの対策を行う事ができます。



モードの設定は、ウディタの画面上の「ゲーム設定 → コンフィグを開く」で設定できます。




また「Config.exe」のファイルを使う事で、プレイヤーがモードを変える事もできます。




▲トップへ戻る▲


  
■[Sys87:仲間1影番号(-1=主人公と同じ)]
■[Sys88:仲間2影番号(-1=主人公と同じ)]
■[Sys89:仲間3影番号(-1=主人公と同じ)]
■[Sys90:仲間4影番号(-1=主人公と同じ)]
■[Sys91:仲間5影番号(-1=主人公と同じ)]

[読み取り・書き込み可能]

仲間の足元に表示する影番号を設定します。



主人公の影番号はシステム変数[36:主人公の影番号(Sys9)]にて設定します。
【システム変数[36:主人公の影番号(Sys9)]のページを開く】



システム変数[87〜91]に設定する値はシステムDB[9:キャラ影グラフィック名]データIDになります。



初期値は以下のとおりです。
システム変数[87]0
システム変数[88]0
システム変数[89]0
システム変数[90]0
システム変数[91]0



ゲームの基本設定」にある「キャラクターの影」の設定が「使わない」になっている場合は、
システム変数[87〜91]の値に関係なく、影は表示されません。




▲トップへ戻る▲


  
■[Sys95:再生中BGM音量[%]]
■[Sys96:再生中BGMテンポ/周波数[%]]
■[Sys97:再生中BGS音量[%]]
■[Sys98:再生中BGSテンポ/周波数[%]]

[読み取り・書き込み可能]

再生中のBGM・BGSの音量やテンポを取得&設定します。

新しいBGM・BGSを読み込みますと、この変数の値が更新されます。


▲トップへ戻る▲


  
■[Sys100:BGM音量補正[%]]
■[Sys101:BGS音量補正[%]]
■[Sys102:SE音量補正[%]]

[読み取り・書き込み可能]

BGM・BGS・SEの音量補正を取得&設定します。

上記のシステム変数[95:再生中BGM音量[%]][97:再生中BGS音量[%]]とは異なり、
BGMやBGSの演奏内容が変わっても、この変数の値は変わりません。

初期値は以下のとおりです。
システム変数[100:BGM音量補正[%]]100
システム変数[101:BGS音量補正[%]]100
システム変数[102:SE音量補正[%]]100



システム変数[100:BGM音量補正[%]]システム変数[101:BGS音量補正[%]]の値を変えると、
リアルタイムでBGMやBGSの音量が変わります。

しかしシステム変数[102:SE音量補正[%]]の場合は、音量補正がSEの演奏開始時のみに作用するため、
SE演奏中にシステム変数[102:SE音量補正[%]]の値を変えても、演奏中のSEの音量は変わりません。



システム変数[100:BGM音量補正[%]]はピクチャで表示する動画の音量にも作用します。

動画の音量は【ピクチャ表示】を実行した時のシステム変数[100:BGM音量補正[%]]の値の合わせて音量が変わります。
BGMとは異なり、動画再生中にシステム変数[100:BGM音量補正[%]]の値を変えても、動画の音量は変わりません。

動画再生中の音量を変えたい場合は【ピクチャエフェクト】にある動画ピクチャ用の設定を使ってください。





▼【使用例】音量ON/OFF

[A]キーを押す事でBGM・BGS・SEのミュート状態のON/OFFを切り替えます。

【イベントコード表示】

■キー入力:CSelf10[キー]キーボード(100〜) [キーコード[130]のみ判定] ( Aキー )
■条件分岐(変数): 【1】 CSelf10[キー] が 0 と同じ
         【2】 CSelf11[二重実行防止] が 1 と同じ
         【3】 Sys100:BGM音量補正[%] が 0 と同じ
-◇分岐: 【1】 [ CSelf10[キー] が 0 と同じ ]の場合↓
|■変数操作: CSelf11[二重実行防止] = 0 + 0
|■
-◇分岐: 【2】 [ CSelf11[二重実行防止] が 1 と同じ ]の場合↓
|■
-◇分岐: 【3】 [ Sys100:BGM音量補正[%] が 0 と同じ ]の場合↓
|■変数操作: CSelf11[二重実行防止] = 1 + 0
|■変数操作: Sys100:BGM音量補正[%]〜Sys102:SE音量補正[%] = 100 + 0
|■
-◇上記以外
|■変数操作: CSelf11[二重実行防止] = 1 + 0
|■変数操作: Sys100:BGM音量補正[%]〜Sys102:SE音量補正[%] = 0 + 0
|■
◇分岐終了◇


▲トップへ戻る▲


  
■[Sys104:Xスクロール値]
■[Sys105:Yスクロール値]

[読み取り・書き込み可能]

マップの左上からどれくらいスクロールしているのかをピクセル単位で取得&設定します。



以下は、サンプルゲームのスタート位置のスクロール値です。
サンプルゲームの初期設定の画面サイズは[320×240]なので、
カラーの部分が実際のゲーム画面(プレイヤーが見ている部分)になります。





このシステム変数[104:Xスクロール値][105:Yスクロール値]の値を変えると、
画面の表示位置を変える事ができます。

▼システム変数[104:Xスクロール値]を「加算100」にした場合


画面のスクロールはイベントコマンド【エフェクト】にある「画面スクロール」でも可能です。
【エフェクト】の方では、徐々にスクロールさせる設定なども可能です。



▼【使用例】ピクチャがある位置のマス座標を取得

ピクチャの表示位置にシステム変数[104:Xスクロール値][105:Yスクロール値]を加算し、
システム変数[118:[読]タイルサイズ]で除算する事で、ピクチャの表示位置にあるマス座標を算出します。

【イベントコード表示(マップ)】【イベントコード表示(コモン)】

■変数操作+: このEvのSelf0 = ピクチャ:1 の X座標
■変数操作+: このEvのSelf1 = ピクチャ:1 の Y座標
■変数操作: このEvのSelf0 += Sys104:Xスクロール値 + 0
■変数操作: このEvのSelf1 += Sys105:Yスクロール値 + 0
■変数操作: このEvのSelf0〜このEvのSelf1 /= Sys118:[読]タイルサイズ + 0

■デバッグ文:X座標:\self[0] Y座標:\self[1]



▼【使用例】マウスポインタがある位置のマス座標を取得

ピクチャの表示位置にシステム変数[104:Xスクロール値][105:Yスクロール値]を加算し、
システム変数[118:[読]タイルサイズ]で除算する事で、マウスポインタがどのマスにあるのかを調べる設定です。

【イベントコード表示(マップ)】【イベントコード表示(コモン)】

■変数操作: このEvのSelf0 = Sys104:Xスクロール値 + Sys71:マウスX位置
■変数操作: このEvのSelf1 = Sys105:Yスクロール値 + Sys72:マウスY位置
■変数操作: このEvのSelf0〜このEvのSelf1 /= Sys118:[読]タイルサイズ + 0

■デバッグ文:X座標:\self[0] Y座標:\self[1]



さらにマウスポインタがあるマスを白く表示する場合は以下のように設定。

【イベントコード表示(マップ)】【イベントコード表示(コモン)】

起動条件:並列実行

■変数操作: このEvのSelf0 = Sys71:マウスX位置 + Sys104:Xスクロール値
■変数操作: このEvのSelf1 = Sys72:マウスY位置 + Sys105:Yスクロール値
■変数操作: このEvのSelf0〜このEvのSelf1 /= Sys118:[読]タイルサイズ + 0
■デバッグ文:X座標:\self[0] Y座標:\self[1]
■変数操作: このEvのSelf2 = このEvのSelf0 * Sys118:[読]タイルサイズ
■変数操作: このEvのSelf3 = このEvのSelf1 * Sys118:[読]タイルサイズ
■変数操作: このEvのSelf2 -= Sys104:Xスクロール値 + 0
■変数操作: このEvのSelf3 -= Sys105:Yスクロール値 + 0
■ピクチャ表示:1 [左上]ウィンドウ「<SQUARE>」サイズ[Sys118:[読]タイルサイズ,Sys118:[読]タイルサイズ]
       X:このEvのSelf2 Y:このEvのSelf3 / 0(0)フレーム / パターン 1 / 透 100 / 通常 /
       角 0 / 拡 100% / カラー R[100] G[100] B[100]

▼処理結果



▲トップへ戻る▲


  
■[Sys108:[読]現フレーム開始からのコマンド処理数]
[読み取り専用]

「コマンド処理数」は1フレーム内でのイベントコマンドの実行数をカウントしたものであり、
システム変数[Sys108:[読]現フレーム開始からのコマンド処理数]を使用すると、
システム変数[Sys108:[読]現フレーム開始からのコマンド処理数]を実行した時点のコマンド処理数が取得できます。



コマンド処理数はイベントコマンドを処理するとコマンド数が増えます。
例えば以下のような設定を処理した場合、コマンド処理数は「3」増えます。

■変数操作: このEvのSelf0 = Sys80:現在の[時] * 3600
■変数操作: このEvのSelf0 += Sys81:現在の[分] * 60
■変数操作: このEvのSelf0 += Sys82:現在の[秒] + 0



コマンド処理数は「処理したコマンド数」なので、例えば以下にような条件分岐があって、
条件分岐の中が処理されなかった場合は、条件分岐の中の分のコマンド処理数は増えません。

■条件分岐(変数): 【1】 このEvのSelf0 が 0 と同じ
-◇分岐: 【1】 [ このEvのSelf0 が 0 と同じ ]の場合↓
|■変数操作: このEvのSelf0 = Sys80:現在の[時] * 3600
|■変数操作: このEvのSelf0 += Sys81:現在の[分] * 60
|■変数操作: このEvのSelf0 += Sys82:現在の[秒] + 0
|■
◇分岐終了◇



ループ処理がある場合は、ループした回数だけコマンド処理数が増えます。
例えば以下のようなイベントを実行した場合、コマンド処理数は「41」増えます。

■回数付きループ [ 10 ]回(処理数:+1)
|■変数操作: このEvのSelf0 += 1 + 0(処理数:+10)
|■変数操作: このEvのSelf1 -= 1 + 0(処理数:+10)
|■(処理数:+10)
◇ループここまで◇◇(処理数:+10)



1フレームあたりのコマンド処理数を確認する場合は、
コモンイベントの最も番号の大きいコモンイベントに処理数を調べる並列実行イベントを設定すると良いでしょう。



また処理数を調べる時に…
■コモンイベント

起動条件:並列実行(常時)

■デバッグ文:処理数:\sys[108]
だけの設定では、処理数の最大値が判りにくいので…
【イベントコード表示】

■コモンイベント

起動条件:並列実行(常時)

■条件分岐(変数): 【1】 Sys108:[読]現フレーム開始からのコマンド処理数 が CSelf10 超
-◇分岐: 【1】 [ Sys108:[読]現フレーム開始からのコマンド処理数 が CSelf10 以外 ]の場合↓
|■変数操作: CSelf10 = Sys108:[読]現フレーム開始からのコマンド処理数 + 0
|■デバッグ文:最大コマンド処理数:\sys[108]
|■
◇分岐終了◇
と言ったように、処理数の最大値が更新された時のみデバッグ文に処理数を表示するようにした方が良いでしょう。



コマンド処理数の上限は1フレームごとに「500万個未満」と決められており、
1フレームでコマンド処理数が500万個を超えるとエラーが発生します。
【エラー「1フレームあたりの処理が500万回を越えました!」のページを開く】

なお、500万個を超えなくても毎フレームごとに大量のコマンド処理数を実行するとかなりの処理落ちが発生するため、
並列実行で毎フレームごとに大量コマンドを処理する設定はお勧めできません。


▲トップへ戻る▲


  
■[Sys110:現在の乱数のシード(種)]
[読み取り・書き込み可能]

乱数の処理にて、例えば乱数[1〜100]を実行した時に、コンピュータが自動的に「35」や「71」などの値を出力しますが、
この時に何の値を出力するのかを決定する時に、このシステム変数[110:現在の乱数のシード(種)]の値を使います。



システム変数[110:現在の乱数のシード(種)]の値を固定値にすると、乱数から出力される値は毎回同じになります。

例えば…
■変数操作: Sys110:現在の乱数のシード(種) = 123456789 + 0
■変数操作: このEvのSelf0 = 1 〜 100
のように、システム変数[110:現在の乱数のシード(種)]の値を「123456789」の固定値にすると、
何度実行しても乱数[1〜100]から出力される値は、必ず「22」になります。



システム変数[110:現在の乱数のシード(種)]の値は、ゲーム起動時乱数を使用した時に変わります。

乱数を1回実行する度にシステム変数[110:現在の乱数のシード(種)]の値が変わるため、
同じ乱数[1〜100]を連続で実行しても、同じ値がずっと出力されるような事はありません。

またシステム変数[110:現在の乱数のシード(種)]の値を「0」にすると、
システム変数[110:現在の乱数のシード(種)]新たな値が設定されます。



システム変数[110:現在の乱数のシード(種)]の値はセーブデータにセーブされるため、
セーブデータをロードした後に実行される乱数の結果は、同じ値になります。

例えばロード後に乱数[1〜100]を実行した時に「18」だった場合は、
何度ロードしても最初に乱数[1〜100]で出力される値は「18」になります。

もしもロードした時に、異なる値で出力にしたい時には、
コモンイベント[048:X[共]基本システム自動初期化]0行目に以下の設定を追加してください。

■変数操作: Sys110:現在の乱数のシード(種) = 0 + 0


▲トップへ戻る▲


  
■[Sys111:[読]画面アクティブ状態(1=アクティブ)]
[読み取り専用]

システム変数[111]=1アクティブ状態である
システム変数[111]=0アクティブ状態ではない



アクティブ状態とは、パソコンの画面上で現在実行しているウィンドウの事を言います。

例えば下図のように、ゲームを起動している時にエディタ画面をクリックすると、
エディタ画面=アクティブ状態」「ゲーム画面=非アクティブ状態」となり、ゲーム画面の処理が停止します。





ゲーム画面が非アクティブ状態になるとゲームの処理が停止しますが、
ゲームの基本設定」の「ウィンドウ非アクティブ時の挙動」の設定を「実行し続ける」にすると、
ゲーム画面が非アクティブ状態になってもゲームの処理が動き続けます。

▼ ゲームの基本設定の「ウィンドウ非アクティブ時の挙動」の設定欄


この「ウィンドウ非アクティブ時の挙動」を「実行し続ける」にした時に、
ゲーム画面がアクティブ状態なのか、非アクティブ状態なのかを判断する時に、
システム変数[111:[読]画面アクティブ状態(1=アクティブ)]を使います。



なお、「ウィンドウ非アクティブ時の挙動」が「処理を停止」の場合は、
ゲーム画面が非アクティブ状態の時には「システム変数[111]=0」にする処理を動かす事ができないため、
システム変数[111:[読]画面アクティブ状態(1=アクティブ)]は常に「1」になります。


▲トップへ戻る▲


  
■[Sys112:[読]テストプレイ中?(1=YES)]
[読み取り専用]

システム変数[112]=1テストプレイでゲーム開始
システム変数[112]=0Game.exeでゲーム開始

テストプレイモードでゲームを動かしているかどうかを調べる時に使います。

[Game.exe]でゲームを始めた時には「システム変数[112]=0」になります。




このシステム変数[112:[読]テストプレイ中?(1=YES)]を使う事で、
例えばテストプレイ用のイベントをテストプレイの時だけ実行する事ができます。

万が一テストプレイ用のイベントを残したまま作品を公開しても、
テストプレイ用のイベントが実行される事はありません。

▼設定例
【イベントコード表示】

■コモンイベント

起動条件:並列実行(常時)

■条件分岐(変数): 【1】 Sys112:[読]テストプレイ中?(1=YES) が 1 と同じ
-◇分岐: 【1】 [ Sys112:[読]テストプレイ中?(1=YES) が 1 と同じ ]の場合↓
|■変数操作: CSelf10 = Sys104:Xスクロール値 + Sys71:マウスX位置
|■変数操作: CSelf11 = Sys105:Yスクロール値 + Sys72:マウスY位置
|■変数操作: CSelf10〜CSelf11 /= Sys118:[読]タイルサイズ + 0
|■ピクチャ表示:1 [左上]文字列[\EマウスX[\sys[71]] ] X:2 Y:2 / 0(0)フレーム /
       パターン 1 / 透 255 / 通常 / 角 0 / 拡 100% / カラー R[100] G[100] B[100]
|■
◇分岐終了◇

▼処理結果



▲トップへ戻る▲


  
■[Sys115:[読]Game.exeバージョン(x100)]
[読み取り専用]

ゲームを動かしている実行ファイルのバージョンを調べる時に使います。

システム変数[115:[読]Game.exeバージョン(x100)]の値は、バージョンの100倍値(「2.20」→「220」)になります。

ウディタ[3.205]のように小数点以下3桁の場合は、小数点以下2桁までの「320」になります。



ゲームの基本設定」にある「Game.exe動作バージョン調整」で古いバージョンに設定しても、
このシステム変数[115:[読]Game.exeバージョン(x100)]の値は最新バージョンの値になります。





このシステム変数[115:[読]Game.exeバージョン(x100)]を使う事で、例えばコモン素材を公開する時に、
コモン素材を使用するウディタのバージョンに合わせて、イベント処理を変える設定ができます。


▲トップへ戻る▲


  
■[Sys116:[読]画面サイズX]
■[Sys117:[読]画面サイズY]

[読み取り専用]

ゲーム画面の縦と横のサイズをピクセル単位で取得する事ができます。



初期設定は「ゲームの基本設定」で行います。



※プロ版の場合は「横100〜1920ピクセル」「縦100×1440ピクセル」の間で自由に画面サイズが設定できます。



▼【使用例】ゲーム画面の下に向かって徐々に暗くする

ゲーム画面の下に向かって暗くなるピクチャを表示します。

通常 ピクチャを表示

メニュー画面の背景にも使われています。



画面をうす暗くする方法として、イベントコマンド【色調変更】の設定もあります。



【色調変更】の場合は、画面全体を同じ色でうす暗くしますが、
ピクチャの場合は「画面の下に向かって徐々に暗くする」と言った表示設定が可能です。


画像のサイズ(生成サイズ)は、
システム変数[116:[読]画面サイズX][117:[読]画面サイズY]変数呼び出し値「9000116」「900117」で設定します。

ファイル名は「<GRADY-799-000>」を設定します。

▼ピクチャの設定画面


【イベントコード表示】

■ピクチャ表示:1 [左上]ウィンドウ「<GRADY-779-000>」サイズ[Sys116:[読]画面サイズX,Sys117:[読]画面サイズY]
       X:0 Y:0 / 0(0)フレーム / パターン 1 / 透 255 / 乗算 / 角 0 / 拡 100% / カラー R[100] G[100] B[100]


▲トップへ戻る▲


  
■[Sys118:[読]タイルサイズ]
[読み取り専用]

タイルのサイズ(1マスのサイズ)を取得します。



初期設定は「ゲームの基本設定」で行います。





このシステム変数[118:[読]タイルサイズ]は、ウディタ[2.20]で実装されたシステム変数であり、
ウディタ[2.20]以前のバージョンでは機能しません。

そのため、ウディタ[2.20]以前に作られたコモン素材でタイルのサイズを取得する時には、
システム変数[84:画面サイズ(0=320x240,1=640x480 2=800x600 他=-1)]を使っていました。



もしもウディタ[2.20]以前のバージョンで作られたコモン素材を使う場合で、
そのコモン素材がシステム変数[84:画面サイズ(0=320x240,1=640x480 2=800x600 他=-1)]を利用していて、
なおかつゲーム画面のサイズとタイルサイズの組み合わせが…
「画面サイズ:320×240・タイルサイズ:16」
「画面サイズ:640×480・タイルサイズ:32」
「画面サイズ:800×600・タイルサイズ:40」
以外の組み合わせである場合は、
システム変数[84:画面サイズ(0=320x240,1=640x480 2=800x600 他=-1)]の設定部分を修正する必要があります。

▼修正前の設定例
■条件分岐(変数): 【1】 Sys84:画面サイズ(0=320x240,1=640x480 2=800x600 ・ が 0 と同じ
         【2】 Sys84:画面サイズ(0=320x240,1=640x480 2=800x600 ・ が 1 と同じ
-◇分岐: 【1】 [ Sys84:画面サイズ(0=320x240,1=640x480 2=800x600 ・ が 0 と同じ ]の場合↓
|■変数操作: CSelf10[タイルサイズ] = 16 + 0
|■
-◇分岐: 【2】 [ Sys84:画面サイズ(0=320x240,1=640x480 2=800x600 ・ が 1 と同じ ]の場合↓
|■変数操作: CSelf10[タイルサイズ] = 32 + 0
|■
-◇上記以外
|■変数操作: CSelf10[タイルサイズ] = 40 + 0
|■
◇分岐終了◇

▼修正後の設定例
■変数操作: CSelf10[タイルサイズ] = Sys118:[読]タイルサイズ + 0



▼【使用例】主人公がいるマスの中央にピクチャを表示

主人公の画面位置(ピクセル値)を取得した場合、Y位置は主人公の足元の位置になります。

これを主人公がいるマスの中央へ移動させる時に、
システム変数[118:[読]タイルサイズ]を「除算2」にした値を減算して位置を調整します。

【イベントコード表示】

■変数操作+: このEvのSelf0 = 主人公 の 画面X座標
■変数操作+: このEvのSelf1 = 主人公 の 画面Y座標
■変数操作: このEvのSelf1 -= Sys118:[読]タイルサイズ / 2
■ピクチャ表示:1 [中心]文字列[\E+] X:このEvのSelf0 Y:このEvのSelf1 / 0(0)フレーム /
       パターン 1 / 透 255 / 通常 / 角 0 / 拡 100% / カラー R[100] G[100] B[100]

▼処理結果
調整なし 調整あり


▲トップへ戻る▲


  
■[Sys119:[読]基本画面倍率x[1-3]]
[読み取り専用]

ゲームの基本設定」の「ゲーム画面サイズ」で設定したゲーム画面の倍率を取得します。

下図の設定の場合は「2」を取得します。



プロ版の場合は「x3」の設定も可能であるため、「システム変数[119]=3」になる事もあります。


▲トップへ戻る▲


  
■[Sys120:リセット履歴 0=ナシ/1=F12/2=コマンド]
[読み取り・書き込み可能]

システム変数[120]=0ゲームを開始して一度もリセットしていない
システム変数[120]=1[F12]を押してリセット
システム変数[120]=2イベントで[タイトル画面へ戻る]でリセット

「ゲーム開始位置」からゲームを始める際、どのような状態でゲームを始めているのかを、
このシステム変数[120:リセット履歴 0=ナシ/1=F12/2=コマンド]で確認する事ができます。



初期値は以下のとおりです。
システム変数[120]0



▼【使用例】[F12]でタイトル画面へ戻り、「スタート」を押すと挨拶が実行されない

サンプルゲームのタイトル画面にて[スタート]を選択すると挨拶イベントが実行しますが、
[F12]キーを押してタイトル画面に戻って[スタート]を選択すると挨拶イベントが実行せず
すぐにゲームが始められるように設定します。

タイトル画面のマップにあるマップイベント「タイトル用イベント」55行目に以下のイベントを追加してください。

【イベントコード表示】

|■条件分岐(変数): 【1】 Sys120:リセット履歴 0=ナシ/1=F12/2=コマンド が 1 以上
|-◇分岐: 【1】 [ Sys120:リセット履歴 0=ナシ/1=F12/2=コマンド が 1 以上 ]の場合↓
||■イベント処理中断
||■
|◇分岐終了◇

ゲームを起動し、タイトル画面が表示されたら「スタート」を実行してください。
挨拶イベントが終わり、主人公が自由に移動できるようになったら、
キーボードの[F12]を押してタイトル画面へ戻ってください。
そして再び「スタート」を実行すると、今度は挨拶イベントが実行されずにすぐに主人公の移動ができます。

ゲーム起動時
システム変数[120]=0
[F12]でリセットした時
システム変数[120]=1以上








▲トップへ戻る▲



◎関連ページ

◆「変数」って何?
┣◆「セルフ変数」って何?
┣◆「通常変数」「予備変数」って何?
┣◆「文字列変数」って何?
┣◆「システム変数」「システム文字列」って何?
┃┣◆システム変数[0〜34]の説明
┃┣◆システム変数[35〜76]の説明
┃┣◆システム変数[77〜120]の説明
┃┣◆システム変数[121〜148]の説明
┃┣◆システム文字列[0〜49]の説明
┃┗◆システム文字列[50〜76]の説明
┣◆「変数呼び出し値」「X番の変数呼出」って何?
┃┗◆【使用例】「変数呼び出し値」「X番の変数呼出」
┣◆「乱数」って何?
┃┗◆乱数で一度出力した値を二重に出力させない
┗◆変数の番号や文字列を別のものに置き換える

YADOT-WOLFトップ  気紛れな空間へ戻る  メール