WOLF RPGエディター(ウディタ)[3.600]/イベントコマンド【サイトトップへ戻る】
■演算子について
(更新:2025/05/24)


イベントコマンド【変数操作】【DB操作】【変数操作+】にある、
「=」「引上げ」「絶対値」などの演算子について解説します。



ショートカット
■[=][+][−][×][÷]
■[%]
■[引上げ][引下げ]
■[絶対値]
■[角度x10←傾き]
■[sin[x1000]角度][cos[x1000]角度]
■[√[x1000]]
■[ビット積][ビット和][排他ビット][ビットシフト<<]
■[〜]

【変数操作】【DB操作】【変数操作+】の設定方法は、各ページにある説明をご覧ください。
【変数操作のページを開く】
【DB操作のページを開く】
【変数操作+のページを開く】



設定によっては「÷」と「÷=」の表記がありますが、どちらも同じ意味です。
また「引き上げ」と「引上げ」も同じ意味です。

説明文は【変数操作】の設定画面を基準に書かれています。


  
■[=][+][−][×][÷]

設定画面の表記 イベントコマンドの表記 説明
= 代入(だいにゅう)
上部で指定した変数の値を右辺の値と同じ値にします。
+ 加算(かさん)
上部で指定した変数の値に右辺の値を足します。
右辺にある「+」では、
左右に設定した値を足して右辺の値とします。
- 減算(げんさん)
上部で指定した変数の値に右辺の値を引きます。
右辺にある「−」では、
左右に設定した値を引いて右辺の値とします。
× * 乗算(じょうさん)
上部で指定した変数の値に右辺の値を掛けます。
右辺にある「×」では、
左右に設定した値で掛けて右辺の値とします。
÷ / 除算(じょさん)
上部で指定した変数の値を右辺の値で割ります。
右辺にある「÷」では、
「左の値÷右の値」で計算した値を右辺の値とします。

▲トップへ戻る▲


  
■[%]

設定画面の表記 イベントコマンドの表記 説明
% 余剰(よじょう)
上部で指定した変数の値を右辺の値で割り、
その計算で出た余り値を変数に代入します。
右辺の設定では、
「左の値÷右の値」の計算で出た余り値を右辺の値とします。

例えば…
■変数操作: このEvのSelf0 = 10 + 0
■変数操作: このEvのSelf0 %= 3 + 0
と言った場合は「10÷3=3・・・余り1」となり、セルフ変数[0]の値は「1」になります。

処理のイメージとしては、「10」に対して「3」の引き算を何度も行い、
「3未満(0〜2)」になった時点の値を変数に設定する形になります。



余剰の使い方としては、例えば変数の値を位ごとに分けるような処理を設定する時に使います。

以下はコモンイベントのセルフ変数[10]に保存された3桁の値(427)を、
セルフ変数[11〜13]へ位ごとに分ける場合の設定例です。

01
02
03
04
05
■変数操作: CSelf10[3桁の数値] = 427 + 0
■変数操作: CSelf11[百の位] = CSelf10[3桁の数値] / 100
■変数操作: CSelf12[十の位] = CSelf10[3桁の数値] / 10
■変数操作: CSelf13[一の位] = CSelf10[3桁の数値] + 0
■変数操作: CSelf12[十の位]〜CSelf13[一の位] %= 10 + 0

01 セルフ変数[10:3桁の数値]に「427」を設定しています。
02 セルフ変数[11:百の位]セルフ変数[10:3桁の数値](427)の値を「100」で割って、
セルフ変数[11:百の位]には「4」が設定されます。
03 セルフ変数[12:十の位]セルフ変数[10:3桁の数値](427)の値を「10」で割って、
セルフ変数[12:十の位]には「42」が設定されます。
04 セルフ変数[13:一の位]セルフ変数[10:3桁の数値](427)の値をそのまま設定しています。
05 セルフ変数[12:十の位]、[13:一の位]に「余剰10」を設定しています。
これにより「10」で割った余りの値が変数に設定されます。
セルフ変数[12:十の位]は「42」なので「42÷10=4・・・余り2」なので「2」が設定され、
セルフ変数[13:一の位]は「427」なので「427÷10=42・・・余り7」なので「7」が設定されます。

