WOLF RPGエディター(ウディタ)[3.230]/イベントコマンド【サイトトップへ戻る】
■文字列操作
(更新:2023/10/04)


イベントコマンド【文字列操作】について解説します。



ショートカット
■イベントコマンド【文字列操作】とは?
■システム変数の一覧
■設定画面の説明:代入先指定
■設定画面の説明:代入方法
■設定画面の説明:UTF-8読込、SJIS読込、UTF-8/BOM有・なし
■設定画面の説明:手動入力
■設定画面の説明:文字列変数
■設定画面の説明:キーボード入力
■設定画面の説明:ロード位置を変数で指定
■設定画面の説明:変数名の設定
■隠し機能
■隠し機能:音声ファイルの再生時間を取得
■隠し機能:ファイルの存在有無を取得
■隠し機能:マップイベントの名前が存在するかどうかを取得
■隠し機能:マップイベントIDからマップイベントの名前を取得
■隠し機能:コモンイベントの名前からコモンイベントIDを取得
■隠し機能:マップイベントIDからマップイベントの画像アドレスを取得
■隠し機能:タイルセットIDから画像アドレスを取得
■隠し機能:ピクチャIDから画像アドレス(表示文字列)を取得
■隠し機能:文字列の文字の長さを取得
■隠し機能:指定した文字の長さで文字列を取得
■半角数字を全角数字に変える

【文字列操作】の使用例は別ページに記載しています。
【文字列操作の使用例を開く】


  
■イベントコマンド【文字列操作】とは?

【文字列操作】は文字列タイプの変数の内容を変更する時に使います。



プレイヤーに文字を入力してもらって、その入力された文字を変数に保存する時にも使います。

▼プレイヤーにパスワードを入力してもらうイベント




文字列変数に設定できる文字数の上限はありません。

但し1つの文字列変数に数十万文字などの大量の文字を保存すると、その文字列変数を処理する度に処理落ちが発生します。

そのため1つの文字列変数に大量の文字を保存するのはお勧めできません。


▲トップへ戻る▲


  
■システム変数の一覧

【文字列操作】に関連する「システム変数」の一覧です。
変数名をクリックすると詳細情報を見る事ができます。

【システム変数の説明ページを見る】

システム変数 説明
39:[読]キーボ入力状態 0=Enter -1=キャンセル 【文字列操作】の「キーボード入力」の終了方法を記憶。
[Enter]キーで終了→「0」
[Esc]キーで終了→「1」
40:キーボ入力文字列 X座標
41:キーボ入力文字列 Y座標
【文字列操作】の「キーボード入力」の表示位置を設定。
42:キーボ入力文字アンチエイリアス[0無/1有/+2でエッジ付] 【文字列操作】の「キーボード入力」の文字の表示方法を設定。

システム文字列 説明
67:[P]キーボード入力用フォント [プロ版のみ]
キーボード入力の時に表示するフォントを設定。


▲トップへ戻る▲


   
■設定画面の説明:代入先指定



文字列を変更する文字列変数を設定します。



代入先を変数で指定」の設定は「X番の変数呼出」と同じ仕様です。
設定する変数の値は「変数呼び出し値」にしてください。
【「X番の変数呼出」「変数呼び出し値」に関するページを開く】

▼コモンイベント[215]のセルフ変数[6]に「あいうえお」を設定する場合
【イベントコード表示】

■変数操作: このEvのセルフ変数0 = 15021506 + 0
■文字列操作:V[このEvのセルフ変数0] = "あいうえお"



代入先を変数で指定」の設定で呼び出す変数が数字タイプの変数である場合は、
設定する文字列の文頭にある数字が設定されます。

例えばマップイベントのセルフ変数[1](変数呼び出し値[1100001])に文字列を設定する…
■変数操作: このEvのセルフ変数0 = 1100001 + 0
■文字列操作:V[このEvのセルフ変数0] = "あいうえお"
の設定の場合、文頭に数字がないので、この場合はセルフ変数[1]には「0」が設定されます。

設定する文字列が…
■変数操作: このEvのセルフ変数0 = 1100001 + 0
■文字列操作:V[このEvのセルフ変数0] = "123あいうえお"
の場合は、セルフ変数[1]には「123」が設定されます。

設定する文字列が…
■変数操作: このEvのセルフ変数0 = 1100001 + 0
■文字列操作:V[このEvのセルフ変数0] = "-123"
の場合は、セルフ変数[1]には「-123」が設定されます。

代入方法が…
■変数操作: このEvのセルフ変数0 = 1100001 + 0
■文字列操作:V[このEvのセルフ変数0] += "123"
のように「+=」の場合は、セルフ変数[1]には「0」が設定され、足し算のような処理にはなりません。


