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


システム変数[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:未使用
Sys120:リセット履歴 0=ナシ/1=F12/2=コマンド
【システム変数[0〜34]の説明ページを開く】
【システム変数[35〜76]の説明ページを開く】
【システム変数[121〜143]の説明ページを開く】
【システム文字列[0〜49]の説明ページを開く】
【システム文字列[50〜67]の説明ページを開く】

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


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

[読み取り専用]

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



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

【イベントコード表示】

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

▼動作イメージ




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

【イベントコード表示】

■変数操作: このEvのセルフ変数0 = Sys78:現在の[月] / 10
■変数操作: このEvのセルフ変数1 = Sys78:現在の[月] % 10
■変数操作: このEvのセルフ変数2 = Sys79:現在の[日] / 10
■変数操作: このEvのセルフ変数3 = Sys79:現在の[日] % 10
■変数操作: このEvのセルフ変数4 = Sys80:現在の[時] / 10
■変数操作: このEvのセルフ変数5 = Sys80:現在の[時] % 10
■変数操作: このEvのセルフ変数6 = Sys81:現在の[分] / 10
■変数操作: このEvのセルフ変数7 = Sys81:現在の[分] % 10
■変数操作: このEvのセルフ変数8 = Sys82:現在の[秒] / 10
■変数操作: このEvのセルフ変数9 = 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)]のページを開く】



変数名にある「(Sys9)」はシステム変数[9]ではなくシステムDB[9:キャラ影グラフィック名]の事を示しており、
システム変数[87〜91]に設定する値はシステムDB[9:キャラ影グラフィック名]データ番号になります。