これで…
セルフ変数[11:百の位]=4
セルフ変数[12:十の位]=2
セルフ変数[13:一の位]=7
となり、セルフ変数[10:3桁の数値]の値が位ごとに別々の変数に設定されました。



上記の応用で6桁の数値を位ごとに変数に分けるような設定もできます。

■変数操作: CSelf11[十万の位] = CSelf10[6桁の数値] / 100000
■変数操作: CSelf12[万の位] = CSelf10[6桁の数値] / 10000
■変数操作: CSelf13[千の位] = CSelf10[6桁の数値] / 1000
■変数操作: CSelf14[百の位] = CSelf10[6桁の数値] / 100
■変数操作: CSelf15[十の位] = CSelf10[6桁の数値] / 10
■変数操作: CSelf16[一の位] = CSelf10[6桁の数値] + 0
■変数操作: CSelf12[万の位]〜CSelf16[一の位] %= 10 + 0



「-123」のようなマイナス値の場合で「余剰10」を設定した場合は「-3」になります。



なお、余剰の設定値はプラス値の「余剰10」でもマイナス値の「余剰-10」でも処理結果は変わりません。


▲トップへ戻る▲


  
■[引上げ][引下げ]

設定画面の表記 イベントコマンドの表記 説明
引上げ 下限 引上げ(ひきあげ)、下限(かげん)
右辺の値を「最低値」として、上部で指定した変数の値を修正します。
「引上げ(下限)=10」にした場合は、
変数の値が「9以下」になると「10」に修正されます。
使用例としては、
例えば戦闘中にダメージを受けてHPがマイナスになった場合、
「引上げ(下限)=0」を実行して、HPの値を「0」に修正します。
(マイナスのままだとステータス画面がマイナス表示になってしまう)
引下げ 上限 引下げ(ひきさげ)、上限(じょうげん)
右辺の値を「最高値」として、上部で指定した変数の値を修正します。
「引下げ(上限)=10」にした場合は、
変数の値が「11以上」になると「10」に修正されます。
使用例としては、
例えばHPを回復した時に最大HPを超えた場合、
最大HPの値になるように修正する時に使います。


▲トップへ戻る▲


  
■[絶対値]

設定画面の表記 イベントコマンドの表記 説明
絶対値 絶対値 絶対値(ぜったいち)
右辺の値がマイナス値の場合はプラス値に変えて、
上部で指定した変数へ代入します。
「-10」ならば「10」に変更して変数に代入。
「-123」ならば「123」に変更して変数に代入。
プラス値の「10」ならば「10」のまま変数に代入。



■使用例

コモンイベント[000:○アイテム増減]の処理にてアイテムを1個減らす場合、
増減数の設定は「-1」で設定しますが、
このまま文章で表示すると「「薬草」を-1個失った。」と表示されてしまうため、
絶対値でマイナス値をプラス値に変えて「「薬草」を1個失った。」と表示されるようにしています。

一応「乗算-1」を実行してもマイナス値をプラス値に変える事ができますが、
「乗算-1」の場合はプラス値がマイナス値に変わる事があるため、
マイナス値でもプラス値でも必ずプラス値にしたいと言った時に、絶対値を使います。


▲トップへ戻る▲


  
■[角度[x10]←傾き]

設定画面の表記 イベントコマンドの表記 説明
角度[x10]←傾き 角度[x10]←傾き 右辺に設定した横と縦の長さから角度を算出し、
上部で指定した変数へ代入します。
角度は10倍の値で設定されます。
例えば角度が「22.5度」だった場合は、
変数には「225」が代入されます。

角度は右を「0度」として、時計回りに数値が増えます。





角度の設定では【変数操作】の設定画面にて、
右辺の左側で「中心からの横の距離」、
右辺の右側で「中心からの縦の距離」を設定します。