▲トップへ戻る▲


  
■設定画面の説明:代入方法



下の「代入する文字列」からのデータを、
左の「代入先の文字列変数」にどのように設定するのかを選択します。

設定名 説明
代入する文字列の文字列をそのまま代入先の文字列変数に設定します。
何も文字列を設定しないで…
■文字列操作:S1[] = ""
と設定する事で、代入先の文字列変数を初期化する事ができます。
+= 代入する文字列の文字列を代入先の文字列変数の後ろに付け足します。
■文字列操作:S1[] = "あいうえお"
■文字列操作:S1[] += "かきくけこ"
この場合の文字列変数[1]は「あいうえおかきくけこ」になります。
追加する文字列を「後ろに追加」ではなく、「前に追加」にしたい時には…
■文字列操作:S1[] = "あいうえお"
■文字列操作:S1[] = "かきくけこ\s[1]"
と設定する事で文字列変数[1]は「かきくけこあいうえお」になります。
に↓から上1行コピー 代入する文字列の上から1行目の文字列を代入先の文字列変数に設定します。
例えば…
あいうえお
かきくけこ
の文字列で実行した場合、代入先の文字列変数には「あいうえお」が設定され、
何度実行しても2行目の「かきくけこ」は設定されません。
に↓から上1行切り出し 代入する文字列の上から1行目を切り出し、代入先の文字列変数に設定します。
例えば…
■文字列操作:S1[] = "あいうえお\nかきくけこ\nさしすせそ"
■回数付きループ [ 3 ]回
|■文字列操作:S2[] =<上1行切出> S1[]
|■デバッグ文:\s[2]
|■
◇ループここまで◇◇
を実行した場合は、最初に文字列変数[2]には「あいうえお」が設定され、
2回目に実行すると「かきくけこ」、3回目に実行すると「さしすせそ」が設定されます。
この「に↓から上1行切り出し」は別の文字列変数から1行切り出す時に使うものなので…
■文字列操作:S2[] =<上1行切出> "あいうえお\nかきくけこ\nさしすせそ"
と言ったように、代入する文字列に文字列を入力設定した場合は、
何度実行しても文字列変数[2]には「あいうえお」しか切り出しません。
そのため、一度文字列変数に文字列を設定し、
その設定した文字列変数から1行ずつ切り出すように設定してください。
1行切り出しを実行すると、切り出し元の文字列変数の文字列は消去します。
例えば…
■文字列操作:S1[] = "あいうえお\nかきくけこ\nさしすせそ"
■回数付きループ [ 3 ]回
|■文字列操作:S2[] =<上1行切出> S1[]
|■デバッグ文:\s[2]
|■
◇ループここまで◇◇
と実行すると、文字列変数[1]は…
▼切り出し前
あいうえお
かきくけこ
さしすせそ



▼切り出し1回目
かきくけこ
さしすせそ



▼切り出し2回目
さしすせそ



▼切り出し3回目
 
と徐々に文字列が消去されます。
もしも切り出し元の文字列変数の文字列を残したい時には、
別の文字列変数に文字列をコピーして、
そのコピーした文字列で1行切り出しを実行してください。
に↓から1文字切り出し 代入する文字列の1文字目を切り出し、代入先の文字列変数に設定します。
例えば…
■文字列操作:S1[] = "あいうえお"
■回数付きループ [ 5 ]回
|■文字列操作:S2[] =<1文字切出> S1[]
|■デバッグ文:\s[2]
|■
◇ループここまで◇◇
を実行した場合は、最初に文字列変数[2]には「」が設定され、
2回目に実行すると「」、3回目に実行すると「」が設定されます。
この「に↓から1文字切り出し」は、
別の文字列変数から1文字切り出す時に使うものなので…
■文字列操作:S2[] =<1文字切出> "あいうえお"
と言ったように、代入する文字列に設定した文字列で実行した場合は、
何度実行しても文字列変数[2]には「」しか切り出しません。
そのため、一度文字列変数に文字列を設定し、
その設定した文字列変数から1行ずつ切り出すように設定してください。
1文字切り出しを実行すると、切り出し元の文字列変数の文字列は消去します。
例えば…
■文字列操作:S1[] = "あいうえお"
■回数付きループ [ 5 ]回
|■文字列操作:S2[] =<1文字切出> S1[]
|■デバッグ文:\s[2]
|■
◇ループここまで◇◇
と実行すると、文字列変数[1]は…
▼切り出し前
あいうえお

▼切り出し1回目
いうえお

▼切り出し2回目
うえお

