【サイトについて】
* RPGツクールMVを使った、ゲームを一層楽しくするためのアイディアや、豆知識、プラグインなどを紹介していきます。あくまで個人の考えに基づく記事ですので、参考程度にお読みいただければ幸いです。
<< カスタムステート(状態異常)を作ろう! | main | ストレスフリーなランダムエンカウントを目指す >>
スポンサーサイト
0

    一定期間更新がないため広告を表示しています

    | - | |- |
    MV1.0.1→1.1.0 Javascript変更部分
    0
      昨日RPGツクールMVのメジャーアップデートがあり、バージョンは1.0.1から1.1.0となりました。

      Javascriptの差し替えが必要という事で、
      「差し替える事でプラグインが動かなくなるのが心配・・」
      という方も居るかも知れません。

      私も差し替えてからは真っ先に動作チェックを行いましたが、
      ・公式プラグイン
      ・YEP_CoreEngine
      ・トリアコンタンさんのプラグイン
      ・自分で書いたプラグイン
      すべて問題なく動作している様です。

      実際にjsフォルダの中身がどのぐらい書き換わっているのか、確認です。

      ■main.js
      変更無しです。


      ■rpg_core.js
      167〜175行目にかけてバージョン情報をセットしておく処理が追加されていました。
      /**
       * The version of the RPG Maker.
       *
       * @static
       * @property RPGMAKER_VERSION
       * @type String
       * @final
       */
      Utils.RPGMAKER_VERSION = "1.1.0";


      ■rpg_manager.js
      333行目、339行目にセーブファイル周りの処理が追加されています。
      バージョンアップ情報に書かれていましたね。
      セーブを行う時に不具合が発生した場合、元データが消えない様にされた様です。
       
      DataManager.saveGame = function(savefileId) {
          try {
              StorageManager.backup(savefileId);
              return this.saveGameWithoutRescue(savefileId);
          } catch (e) {
              console.error(e);
              try {
                  StorageManager.remove(savefileId);
                  StorageManager.restoreBackup(savefileId);
              } catch (e2) {
              }
              return false;
          }

      597行目〜662行目にかけて、セーブデータのバックアップ処理関数がありました。
      (行数多いので割愛します)

      そして1551〜1558行目、1571〜1573行目SceneManagerに追加がありました。
      ミリ秒で時刻を取得する処理の様ですが、
       
      /*
       * Gets the current time in ms.
       * @private
       */
      SceneManager._getTimeInMs = function() {
          return performance.now();
      };

      この処理の影響により、1744行目、バージョン1.0.1では

      SceneManager.updateMain = function() {
          this.changeScene();
          this.updateScene();
          this.renderScene();
          this.requestUpdate();
      };

      この様な処理だったのが、
       
      SceneManager.updateMain = function() {

          var newTime = this._getTimeInMs();
          var fTime =  (newTime - this._currentTime) / 1000;
          if (fTime > 0.25) fTime = 0.25;
          this._currentTime = newTime;
          this._accumulator += fTime;

          while (this._accumulator >= this._deltaTime) {
              this.updateInputData();

              this.changeScene();
              this.updateScene();

              this._accumulator -= this._deltaTime;
          }

          this.renderScene();
          this.requestUpdate();
      };

      この様になっていました。
      this.changeScene();とthis.updateScene();が、新たに加わった処理の中に変更。
      詳しくは分かりませんが、これが「ゲームの動作スピードが変動してしまう不具合の修正」かも知れません。

      それから2408行目、$gameParty.removeBattleStates();の場所が
      BattleManager.processAbortからBattleManager.processEscapeの中に移動されています。
      こちらは「戦闘時、逃走に失敗すると状態異常が消失する不具合を修正」の様ですね。


      ■rpg_object.js
      殆ど変更無しですが、細かい部分が幾つか。

      v1.0.1 1409行目・1531行目 this._targetIndex = target.index();
      v1.1.0 1409行目・1531行目 this._targetIndex = target.index;
      target.indexから()が外れていました。

      1688行目ダメージ計算式を処理する
      Game_Action.prototype.evalDamageFormulaの中で
      return Math.max(eval(item.damage.formula), 0) * sign;
      から
      var value = Math.max(eval(item.damage.formula), 0) * sign;
              if (isNaN(value)) value = 0;
              return value;

      に変更されています。
      「ダメージ計算式が空白のスキルを使用すると、エラーが発生する不具合を修正」への対応ですね。

      あと見逃す所でしたが、最後の方の10259行目、
      職業変更の処理をする関数 Game_Interpreter.prototype.command321

      バージョン1.0.1 actor.changeClass(this._params[1], false);
      バージョン1.1.0 actor.changeClass(this._params[1], this._params[2]);
      これが職業変更時のレベル保持の処理ですね。


      ■rpg_scenes.js
      こちらも殆ど変更無しですが、1箇所だけ。
      今回のバージョンアップにおいてゲームセーブ時に取得していたバックアップを、
      セーブ成功と同時に削除する処理が加えられています。
       
      Scene_Save.prototype.onSaveSuccess = function() {
          SoundManager.playSave();
          StorageManager.cleanBackup(this.savefileId());
          this.popScene();
      };


      ■rpg_sprites.js
      これは偶然なのか、ちょうど前回私が記事に使用した関数に修正が入っています。
      845行目、
       
      Sprite_Actor.prototype.refreshMotion = function() {
          var actor = this._actor;
          var motionGuard = Sprite_Actor.MOTIONS['guard'];
          if (actor) {
              if (this._motion === motionGuard && !BattleManager.isInputting()) {
                      return;
              }

      「サイドビュー戦闘時、防御アニメーションが適切に再生されない不具合を修正」
      この部分に関する修正処理ですね。
      もし前回か前々回のブログ記事にてこの処理を直接書き加えられた方は、ご留意ください。

      それから2358行目にて遠景の不具合についての追加と、
      2374行目でupdateParallaxへの修正が行われています。
       
      /*
       * Simple fix for canvas parallax issue, destroy old parallax and readd to  the tree.
       */
      Spriteset_Map.prototype._canvasReAddParallax = function() {
          var index = this._baseSprite.children.indexOf(this._parallax);
          this._baseSprite.removeChild(this._parallax);
          this._parallax = new TilingSprite();
          this._parallax.move(0, 0, Graphics.width, Graphics.height);
          this._parallax.bitmap = ImageManager.loadParallax(this._parallaxName);
          this._baseSprite.addChildAt(this._parallax,index);
      };
       
              if (this._parallax.bitmap && Graphics.isWebGL() != true) {
                  this._canvasReAddParallax();
              } else {

                  this._parallax.bitmap = ImageManager.loadParallax(this._parallaxName);
              }

      「Canvasモード時に遠景の変更が反映されない不具合を修正」ですね。


      ■rpg_windows.js
      変更点は3箇所。

      1749行目〜1755行目
      ゲームの解像度変更により、メニューの顔グラフィック表示位置がずれる不具合の修正
      Window_MenuStatus.prototype.drawItemImage = function(index) {
          var actor = $gameParty.members()[index];
          var rect = this.itemRect(index);
          this.changePaintOpacity(actor.isBattleMember());
          this.drawActorFace(actor, rect.x + 1, rect.y + 1, 144, rect.height - 2);
          this.changePaintOpacity(true);
      };

      4599行目〜4606行目
      文章の表示 のコマンドで一括入力がオンの場合、スクロールバーが表示されない不具合の修正
      Window_ScrollText.prototype.refresh = function() {
          var textState = { index: 0 };
          textState.text = this.convertEscapeCharacters(this._text);
          this.resetFontSettings();
          this._allTextHeight = this.calcTextHeight(textState, true);
          this.createContents();
          this.origin.y = -this.height;
          this.drawTextEx(this._text, this.textPadding(), 100);
      };

      5431行目〜5436行目
      コマンド記憶がONの時、スキルタイプ選択時のカーソル位置が記憶されない不具合の修正
      Window_ActorCommand.prototype.selectLast = function() {
          this.select(0);
          if (this._actor && ConfigManager.commandRemember) {
              this.selectSymbol(this._actor.lastCommandSymbol());
          }
      };

      という感じですね。

      アップデートによる差分は以上の様です。
      これ以外ですとlibs/pixi.jsがバージョン2.2.9から2.2.10になっている事ぐらいでした。

      ここまで見てみると、現存しているプラグインに大幅な影響を与える追加修正は特に無さそうな気がしますね。安心して公開中の作品のファイルも差し替え出来そうです。ただしバックアップとテストプレイは念のためお忘れずに。
      | RPGツクールMV技術情報 | 09:56 |- |
      スポンサーサイト
      0
        | - | 09:56 |- |
        PR