▼マップイベント[2]から見た主人公がいる角度
■変数操作+: このEvのSelf0 = 主人公 の 画面X座標
■変数操作+: このEvのSelf1 = 主人公 の 画面Y座標
■変数操作+: このEvのSelf0 -= このマップイベント の 画面X座標
■変数操作+: このEvのSelf1 -= このマップイベント の 画面Y座標
■変数操作: このEvのSelf2 = 角度[x10]←傾き X: このEvのSelf0 Y: このEvのSelf1

下図の右にいるマップイベントから見て、主人公までの距離(ピクセル値)が「X-64」「Y-32」だった場合、
マップイベントから見た主人公がいる角度は「2066」になります。



▲トップへ戻る▲


  
■[sin[x1000]←角度[x10]][cos[x1000]←角度[x10]]

設定画面の表記 イベントコマンドの表記 説明
sin[x1000]←角度[x10] sin[x1000]←角度[x10] 右辺に設定した角度からサイン値を算出し、
上部で指定した変数へ代入します。
角度(10倍値)が「200」だった場合は、
sin値(1000倍値)は「342」になります。
cos[x1000]←角度[x10] cos[x1000]←角度[x10] 右辺に設定した角度からコサイン値を算出し、
上部で指定した変数へ代入します。
角度(10倍値)が「200」だった場合は、
cos値(1000倍値)は「939」になります。

「cos」と「sin」は、指定した角度で直線「1000」の距離を進む時の縦横の増減値を算出します。

「cos」は横の増減量であり、中心から右側がプラス値、左側がマイナス値になります。
「sin」は縦の増減量であり、中心から下側がプラス値、上側がマイナス値になります。

▼角度(水色の数字)と「cos」「sin」の値




角度「200」の場合は「cos=939、sin=342」になります。



仮に角度「200」で直線に1000ピクセル移動させた場合は、
「X+939ピクセル」「Y+342ピクセル」移動させる事になります。




▲トップへ戻る▲


  
■[√[x1000]]

設定画面の表記 イベントコマンドの表記 説明
√[x1000] √[x1000] 右辺に設定した値の平方根を算出し、
上部で指定した変数へ代入します。
右辺が「3」だった場合は、
「1.732×1000」になるため、
変数には「1732」が代入されます。



■平方根の補足

平方根は、例えば「√16」の場合は「4」になります。(ウディタでは1000倍になるので「4000」になる)
「√16=4」になる理由は「16=4×4」であるからです。

このように平方根は算出された値同士で掛け合うと、平方根で設定した値に戻ると言ったものになっています。
九九の計算では「4=2×2」や「25=5×5」などがあります。

「√3」の場合は「1.732」になりますが、実際には「1.73205080…」と終わりの無い値になっています。
そのため「1.732×1.732」を計算しても「2.999824」となり、「3」には戻りません。


▲トップへ戻る▲


  
■[ビット積][ビット和][排他ビット][ビットシフト<<]

設定画面の表記 イベントコマンドの表記 説明
ビット積 ビット積 右辺の左右に設定した値をそれぞれビット値に変換した上で、
両方に存在するビット値のみを残して、上部で指定した変数に設定します。
ビット和 ビット和 右辺の左右に設定した値をそれぞれビット値に変換した上で、
両者のビット値を合体して、上部で指定した変数に設定します。
排他ビット 排他ビット(XOR) 右辺の左右に設定した値をそれぞれビット値に変換した上で、
両方に存在するビット値を除外して、上部で指定した変数に設定します。
ビットシフト<< ビットシフト<< 右辺の左側の値をビット値に変換した上で、
右辺の右側の値が「1」なら「1011→10110」と桁位置が左へ移動し、
右辺の右側の値が「-1」なら「10110→1011」と桁位置が右へ移動して、
上部で指定した変数に設定します。



ビット値は「0」と「1」で構成された二進法の数値になります。

イベント処理では、まず十進法の値を二進法の値に変えて処理します。

十進法の値 二進法の値
+1 +1
+2 +10
+4 +100

十進法で「5」の場合は「4+1」になるので、
二進法では「100+1」の計算で「101」になります。

処理が終わったら、再び十進法に変えて処理結果を変数へ設定します。



■ビット積

右辺の左右の値をビット値に変換し、両方に存在するビット値のみを残します。