▼切り出し3回目
えお
と徐々に文字列が消去されます。
もしも切り出し元の文字列変数の文字列を残したい時には、
別の文字列変数に文字列をコピーして、
そのコピーした文字列で1文字切り出しを実行してください。
に↓から最後1文字切り出し 代入する文字列の最後にある1文字を切り出し、代入先の文字列変数に設定します。
例えば…
■文字列操作:S1[] = "あいうえお"
■回数付きループ [ 5 ]回
|■文字列操作:S2[] =<最後1文字切出> S1[]
|■デバッグ文:\s[2]
|■
◇ループここまで◇◇
を実行した場合は、最初に文字列変数[2]には「」が設定され、
2回目に実行すると「」、3回目に実行すると「」が設定されます。
この「に↓から最後1文字切り出し」は、
別の文字列変数から1文字切り出す時に使うものなので…
■文字列操作:S2[] =<最後1文字切出> "あいうえお"
と言ったように、代入する文字列に文字列を入力設定した場合は、
何度実行しても文字列変数[2]には「」しか切り出しません。
そのため、一度文字列変数に文字列を設定し、
その設定した文字列変数から1行ずつ切り出すように設定してください。
1文字切り出しを実行すると、切り出し元の文字列変数の文字列は消去します。
例えば…
■文字列操作:S1[] = "あいうえお"
■回数付きループ [ 5 ]回
|■文字列操作:S2[] =<最後1文字切出> S1[]
|■デバッグ文:\s[2]
|■
◇ループここまで◇◇
と実行すると、文字列変数[1]は…
▼切り出し前
あいうえお

▼切り出し1回目
あいうえ

▼切り出し2回目
あいう

▼切り出し3回目
あい
と徐々に文字列が消去されます。
もしも切り出し元の文字列変数の文字列を残したい時には、
別の文字列変数に文字列をコピーして、
そのコピーした文字列で1文字切り出しを実行してください。
に↓のファイル内容読込 指定したアドレスにあるテキストファイルを代入先の文字列変数に設定します。
▼設定例
Data/テキストデータ.txt
この「に↓のファイル内容読込」で特殊なコマンドを設定すると、
様々な隠し機能を使う事ができます。

詳しくは当ページの下の方にある■隠し機能をご覧ください。
をファイル↓に出力 指定したアドレスに代入先の文字列変数の文字列を出力します。
▼代入する文字列の設定例
Data/テキストデータ.txt
に↓のファイルをBase64で読込 指定したアドレスにあるファイルをBase64で読み込みます。
「Base64」は、本来はテキストとして開く事ができない画像ファイルのデータなどを
「A〜Z」「a〜z」「0〜9」「+/」などの文字に変換して見れるようにするものです。
「Base64が必要だ!」と言う人が使う機能なので、よく分からない人は無視してください。
▼代入する文字列の設定例
Game.ini

▼「Game.ini」に保存されている文字列
Start=0
SoftModeFlag=0
WindowModeFlag=1
SEandBGM=3 # 0:SE・BGMなし 1:SEのみ 2:BGMのみ 3:SE+BGMあり
FrameSkip=0
Proxy=
ProxyPort=
ScreenShotFlag=1
F12_Reset=1
Display_Number=0
Old_DirectX_Use=0
ClipBoard_Use=1
MainText_to_ClipBoard=0

▼処理結果(文字列変数に出力した文字列)
U3RhcnQ9MA0KU29mdE1vZGVGbGFnPTANCldpbmRvd01vZGVGbGFnPTENClNFYW5kQkdNPT
MgICMgMDpTRe+9pUJHTeOBquOBlyAxOlNF44Gu44G/IDI6QkdN44Gu44G/IDM6U0UrQkdN
44GC44KKDQpGcmFtZVNraXA9MA0KUHJveHk9DQpQcm94eVBvcnQ9DQpTY3JlZW5TaG90Rm
xhZz0xDQpGMTJfUmVzZXQ9MQ0KRGlzcGxheV9OdW1iZXI9MA0KT2xkX0RpcmVjdFhfVXNl
PTANCkNsaXBCb2FyZF9Vc2U9MQ0KTWFpblRleHRfdG9fQ2xpcEJvYXJkPTANCg==
に↓フォルダのファイルリスト取得 指定したアドレスにあるファイル名とフォルダ名を代入先の文字列変数に設定します。
▼設定例
Data/Picture/

