Tachi.jsプラグインの戦闘スピードを自由に調整できるように改造(テストしてくれる方募集中)

メルサイア
記事: 127
登録日時: 2016年2月22日(月) 10:35
お住まい: 大阪府
連絡を取る:

Tachi.jsプラグインの戦闘スピードを自由に調整できるように改造(テストしてくれる方募集中)

投稿記事by メルサイア » 2016年7月27日(水) 14:32

メルサイアといいます。お世話になります。

サンプルプロジェクトSea Pirate(シーピラート)で、Tachiさんが作られた、
戦闘スピードを快適化&そのたもろもろのプラグインTachi.jsを、
スピード倍率や早送りボタンのON/OFFなどをパラメータ化し、
ツクラーだけでなく、ユーザが自由にカスタマイズ可能なように、改造したプラグイン(Tachi3.js)を作成中です。

その期間、6ヶ月…
「やっと完成した!」と思って、実行してみたら…全然うまく動きません。。
自分でエラーやデバッグ出力と戦って、何十回と試してみたのですが、
一向に改善しないので、もう心折れそうになっていて…。。。
でもここまで来てエターナルの海に沈む…は流石にもったいないので、
どなたか力添えをいただけないかと、投稿しました。

ご参考までに、以下の3種類のソースを貼りますので、
3.のTachi.jsが正常に動かない原因を特定していただける方を募集します。
なんなら、ご自由に使いやすいように編集・改変して、新しいプラグインを作っていただいても構いません。

1. Tachi.js。Tachiさんが作られた、元のプラグインです。もちろん、正常に動きます。
https://www.dropbox.com/s/1vgs4ecxz7g4sqc/Tachi.js?dl=1

2.Tachi2.js。私が競合対策&編集を加えたプラグインです。正常に動きます。
https://www.dropbox.com/s/yvky7m4t5j37w ... i2.js?dl=1

3.Tachi3.js。更に改良して、パラメータ化したり、いろいろ機能を追加したバージョンです。現在、デバッグ中です。
Tachi3改め、「minRPG_CostomizeGameSpeed.js」に改名しました。(★12/11更新。merusaiaの返信毎に毎度更新されます)。
ベータ版(ver.0.2.0)はここからダウンロードできます。テストしてくれる方を募集中です。
https://www.dropbox.com/s/bde0fp6y4pl6e ... ed.js?dl=1

なお、元のプラグイン製作者はTachiさんなので、MITライセンスにしていますが、
私の書いた部分に関しては、著作権は放棄しますので、どうぞ煮るなり焼くなり好きにしてください。

このプラグインが使用可能になれば、多くのツクラーやユーザが、
自分の好きなゲームスピードで、ツクールMVのゲームを遊ぶことが可能になると考えています。
心が折れそうなプラグイン初心者に、どうか救済の手をいただけるよう、お願いいたしますm(_ _)m。
最後に編集したユーザー メルサイア on 2016年12月11日(日) 22:03 [ 編集 8 回目 ]

メルサイア
記事: 127
登録日時: 2016年2月22日(月) 10:35
お住まい: 大阪府
連絡を取る:

Re: Tachi.jsプラグインの戦闘スピードを自由に調整できるように改造(お助け人募集)

投稿記事by メルサイア » 2016年7月27日(水) 14:46

ご参考までに、3. Tahci3.jsで、私がトライして治らなかった主な不具合について、今の時点のjsファイルと、問題点を列挙しておきます。
https://www.dropbox.com/s/qg4hkevh63bry ... i3.js?dl=1
(a)パラメータで、早送りボタン(Enterキー、Shiftキー)の機能をOFFにしても、早送りされてしまう。
(b)パラメータで、ゲームスピードを調整しても、戦闘中のスピードが変わらない。
(c)スキップボタン(Rキー)が機能しない。
その他、なんでもいいので、ご質問ください。よろしくお願いします。
最後に編集したユーザー メルサイア on 2016年8月04日(木) 23:01 [ 編集 1 回目 ]
アバター
yamachan
記事: 107
登録日時: 2016年6月19日(日) 22:34

Re: Tachi.jsプラグインの戦闘スピードを自由に調整できるように改造(お助け人募集)

投稿記事by yamachan » 2016年7月27日(水) 15:20

こんにちは! :D

Tachi3.js プラグインを読み込んでみたらエラーが出ていたので、まずそこだけ指摘します。

1) 関数定義は利用する前に

getParamNumber() 関数などを導入したようですが、定義より前に使用してエラーになっています。
以下から始まるプラグインパラメータの読み込み部分を、関数を定義したブロックの後に移動しました。

コード: 全て選択

// ゲームスピードを持つ変数番号
var _VarNo_GameSpeed1to9 = getParamNumber(_parameter['VarNo_GameSpeed_1to9','ゲームスピードを格納する変数番号'], 1, 9999); // ツクールMVの変数番号は、1~9999までのはず。


2) 必要な値が定義されていない