例えば右辺の左右のビット値が「101」「110」の場合、
両方に存在する「100」だけを残して、処理結果は「100」になります。

水色=右辺の左側の値を二進法に変換したもの
黄色=右辺の右側の値を二進法に変換したもの
白色=処理結果(二進法の値)
ピンク=左上の変数に設定する値(十進法の値)

  1 2 3 4 5 6 7
1
001
001
001=
1
001
010
000=
0
001
011
001=
1
001
100
000=
0
001
101
001=
1
001
110
000=
0
001
111
001=
1
2
010
001
000=
0
010
010
010=
2
010
011
010=
2
010
100
000=
0
010
101
000=
0
010
110
010=
2
010
111
010=
2
3
011
001
001=
1
011
010
010=
2
011
011
011=
3
011
100
000=
0
011
101
001=
1
011
110
010=
2
011
111
011=
3
4
100
001
000=
0
100
010
000=
0
100
011
000=
0
100
100
100=
4
100
101
100=
4
100
110
100=
4
100
111
100=
4
5
101
001
001=
1
101
010
000=
0
101
011
001=
1
101
100
100=
4
101
101
101=
5
101
110
100=
4
101
111
101=
5
6
110
001
000=
0
110
010
010=
2
110
011
010=
2
110
100
100=
4
110
101
100=
4
110
110
110=
6
110
111
110=
6
7
111
001
001=
1
111
010
010=
2
111
011
011=
3
111
100
100=
4
111
101
101=
5
111
110
110=
6
111
111
111=
7



■ビット和

右辺の左右の値をビット値に変換し、ビット値を合体させます。

例えば右辺の左右のビット値が「101」「110」の場合、処理結果は「111」になります。

水色=右辺の左側の値を二進法に変換したもの
黄色=右辺の右側の値を二進法に変換したもの
白色=処理結果(二進法の値)
ピンク=左上の変数に設定する値(十進法の値)

  1 2 3 4 5 6 7
1
001
001
001=
1
001
010
011=
3
001
011
011=

3
001
100
101=
5
001
101
101=
5
001
110
111=
7
001
111
111=
7
2
010
001
011=
3
010
010
010=
2
010
011
011=
3
010
100
110=
0
010
101
111=
7
010
110
110=
6
010
111
111=
7
3
011
001
011=
3
011
010
011=
3
011
011
011=
3
011
100
111=
0
011
101
111=
7
011
110
111=
7
011
111
111=
7
4
100
001
101=
5
100
010
110=
6
100
011
111=
7
100
100
100=
4
100
101
101=
5
100
110
110=
6
100
111
111=
7
5
101
001
101=
5
101
010
111=
7
101
011
111=
7
101
100
101=
4
101
101
101=
5
101
110
111=
7
101
111
111=
7
6
110
001
111=
7
110
010
110=
6
110
011
111=
7
110
100
110=
4
110
101
111=
7
110
110
110=
6
110
111
110=
7
7
111
001
111=
7
111
010
111=
7
111
011
111=
7
111
100
111=
7
111
101
111=
7
111
110
111=
7
111
111
111=
7



■排他ビット

右辺の左右の値をビット値に変換し、どちらか一方のみに存在するビット値を残します。

例えば右辺の左右のビット値が「101」「110」の場合、
両方に存在する「100」を除外して、処理結果は「011」になります。

水色=右辺の左側の値を二進法に変換したもの
黄色=右辺の右側の値を二進法に変換したもの
白色=処理結果(二進法の値)
ピンク=左上の変数に設定する値(十進法の値)

  1 2 3 4 5 6 7
1
001
001
000=
0
001
010
011=
3
001
011
010=