▼処理結果(文字列変数に出力した文字列)
[Animal]Cat_pochi.png
[Animal]Fox_pochi.png
[Animal]Rabbit_pochiT.png
「ゲームデータの作成」の時に暗号化を行った場合は、
その暗号化されたゲームデータの中では機能せず、
代入先の文字列変数には「<<ERROR>>」が設定されます。
から↓の文字を全消去 代入する文字列に設定された文字列と同じ文字列を代入先の文字列変数から削除します。
■文字列操作:S1[] = "MapChip/[Base]BaseChip_pipo.png"
■文字列操作:S1[] =<から→の文字列を全消去> "ip"
この場合は…
MapChip/[Base]BaseChip_pipo.png
の部分が削除され…
MapCh/[Base]BaseCh_po.png
になります。
から以下の文字列を置換 代入先の文字列変数の中に左側で設定した文字列があった場合は、
右側の文字列に置き換えます。
■文字列操作:S1[] = "MapChip/[Base]BaseChip_pipo.png"
■文字列操作:S1[] =<から文字列を置換> "ip" → "YADO"
この場合は…
MapChip/[Base]BaseChip_pipo.png
の部分が「YADO」に変わり…
MapChYADO/[Base]BaseChYADO_pYADOo.png
になります。
に↓から特殊文字を消去して格納 代入する文字列に含まれている特殊文字を消去して、代入先の文字列変数に設定します。
■文字列操作:S1[] = "あいうえお\c[2]かきくけこ"
■文字列操作:S2[]<→の特殊文字を消去して格納>S1[]
この場合は、文字列変数[1]にある特殊文字「\c[2]」が消去されて、
文字列変数[2]には「あいうえおかきくけこ」と特殊文字が無い状態で設定されます。
ルビを表示する…
あいうえお、\r[こんばんわ,コンバンワ]、かきくけこ
の設定がある場合は…
あいうえお、こんばんわ、かきくけこ
と言ったように、ルビ設定の左側にあった文字列だけが残ります。
<から指定文字まで切り出し> 代入先の文字列変数代入する文字列と同じ文字列があった場合は、
その位置までの文字列を切り出し、代入先の文字列変数に設定します。
■文字列操作:S1[] = "あいうえおかきくけこ"
■文字列操作:S1[] =<から指定文字まで切り出し> "かき"
この場合は、文字列変数[1]の「かき」がある手前までが切り出し対象となり、
文字列変数[1]には「あいうえお」になります。
「あいうかきえおかきくけこ」のように、同じ「かき」が複数ある場合は、
文頭から最初に見つかった「かき」が対象となり、「あいう」が出力されます。
指定文字が無かった時には、代入先の文字列変数には「<<NotFound>>」が設定されます。
<の指定文字以降を切り出し> 代入先の文字列変数代入する文字列と同じ文字列があった場合は、
その文字列以降の文字を切り出し、代入先の文字列変数に設定します。
■文字列操作:S1[] = "あいうえおかきくけこ"
■文字列操作:S1[] =<の指定文字以降を切り出し> "かき"
この場合は、文字列変数[1]の「かき」がある先の文字が切り出し対象となり、
文字列変数[1]には「くけこ」が設定されます。
「あいうかきえおかきくけこ」のように、同じ「かき」が複数ある場合は、
文頭から最初に見つかった「かき」が対象となり、「えおかきくけこ」が出力されます。
指定文字が無かった時には、代入先の文字列変数には「<<NotFound>>」が設定されます。


▲トップへ戻る▲


  
■設定画面の説明:UTF-8読込、SJIS読込、UTF-8/BOM有・なし





に↓のファイル内容読込」「をファイル↓に出力」を設定する時に出現する設定欄について、ざっくりと説明します。

に↓のファイル内容読込 UTF-8読込[基本] 特殊な文字や記号(外字)に対応できたり、
日本語以外のテキストの読み込みもできるので、基本的にこちらを推奨。
SJIS読込 昔から日本で使われてきた文字コードで、
古いテキストデータを読み込む時に使われます。
この設定で「UTF-8」のテキストを読み込むと文字化けします。
自動文字コード判別 保存形式がよく分からない時に設定。
をファイル↓に出力 UTF-8/BOM有[基本]
UTF-8/BOMなし
BOM有りにすると、テキストデータの保存方法がデータの最初に記載されます。
基本的に「有り」で良いですが、
ウディタではない別のプログラムで使用する時には、
「なし」にしないとうまく動作しない事があります。


▲トップへ戻る▲


  
■設定画面の説明:手動入力



手入力で文字列を設定します。



変数の値を呼び出す「\v[1]」などの特殊文字の設定ができます。
【特殊文字についての説明を見る】

数値タイプの変数の値を文字列に設定したい時には、特殊文字で設定してください。



