一括表示

記事No: 21122
タイトル変数を格納する場所に文字列を代入するには?
投稿日: 2020/09/05 15:56
投稿者Tark [WdrLpOO827(海外)]

[やりたいこと]
場所移動する際、ユーザーデータベースの設定を反映したテロップに居場所を表示させたい

[やってみたこと]
■変数操作: CSelf10[基本ピクチャ番号] = 3000 + 0
■変数操作: CSelf20[udb登録位置] = 0 + 0
▼ ≪コモン実行≫

■条件分岐(変数): 【1】 Sys84:画面サイズ(0=320x240,1=640x480 2=800x600 ・ が 0 と同じ 【2】 Sys84:画面サイズ(0=320x240,1=640x480 2=800x600 ・ が 1 と同じ 【3】 Sys84:画面サイズ(0=320x240,1=640x480 2=800x600 ・ が 2 と同じ
-◇分岐: 【1】 [ Sys84:画面サイズ(0=320x240,1=640x480 2=800x600 ・ が 0 と同じ ]の場合↓
|■変数操作: CSelf4[座標倍率] = 10 + 0
|■
-◇分岐: 【2】 [ Sys84:画面サイズ(0=320x240,1=640x480 2=800x600 ・ が 1 と同じ ]の場合↓
|■変数操作: CSelf4[座標倍率] = 20 + 0
|■
-◇分岐: 【3】 [ Sys84:画面サイズ(0=320x240,1=640x480 2=800x600 ・ が 2 と同じ ]の場合↓
|■変数操作: CSelf4[座標倍率] = 25 + 0
|■
◇分岐終了◇
▼ udb読解
■文字列操作:CSelf8[デバッグ文] = ""
■DB読込(ユーザ): CSelf21[フォントサイズ] = ユーザDB[ CSelf20[udb登録位置] : CSelf1[表示形式] : 3 ] (- : - : ×NoData)
■変数操作: CSelf21[フォントサイズ] *= CSelf4[座標倍率] + 0
■変数操作: CSelf21[フォントサイズ] /= 10 + 0
■DB読込(ユーザ): CSelf22[文字色] = ユーザDB[ CSelf20[udb登録位置] : CSelf1[表示形式] : 4 ] (- : - : ×NoData)
■変数操作: CSelf29[一時ディレイ] = 0 + 0
■DB読込(ユーザ): CSelf30[表示形式] = ユーザDB[ CSelf20[udb登録位置] : CSelf1[表示形式] : 2 ] (- : - : ×NoData)
■DB読込(ユーザ): CSelf31[文字影フラグ] = ユーザDB[ CSelf20[udb登録位置] : CSelf1[表示形式] : 5 ] (- : - : ×NoData)
■DB読込(ユーザ): CSelf32[デバッグフラグ] = ユーザDB[ CSelf20[udb登録位置] : CSelf1[表示形式] : 6 ] (- : - : ×NoData)
■DB読込(ユーザ): CSelf35[ウィンドウX補正] = ユーザDB[ CSelf20[udb登録位置] : CSelf1[表示形式] : 10 ] (- : - : ×NoData)
■DB読込(ユーザ): CSelf36[ウィンドウY補正] = ユーザDB[ CSelf20[udb登録位置] : CSelf1[表示形式] : 11 ] (- : - : ×NoData)
■変数操作: CSelf35[ウィンドウX補正]〜CSelf36[ウィンドウY補正] *= CSelf4[座標倍率] + 0
■変数操作: CSelf35[ウィンドウX補正]〜CSelf36[ウィンドウY補正] /= 10 + 0
■DB読込(ユーザ): CSelf9[一時文字列] = ユーザDB[ CSelf20[udb登録位置] : CSelf1[表示形式] : 0 ] (- : - : ×NoData)
■変数操作: CSelf33[ウィンドウフラグ] = 0 + 0
▼ ウィンドウ画像が表示されている場合のみ、フラグを立てる。
■条件分岐(文字): 【1】 CSelf9[一時文字列]が "" 以外
-◇分岐: 【1】 [ CSelf9[一時文字列] "" 以外 ]の場合↓
|■変数操作: CSelf33[ウィンドウフラグ] = 1 + 0
|■
◇分岐終了◇
▼ 前回の分のピクチャを消去 ウィンドウは表示されていない可能性もあるので、文字列で判断
■変数操作: CSelf11[表示ピクチャ番号] = CSelf10[基本ピクチャ番号] + 1
■変数操作+: CSelf16[一時変数A] = ピクチャ:CSelf11[表示ピクチャ番号] の ピクチャが使用中?(1=YES)
▼ CSelf16に1が返されていたら、消去処理
■回数付きループ [ CSelf16[一時変数A] ]回
|■変数操作: CSelf11[表示ピクチャ番号] = CSelf10[基本ピクチャ番号] + 1
|■ピクチャ[ディレイ内容リセット]:CSelf10[基本ピクチャ番号] 〜 CSelf11[表示ピクチャ番号]
|■ピクチャ消去:CSelf10[基本ピクチャ番号] 〜 CSelf11[表示ピクチャ番号] / 0(0)フレーム
|■
◇ループここまで◇◇
▼ 文字列+ウィンドウ表示 CSelf2が1以上の時(テロップ表示の時)に作動
■回数付きループ [ CSelf2[テロップ] ]回
|■チェックポイント■■■■■■■■■■■■■■■■■■■■■■■■
|▼
|▼ ≪フェイズ1≫ 初期位置に表示 以降、CSelf16,17は座標専門
|▼
|▼ 文字列表示
|■変数操作: CSelf11[表示ピクチャ番号] = CSelf10[基本ピクチャ番号] + 1
|■DB読込(システム): CSelf16[一時変数A] = システムDB[ 7 : CSelf0[移動先] : 0 ] (位置設定リスト : - : マップID)
|■DB読込(システム): CSelf9[一時文字列] = システムDB[タイプ0(マップ設定) データCSelf16[一時変数A](-)のデータ名]
|▼ 座標他
|■DB読込(ユーザ): CSelf16[一時変数A] = ユーザDB[ CSelf20[udb登録位置] : CSelf1[表示形式] : 12 ] (- : - : ×NoData)
|■DB読込(ユーザ): CSelf17[一時変数B] = ユーザDB[ CSelf20[udb登録位置] : CSelf1[表示形式] : 13 ] (- : - : ×NoData)
|■DB読込(ユーザ): CSelf27[一時不透明度] = ユーザDB[ CSelf20[udb登録位置] : CSelf1[表示形式] : 14 ] (- : - : ×NoData)
|■DB読込(ユーザ): CSelf28[一時拡大率] = ユーザDB[ CSelf20[udb登録位置] : CSelf1[表示形式] : 16 ] (- : - : ×NoData)
|▼ 座標倍率補正
|■変数操作: CSelf16[一時変数A]〜CSelf17[一時変数B] *= CSelf4[座標倍率] + 0
|■変数操作: CSelf16[一時変数A]〜CSelf17[一時変数B] /= 10 + 0
|▼ 文字影、文字色
|■回数付きループ [ CSelf31[文字影フラグ] ]回
| |■文字列操作:CSelf9[一時文字列] += "\E"
| |■
|◇ループここまで◇◇
|■文字列操作:CSelf9[一時文字列] += "\c[\cself[22]]"
|▼ 処理数が増えてしまうけれど、分岐で表示形式を変更
|■条件分岐(変数): 【1】 CSelf30[表示形式] が 0 と同じ 【2】 CSelf30[表示形式] が 1 と同じ 【3】 CSelf30[表示形式] が 2 と同じ
|-◇分岐: 【1】 [ CSelf30[表示形式] が 0 と同じ ]の場合↓
| |▼ 中心
| |■ピクチャ表示:CSelf11[表示ピクチャ番号] [中心]文字列[\cself[9]] X:CSelf16[一時変数A] Y:CSelf17[一時変数B] / 0(0)フレーム / パターン 1 / 透 CSelf27[一時不透明度] / 通常 / 角 0 / 拡 CSelf28[一時拡大率]% / カラー R[100] G[100] B[100]
| |■
|-◇分岐: 【2】 [ CSelf30[表示形式] が 1 と同じ ]の場合↓
| |▼ 左上
| |■ピクチャ表示:CSelf11[表示ピクチャ番号] [左上]文字列[\cself[9]] X:CSelf16[一時変数A] Y:CSelf17[一時変数B] / 0(0)フレーム / パターン 1 / 透 CSelf27[一時不透明度] / 通常 / 角 0 / 拡 CSelf28[一時拡大率]% / カラー R[100] G[100] B[100]
| |■
|-◇分岐: 【3】 [ CSelf30[表示形式] が 2 と同じ ]の場合↓
| |▼ 右上
| |■ピクチャ表示:CSelf11[表示ピクチャ番号] [右上]文字列[\cself[9]] X:CSelf16[一時変数A] Y:CSelf17[一時変数B] / 0(0)フレーム / パターン 1 / 透 CSelf27[一時不透明度] / 通常 / 角 0 / 拡 CSelf28[一時拡大率]% / カラー R[100] G[100] B[100]
| |■
|-◇上記以外
| |■条件分岐(変数): 【1】 CSelf30[表示形式] が 3 と同じ 【2】 CSelf30[表示形式] が 4 と同じ
| |-◇分岐: 【1】 [ CSelf30[表示形式] が 3 と同じ ]の場合↓
| | |▼ 左下
| | |■ピクチャ表示:CSelf11[表示ピクチャ番号] [左下]文字列[\cself[9]] X:0 Y:0 / 0(0)フレーム / パターン 1 / 透 CSelf27[一時不透明度] / 通常 / 角 0 / 拡 CSelf28[一時拡大率]% / カラー R[100] G[100] B[100]
| | |■
| |-◇分岐: 【2】 [ CSelf30[表示形式] が 4 と同じ ]の場合↓
| | |▼ 右下
| | |■ピクチャ表示:CSelf11[表示ピクチャ番号] [右下]文字列[\cself[9]] X:0 Y:0 / 0(0)フレーム / パターン 1 / 透 CSelf27[一時不透明度] / 通常 / 角 0 / 拡 CSelf28[一時拡大率]% / カラー R[100] G[100] B[100]
| | |■
| |◇分岐終了◇
| |■
|◇分岐終了◇
|▼ ウィンドウ表示処理 結局後で移動させる。
|■回数付きループ [ CSelf33[ウィンドウフラグ] ]回
| |▼ ウィンドウ画像
| |■DB読込(ユーザ): CSelf9[一時文字列] = ユーザDB[ CSelf20[udb登録位置] : CSelf1[表示形式] : 0 ] (- : - : ×NoData)
| |■変数操作: CSelf11[表示ピクチャ番号] = CSelf10[基本ピクチャ番号] + 1
| |▼ ウィンドウサイズ 補正値+文字列サイズ
| |■DB読込(ユーザ): CSelf18[一時変数C] = ユーザDB[ CSelf20[udb登録位置] : CSelf1[表示形式] : 8 ] (- : - : ×NoData)
| |■DB読込(ユーザ): CSelf19[一時変数D] = ユーザDB[ CSelf20[udb登録位置] : CSelf1[表示形式] : 9 ] (- : - : ×NoData)
| |■変数操作: CSelf18[一時変数C]〜CSelf19[一時変数D] *= CSelf4[座標倍率] + 0
| |■変数操作: CSelf18[一時変数C]〜CSelf19[一時変数D] /= 10 + 0
| |▼ 文字列のサイズを取得
| |■変数操作+: CSelf18[一時変数C] += ピクチャ:CSelf11[表示ピクチャ番号] の 画像サイズ(横)
| |■変数操作+: CSelf19[一時変数D] += ピクチャ:CSelf11[表示ピクチャ番号] の 画像サイズ(縦)
| |▼ 他
| |■DB読込(ユーザ): CSelf27[一時不透明度] = ユーザDB[ CSelf20[udb登録位置] : CSelf1[表示形式] : 14 ] (- : - : ×NoData)
| |■DB読込(ユーザ): CSelf28[一時拡大率] = ユーザDB[ CSelf20[udb登録位置] : CSelf1[表示形式] : 16 ] (- : - : ×NoData)
| |▼ 処理数が増えてしまうけど、分岐で表示形式を変更
| |■変数操作: CSelf11[表示ピクチャ番号] = CSelf10[基本ピクチャ番号] + 0
| |■条件分岐(変数): 【1】 CSelf30[表示形式] が 0 と同じ 【2】 CSelf30[表示形式] が 1 と同じ 【3】 CSelf30[表示形式] が 2 と同じ
| |-◇分岐: 【1】 [ CSelf30[表示形式] が 0 と同じ ]の場合↓
| | |▼ 中心 座標補正無し
| | |■ピクチャ表示:CSelf11[表示ピクチャ番号] [中心]ウィンドウ(CSelf9[一時文字列]) サイズ[CSelf18[一時変数C],CSelf19[一時変数D]] X:CSelf16[一時変数A] Y:CSelf17[一時変数B] / 0(0)フレーム / パターン 1 / 透 CSelf27[一時不透明度] / 通常 / 角 0 / 拡 CSelf28[一時拡大率]% / カラー R[100] G[100] B[100]
| | |■
| |-◇分岐: 【2】 [ CSelf30[表示形式] が 1 と同じ ]の場合↓
| | |▼ 左上 X軸、Y軸において座標補正
| | |■変数操作: CSelf16[一時変数A] -= CSelf35[ウィンドウX補正] + 0
| | |■変数操作: CSelf17[一時変数B] -= CSelf36[ウィンドウY補正] + 0
| | |■ピクチャ表示:CSelf11[表示ピクチャ番号] [左上]ウィンドウ(CSelf9[一時文字列]) サイズ[CSelf18[一時変数C],CSelf19[一時変数D]] X:CSelf16[一時変数A] Y:CSelf17[一時変数B] / 0(0)フレーム / パターン 1 / 透 CSelf27[一時不透明度] / 通常 / 角 0 / 拡 CSelf28[一時拡大率]% / カラー R[100] G[100] B[100]
| | |■
| |-◇分岐: 【3】 [ CSelf30[表示形式] が 2 と同じ ]の場合↓
| | |▼ 右上 X軸、Y軸において座標補正
| | |■変数操作: CSelf16[一時変数A] += CSelf35[ウィンドウX補正] + 0
| | |■変数操作: CSelf17[一時変数B] -= CSelf36[ウィンドウY補正] + 0
| | |■ピクチャ表示:CSelf11[表示ピクチャ番号] [右上]ウィンドウ(CSelf9[一時文字列]) サイズ[CSelf18[一時変数C],CSelf19[一時変数D]] X:CSelf16[一時変数A] Y:CSelf17[一時変数B] / 0(0)フレーム / パターン 1 / 透 CSelf27[一時不透明度] / 通常 / 角 0 / 拡 CSelf28[一時拡大率]% / カラー R[100] G[100] B[100]
| | |■
| |-◇上記以外
| | |■条件分岐(変数): 【1】 CSelf30[表示形式] が 3 と同じ 【2】 CSelf30[表示形式] が 4 と同じ
| | |-◇分岐: 【1】 [ CSelf30[表示形式] が 3 と同じ ]の場合↓
| | | |▼ 左下 X軸、Y軸において座標補正
| | | |■変数操作: CSelf16[一時変数A] -= CSelf35[ウィンドウX補正] + 0
| | | |■変数操作: CSelf17[一時変数B] += CSelf36[ウィンドウY補正] + 0
| | | |■ピクチャ表示:CSelf11[表示ピクチャ番号] [左下]ウィンドウ(CSelf9[一時文字列]) サイズ[CSelf18[一時変数C],CSelf19[一時変数D]] X:CSelf16[一時変数A] Y:CSelf17[一時変数B] / 0(0)フレーム / パターン 1 / 透 CSelf27[一時不透明度] / 通常 / 角 0 / 拡 CSelf28[一時拡大率]% / カラー R[100] G[100] B[100]
| | | |■
| | |-◇分岐: 【2】 [ CSelf30[表示形式] が 4 と同じ ]の場合↓
| | | |▼ 右下 X軸、Y軸において座標補正
| | | |■変数操作: CSelf16[一時変数A] += CSelf35[ウィンドウX補正] + 0
| | | |■変数操作: CSelf17[一時変数B] += CSelf36[ウィンドウY補正] + 0
| | | |■ピクチャ表示:CSelf11[表示ピクチャ番号] [右下]ウィンドウ(CSelf9[一時文字列]) サイズ[CSelf18[一時変数C],CSelf19[一時変数D]] X:CSelf16[一時変数A] Y:CSelf17[一時変数B] / 0(0)フレーム / パターン 1 / 透 CSelf27[一時不透明度] / 通常 / 角 0 / 拡 CSelf28[一時拡大率]% / カラー R[100] G[100] B[100]
| | | |■
| | |◇分岐終了◇
| | |■
| |◇分岐終了◇
| |■
|◇ループここまで◇◇
|■チェックポイント■■■■■■■■■■■■■■■■■■■■■■■■
|▼
|▼ ≪フェイズ2≫ ディレイを加算
|▼
|■DB読込(ユーザ): CSelf29[一時ディレイ] += ユーザDB[ CSelf20[udb登録位置] : CSelf1[表示形式] : 15 ] (- : - : ×NoData)
|▼ [現ディレイ]=1-停止時間
|■チェックポイント■■■■■■■■■■■■■■■■■■■■■■■■
|▼
|▼ ≪フェイズ3≫ 移動開始-1 以降、Cself18は処理時間専門
|▼
|▼ ウィンドウごと相対移動をする
|■変数操作: CSelf11[表示ピクチャ番号] = CSelf10[基本ピクチャ番号] + 1
|■変数操作+: CSelf16[一時変数A] = ピクチャ:CSelf11[表示ピクチャ番号] の X座標
|■変数操作+: CSelf17[一時変数B] = ピクチャ:CSelf11[表示ピクチャ番号] の Y座標
|■DB読込(ユーザ): CSelf25[一時X座標] = ユーザDB[ CSelf20[udb登録位置] : CSelf1[表示形式] : 17 ] (- : - : ×NoData)
|■DB読込(ユーザ): CSelf26[一時Y座標] = ユーザDB[ CSelf20[udb登録位置] : CSelf1[表示形式] : 18 ] (- : - : ×NoData)
|▼ 倍率補正
|■変数操作: CSelf25[一時X座標]〜CSelf26[一時Y座標] *= CSelf4[座標倍率] + 0
|■変数操作: CSelf25[一時X座標]〜CSelf26[一時Y座標] /= 10 + 0
|■DB読込(ユーザ): CSelf27[一時不透明度] = ユーザDB[ CSelf20[udb登録位置] : CSelf1[表示形式] : 19 ] (- : - : ×NoData)
|■DB読込(ユーザ): CSelf28[一時拡大率] = ユーザDB[ CSelf20[udb登録位置] : CSelf1[表示形式] : 20 ] (- : - : ×NoData)
|▼ 差を計算
|■変数操作: CSelf16[一時変数A] = CSelf25[一時X座標] - CSelf16[一時変数A]
|■変数操作: CSelf17[一時変数B] = CSelf26[一時Y座標] - CSelf17[一時変数B]
|▼ 相対移動
|■DB読込(ユーザ): CSelf18[一時変数C] = ユーザDB[ CSelf20[udb登録位置] : CSelf1[表示形式] : 21 ] (- : - : ×NoData)
|■ピクチャ移動:CSelf10[基本ピクチャ番号] 〜 CSelf11[表示ピクチャ番号] 相対X:CSelf16[一時変数A] Y:CSelf17[一時変数B] / CSelf18[一時変数C](CSelf29[一時ディレイ])フレーム / パターン 1 / 透 CSelf27[一時不透明度] / 表示形式:同値 / 角 同値 / 拡 CSelf28[一時拡大率]% / カラー 同値
|■チェックポイント■■■■■■■■■■■■■■■■■■■■■■■■
|▼
|▼ ≪フェイズ4≫ ディレイを加算
|▼
|■DB読込(ユーザ): CSelf29[一時ディレイ] += ユーザDB[ CSelf20[udb登録位置] : CSelf1[表示形式] : 21 ] (- : - : ×NoData)
|■DB読込(ユーザ): CSelf29[一時ディレイ] += ユーザDB[ CSelf20[udb登録位置] : CSelf1[表示形式] : 22 ] (- : - : ×NoData)
|▼ [現ディレイ]=1-停止時間+2-移動時間+2-停止時間
|■チェックポイント■■■■■■■■■■■■■■■■■■■■■■■■
|▼
|▼ ≪フェイズ5≫ 移動開始-2
|▼
|▼ ウィンドウごと相対移動をする
|■変数操作: CSelf11[表示ピクチャ番号] = CSelf10[基本ピクチャ番号] + 1
|■変数操作+: CSelf16[一時変数A] = ピクチャ:CSelf11[表示ピクチャ番号] の X座標
|■変数操作+: CSelf17[一時変数B] = ピクチャ:CSelf11[表示ピクチャ番号] の Y座標
|■DB読込(ユーザ): CSelf25[一時X座標] = ユーザDB[ CSelf20[udb登録位置] : CSelf1[表示形式] : 23 ] (- : - : ×NoData)
|■DB読込(ユーザ): CSelf26[一時Y座標] = ユーザDB[ CSelf20[udb登録位置] : CSelf1[表示形式] : 24 ] (- : - : ×NoData)
|▼ 倍率補正
|■変数操作: CSelf25[一時X座標]〜CSelf26[一時Y座標] *= CSelf4[座標倍率] + 0
|■変数操作: CSelf25[一時X座標]〜CSelf26[一時Y座標] /= 10 + 0
|■DB読込(ユーザ): CSelf27[一時不透明度] = ユーザDB[ CSelf20[udb登録位置] : CSelf1[表示形式] : 25 ] (- : - : ×NoData)
|■DB読込(ユーザ): CSelf28[一時拡大率] = ユーザDB[ CSelf20[udb登録位置] : CSelf1[表示形式] : 26 ] (- : - : ×NoData)
|▼ 差を計算
|■変数操作: CSelf16[一時変数A] = CSelf25[一時X座標] - CSelf16[一時変数A]
|■変数操作: CSelf17[一時変数B] = CSelf26[一時Y座標] - CSelf17[一時変数B]
|▼ 相対移動
|■DB読込(ユーザ): CSelf18[一時変数C] = ユーザDB[ CSelf20[udb登録位置] : CSelf1[表示形式] : 27 ] (- : - : ×NoData)
|■ピクチャ移動:CSelf10[基本ピクチャ番号] 〜 CSelf11[表示ピクチャ番号] 相対X:CSelf16[一時変数A] Y:CSelf17[一時変数B] / CSelf18[一時変数C](CSelf29[一時ディレイ])フレーム / パターン 1 / 透 CSelf27[一時不透明度] / 表示形式:同値 / 角 同値 / 拡 CSelf28[一時拡大率]% / カラー 同値
|■チェックポイント■■■■■■■■■■■■■■■■■■■■■■■■
|▼
|▼ ≪フェイズ6≫ ディレイを加算
|▼
|■DB読込(ユーザ): CSelf29[一時ディレイ] += ユーザDB[ CSelf20[udb登録位置] : CSelf1[表示形式] : 27 ] (- : - : ×NoData)
|■DB読込(ユーザ): CSelf29[一時ディレイ] += ユーザDB[ CSelf20[udb登録位置] : CSelf1[表示形式] : 28 ] (- : - : ×NoData)
|▼ [現ディレイ]=1-停止時間+2-移動時間+2-停止時間-3-移動時間+3-停止時間
|■チェックポイント■■■■■■■■■■■■■■■■■■■■■■■■
|▼
|▼ ≪フェイズ7≫ 消去
|▼
|■ピクチャ消去:CSelf10[基本ピクチャ番号] 〜 CSelf11[表示ピクチャ番号] / 0(CSelf29[一時ディレイ])フレーム
|■
◇ループここまで◇◇





[やってみた結果、どううまくいかないか]

上記コモンイベントをマップイベントで起動させると、
「DB読込 ERROR7:変数を格納すべき場所に文字列を代入しようとしました(1000000013を1600017に)
処理地点:【マップEv○ コモンEv○ 行 59】
と出てしまいました。
他に60、112、156行目で同じようなエラーがでてしまいます。

ひとまずCSelf16、17をCSelf5、6で打ち直してみようと思ったのですが、下の方で変数操作していてそこでは文字列で入力できないようで、どうしたらいいか判らなくなっています。


記事No: 21123
タイトルRe: 変数を格納する場所に文字列を代入するには?
投稿日: 2020/09/05 19:38
投稿者YADO [LerLWW459(海外)]

> [やってみた結果、どううまくいかないか]
>
> 上記コモンイベントをマップイベントで起動させると、
> 「DB読込 ERROR7:変数を格納すべき場所に文字列を代入しようとしました(1000000013を1600017に)
> 処理地点:【マップEv○ コモンEv○ 行 59】
> と出てしまいました。
> 他に60、112、156行目で同じようなエラーがでてしまいます。
>
> ひとまずCSelf16、17をCSelf5、6で打ち直してみようと思ったのですが、下の方で変数操作していてそこでは文字列で入力できないようで、どうしたらいいか判らなくなっています。

文字列データのユーザーDBを、数値タイプの変数で受け取ろうとすると、質問文にあるエラーが発生します。

ユーザーDBに設定しているデータが数値ならば、通常ならばユーザーDBの「タイプの設定」を「文字列」ではなく「変数(数値タイプ)」に変えて設定します。

文字列として保存したユーザーDBの情報を計算などで使う場合は、一度ユーザーDBの文字列データを文字列タイプの変数(セルフ変数[5]など)に保存し、
その文字列タイプの変数から数値タイプの変数に代入すると言った手間がかかります。

▼セルフ変数[5]で受け取る設定例
■DB読込(ユーザ): CSelf5 = ユーザDB[ CSelf20[udb登録位置] : CSelf1[表示形式] : 13 ] (- : - : ×NoData)

▼セルフ変数[5]の値をセルフ変数[17]にコピーする設定例
■変数操作: CSelf17 = CSelf5 + 0
※「CSelf5」の設定は「1600005」(変数呼び出し値)で設定します。


【DB読込】を使わずに「X番の変数呼出」でユーザーDBの情報を取得する方法もありますが、
こちらは「変数呼び出し値」の準備が必要なので、やはりデータの取得には手間がかかります。
■変数操作: CSelf4 = 1000000013 + 0
■変数操作: CSelf4 += 1000000 * CSelf20
■変数操作: CSelf4 += 100 * CSelf1
■変数操作: CSelf17 = V[CSelf4] + 0


記事No: 21128
タイトルRe: 変数を格納する場所に文字列を代入するには?
投稿日: 2020/09/06 11:01
投稿者Tark [WdrLpOO827(海外)]

YADO様、いつもありがとうございます。

教えていただいたようにCself5に代入するやり方で無事エラーはでなくなりました。

が、以降の場所移動及び場所のテロップ表示が依然上手くいかない状況です。
併せてこちらについてもご教授願えないでしょうか。



▼ ≪フェイズ9≫デバッグ文の表示 以降、CSelf16は一時変数

■回数付きループ [ CSelf32[デバッグフラグ] ]回
|■変数操作+: CSelf16[一時変数A] = 現在のマップID
|■DB読込(システム): CSelf9[一時文字列] = システムDB[タイプ0(マップ設定) データCSelf16[一時変数A](-)のデータ名]
|■文字列操作:CSelf8[デバッグ文] = "\cself[9]から"
|■DB読込(システム): CSelf16[一時変数A] = システムDB[ 7 : CSelf0[移動先] : 0 ] (位置設定リスト : - : マップID)
|■DB読込(システム): CSelf9[一時文字列] = システムDB[タイプ0(マップ設定) データCSelf16[一時変数A](-)のデータ名]
|■文字列操作:CSelf8[デバッグ文] += "\cself[9]へ移動"
|■デバッグ文:\cself[8]
|■
◇ループここまで◇◇
■チェックポイント■■■■■■■■■■■■■■■■■■■■■■■■

▼ ≪フェイズ10≫ 場所移動

▼ 移動
■DB読込(ユーザ): CSelf16[一時変数A] = ユーザDB[ CSelf20[udb登録位置] : CSelf1[表示形式] : 7 ] (- : - : ×NoData)
■条件分岐(変数): 【1】 CSelf16[一時変数A] が 0 と同じ 【2】 CSelf16[一時変数A] が 1 と同じ 【3】 CSelf16[一時変数A] が 2 と同じ
-◇分岐: 【1】 [ CSelf16[一時変数A] が 0 と同じ ]の場合↓
|▼ トランジョン無し
|■場所移動:主人公 SysDB 7-[CSelf0[移動先]]
|■
-◇分岐: 【2】 [ CSelf16[一時変数A] が 1 と同じ ]の場合↓
|▼ 暗転無し
|■トランジション準備
|■場所移動:主人公 SysDB 7-[CSelf0[移動先]] [トランジション + 暗転なし]
|■トランジション実行
|■
-◇分岐: 【3】 [ CSelf16[一時変数A] が 2 と同じ ]の場合↓
|▼ 暗転有り
|■トランジション準備
|■場所移動:主人公 SysDB 7-[CSelf0[移動先]] [トランジション + 暗転有り]
|■トランジション実行
|■
◇分岐終了◇
(中間に向きについてのフェイズ8もあるのですが、こちらは正常に反映されているようなので除外しました)



まず、何度か試してみた結果転送自体が行われていません。
なのにデバッグウィンドウでは○○(イベント設置場所)から○○(目的地)へ移動、とでています。
フェイズ1とフェイズ7でCself0を読み込んでいますが、入力内容の設定でシステムDBのタイプ7番を参照しており読み込まれていると思うのですが…

また、テロップも表示されません…が、こちらに至ってはデバッグにすら何の記載が無いため、どこでどんな問題が起きているかすら分からない有様です。
エラーもどちらもが表示されないため手詰まりになってしまいました。

何度も問い合わせて申し訳無いのですが、こちらも併せて教えていただけないでしょうか。


記事No: 21129
タイトルRe: 変数を格納する場所に文字列を代入するには?
投稿日: 2020/09/06 16:17
投稿者YADO [LerLWW459(海外)]

> ▼
> ▼ ≪フェイズ9≫デバッグ文の表示 以降、CSelf16は一時変数
> ▼
> ■回数付きループ [ CSelf32[デバッグフラグ] ]回
> |■変数操作+: CSelf16[一時変数A] = 現在のマップID
> |■DB読込(システム): CSelf9[一時文字列] = システムDB[タイプ0(マップ設定) データCSelf16[一時変数A](-)のデータ名]
> |■文字列操作:CSelf8[デバッグ文] = "\cself[9]から"
> |■DB読込(システム): CSelf16[一時変数A] = システムDB[ 7 : CSelf0[移動先] : 0 ] (位置設定リスト : - : マップID)
> |■DB読込(システム): CSelf9[一時文字列] = システムDB[タイプ0(マップ設定) データCSelf16[一時変数A](-)のデータ名]
> |■文字列操作:CSelf8[デバッグ文] += "\cself[9]へ移動"
> |■デバッグ文:\cself[8]
> |■
> ◇ループここまで◇◇
> ■チェックポイント■■■■■■■■■■■■■■■■■■■■■■■■
> ▼
> ▼ ≪フェイズ10≫ 場所移動
> ▼
> ▼ 移動
> ■DB読込(ユーザ): CSelf16[一時変数A] = ユーザDB[ CSelf20[udb登録位置] : CSelf1[表示形式] : 7 ] (- : - : ×NoData)
> ■条件分岐(変数): 【1】 CSelf16[一時変数A] が 0 と同じ 【2】 CSelf16[一時変数A] が 1 と同じ 【3】 CSelf16[一時変数A] が 2 と同じ
> -◇分岐: 【1】 [ CSelf16[一時変数A] が 0 と同じ ]の場合↓
> |▼ トランジョン無し
> |■場所移動:主人公 SysDB 7-[CSelf0[移動先]]
> |■
> -◇分岐: 【2】 [ CSelf16[一時変数A] が 1 と同じ ]の場合↓
> |▼ 暗転無し
> |■トランジション準備
> |■場所移動:主人公 SysDB 7-[CSelf0[移動先]] [トランジション + 暗転なし]
> |■トランジション実行
> |■
> -◇分岐: 【3】 [ CSelf16[一時変数A] が 2 と同じ ]の場合↓
> |▼ 暗転有り
> |■トランジション準備
> |■場所移動:主人公 SysDB 7-[CSelf0[移動先]] [トランジション + 暗転有り]
> |■トランジション実行
> |■
> ◇分岐終了◇
> (中間に向きについてのフェイズ8もあるのですが、こちらは正常に反映されているようなので除外しました)
>
>
>
> まず、何度か試してみた結果転送自体が行われていません。
> なのにデバッグウィンドウでは○○(イベント設置場所)から○○(目的地)へ移動、とでています。
> フェイズ1とフェイズ7でCself0を読み込んでいますが、入力内容の設定でシステムDBのタイプ7番を参照しており読み込まれていると思うのですが…
>
> また、テロップも表示されません…が、こちらに至ってはデバッグにすら何の記載が無いため、どこでどんな問題が起きているかすら分からない有様です。
> エラーもどちらもが表示されないため手詰まりになってしまいました。
>
> 何度も問い合わせて申し訳無いのですが、こちらも併せて教えていただけないでしょうか。

イベントコードの記載が無いので、動作確認には1つ1つイベントコマンドを設定する必要があり、本来なら回答スルーなんですけど。

一応イベントコマンドを設定して動作テストをしましたが、ユーザーDBから取得している値がよく分からないので、ユーザーDBの設定ミスだと、原因の特定は難しいです。

例えば最後の所で「CSelf16[一時変数A]」に設定される値が「0〜2」以外の場合は、場所移動が実行されなくなります。

テロップの表示も、ピクチャの表示位置や不透明度の設定が正しくなかったり、CSelf2[テロップ]の値が「0」の場合はテロップは表示されません。

一応画面中央にテロップを表示する設定を行った限りでは、テロップは表示されました。


デバッグ方法としては、ピクチャを表示したすぐあとに一時的に
■自動キー入力: キーボード入力 コード[ 165 ] ( F7キー )
を設定して、ピクチャの表示直後の表示位置や不透明度の値を確認する方法があります。

F7が自動的に実行されない場合は、ピクチャの表示設定自体が動いていない事になります。


あと上記の問題とは関係の無い事ですが、文字影の…
■文字列操作:CSelf9[一時文字列] += "\E"
と文字色の…
■文字列操作:CSelf9[一時文字列] += "\c[\cself[22]]"
は文頭に設定しないと効果が無いです。

例えば…
■文字列操作:CSelf9[一時文字列] = "\E\cself[9]"
や…
■文字列操作:CSelf9[一時文字列] = "\c[\cself[22]]\cself[9]"
と言った設定にする必要があります。


記事No: 21130
タイトルRe: 変数を格納する場所に文字列を代入するには?
投稿日: 2020/09/07 07:32
投稿者Tark [WdrLpOO827(海外)]

失礼しました、イベントコードを知らなかったので今後気をつけます。

早速ですが、貼り付けさせていただきますね。


WoditorEvCOMMAND_START
[121][4,0]<0>(1600010,3000,0,0)()
[121][4,0]<0>(1600020,0,0,0)()
[103][0,1]<0>()("≪コモン実行≫")
[103][0,1]<0>()(" ")
[111][10,0]<0>(3,9000084,0,2,9000084,1,2,9000084,2,2)()
[401][1,0]<0>(1)()
[121][4,0]<1>(1600004,10,0,0)()
[0][0,0]<1>()()
[401][1,0]<0>(2)()
[121][4,0]<1>(1600004,20,0,0)()
[0][0,0]<1>()()
[401][1,0]<0>(3)()
[121][4,0]<1>(1600004,25,0,0)()
[0][0,0]<1>()()
[499][0,0]<0>()()
[103][0,1]<0>()("udb読解")
[122][2,1]<0>(1600008,0)("")
[250][5,4]<0>(1600020,1600001,3,4608,1600021)("","","","")
[121][4,0]<0>(1600021,1600004,0,768)()
[121][4,0]<0>(1600021,10,0,1024)()
[250][5,4]<0>(1600020,1600001,4,4608,1600022)("","","","")
[121][4,0]<0>(1600029,0,0,0)()
[250][5,4]<0>(1600020,1600001,2,4608,1600030)("","","","")
[250][5,4]<0>(1600020,1600001,5,4608,1600031)("","","","")
[250][5,4]<0>(1600020,1600001,6,4608,1600032)("","","","")
[250][5,4]<0>(1600020,1600001,10,4608,1600035)("","","","")
[250][5,4]<0>(1600020,1600001,11,4608,1600036)("","","","")
[121][5,0]<0>(1600035,1600004,0,66304,1)()
[121][5,0]<0>(1600035,10,0,66560,1)()
[250][5,4]<0>(1600020,1600001,0,4608,1600009)("","","","")
[121][4,0]<0>(1600033,0,0,0)()
[103][0,1]<0>()("ウィンドウ画像が表示されている場合のみ、フラグを立てる。")
[112][2,4]<0>(1,270035465)("","","","")
[401][1,0]<0>(1)()
[121][4,0]<1>(1600033,1,0,0)()
[0][0,0]<1>()()
[499][0,0]<0>()()
[103][0,1]<0>()("前回の分のピクチャを消去 ウィンドウは表示されていない可能性もあるので、文字列で判断")
[121][4,0]<0>(1600011,1600010,1,0)()
[124][4,0]<0>(1600016,16384,1600011,9)()
[103][0,1]<0>()("CSelf16に1が返されていたら、消去処理")
[179][1,0]<0>(1600016)()
[121][4,0]<1>(1600011,1600010,1,0)()
[150][3,0]<1>(16777219,1600010,1600011)()
[150][6,0]<1>(16777218,1600010,0,0,0,1600011)()
[0][0,0]<1>()()
[498][0,0]<0>()()
[103][0,1]<0>()("文字列+ウィンドウ表示 CSelf2が1以上の時(テロップ表示の時)に作動")
[179][1,0]<0>(1600002)()
[99][1,0]<1>(0)()
[103][0,1]<1>()(" ")
[103][0,1]<1>()("≪フェイズ1≫ 初期位置に表示 以降、CSelf16,17は座標専門")
[103][0,1]<1>()(" ")
[103][0,1]<1>()("文字列表示")
[121][4,0]<1>(1600011,1600010,1,0)()
[250][5,4]<1>(7,1600000,0,4352,1600016)("","","","")
[250][5,4]<1>(0,1600016,-3,4352,1600009)("","","","")
[103][0,1]<1>()("座標他")
[250][5,4]<1>(1600020,1600001,12,4608,1600016)("","","","")
[250][5,4]<1>(1600020,1600001,13,4608,1600005)("","","","")
[121][4,0]<1>(1600017,1600005,0,0)()
[250][5,4]<1>(1600020,1600001,14,4608,1600006)("","","","")
[121][4,0]<1>(1600027,1600006,0,0)()
[250][5,4]<1>(1600020,1600001,16,4608,1600028)("","","","")
[103][0,1]<1>()("座標倍率補正")
[121][5,0]<1>(1600016,1600004,0,66304,1)()
[121][5,0]<1>(1600016,10,0,66560,1)()
[103][0,1]<1>()("文字影、文字色")
[179][1,0]<1>(1600031)()
[122][2,1]<2>(1600009,256)("\E\cself[9]")
[0][0,0]<2>()()
[498][0,0]<1>()()
[122][2,1]<1>(1600009,256)("\c[\cself[22]]\cself[9]")
[103][0,1]<1>()("処理数が増えてしまうけれど、分岐で表示形式を変更")
[111][10,0]<1>(19,1600030,0,2,1600030,1,2,1600030,2,2)()
[401][1,0]<1>(1)()
[103][0,1]<2>()("中心")
[150][11,1]<2>(4128,1600011,0,1,1,1,1600027,1600016,1600017,1600028,0)("\cself[9]")
[0][0,0]<2>()()
[401][1,0]<1>(2)()
[103][0,1]<2>()("左上")
[150][11,1]<2>(32,1600011,0,1,1,1,1600027,1600016,1600017,1600028,0)("\cself[9]")
[0][0,0]<2>()()
[401][1,0]<1>(3)()
[103][0,1]<2>()("右上")
[150][11,1]<2>(12320,1600011,0,1,1,1,1600027,1600016,1600017,1600028,0)("\cself[9]")
[0][0,0]<2>()()
[420][1,0]<1>(0)()
[111][7,0]<2>(2,1600030,3,2,1600030,4,2)()
[401][1,0]<2>(1)()
[103][0,1]<3>()("左下")
[150][11,1]<3>(8224,1600011,0,1,1,1,1600027,0,0,1600028,0)("\cself[9]")
[0][0,0]<3>()()
[401][1,0]<2>(2)()
[103][0,1]<3>()("右下")
[150][11,1]<3>(16416,1600011,0,1,1,1,1600027,0,0,1600028,0)("\cself[9]")
[0][0,0]<3>()()
[499][0,0]<2>()()
[0][0,0]<2>()()
[499][0,0]<1>()()
[103][0,1]<1>()("ウィンドウ表示処理 結局後で移動させる。")
[179][1,0]<1>(1600033)()
[103][0,1]<2>()("ウィンドウ画像")
[250][5,4]<2>(1600020,1600001,0,4608,1600009)("","","","")
[121][4,0]<2>(1600011,1600010,1,0)()
[103][0,1]<2>()("ウィンドウサイズ 補正値+文字列サイズ")
[250][5,4]<2>(1600020,1600001,8,4608,1600018)("","","","")
[250][5,4]<2>(1600020,1600001,9,4608,1600019)("","","","")
[121][5,0]<2>(1600018,1600004,0,66304,1)()
[121][5,0]<2>(1600018,10,0,66560,1)()
[103][0,1]<2>()("文字列のサイズを取得")
[124][4,0]<2>(1600018,16640,1600011,2)()
[124][4,0]<2>(1600019,16640,1600011,3)()
[103][0,1]<2>()("他")
[250][5,4]<2>(1600020,1600001,14,4608,1600006)("","","","")
[121][4,0]<2>(1600027,1600006,0,0)()
[250][5,4]<2>(1600020,1600001,16,4608,1600028)("","","","")
[103][0,1]<2>()("処理数が増えてしまうけど、分岐で表示形式を変更")
[121][4,0]<2>(1600011,1600010,0,0)()
[111][10,0]<2>(19,1600030,0,2,1600030,1,2,1600030,2,2)()
[401][1,0]<2>(1)()
[103][0,1]<3>()("中心 座標補正無し")
[150][12,0]<3>(4160,1600011,0,1600018,1600019,1,1600027,1600016,1600017,1600028,0,1600009)()
[0][0,0]<3>()()
[401][1,0]<2>(2)()
[103][0,1]<3>()("左上 X軸、Y軸において座標補正")
[121][4,0]<3>(1600016,1600035,0,512)()
[121][4,0]<3>(1600017,1600036,0,512)()
[150][12,0]<3>(64,1600011,0,1600018,1600019,1,1600027,1600016,1600017,1600028,0,1600009)()
[0][0,0]<3>()()
[401][1,0]<2>(3)()
[103][0,1]<3>()("右上 X軸、Y軸において座標補正")
[121][4,0]<3>(1600016,1600035,0,256)()
[121][4,0]<3>(1600017,1600036,0,512)()
[150][12,0]<3>(12352,1600011,0,1600018,1600019,1,1600027,1600016,1600017,1600028,0,1600009)()
[0][0,0]<3>()()
[420][1,0]<2>(0)()
[111][7,0]<3>(2,1600030,3,2,1600030,4,2)()
[401][1,0]<3>(1)()
[103][0,1]<4>()("左下 X軸、Y軸において座標補正")
[121][4,0]<4>(1600016,1600035,0,512)()
[121][4,0]<4>(1600017,1600036,0,256)()
[150][12,0]<4>(8256,1600011,0,1600018,1600019,1,1600027,1600016,1600017,1600028,0,1600009)()
[0][0,0]<4>()()
[401][1,0]<3>(2)()
[103][0,1]<4>()("右下 X軸、Y軸において座標補正")
[121][4,0]<4>(1600016,1600035,0,256)()
[121][4,0]<4>(1600017,1600036,0,256)()
[150][12,0]<4>(16448,1600011,0,1600018,1600019,1,1600027,1600016,1600017,1600028,0,1600009)()
[0][0,0]<4>()()
[499][0,0]<3>()()
[0][0,0]<3>()()
[499][0,0]<2>()()
[0][0,0]<2>()()
[498][0,0]<1>()()
[99][1,0]<1>(0)()
[103][0,1]<1>()(" ")
[103][0,1]<1>()("≪フェイズ2≫ ディレイを加算")
[103][0,1]<1>()(" ")
[250][5,4]<1>(1600020,1600001,15,4624,1600007)("","","","")
[121][4,0]<1>(1600029,1600007,0,0)()
[103][0,1]<1>()("[現ディレイ]=1-停止時間")
[99][1,0]<1>(0)()
[103][0,1]<1>()(" ")
[103][0,1]<1>()("≪フェイズ3≫ 移動開始-1 以降、Cself18は処理時間専門")
[103][0,1]<1>()(" ")
[103][0,1]<1>()("ウィンドウごと相対移動をする")
[121][4,0]<1>(1600011,1600010,1,0)()
[124][4,0]<1>(1600016,16384,1600011,0)()
[124][4,0]<1>(1600017,16384,1600011,1)()
[250][5,4]<1>(1600020,1600001,17,4608,1600025)("","","","")
[250][5,4]<1>(1600020,1600001,18,4608,1600026)("","","","")
[103][0,1]<1>()("倍率補正")
[121][5,0]<1>(1600025,1600004,0,66304,1)()
[121][5,0]<1>(1600025,10,0,66560,1)()
[250][5,4]<1>(1600020,1600001,19,4608,1600027)("","","","")
[250][5,4]<1>(1600020,1600001,20,4608,1600028)("","","","")
[103][0,1]<1>()("差を計算")
[121][4,0]<1>(1600016,1600025,1600016,4096)()
[121][4,0]<1>(1600017,1600026,1600017,4096)()
[103][0,1]<1>()("相対移動")
[250][5,4]<1>(1600020,1600001,21,4608,1600018)("","","","")
[150][15,0]<1>(16846593,1600010,1600018,0,0,1,1600027,1600016,1600017,1600028,-1000000,0,16777216,1600029,1600011)()
[99][1,0]<1>(0)()
[103][0,1]<1>()(" ")
[103][0,1]<1>()("≪フェイズ4≫ ディレイを加算")
[103][0,1]<1>()(" ")
[250][5,4]<1>(1600020,1600001,21,4624,1600029)("","","","")
[250][5,4]<1>(1600020,1600001,22,4624,1600029)("","","","")
[103][0,1]<1>()("[現ディレイ]=1-停止時間+2-移動時間+2-停止時間")
[99][1,0]<1>(0)()
[103][0,1]<1>()(" ")
[103][0,1]<1>()("≪フェイズ5≫ 移動開始-2")
[103][0,1]<1>()(" ")
[103][0,1]<1>()("ウィンドウごと相対移動をする")
[121][4,0]<1>(1600011,1600010,1,0)()
[124][4,0]<1>(1600016,16384,1600011,0)()
[124][4,0]<1>(1600017,16384,1600011,1)()
[250][5,4]<1>(1600020,1600001,23,4608,1600025)("","","","")
[250][5,4]<1>(1600020,1600001,24,4608,1600026)("","","","")
[103][0,1]<1>()("倍率補正")
[121][5,0]<1>(1600025,1600004,0,66304,1)()
[121][5,0]<1>(1600025,10,0,66560,1)()
[250][5,4]<1>(1600020,1600001,25,4608,1600027)("","","","")
[250][5,4]<1>(1600020,1600001,26,4608,1600028)("","","","")
[103][0,1]<1>()("差を計算")
[121][4,0]<1>(1600016,1600025,1600016,4096)()
[121][4,0]<1>(1600017,1600026,1600017,4096)()
[103][0,1]<1>()("相対移動")
[250][5,4]<1>(1600020,1600001,27,4608,1600018)("","","","")
[150][15,0]<1>(16846657,1600010,1600018,0,0,1,1600027,1600016,1600017,1600028,-1000000,0,16777216,1600029,1600011)()
[99][1,0]<1>(0)()
[103][0,1]<1>()(" ")
[103][0,1]<1>()("≪フェイズ6≫ ディレイを加算")
[103][0,1]<1>()(" ")
[250][5,4]<1>(1600020,1600001,27,4624,1600029)("","","","")
[250][5,4]<1>(1600020,1600001,28,4624,1600029)("","","","")
[103][0,1]<1>()("[現ディレイ]=1-停止時間+2-移動時間+2-停止時間-3-移動時間+3-停止時間")
[99][1,0]<1>(0)()
[103][0,1]<1>()(" ")
[103][0,1]<1>()("≪フェイズ7≫ 消去")
[103][0,1]<1>()(" ")
[150][6,0]<1>(16842818,1600010,0,1600029,0,1600011)()
[0][0,0]<1>()()
[498][0,0]<0>()()
[99][1,0]<0>(0)()
[103][0,1]<0>()(" ")
[103][0,1]<0>()("≪フェイズ8≫ 向き変更")
[103][0,1]<0>()(" ")
[103][0,1]<0>()("処理数が増えるけど分岐で処理 0とかなら処理無し。")
[111][10,0]<0>(19,1600003,1,2,1600003,2,2,1600003,3,2)()
[401][1,0]<0>(1)()
[103][1,1]<1>()("【動作指定】※動作指定はクリップボードにセットできません")
[103][1,1]<1>()("【動作指定】※動作指定はクリップボードにセットできません")
[103][1,1]<1>()("【動作指定】※動作指定はクリップボードにセットできません")
[103][1,1]<1>()("【動作指定】※動作指定はクリップボードにセットできません")
[103][1,1]<1>()("【動作指定】※動作指定はクリップボードにセットできません")
[103][1,1]<1>()("【動作指定】※動作指定はクリップボードにセットできません")
[0][0,0]<1>()()
[401][1,0]<0>(2)()
[103][1,1]<1>()("【動作指定】※動作指定はクリップボードにセットできません")
[103][1,1]<1>()("【動作指定】※動作指定はクリップボードにセットできません")
[103][1,1]<1>()("【動作指定】※動作指定はクリップボードにセットできません")
[103][1,1]<1>()("【動作指定】※動作指定はクリップボードにセットできません")
[103][1,1]<1>()("【動作指定】※動作指定はクリップボードにセットできません")
[103][1,1]<1>()("【動作指定】※動作指定はクリップボードにセットできません")
[0][0,0]<1>()()
[401][1,0]<0>(3)()
[103][1,1]<1>()("【動作指定】※動作指定はクリップボードにセットできません")
[103][1,1]<1>()("【動作指定】※動作指定はクリップボードにセットできません")
[103][1,1]<1>()("【動作指定】※動作指定はクリップボードにセットできません")
[103][1,1]<1>()("【動作指定】※動作指定はクリップボードにセットできません")
[103][1,1]<1>()("【動作指定】※動作指定はクリップボードにセットできません")
[103][1,1]<1>()("【動作指定】※動作指定はクリップボードにセットできません")
[0][0,0]<1>()()
[420][1,0]<0>(0)()
[111][10,0]<1>(19,1600003,4,2,1600003,6,2,1600003,7,2)()
[401][1,0]<1>(1)()
[103][1,1]<2>()("【動作指定】※動作指定はクリップボードにセットできません")
[103][1,1]<2>()("【動作指定】※動作指定はクリップボードにセットできません")
[103][1,1]<2>()("【動作指定】※動作指定はクリップボードにセットできません")
[103][1,1]<2>()("【動作指定】※動作指定はクリップボードにセットできません")
[103][1,1]<2>()("【動作指定】※動作指定はクリップボードにセットできません")
[103][1,1]<2>()("【動作指定】※動作指定はクリップボードにセットできません")
[0][0,0]<2>()()
[401][1,0]<1>(2)()
[103][1,1]<2>()("【動作指定】※動作指定はクリップボードにセットできません")
[103][1,1]<2>()("【動作指定】※動作指定はクリップボードにセットできません")
[103][1,1]<2>()("【動作指定】※動作指定はクリップボードにセットできません")
[103][1,1]<2>()("【動作指定】※動作指定はクリップボードにセットできません")
[103][1,1]<2>()("【動作指定】※動作指定はクリップボードにセットできません")
[103][1,1]<2>()("【動作指定】※動作指定はクリップボードにセットできません")
[0][0,0]<2>()()
[401][1,0]<1>(3)()
[103][1,1]<2>()("【動作指定】※動作指定はクリップボードにセットできません")
[103][1,1]<2>()("【動作指定】※動作指定はクリップボードにセットできません")
[103][1,1]<2>()("【動作指定】※動作指定はクリップボードにセットできません")
[103][1,1]<2>()("【動作指定】※動作指定はクリップボードにセットできません")
[103][1,1]<2>()("【動作指定】※動作指定はクリップボードにセットできません")
[103][1,1]<2>()("【動作指定】※動作指定はクリップボードにセットできません")
[0][0,0]<2>()()
[420][1,0]<1>(0)()
[111][7,0]<2>(2,1600003,8,2,1600003,9,2)()
[401][1,0]<2>(1)()
[103][1,1]<3>()("【動作指定】※動作指定はクリップボードにセットできません")
[103][1,1]<3>()("【動作指定】※動作指定はクリップボードにセットできません")
[103][1,1]<3>()("【動作指定】※動作指定はクリップボードにセットできません")
[103][1,1]<3>()("【動作指定】※動作指定はクリップボードにセットできません")
[103][1,1]<3>()("【動作指定】※動作指定はクリップボードにセットできません")
[103][1,1]<3>()("【動作指定】※動作指定はクリップボードにセットできません")
[0][0,0]<3>()()
[401][1,0]<2>(2)()
[103][1,1]<3>()("【動作指定】※動作指定はクリップボードにセットできません")
[103][1,1]<3>()("【動作指定】※動作指定はクリップボードにセットできません")
[103][1,1]<3>()("【動作指定】※動作指定はクリップボードにセットできません")
[103][1,1]<3>()("【動作指定】※動作指定はクリップボードにセットできません")
[103][1,1]<3>()("【動作指定】※動作指定はクリップボードにセットできません")
[103][1,1]<3>()("【動作指定】※動作指定はクリップボードにセットできません")
[0][0,0]<3>()()
[499][0,0]<2>()()
[0][0,0]<2>()()
[499][0,0]<1>()()
[0][0,0]<1>()()
[499][0,0]<0>()()
[99][1,0]<0>(0)()
[103][0,1]<0>()(" ")
[103][0,1]<0>()("≪フェイズ9≫デバッグ文の表示 以降、CSelf16は一時変数")
[103][0,1]<0>()(" ")
[179][1,0]<0>(1600032)()
[124][3,0]<1>(1600016,12288,0)()
[250][5,4]<1>(0,1600016,-3,4352,1600009)("","","","")
[122][2,1]<1>(1600008,0)("\cself[9]から")
[250][5,4]<1>(7,1600000,0,4352,1600016)("","","","")
[250][5,4]<1>(0,1600016,-3,4352,1600009)("","","","")
[122][2,1]<1>(1600008,256)("\cself[9]へ移動")
[106][0,1]<1>()("\cself[8]")
[0][0,0]<1>()()
[498][0,0]<0>()()
[99][1,0]<0>(0)()
[103][0,1]<0>()(" ")
[103][0,1]<0>()("≪フェイズ10≫ 場所移動")
[103][0,1]<0>()(" ")
[103][0,1]<0>()("移動")
[250][5,4]<0>(1600020,1600001,7,4608,1600016)("","","","")
[111][10,0]<0>(3,1600016,0,2,1600016,1,2,1600016,2,2)()
[401][1,0]<0>(1)()
[103][0,1]<1>()("トランジョン無し")
[130][5,0]<1>(-10001,1600000,0,0,-16)()
[0][0,0]<1>()()
[401][1,0]<0>(2)()
[103][0,1]<1>()("暗転無し")
[161][0,0]<1>()()
[130][5,0]<1>(-10001,1600000,0,0,16)()
[162][0,0]<1>()()
[0][0,0]<1>()()
[401][1,0]<0>(3)()
[103][0,1]<1>()("暗転有り")
[161][0,0]<1>()()
[130][5,0]<1>(-10001,1600000,0,0,32)()
[162][0,0]<1>()()
[0][0,0]<1>()()
[499][0,0]<0>()()
WoditorEvCOMMAND_END


ユーザーDBから取得している値に関してはどうやって書いたらいいのか分からなかったのでひとまず必要と思われる情報を書き出しておきます。
一応試した・試していることとしては、
・7番に位置設定リストを用意。
  データのIDに日本語・漢字込みのタイトル、及び半角英数字での場所名を登録。項目にはマップIDとマップ位置のX・Y座標を登録
・マップ設定は既存のものを使用。
 データのIDに日本語・漢字込みのタイトル、及び半角英数字での場所名を登録。項目はマップファイルだけ登録。
 データIDに日本語を使ったのがまずいのかなと考えて半角英数字のみだけにしてみたりもしましたが違ったようです。


記事No: 21131
タイトルRe: 変数を格納する場所に文字列を代入するには?
投稿日: 2020/09/08 00:47
投稿者YADO [LerLWW459(海外)]

イベントコードの他に、ファイル出力でコモンイベント(単体保存)とユーザーDB(タイプ&全データ)のファイルを出力し、
その2つの出力ファイルを1つの圧縮ファイルにまとめたものを、この質問掲示板の「添付ファイル」に貼り付ける方法もあります。

イベントコードだとセルフ変数の名前が出力できない上、イベントコマンド【動作指定】の出力もできない欠点があります。


ユーザーDBの項目[13〜15]が文字列になっている理由は不明ですが、
一応文字列の設定でも問題無く処理されているので、このまま文字列の設定で良いと思いますが、159行目の…
■DB読込(ユーザ): CSelf7 += ユーザDB[ CSelf20[udb登録位置] : CSelf1[表示形式] : 15 ] (- : - : ×NoData)
の「+=」の設定は「=」に変えないと正常には動かなくなります。

現在の設定では例えば項目[15]の値が「50」だとすると、1回目の実行では「50」ですが、
2回目の実行では、セルフ変数[7]に保存された「50」の後ろに「50」が足されて「5050」になってしまいます。


動作テストをする限りでは、コモンイベントを呼び出す時に、セルフ変数[2]が「1」になるように呼び出せば、一応テロップが表示されます。
但し前回私が指摘した文字影と文字色の設定が、私が書いた設定例とは異なる設定をしているため、マップ名が2重3重に設定されるバグが発生しています。
今一度私の前回の回答文を確認して下さい。


動作テストは以下のユーザーDBの設定で行いました。
数値の設定は、表示の変化を確認するために、わざと変な表示になるように設定しています。

項目00[文字列] = SystemFile/WindowBase.png
項目01[変数] = 0
項目02[変数] = 0
項目03[変数] = 0
項目04[変数] = 0
項目05[変数] = 0
項目06[変数] = 1
項目07[変数] = 0
項目08[変数] = 20
項目09[変数] = 10
項目10[変数] = 0
項目11[変数] = 0
項目12[変数] = 160
項目13[文字列] = 120
項目14[文字列] = 255
項目15[文字列] = 50
項目16[変数] = 100
項目17[変数] = 180
項目18[変数] = 130
項目19[変数] = 200
項目20[変数] = 80
項目21[変数] = 100
項目22[変数] = 50
項目23[変数] = 240
項目24[変数] = 140
項目25[変数] = 120
項目26[変数] = 60
項目27[変数] = 100
項目28[変数] = 50


記事No: 21132
タイトルRe: 変数を格納する場所に文字列を代入するには?
投稿日: 2020/09/09 13:15
投稿者Tark [WdrLpOO827(海外)]

仕事で確認遅れました。

>+=
解説ありがとうございます。
+=A+Bだと、合計値ではなくABとして代入されてしまうのですね。
前回のフォントのところも改めて見直して+=になっていたことに遅ればせながら気づくことができました。
併せて修正させていただきました。

>ユーザーDBの項目[13〜15]が文字列になっている理由は不明ですが、
59行目とかのですよね?
DB操作を勉強し始めたばかりのため、大変申し訳ないのですがどうしてこうなってるのか把握できていません…。


CSelf0〜3はコモンを設置する際はいずれも1を代入しております。
159行目の+=も修正してみましたが…やはり改善しませんでした。
デバッグ文は316行目を参照、転送したと二回出てます。
一番上にCSelf2 = 1 + 0としてみたのですが転送もしないのはテロップの設定がおかしいのでしょうか。
転送しないことからしてテロップの設定を重視していなかったです。


記事No: 21133
タイトルRe: 変数を格納する場所に文字列を代入するには?
投稿日: 2020/09/09 23:10
投稿者YADO [LerLWW459(海外)]

> 仕事で確認遅れました。
>
> >+=
> 解説ありがとうございます。
> +=A+Bだと、合計値ではなくABとして代入されてしまうのですね。
> 前回のフォントのところも改めて見直して+=になっていたことに遅ればせながら気づくことができました。
> 併せて修正させていただきました。
>
> >ユーザーDBの項目[13〜15]が文字列になっている理由は不明ですが、
> 59行目とかのですよね?
> DB操作を勉強し始めたばかりのため、大変申し訳ないのですがどうしてこうなってるのか把握できていません…。
>
項目[13〜15]の文字列は、ユーザーDBの設定画面の左にある「タイプの内容設定」をクリックすると表示される設定画面の項目[13〜15]が「文字列」になっている事が原因です。

「変数」の方にすると数値タイプの設定になりますが、現状で「変数」にしますとデータベースの数値を設定し直す必要があり、またコモンイベントも
■DB読込(ユーザ): CSelf5 = ユーザDB[ CSelf20[udb登録位置] : CSelf1[表示形式] : 13 ] (- : - : ×NoData)
■変数操作: CSelf17[一時変数B] = CSelf5 + 0
の設定を
■DB読込(ユーザ): CSelf17[一時変数B] = ユーザDB[ CSelf20[udb登録位置] : CSelf1[表示形式] : 13 ] (- : - : ×NoData)
のように修正する必要があります。

現状の文字列のままでも問題なく動いているので、そのままでも良いとは思いますが、もしも気になるようでしたら修正して下さい。


> CSelf0〜3はコモンを設置する際はいずれも1を代入しております。
> 159行目の+=も修正してみましたが…やはり改善しませんでした。
> デバッグ文は316行目を参照、転送したと二回出てます。
> 一番上にCSelf2 = 1 + 0としてみたのですが転送もしないのはテロップの設定がおかしいのでしょうか。
> 転送しないことからしてテロップの設定を重視していなかったです。

316行目のデバッグ文が2回出ているのは、セルフ変数[32:デバッグフラグ]が「2」になっているからでしょう。
つまりユーザーDBの項目[6]の数値が「2」になっているからです。


現状で考えられる不具合の原因元は、ユーザーDBに設定した値になります。

例えばピクチャを表示する時に、以下のようなデバッグ文で表示して、ピクチャを表示する設定値が正しいかどうかを確認してみると良いでしょう。

73行目の
▼ 処理数が増えてしまうけれど、分岐で表示形式を変更
のコメント表示の所に以下のイベントを追加。

■回数付きループ [ 1 ]回
|■デバッグ文:ピクチャ番号:\cself[11]\n表示形式:\cself[30]\n表示文字列:\cself[9]\n表示座標:x\cself[16] y\cself[17]\n不透明度:\cself[27]\n拡大率:\cself[28]\n■■■■■
|■
◇ループここまで◇◇

WoditorEvCOMMAND_START
[179][1,0]<0>(1)()
[106][0,1]<1>()("ピクチャ番号:\cself[11]<\n>表示形式:\cself[30]<\n>表示文字列:\cself[9]<\n>表示座標:x\cself[16] y\cself[17]<\n>不透明度:\cself[27]<\n>拡大率:\cself[28]<\n>■■■■■")
[0][0,0]<1>()()
[498][0,0]<0>()()
WoditorEvCOMMAND_END


182行目と210行目にある「ピクチャ移動」の所にも以下のイベントを追加。

■回数付きループ [ 1 ]回
|■デバッグ文:ピクチャ番号:\cself[10]〜\cself[11]\n相対移動量:x\cself[16] y\cself[17]\n不透明度:\cself[27]\n拡大率:\cself[28]\n処理時間:\cself[18]\nディレイ:\cself[29]\n■■■■■
|■
◇ループここまで◇◇

WoditorEvCOMMAND_START
[179][1,0]<0>(1)()
[106][0,1]<1>()("ピクチャ番号:\cself[10]〜\cself[11]<\n>相対移動量:x\cself[16] y\cself[17]<\n>不透明度:\cself[27]<\n>拡大率:\cself[28]<\n>処理時間:\cself[18]<\n>ディレイ:\cself[29]<\n>■■■■■")
[0][0,0]<1>()()
[498][0,0]<0>()()
WoditorEvCOMMAND_END


最後の場所移動の所の
■DB読込(ユーザ)

■条件分岐(変数)
の間にも以下のイベントを追加。

■回数付きループ [ 1 ]回
|■デバッグ文:場所移動の表示方法:\cself[16]\n場所移動先【マップID】:\sdb[7:\cself[0]:0]\n場所移動先【X座標】:\sdb[7:\cself[0]:1]\n場所移動先【Y座標】:\sdb[7:\cself[0]:2]\n■■■■■
|■
◇ループここまで◇◇

WoditorEvCOMMAND_START
[179][1,0]<0>(1)()
[106][0,1]<1>()("場所移動の表示方法:\cself[16]<\n>場所移動先【マップID】:\sdb[7:\cself[0]:0]<\n>場所移動先【X座標】:\sdb[7:\cself[0]:1]<\n>場所移動先【Y座標】:\sdb[7:\cself[0]:2]<\n>■■■■■")
[0][0,0]<1>()()
[498][0,0]<0>()()
WoditorEvCOMMAND_END


追加したデバッグ文はこの作品が完成するまでは残した方が良いでしょう。
デバッグ文を表示したくない時には、全ての回数付きループの回数を「0回」にして下さい。
再び表示したい時には「1回」に戻せば、再びデバッグ文が表示されます。


以下の「▼デバッグ文の表示例」はこちらで動作テストをした時に表示されたものです。

「表示文字列」は【□□ □□□□サンプルマップA】と言った表示になっていますが、
これは文字影と文字色の特殊文字がデバッグ文では文字化けするために、このような表示になっています。
実際のピクチャの表示処理で問題無く処理されますので、「□□ □□□□」の表示は気にしないで下さい。

▼デバッグ文の表示例
ピクチャ番号:3001
表示形式:0
表示文字列:□□ □□□□サンプルマップA
表示座標:x160 y120
不透明度:255
拡大率:100
■■■■■ -->[MapEv6/コモン215/75行]
ピクチャ番号:3000〜3001
相対移動量:x20 y10
不透明度:200
拡大率:80
処理時間:100
ディレイ:50
■■■■■ -->[MapEv6/コモン215/187行]
ピクチャ番号:3000〜3001
相対移動量:x80 y20
不透明度:120
拡大率:60
処理時間:100
ディレイ:200
■■■■■ -->[MapEv6/コモン215/219行]
サンプルマップBからサンプルマップAへ移動 -->[MapEv6/コモン215/327行]
場所移動の表示方法:0
場所移動先【マップID】:1
場所移動先【X座標】:20
場所移動先【Y座標】:15
■■■■■ -->[MapEv6/コモン215/337行]


ピクチャの表示位置が画面の外になっていたり、不透明度や拡大率が「0」になっていたり、表示形式が「0〜4」以外になっていたりすると、画面上にピクチャが表示されなくなります。

また場所移動の「場所移動の表示方法」が「0〜2」以外の場合は場所移動が実行されなくなります。


記事No: 21134
タイトルRe: 変数を格納する場所に文字列を代入するには?
投稿日: 2020/09/10 09:49
投稿者Tark [WdrLpOO827(海外)]

お世話になります。

>項目[13〜15]の文字列は、ユーザーDBの設定画面の左にある「タイプの内容設定」をクリックすると表示される設定画面の項目[13〜15]が「文字列」になっている事が原因です。

タイプの内容設定を確認しましたが、変数が凹んでいる状態です。
画像も添付しましたが、赤丸のところの参照で良いのでしょうか?
ただ、現状マトモに動かないので、まず動かすことを目的としたいためとりあえず文字列から変数への変換は横に置きたいと思います。



>例えばピクチャを表示する時に、以下のようなデバッグ文で表示して、ピクチャを表示する設定値が正しいかどうかを確認してみると良いでしょう。

早速デバッグ用ループを設置させていただきました。
そこで拝見したのですが、表示位置や透明度など軒並みおかしくなってる…
ユーザDBの基本テロップの数値、X座標Y座標の値を弄ったりデバッグ文の有無の数値を変えてみたりしましたが変化が見られませんでした(初期値は手を付けていません)。
…もしかして文字列から変換してるからかと思ったけど、それなら
拡大率なども変わってるのは変だし…


記事No: 21135
タイトルRe: 変数を格納する場所に文字列を代入するには?
投稿日: 2020/09/11 01:15
投稿者YADO [LerLWW459(海外)]

> お世話になります。
>
> >項目[13〜15]の文字列は、ユーザーDBの設定画面の左にある「タイプの内容設定」をクリックすると表示される設定画面の項目[13〜15]が「文字列」になっている事が原因です。
>
> タイプの内容設定を確認しましたが、変数が凹んでいる状態です。
> 画像も添付しましたが、赤丸のところの参照で良いのでしょうか?
> ただ、現状マトモに動かないので、まず動かすことを目的としたいためとりあえず文字列から変数への変換は横に置きたいと思います。
>
>
>
> >例えばピクチャを表示する時に、以下のようなデバッグ文で表示して、ピクチャを表示する設定値が正しいかどうかを確認してみると良いでしょう。
>
> 早速デバッグ用ループを設置させていただきました。
> そこで拝見したのですが、表示位置や透明度など軒並みおかしくなってる…
> ユーザDBの基本テロップの数値、X座標Y座標の値を弄ったりデバッグ文の有無の数値を変えてみたりしましたが変化が見られませんでした(初期値は手を付けていません)。
> …もしかして文字列から変換してるからかと思ったけど、それなら
> 拡大率なども変わってるのは変だし…

謎の症状ですね。

私の方はウディタのサンプルゲームに設定して動作テストをしていますが、特に数値が変になる事はありませんでした。

唯一ピクチャの表示が変になったのは、ゲーム画面のサイズを「320×240[倍]」「640×480」「800×600」以外にした時です。

現在の設定では上記3つの画面サイズにしか対応していないので、それ以外のゲーム画面のサイズだと、ピクチャが画面左上に表示される不具合が発生します。

まあ
■条件分岐(変数): 【1】 Sys84:画面サイズ(0=320x240,1=640x480 2=800x600 ・ が 0 と同じ 【2】 Sys84:画面サイズ(0=320x240,1=640x480 2=800x600 ・ が 1 と同じ 【3】 Sys84:画面サイズ(0=320x240,1=640x480 2=800x600 ・ が 2 と同じ
-◇分岐: 【1】 [ Sys84:画面サイズ(0=320x240,1=640x480 2=800x600 ・ が 0 と同じ ]の場合↓
|■変数操作: CSelf4[座標倍率] = 10 + 0
|■
-◇分岐: 【2】 [ Sys84:画面サイズ(0=320x240,1=640x480 2=800x600 ・ が 1 と同じ ]の場合↓
|■変数操作: CSelf4[座標倍率] = 20 + 0
|■
-◇分岐: 【3】 [ Sys84:画面サイズ(0=320x240,1=640x480 2=800x600 ・ が 2 と同じ ]の場合↓
|■変数操作: CSelf4[座標倍率] = 25 + 0
|■
◇分岐終了◇
の設定を削除し、代わりに
■変数操作: CSelf4[座標倍率] = Sys116:[読]画面サイズX / 32
を設定すれば、他のゲーム画面のサイズにも対応させる事はできます。

なお、[16:9]の画面サイズに対応させる場合は、
■変数操作: CSelf40[座標倍率X] = Sys116:[読]画面サイズX / 32
■変数操作: CSelf41[座標倍率Y] = Sys117:[読]画面サイズY / 24
と言ったように、縦横の倍率を別々に取得して、XYの表示位置をそれぞれの倍率で補正した方が良いでしょう。


こちらでは不具合が発生していないので、問題の原因や解決方法を回答するのは中々難しいのですが、
例えば現在のユーザーDBのタイプ設定はそのままにして、ユーザーDBの左上のタイプ選択にて未使用タイプを選択し、
今まで使用していたタイプのデータはコピーせず、一から新規でタイプの設定を行い、コモンイベントの
■変数操作: CSelf20[udb登録位置] = 0 + 0
を新規作成したタイプの番号に変えてから動作テストしてみたらどうでしょうか。


記事No: 21136
タイトルRe: 変数を格納する場所に文字列を代入するには?
投稿日: 2020/09/11 11:38
投稿者Tark [WdrLpOO827(海外)]

原因不明ですか…

サイズが960*720なので教えていただいた設定を組み、その上でCself20に1からユーザDBを登録してみましたが…やはり改善できませんでした。
大変悔しいですが、これ以上は手の付けようも無いのでこの機能は使わないことにしようと思います。
懇切丁寧なご教授をしていただいたにも関わらず不甲斐ない結果で終わってすみません。
長々とお付き合いいただき、ありがとうございました。