自作スライドバーの移動制限での問題点

アバター
にゃたま
記事: 782
登録日時: 2016年1月13日(水) 23:53
お住まい: 床下の猫王国
連絡を取る:

自作スライドバーの移動制限での問題点

投稿記事by にゃたま » 2020年2月11日(火) 10:55

ツクマテの皆様お世話になっています。
最近は専ら回答するほうが多かったですが久々に質問いたします。

トリアコンタン様のPictureCallCommonとツキミ様のPictureDragを併用して
オプション画面を作成しようと思いますが、
バー部分を以下のプラグインコマンドを用いて左右にドラッグ可能にしました。
(DTextPictureでスライドバーの右に数値を表示しております)

ピクチャ13番 DTextPictureによる現在値の表示
ピクチャ14番 スライドバーのベースライン
ピクチャ15番 スライドバーのバー部分

コード: 全て選択

◆ピクチャの表示:#10, AdvancedSetting, 左上 (0,0), (100%,100%), 255, 通常
◆プラグインコマンド:D_TEXT \V[4] 20
◆ピクチャの表示:#13, なし, 中央 (600,256), (100%,100%), 255, 通常
◆ピクチャの表示:#14, slider_lineB, 中央 (500,260), (100%,100%), 255, 通常
◆ピクチャの表示:#15, slider_cursorB, 中央 (500,260), (100%,100%), 255, 通常
◆プラグインコマンド:P_CALL_CE 15 34 8
◆プラグインコマンド:P_DRAG 15 ON X ON
◆プラグインコマンド:P_DRAG_RESTRICT_REGION 15 x 430~570


コモンイベント34に以下を記載しました。

コード: 全て選択

◆条件分岐:PictureCall ID = 15
  ◆スクリプト:$gameVariables.setValue(16,$gameScreen.picture(15).x());
  ◆プラグインコマンド:D_TEXT \V[16] 20
  ◆ピクチャの表示:#13, なし, 中央 (600,256), (100%,100%), 255, 通常
  ◆
:分岐終了


PictureCallCommonのプラグインパラメータでピクチャ番号の変数番号に15を指定して
ドラッグ中のピクチャ番号がゲーム変数15に入るようにしています。
ゲーム変数16にバードラッグ中の値(つまりバーのX軸位置)が入るようになっています。
PictureCallCommonのトリガー設定は「8:クリックしている間ずっと」
に設定しました。これでドラッグ中常に値を更新し続けます。

この前提でまずは以下の動画をご覧ください。
<当問題は一旦解決したため動画公開を終了しました>

見るとわかると思いますがマウスカーソルがピクチャの上に乗っている時は更新し続けますが
PictureDragによるピクチャの移動制限によりピクチャからマウスカーソルが離れてしまうと
値を更新しなくなります。

マウスを素早く左右に動かしたときにもボタンがカーソルに追従できず
画像上の位置は変わっているのに数値が違った数値を示します。

画像からマウスカーソルが離れても常に値を更新し続ける方法はないでしょうか?
PictureCallCommonのトリガー設定は念の為他の設定もある程度試しました。
私のやり方におかしい点があれば指摘してもらえると助かります。
よろしくおねがいします。


PictureDrag
https://raw.githubusercontent.com/cji3b ... ureDrag.js

PictureCallCommon
https://triacontane.blogspot.com/2015/1 ... st_23.html
最後に編集したユーザー にゃたま on 2020年2月12日(水) 22:32 [ 編集 1 回目 ]

アバター
WTR
記事: 236
登録日時: 2015年12月22日(火) 19:14

Re: 自作スライドバーの移動制限での問題点

投稿記事by WTR » 2020年2月12日(水) 12:53

カンで回答してます。ダメだったらすみません。

動的文字列ピクチャ表示プラグインのほうで
D_TEXT_SETTING REAL_TIME ON
にしてみたらどうでしょう。
コモンイベント等で明示的にピクチャを再表示しなくても
変数が更新されたら併せてピクチャも更新してくれる機能、のはず…

やりたいことが数値ピクチャの更新だけなら、PictureCallCommonは不要な気がします。

追記
カーソルピクチャのx座標を変数16へ代入する処理は別途並列イベントで実行したうえで、ですね
Twitter、はじめました。
https://twitter.com/wtr_in_reverie/
アバター
にゃたま
記事: 782
登録日時: 2016年1月13日(水) 23:53
お住まい: 床下の猫王国
連絡を取る:

Re: 自作スライドバーの移動制限での問題点

投稿記事by にゃたま » 2020年2月12日(水) 19:48

WTR様

回答ありがとうございます。

仮にPictureCallCommonを使わない場合、ツキミ様のPictureDragも使わないという形になるかとは思いますが
プラグインを使わずピクチャのドラッグを行うということでよろしいでしょうか?

私の能力が足りてない為、大変申し訳無いことながら伺うしかないのですが
並列処理で行う場合ドラッグ処理は具体的にどのようにすればよいでしょうか?
質問で返す形になってしまい申し訳ございませんがよろしくおねがいします。
アバター
WTR
記事: 236
登録日時: 2015年12月22日(火) 19:14

Re: 自作スライドバーの移動制限での問題点

投稿記事by WTR » 2020年2月12日(水) 20:42

PictureDrag自体がPictureCallCommonを前提としたプラグインなんですね。
そこ勘違いしてました。
そういう意味ではPictureCallCommonは必要ですね。

が、実際にコモンイベントを呼び出さなくてもいい気がしたのです。
ドラッグすることで、カーソルピクチャのX座標は変化する。
動的文字列ピクチャ表示のほうは、とくになにもしなくてもX座標が格納された変数を監視して追従できる。