なお、特殊文字を設定した場合は、その特殊文字自体が代入先の文字列変数に保存されるわけではなく、
特殊文字で呼び出された情報が代入先の文字列変数に保存されます。

例えば…
■文字列操作:S1[] = "宝箱を開けた数:\v[0]個"
と言った設定を実行した時に、この時点で「通常変数[0]=4」の場合は、
文字列変数[1]の文字列は「宝箱を開けた数:4個」になります。

その後「通常変数[0]=5」になっても、文字列変数[1]の内容は「4個」のままになります。


▲トップへ戻る▲


  
■設定画面の説明:文字列変数



文字列変数の保存された文字列を呼び出します。

データベースの文字列を呼び出す場合は、
手動入力」に特殊文字「\cdb[0:0:0:]」などを設定して呼び出すか、
ロード位置を変数で指定」に「変数呼び出し値」を設定して呼び出してください。


▲トップへ戻る▲


  
■設定画面の説明:キーボード入力



プレイヤーに文字列を入力してもらい、入力した文字列を代入先の文字列変数へ保存します。



バイト数[全角3-4]には、入力できる文字数を設定します。

「abcde123」などの半角英数は1文字に付き1バイト消費し、
それ以外の「あいうえお」などの全角文字は1文字に付き3〜4バイト消費します。

バイト数を「4未満」にすると、自動的に「4」に修正されます。

数値の設定欄がかなり狭いですが、一応「2000000」などの変数呼び出し値も設定できます。



キャンセル有」にチェックを入れた場合は、入力中に[Esc]キーを押すと入力をキャンセルする事ができます。

キャンセルしたかどうかの判断は、
システム変数[39:[読]キーボ入力状態 0=Enter -1=キャンセル]が「-1」であるかどうかで判断する事ができます。

【イベントコード表示】

■文字列操作:S0[[サンプル]一時文字列] = キーボード入力 10バイト [キャンセル可]
■条件分岐(変数): 【1】 Sys39:[読]キーボ入力状態 0=Enter -1=キャンセル が -1 と同じ
-◇分岐: 【1】 [ Sys39:[読]キーボ入力状態 0=Enter -1=キャンセル が -1 と同じ ]の場合↓
|▼ キャンセルが押された時
|■イベント処理中断
|■
◇分岐終了◇

またキャンセルを実行した時には、代入先の文字列変数には何も文字列が設定されないので…
【イベントコード表示】

■文字列操作:S0[[サンプル]一時文字列] = キーボード入力 10バイト [キャンセル可]
■条件分岐(文字): 【1】 S0[[サンプル]一時文字列]が "" と同じ
-◇分岐: 【1】 [ S0[[サンプル]一時文字列] "" と同じ ]の場合↓
|▼ 文字の入力無し、またはキャンセルが押された時
|■イベント処理中断
|■
◇分岐終了◇
と言った感じに「文字列無し=キャンセル」と処理する方法もあります。



左辺を置換」にチェックを入れた場合は、代入先の文字列変数に保存された文字列が入力画面に設定されます。

例えば…
■文字列操作:S0[[サンプル]一時文字列] = "あいうえお"
■文字列操作:S0[[サンプル]一時文字列] = キーボード入力 10バイト [書き換え]
と設定した場合は、最初から入力画面に「あいうえお」が設定されている状態になります。



【キーボード入力】を実行したイベントとは別に「並列実行」のイベントを実行する事で、
指定した時間が来たらキーボード入力の処理を強制終了させるイベントを実行させる事もできます。

【詳しい設定方法を見る】


▲トップへ戻る▲


  
■設定画面の説明:ロード位置を変数で指定



変数呼び出し値」を設定して、変数に保存された文字列を呼び出します。
【「変数呼び出し値」に関するページを開く】



▼コモンイベント[215]のセルフ変数[6]の文字列を呼び出す場合



▲トップへ戻る▲


  
■設定画面の説明:変数名の設定



システムDB[4:文字列変数名]にある文字列変数の名前を付けます。

コモンイベントの場合はセルフ変数[5〜9]の名前も付けられます。



名前を付ける場合は、まず左上をクリックして、名前を付ける変数を選択してください。





下の入力欄に新しく付ける名前を設定して、
名前の入力が終わりましたは、[名前を付ける]をクリックしてください。





既に設定されている変数名を使用する場合は、[↓コピー]をクリックしてください。





[サイズ+1]をクリックすると、システムDB最大データ数が増えます。


       



▲トップへ戻る▲


  
■隠し機能

に↓のファイル内容読込」の設定にて、特殊なコマンドを設定すると、様々な隠し機能を使う事ができます。

▼設定例