前述の関数群はpluginName という変数が定義されているのを前提としているようなので、最初の1行を以下の2行に置き換えます。

コード: 全て選択

var pluginName = 'Tachi3';
var _parameter = PluginManager.parameters(pluginName);



以上の2点の修正で、とりあえず読み込み時のエラーは消えます。
この動作を確認してみてください。

とりあえず最初は、指定したプラグインパラメータはちゃんと変数にセットされているか、console.log してみるとか。

ではでは。
Toshio Yamashita (yamachan)
Plugin https://github.com/yamachan/jgss-hack/blob/master/README.ja.md
Twitter https://twitter.com/yamachan360

私が作成して本サイトに投稿したコードは著作権を放棄し、利用・改変・配布など全て自由です。
ただし同じ投降内に制限を明記している場合はそちらが優先します。
メルサイア
記事: 127
登録日時: 2016年2月22日(月) 10:35
お住まい: 大阪府
連絡を取る:

Re: Tachi.jsプラグインの戦闘スピードを自由に調整できるように改造(お助け人募集)

投稿記事by メルサイア » 2016年7月27日(水) 16:06

yamachanさん

早速のご返信、ありがとうございます!
助かりますm(_ _)m。

1) 関数定義は利用する前に
…知りませんでした…@_@。
javascirptは基本インタプリタ型だから、そういう仕様なのですね…。申し訳ありません、私の勘違いでした。
メインは、これのせいかも…(移動します)

2) 必要な値が定義されていない
すみません。変数宣言 var pluginNameの行を消してしまっていたのは、私のケアレスミスでした…。
プラグイン名を変更しやすくしようと簡略化したばっかりに…。修正します。

その他、ミスがあったところ。
・556行目あたり、var _gameSpeed = …_VarNo_GameSpeed1to6); が、変数リネームし忘れでした。ただしくは_VarNo_GameSpeedです。
・558行目辺り、デバッグの表示がすごいことになっている(全部99999999になっている)ので、修正が必要そうです。 https://gyazo.com/6d46662459a69217509420413f9aacbe


↓ここまで修正したファイルを、以下においておきます。
https://www.dropbox.com/s/e2ksz73l19uxx ... i3.js?dl=1
ただし、以下の不具合があります。
(d)戦闘中、戦闘メッセージに入ると、フリーズする(どうやら、_waitCountが0か、低くなっていることによる弊害のようです)
引き続き原因を調査していきます。


※参考程度に、yamachanさんが使われているjavacriptデバッグ環境はどんなソフトでしょうか?
 私はVisualStudioCodeなのですが、ご指摘の点(未定義の変数がある、関数は使う前に宣言しておくれ…など)は、検証してくれませんでした…。
アバター
yamachan
記事: 107
登録日時: 2016年6月19日(日) 22:34

Re: Tachi.jsプラグインの戦闘スピードを自由に調整できるように改造(お助け人募集)

投稿記事by yamachan » 2016年7月27日(水) 16:52

こんにちは! :D

私の使用しているデバッグ環境は… テストプレイ中に F8 で起動するコンソール(開発ツール)のみです ;)
後はjsを書くための TeraPad や Atom などのテキストエディタのみです…

自分でプラグイン書くときは、デバッグ用の簡単な機能 (ログやiUnitもどきなど) を実装したコアライブラリを使っています。
https://github.com/yamachan/jgss-hack/blob/master/RTK1_Core.ja.md

コンソールに出力されるエラーメッセージは、行数も出ますし、慣れると便利ですよ :D
開発中はなるべく行を分けて書くと、問題個所がよりわかりやすい、という地味なテクニックもあり。

慣れるまで大変かもしれませんが、頑張ってください!
ではでは。
Toshio Yamashita (yamachan)
Plugin https://github.com/yamachan/jgss-hack/blob/master/README.ja.md
Twitter https://twitter.com/yamachan360

私が作成して本サイトに投稿したコードは著作権を放棄し、利用・改変・配布など全て自由です。
ただし同じ投降内に制限を明記している場合はそちらが優先します。
メルサイア
記事: 127
登録日時: 2016年2月22日(月) 10:35
お住まい: 大阪府
連絡を取る:

Re: Tachi.jsプラグインの戦闘スピードを自由に調整できるように改造(お助け人募集)

投稿記事by メルサイア » 2016年7月27日(水) 22:44

ありがとうございます! 参考になります。
RTK1_Core.jsの方も、試してみます。

今日の進捗
・デバッグ出力が、フレームレートを圧迫するのを回避しました。

まだ治らない不具合
・パラメータ化した変数の値が、すべて99999999や1になっているようです。どこでミスっているのでしょうか…><。

ここまでのTachi3.jsを、以下のURLに置いておきます(毎度更新されます)。
https://www.dropbox.com/s/e2ksz73l19uxx ... i3.js?dl=1

また明日やってみます。
アバター
yamachan
記事: 107
登録日時: 2016年6月19日(日) 22:34

Re: Tachi.jsプラグインの戦闘スピードを自由に調整できるように改造(お助け人募集)