という予想。うまく説明できなくてすみません…
Twitter、はじめました。
https://twitter.com/wtr_in_reverie/
アバター
WTR
記事: 236
登録日時: 2015年12月22日(火) 19:14

Re: 自作スライドバーの移動制限での問題点

投稿記事by WTR » 2020年2月12日(水) 21:27

簡単に実験してみました。
一応、私が理解した範囲では想定通りに動いているようです。
マウスカーソルが外れても、高速に移動させても、数値は追従して変わります。

並列処理

コード: 全て選択

◆スクリプト:if ($gameScreen.picture(15)) $gameVariables.setValue(16,$gameScreen.picture(15)._x);


一回だけ実行

コード: 全て選択

◆ピクチャの表示:#15, slider_cursorB, 中央 (500,260), (100%,100%), 255, 通常
◆プラグインコマンド:P_DRAG 15 ON X ON
◆プラグインコマンド:P_DRAG_RESTRICT_REGION 15 x 430~570
◆プラグインコマンド:D_TEXT \V[16] 20
◆プラグインコマンド:D_TEXT_SETTING REAL_TIME ON
◆ピクチャの表示:#13, なし, 中央 (600,256), (100%,100%), 255, 通常


こんな感じ
Twitter、はじめました。
https://twitter.com/wtr_in_reverie/
アバター
にゃたま
記事: 782
登録日時: 2016年1月13日(水) 23:53
お住まい: 床下の猫王国
連絡を取る:

Re: 自作スライドバーの移動制限での問題点

投稿記事by にゃたま » 2020年2月12日(水) 22:08

WTR さんが書きました:が、実際にコモンイベントを呼び出さなくてもいい気がしたのです。
ドラッグすることで、カーソルピクチャのX座標は変化する。

確かに値を表示するだけならピクチャの座標を並列処理で直にゲーム変数に入れることで
コモンイベントを呼ばなくてもできました。ありがとうございました。
コモンイベントでないとできないという思い込みがありました。

ただ気になるのが以下の点なんですが…
WTR さんが書きました:動的文字列ピクチャ表示のほうは、とくになにもしなくてもX座標が格納された変数を監視して追従できる。


D_TEXT_SETTING REAL_TIME ONにして試してみたのですが実行の仕方が悪いのか
並列処理で変数に値を代入してもD_TEXTのピクチャの値が変わることはありませんでした。
但し、マウス座標の値はリアルタイムで表示できました。
D_TEXT_SETTING REAL_TIME ONが効くものと効かないものがあるということを知りました。
とりあえずスライドバーの右にある数値は再度D_TEXTコマンドで更新しています。

とりあえず設定したデータをセーブ&ロードできるか確認して問題なさそうなら解決済みにしようと思います。
本件でまたなにか問題あればこちらに追記します。

追記
例もわざわざ提示いただきありがとうございました。
参考にしてみます。
アバター
WTR
記事: 236
登録日時: 2015年12月22日(火) 19:14

Re: 自作スライドバーの移動制限での問題点

投稿記事by WTR » 2020年2月12日(水) 22:32

あれ、微妙にうまくいってないですか?

ピクチャ#13の数字がカーソル(変数#16)連動で変わればいい、だと思ってたんですが
これがうまくいかないですか?
ほかの話?

なかなか文章で伝えるの難しいですね…
Twitter、はじめました。
https://twitter.com/wtr_in_reverie/
アバター
にゃたま
記事: 782
登録日時: 2016年1月13日(水) 23:53
お住まい: 床下の猫王国
連絡を取る:

Re: 自作スライドバーの移動制限での問題点

投稿記事by にゃたま » 2020年2月12日(水) 22:56

WTR様

WTR さんが書きました:あれ、微妙にうまくいってないですか?


ただ単に私の勘違いだったって話です。
D_TEXT_SETTING REAL_TIME ONはそれぞれのD_TEXTに個別で設定しなければいけないことを
知らなかったのです。
というのもイベントの先頭に一度だけ記述しておけばすべてのD_TEXTで有効と思いこんでいたのです。
なので個別につけたら全てリアルタイム化したので上記問題は解決しました。
思い込みばかりですみません。ありがとうございました。
アバター
WTR
記事: 236
登録日時: 2015年12月22日(火) 19:14

Re: 自作スライドバーの移動制限での問題点

投稿記事by WTR » 2020年2月12日(水) 23:01

なるほどー。たしかにそのへんあまりヘルプに記載がないですね。
1つしか試してなかったので気にしてませんでした。

動画もう見れないみたいですが
自作オプションメニューすごくいいですね!
こういう細かいところにこだわりが感じられるの、すごくワクワクします。
プレイヤー視点じゃなくて制作側視点だからかもしれませんがw
Twitter、はじめました。
https://twitter.com/wtr_in_reverie/
アバター
にゃたま
記事: 782
登録日時: 2016年1月13日(水) 23:53
お住まい: 床下の猫王国
連絡を取る:

Re: 自作スライドバーの移動制限での問題点

投稿記事by にゃたま » 2020年2月12日(水) 23:13

WTR様

WTR さんが書きました:動画もう見れないみたいですが
自作オプションメニューすごくいいですね!
こういう細かいところにこだわりが感じられるの、すごくワクワクします。
プレイヤー視点じゃなくて制作側視点だからかもしれませんがw


そう言ってもらえると嬉しいです♪
なかなか完成しないと他の方から感想貰える機会ないので
感想励みになります!
まだまだ制作途中なのでもっと形になれば堂々と公開したいですね。
今の所見せるに値してないので…完成できるよう制作がんばります(^^;

“MV:質問” へ戻る