隠し機能のショートカット
■隠し機能:音声ファイルの再生時間を取得
■隠し機能:ファイルの存在有無を取得
■隠し機能:マップイベントの名前が存在するかどうかを取得
■隠し機能:マップイベントIDからマップイベントの名前を取得
■隠し機能:コモンイベントIDからコモンイベントの名前を取得
■隠し機能:マップイベントIDからマップイベントの画像アドレスを取得
■隠し機能:タイルセットIDから画像アドレスを取得
■隠し機能:ピクチャIDから画像アドレス(表示文字列)を取得
■隠し機能:文字列の文字の長さを取得
■隠し機能:指定した文字の長さで文字列を取得

▼隠し機能:音声ファイルの再生時間を取得

<<GET_SOUNDTIME>>ファイルアドレス

音声ファイルの再生時間をミリ秒(1000ミリ秒=1秒)を取得する時に使います。



■文字列操作:S1[] =<ファイル内容読込> [UTF-8] "<<GET_SOUNDTIME>>Data/SE/[Action]Cheer1_Komori.ogg"
この場合は「2280」が取得されます。
つまりファイル「[Action]Cheer1_Komori.ogg」の演奏時間は「2.280秒」になります。



MIDIファイル(拡張子「.mid」)では使用できません。
▼隠し機能:ファイルの存在有無を取得

<<GET_FILE_EXIST>>ファイルアドレス

ファイルが存在するかどうかを確認する時に使います。



■文字列操作:S1[] =<ファイル内容読込> [UTF-8] "<<GET_FILE_EXIST>>Data/何らかの画像.png"
ファイル有りの場合は「1」、ファイル無しの場合は「0」を取得します。
▼隠し機能:マップイベントの名前が存在するかどうかを取得

<<GET_MAPEVENT_ID_FROM_NAME>>マップイベント名

指定した名前のマップイベントが存在するかどうかを調べる時に使います。



指定した名前のマップイベントが存在する場合は、文字列変数にはイベントIDが設定されます。

例えば…
■文字列操作:S1[] =<ファイル内容読込> [UTF-8] "<<GET_MAPEVENT_ID_FROM_NAME>>リンゴ"
の設定をサンプルゲームのマップ「サンプルマップA」で実行すると「15」が取得されます。



同じ名前のマップイベントが複数ある場合は、その中で最も大きいイベントIDを取得します。

例えばマップイベントの設定が…
00:町の人A
01:宝箱
02:町の人B
03:宝箱
04:宝箱
05:町の人C
の時に「<<GET_MAPEVENT_ID_FROM_NAME>>宝箱」を実行すると「4」が取得されます。



指定した名前のマップイベントが存在しない場合は「-1」を取得します。



なお、名前の設定は空白スペースの全角/半角なども含めて、正確に設定する必要があります。

例えば以下の3つの名前は全て「異なる名前」として処理されます。

【場所移動 Bへ】 途中のスペースを半角で設定
【場所移動 Bへ】 途中のスペースを全角で設定
【場所移動 Bへ】 Bを全角文字で設定
▼隠し機能:マップイベントIDからマップイベントの名前を取得

<<GET_MAPEVENT_NAME_FROM_ID>>マップイベントID

指定したマップイベントIDに設定されているマップイベントの名前を取得します。



■文字列操作:S1[] =<ファイル内容読込> [UTF-8] "<<GET_MAPEVENT_ID_FROM_NAME>>15"
この設定をサンプルゲームのマップ「サンプルマップA」で実行すると「リンゴ」が取得されます。



指定したマップイベントIDがマップ上に存在しない場合は「<<NotFound>>」を取得します。
▼隠し機能:コモンイベントの名前からコモンイベントIDを取得

<<GET_COMMONEVENT_ID_FROM_NAME>>コモンイベント名

指定した名前のコモンイベントが存在するかどうかを調べる時に使います。



指定した名前のコモンイベントが存在する場合は、文字列変数にはコモンイベントIDが設定されます。

例えば…
■文字列操作:S1[] =<ファイル内容読込> [UTF-8] "<<GET_COMMONEVENT_ID_FROM_NAME>>相談コマンド"
を実行すると「212」が取得されます。



同じ名前のコモンイベントが複数ある場合は、その中で最も大きいイベントIDを取得します。



指定した名前のコモンイベントが存在しない場合は「-1」を取得します。
▼隠し機能:マップイベントIDからマップイベントの画像アドレスを取得

<<GET_MAPEV_FILENAME>>マップイベントID

指定したマップイベントIDに設定されている画像アドレスを取得します。

マップイベントに複数のページがある場合は、現在表示されているページの画像アドレスを取得します。