2
001
100
101=
5
001
101
100=
4
001
110
111=
7
001
111
110=
6
2
010
001
011=
3
010
010
000=
0
010
011
001=
1
010
100
110=
6
010
101
111=
7
010
110
100=
4
010
111
101=
5
3
011
001
010=
2
011
010
001=
1
011
011
000=
0
011
100
111=
7
011
101
110=
6
011
110
101=
5
011
111
100=
4
4
100
001
101=
5
100
010
110=
6
100
011
111=
7
100
100
000=
0
100
101
001=
1
100
110
010=
2
100
111
011=
3
5
101
001
100=
4
101
010
111=
7
101
011
110=
6
101
100
001=
1
101
101
000=
0
101
110
011=
3
101
111
010=
2
6
110
001
111=
7
110
010
100=
4
110
011
101=
5
110
100
010=
2
110
101
011=
3
110
110
000=
0
110
111
001=
1
7
111
001
110=
6
111
010
101=
5
111
011
100=
4
111
100
011=
3
111
101
010=
2
111
110
001=
1
111
111
000=
0



■ビットシフト

右辺の左側の値をビット値に変換し、右辺の右側の値の分だけビット値を移動します。

例えば「右辺左側の値=5(ビット値「101」)」「右辺右側の値=2」の場合、
「101」が「10100」と桁が2つ左へ移動します。

「右辺左側の値=20(ビット値「10100」)」「右辺右側の値=-2」の場合、
「10100」が「101」と桁が2つ右へ移動します。



■ビットの使用例

ウディタの初期設定のコモンイベントの処理では、
「ビット積」「ビット和」「排他ビット」「ビットシフト<<」は使われていませんが、
コモンイベント[004:○回復・ダメージ処理]の処理では…
+1=HP回復
+2=SP回復
+4=ステータス異常の回復
と言った使い方をしており、ビット値の「0=ない」「1=ある」で処理しています。

HP回復 SP回復 状態回復 計算 設定値 処理内容
1 0 0 1 1 HP回復
0 2 0 2 2 SP回復
1 2 0 1+2 3 HP回復+SP回復
0 0 4 4 4 ステータス異常の回復
1 0 4 1+4 5 HP回復+ステータス異常の回復
0 2 4 2+4 6 SP回復+ステータス異常の回復
1 2 4 1+2+4 7 HP回復+SP回復+ステータス異常の回復

実際にコモンイベント[004:○回復・ダメージ処理]のイベントコマンドを見てみると…
■条件分岐(変数): 【1】 CSelf0[処理内容] が 4 のビットを満たす(状態異常回復がある)
と言ったように、ビット値で処理している事が分かります。


▲トップへ戻る▲


  
■[〜]

設定画面の表記 イベントコマンドの表記 説明
乱数(らんすう)を実行します。
右辺の左右に設定した数値の範囲で、
コンピュータが1つの値を作成します。

例えば…
■変数操作: このEvのSelf0 = 1 〜 100
と言った場合は、コンピュータが「1〜100」の中から1つの値をランダムで設定します。

ランダムなので上記設定を実行する度に、
変数の値が「12」になったり「58」になったり、同じ値が2回続いたりします。

【乱数の説明を見る】


▲トップへ戻る▲



◎関連ページ

◆「イベントコマンド」って何?
┣◆文章の表示
┃┗◆特殊文字
┣◆選択肢
┃┗◆【使用例】選択肢
┣◆変数操作
┃┗◆演算子について
┣◆DB操作
┣◆文字列操作
┃┗◆【使用例】文字列操作
┣◆変数操作+
┃┣◆「X座標・Y座標」と「画面X座標・画面Y座標」の違い
┃┣◆【使用例】変数操作+の「キャラ」と「位置」
┃┗◆【使用例】変数操作+の「ピクチャ」と「その他」
┣◆条件(変数)
┣◆条件(文字列)
┣◆キー入力
┃┗◆【使用例】キー入力
┣◆ピクチャ
┃┗◆表示形式(通常・加算・減算・乗算)について
┣◆エフェクト
┃┣◆「Zオーダー」について
┃┗◆【使用例】エフェクト
┣◆サウンド
┣◆セーブ・ロード操作
┣◆パーティ画像
┣◆チップ処理
┃┗◆【使用例】チップ処理
┣◆場所移動
┣◆イベント制御
┃┣◆キャラクターの動作指定
┃┗◆【使用例】イベント制御
┣◆コモンイベント
┣◆ダウンロード
┗◆プロ版機能
 ┗◆起動時の引数について

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