投稿記事by yamachan » 2016年7月28日(木) 00:07

こんばんは! :D

パラメータに関しては、引数が違っているようで、

コード: 全て選択

var _VarNo_GameSpeed = getParamNumber(_parameter['VarNo_GameSpeed','ゲームスピードを格納する変数番号'], 1, 9999)

は以下で良いとおもいます。

コード: 全て選択

var _VarNo_GameSpeed = getParamNumber('ゲームスピードを格納する変数番号', 1, 9999);

複数のパラメータ表記がありどれかを参照したいのであれば、たぶん以下になるかと。

コード: 全て選択

var _VarNo_GameSpeed = getParamNumber(['VarNo_GameSpeed','ゲームスピードを格納する変数番号'], 1, 9999);


ちなみに、単純でよくある書き方だと以下のような感じですね。 これと関数の使い方で混乱されたと推測。

コード: 全て選択

var _VarNo_GameSpeed = (Number(_parameter['ゲームスピードを格納する変数番号'])||15).clamp(1, 9999);


ではでは。
Toshio Yamashita (yamachan)
Plugin https://github.com/yamachan/jgss-hack/blob/master/README.ja.md
Twitter https://twitter.com/yamachan360

私が作成して本サイトに投稿したコードは著作権を放棄し、利用・改変・配布など全て自由です。
ただし同じ投降内に制限を明記している場合はそちらが優先します。
メルサイア
記事: 127
登録日時: 2016年2月22日(月) 10:35
お住まい: 大阪府
連絡を取る:

Re: Tachi.jsプラグインの戦闘スピードを自由に調整できるように改造(お助け人募集)

投稿記事by メルサイア » 2016年7月28日(木) 11:38

yamachanさん
夜分遅くにありがとうございます。

こ、これです。。_parameterが要らなかった…。
Number()から、getParaNumber()に置き換えた時、引数の仕様を勘違いしていたのが原因のようです。。

これでたぶん、動きます。ほんとうに、感謝ですm(_ _)m。
動いた&他のバグをつぶしたやつを、あとから添付します。
メルサイア
記事: 127
登録日時: 2016年2月22日(月) 10:35
お住まい: 大阪府
連絡を取る:

Re: Tachi.jsプラグインの戦闘スピードを自由に調整できるように改造(お助け人募集)

投稿記事by メルサイア » 2016年8月04日(木) 22:43

メルサイアです。ご無沙汰しております。

あれから一週間ほど、バグ潰しと修正を繰り返していったのですが、まだ完成形には至りません。。。
よっぽどデバッグ効率が悪いか、原因切り分けが下手なのかな、と、悪戦苦闘しております。

Tachi3.jsの、ここまで出きたバージョンのURLと、現在の詰まっている場所をお知らせします。
https://www.dropbox.com/s/tzgj75ldqzl2h ... i3.js?dl=1

<ここまで出来た>
・パラメータはきちんと反映されるようになった → 入力の説明やUIをわかりやすくし、一部は制御文字\V[n]にも対応した
・スキップ機能がやっと動いた        → メッセージ中の「\.」や「\|」もすっ飛ばせるようになった

<ここで詰まっている>
・戦闘中、2ターン目に、必ずフリーズする
 → Window_BattleLog.prototype.updateWaitCountのthis._waitCountの値が、不意にundefinedになる→計算式でNaNになるのが原因の一つと考えられる
 → 1224行目~1313行目、Window_BattleLog.prototype.updateWaitCountをまるごとコメントしたら、フリーズはなくなる。
   このメソッド内でなにか変なことをしている可能性が高い。でも見つからない…。

詳細は、以下のtwitterつぶやき履歴を観ていただけると、もしかすると何かわかるかもしれません。。
https://twitter.com/merusaia/status/761175763060088832


※このプラグインは、Tachiさんやトリアコンタンさん、yamachanさんやmankindさんを始め、
 多くの方のソースを参考にさせていただいています。この場を借りて、感謝いっぱいのお礼を示したいと思います。

どなたでも結構ですので、引き続き、完成までお力添えいただけると、幸いです。
アバター
yamachan
記事: 107
登録日時: 2016年6月19日(日) 22:34

Re: Tachi.jsプラグインの戦闘スピードを自由に調整できるように改造(お助け人募集)

投稿記事by yamachan » 2016年8月05日(金) 02:43

こんばんは! :D

とりあえず一点だけ。

this.waitCount と this._waitCount が混在していますが、これは意図的なものでしょうか?
前者が typo で、これが原因で初期値が未定義だったり、無限ループに入ったりしているように見えますが…

ではでは。
Toshio Yamashita (yamachan)
Plugin https://github.com/yamachan/jgss-hack/blob/master/README.ja.md
Twitter https://twitter.com/yamachan360

私が作成して本サイトに投稿したコードは著作権を放棄し、利用・改変・配布など全て自由です。
ただし同じ投降内に制限を明記している場合はそちらが優先します。

“MV:プラグイン素材のリクエスト” へ戻る