■文字列操作:S1[] =<ファイル内容読込> [UTF-8] "<<GET_MAPEV_FILENAME>>7"
この設定をサンプルゲームのマップ「サンプルマップA」で実行すると、
マップイベント[07:ハカセ]の画像アドレス「CharaChip/[Chara]Doctor.png」を取得します。



タイルセットの画像を設定している場合は「<TILE>タイルID」が取得されます。

例えば…
■文字列操作:S1[] =<ファイル内容読込> [UTF-8] "<<GET_MAPEV_FILENAME>>15"
の設定をサンプルゲームのマップ「サンプルマップA」で実行すると、
マップイベント[15:リンゴ]の画像アドレスが取得されますが、
この画像はタイルセットの画像であるため、「<TILE>1013」を取得します。



指定したマップイベントIDがマップ上に存在しない場合は「<<NotFound>>」を取得します。
▼隠し機能:タイルセットIDから画像アドレスを取得

<<GET_TILE_FILENAME>>タイルセットID

タイルセットIDを設定すると、そのタイルセットの画像アドレスを取得します。

0 基本タイルセット
1〜31 オートタイルセット





例えばサンプルゲームのマップ「サンプルマップA」で…
■文字列操作:S1[] =<ファイル内容読込> [UTF-8] "<<GET_TILE_FILENAME>>1"
を実行すると「MapChip/[A]Grass1-Dirt1_pipo.png」が取得されます。



指定したタイルセットIDにファイルアドレスが設定されてない場合は、何も文字列は取得されません。
▼隠し機能:ピクチャIDから画像アドレス(表示文字列)を取得

<<GET_FILENAME_FROM_PICTURE>>ピクチャID

指定したピクチャIDに設定されている画像アドレスを取得します。



例えばサンプルゲームのマップ「サンプルマップB」にあるエンカウントで敵が出現するイベントにて、
戦闘が開始した後に…
■文字列操作:S1[] =<ファイル内容読込> [UTF-8] "<<GET_FILENAME_FROM_PICTURE>>10700"
を実行すると、敵キャラの画像アドレス「EnemyGraphic/GD_Goblin(Red).png」を取得します。



ピクチャで文字列を表示している場合は、その文字列を取得します。

「お気軽ウィンドウ」で「<GRADY-779-000>」などを設定している場合は、
その「<GRADY-779-000>」の文字列を取得します。

また「\E」などの特殊文字も取得します。



\cself[10]」などの変数の値を呼び出す設定があった場合は、
ピクチャを表示した時の変数の値が取得されます。

例えば…
■変数操作: CSelf10 = 100 + 0
■ピクチャ表示:1 [左上]文字列[\cself[10]] X:0 Y:0 / 0(0)フレーム / パターン 1 /
       透 255 / 通常 / 角 0 / 拡 100% / カラー R[100] G[100] B[100]
■変数操作: CSelf10 = 50 + 0
■文字列操作:CSelf5 =<ファイル内容読込> [UTF-8] "<<GET_FILENAME_FROM_PICTURE>>1"
の場合は、ピクチャ[1]に保存された文字列は「\cself[10]」ではなく「100」になるため、
セルフ変数[5]に保存されるピクチャ[1]の文字列は「100」になります。



ピクチャが存在しない場合は「<<NotFound>>」を取得します。
▼隠し機能:文字列の文字の長さを取得

<<GET_STRING_WIDTH_COUNT>>文字列

文字列の長さを「半角=1「全角=2」で取得します。



■文字列操作:S1[] =<ファイル内容読込> [UTF-8] "<<GET_STRING_WIDTH_COUNT>>abdceあいうえお"
上記の場合は、「abcde」が「半角5文字×1=5」、「あいうえお」が「全角5文字×2=10」となり、
文字列の長さは「15」が取得されます。



改行や特殊文字の文字数はカウントされないので…
■文字列操作:S1[] =<ファイル内容読込> [UTF-8] "<<GET_STRING_WIDTH_COUNT>>あい\n\c[2]えお"
の場合は「あいうえお」の文字列の長さのみ(全角5文字×2=10)が取得されます。



■文字列操作:S1[] =<ファイル内容読込> [UTF-8] "<<GET_STRING_WIDTH_COUNT>>\s[0]"
のように、特殊文字で文字列変数を呼び出している場合は、
その文字列変数に保存されている文字列の長さをカウントします。



■文字列操作:S1[] =<ファイル内容読込> [UTF-8] "<<GET_STRING_WIDTH_COUNT>>\r[あいうえお,アイウエオ]"
上記のようなルビを表示する設定があった場合は、ルビで表示する「アイウエオ」の文字数はカウントされず、
「あいうえお」の文字数のみがカウントされるため、「全角5文字×2=10」となります。
▼隠し機能:指定した文字の長さで文字列を取得