初期値は以下のとおりです。
システム変数[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のセルフ変数0 = ピクチャ:1 の X座標
■変数操作+: このEvのセルフ変数1 = ピクチャ:1 の Y座標
■変数操作: このEvのセルフ変数0 += Sys104:Xスクロール値 + 0
■変数操作: このEvのセルフ変数1 += Sys105:Yスクロール値 + 0
■変数操作: このEvのセルフ変数0〜このEvのセルフ変数1 /= Sys118:[読]タイルサイズ + 0

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



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

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

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

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

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



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

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

起動条件:並列実行

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

▼処理結果



▲トップへ戻る▲


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

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



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

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



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

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



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

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



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



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

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

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

■コモンイベント

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

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



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

なお、50万個を超えなくても、毎フレームごとに数十万個のコマンドを処理している場合は、
かなり処理落ちが発生するため、あまりコマンド数を多く処理するイベント設定はお勧めできません。



★「コマンド処理数」の注意点

コマンド処理数が多ければ多い程、処理負担が大きくなり、処理落ちの原因になります。
そのため、出来る限りコマンド処理数を減らした方が良いでしょう。

但し「コマンド処理数が少ない=処理落ちしない」とは限らず、
例えば新規の読み込みファイルが多い場合は、少ないコマンド処理数でも処理落ちが発生します。


▲トップへ戻る▲


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

乱数を作成する基となる値を設定します。



乱数とは「コンピュータが自動的に数値を決める機能」であり、
例えば乱数[1〜100]を設定した場合、[1〜100]のいずれかの値を出力します。

ランダムであるため、「5 → 33 → 18」となる場合もあれば、
「42 → 42 → 42」と同じ値が連続的に選ばれる事もあります。

ゲームの制作では、ダメージ量や回復量などを「18〜24」と言った変動値にする時や当たり判定(命中率)の処理、
出現する敵グループのランダム化やサイコロを振った時の出目など、様々な場面で乱数を使います。



乱数はコンピュータが勝手に値を決めるので、例えばリプレイ機能を作成した時に、
乱数の値がリプレイの保存時と再生時が異なりますと、正しくリプレイを再生する事ができません。

そのため、このシステム変数[110:現在の乱数のシード(種)]に値を設定する事で、
前と同じ乱数の値にする事ができます。

例えば、「システム変数[110]=1」にして…
■変数操作: このEvのセルフ変数0 = 1 〜 100
を実行した場合、何度実行しても処理結果は「8」になります。

乱数の範囲を…
■変数操作: このEvのセルフ変数0 = 1 〜 99
にした場合は、何度実行しても処理結果は「77」になります。

また…
■変数操作: このEvのセルフ変数0 = 1 〜 100
と…
■変数操作: このEvのセルフ変数0 = 11 〜 110
を比べた場合…
1〜100 → 8
11〜110 → 18
と言った処理結果になり、
乱数の範囲が「+10([1〜100]+10=[11〜110])」になると、
処理結果も「+10([8]+10=[18])」になります。



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

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



セーブデータをロードした後に実行される乱数の結果は同じになります。

例えばサイコロを振るゲームの場合、ロードした後のサイコロの出目は、何度ロードし直しても同じになります。

もしもロード後の乱数の結果を毎回変えたい時には、乱数を実行する前に…
■変数操作: Sys110:現在の乱数のシード(種) = 0 + 0
を実行して、システム変数[110:現在の乱数のシード(種)]の値を初期化してから乱数を実行してください。


▲トップへ戻る▲


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

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



ゲームを起動し、ゲーム画面が表示された後にゲーム画面以外をクリックすると、
ゲーム画面が「非アクティブ状態」になります。

▼デバッグウィンドウをクリックした時の状態です。
 ゲーム画面は停止し、ゲーム画面上部の文字は薄い色の文字になります。



初期設定では、ゲーム画面が非アクティブ状態になると、ゲームの処理が停止しますが、
ゲームの基本設定」にある「ウィンドウ非アクティブ時の挙動」の設定を「実行し続ける」に変えた場合は、
ゲーム画面以外をクリックしてゲーム画面を非アクティブ状態にしても、ゲームの処理はそのまま動き続けます。



そして「ウィンドウ非アクティブ時の挙動実行し続ける」にした上でゲームを起動し、
ゲーム画面以外をクリックした時のみ「システム変数[111]=0」になります。



システム変数[111]=0」の時は、例えばゲーム画面の上に違うウィンドウが表示されているような状態です。

以下は、ウディタのゲーム画面の上に、インターネットを見るウィンドウを乗せている状態です。
このような時に違うウィンドウをアクティブ状態にしている時に「システム変数[111]=0」になります。




▲トップへ戻る▲


  
■[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」)になります。

ウディタ[2.20]から実装されたシステム変数であるため、[2.20]以前のバージョンでは対応しておらず、
[2.10]などで調べてもシステム変数[115:[読]Game.exeバージョン(x100)]の値は「0」になります。



ゲームの基本設定」にある「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-888-111>」を設定します。

▼ピクチャの設定画面(黄色の所が変更箇所)


【イベントコード表示】

■ピクチャ表示:1 [左上]ウィンドウ「<GRADY-888-111>」
       サイズ[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のセルフ変数0 = 主人公 の 画面X座標
■変数操作+: このEvのセルフ変数1 = 主人公 の 画面Y座標
■変数操作: このEvのセルフ変数1 -= Sys118:[読]タイルサイズ / 2
■ピクチャ表示:1 [中心]文字列[\E+] X:このEvのセルフ変数0 Y:このEvのセルフ変数1 / 0(0)フレーム /
       パターン 1 / 透 255 / 通常 / 角 0 / 拡 100% / カラー R[100] G[100] B[100]

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


▲トップへ戻る▲


  
■[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〜143]の説明
┃┣◆システム文字列[0〜49]の説明
┃┗◆システム文字列[50〜67]の説明
┣◆「変数呼び出し値」「X番の変数呼出」って何?
┃┗◆【使用例】「変数呼び出し値」「X番の変数呼出」
┗◆変数の番号や文字列を別のものに置き換える(検索の置換を使う)

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