<<CUT_STRING_WIDTH_COUNT=文字の長さ>>文字列

指定した文字の長さで文字列を取得します。

文字の長さは「半角=1「全角=2」で設定します。

例えば「aあbいcう」の文字列を取得する場合は、
設定する文字の長さによって、取得される文字列が以下のように異なります。

文字の長さ 1 2 3 4 5 6 7 8 9
取得する文字 a a aあ aあb aあb aあbい aあbいc aあbいc aあbいcう



改行や特殊文字の文字数は無視されるので…
■文字列操作:S1[] =<ファイル内容読込> [UTF-8] "<<CUT_STRING_WIDTH_COUNT=10>>あい\n\c[2]えお"
の場合は「文字の長さ=10(全角5文字分)」になるため、
途中にある特殊文字を含め「あい\nう\c[2]えお」が取得されます。



半角の「\」を表示する時に使う特殊文字「\\」は、半角1文字の「\」として処理されるため、
例えば「あい\\うえお」の場合は「あい\うえお」として処理され、文字の長さは「11」になります。



■文字列操作:S1[] =<ファイル内容読込> [UTF-8] "<<CUT_STRING_WIDTH_COUNT=8>>\s[0]"
のように、特殊文字で文字列変数を呼び出している場合は、
その文字列変数に保存されている文字列が取得されます。



■文字列操作:S1[] =<ファイル内容読込> [UTF-8] "<<CUT_STRING_WIDTH_COUNT=10>>\r[あいうえお,アイウエオ]"
上記のようなルビを表示する設定があった場合は、
ルビの設定は取得されず、「あいうえお」の文字列のみが取得されます。


▲トップへ戻る▲


  
■半角数字を全角数字に変える

特殊文字「\v[0]」などで呼び出された数値は半角数字になりますが、これを全角数字で表示するように設定します。



設定には【文字列操作】の「から以下の文字列を置換」を使います。

▼設定例(所持金の表示を全角数字で表示)
【イベントコード表示】

■文字列操作:S0[[サンプル]一時文字列] = "\cdb[6:0:0]"
■文字列操作:S0[[サンプル]一時文字列] =<から文字列を置換> "0" → "0"
■文字列操作:S0[[サンプル]一時文字列] =<から文字列を置換> "1" → "1"
■文字列操作:S0[[サンプル]一時文字列] =<から文字列を置換> "2" → "2"
■文字列操作:S0[[サンプル]一時文字列] =<から文字列を置換> "3" → "3"
■文字列操作:S0[[サンプル]一時文字列] =<から文字列を置換> "4" → "4"
■文字列操作:S0[[サンプル]一時文字列] =<から文字列を置換> "5" → "5"
■文字列操作:S0[[サンプル]一時文字列] =<から文字列を置換> "6" → "6"
■文字列操作:S0[[サンプル]一時文字列] =<から文字列を置換> "7" → "7"
■文字列操作:S0[[サンプル]一時文字列] =<から文字列を置換> "8" → "8"
■文字列操作:S0[[サンプル]一時文字列] =<から文字列を置換> "9" → "9"
■文章:現在は\s[0]ゴールドを持っていますね。



これは「全角→半角」の変換にも使えます。

例えばプレイヤーに数字を入力してもらった時に…
【イベントコード表示】

■文字列操作:S0[[サンプル]一時文字列] = キーボード入力 9文字
■文字列操作:S0[[サンプル]一時文字列] =<から文字列を置換> "0" → "0"
■文字列操作:S0[[サンプル]一時文字列] =<から文字列を置換> "1" → "1"
■文字列操作:S0[[サンプル]一時文字列] =<から文字列を置換> "2" → "2"
■文字列操作:S0[[サンプル]一時文字列] =<から文字列を置換> "3" → "3"
■文字列操作:S0[[サンプル]一時文字列] =<から文字列を置換> "4" → "4"
■文字列操作:S0[[サンプル]一時文字列] =<から文字列を置換> "5" → "5"
■文字列操作:S0[[サンプル]一時文字列] =<から文字列を置換> "6" → "6"
■文字列操作:S0[[サンプル]一時文字列] =<から文字列を置換> "7" → "7"
■文字列操作:S0[[サンプル]一時文字列] =<から文字列を置換> "8" → "8"
■文字列操作:S0[[サンプル]一時文字列] =<から文字列を置換> "9" → "9"
を実行して、全角数字を半角数字に変えて処理する事ができます。


▲トップへ戻る▲



◎関連ページ

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

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