仮RPGの進捗ノート20241202-20241208

仮RPGの進捗を記載するノートです。20241202-20241208分。

Dec 1, 2024

はじめに

日々の進捗をメモしています。
 

20241202 イベントエディターでタスク管理してみる

 
「あとは何をやるんだっけ…? 何をどこまでやったんだっけ?」とすぐなる。
どこかに記載してもいつも見返すクセが付かない。
ツクールの作業についてはツクール内にあったら見返すかも?
イベントエディターでタスク管理をしてみる。
 
イベントエディターでタスク管理
イベントエディターでタスク管理
 

20241204 他イベントのセルフ変数を取得できるようにした

 
セルフ変数の設定で下記プラグインを使用させていただいている。
 
追加したときのメモ
 
プラグインを一部変更し、
他のイベントのセルフ変数を取得できるプラグインコマンドを追加させてもらった。
 
* 〇 GetSelfVariable mapId evId indexe setVar / セルフ変数取得 * mapId : マップID (範囲指定は不可) 0を指定した場合はイベントが実行されているマップIDを使用する。 * evId : イベントID (範囲指定は不可) * indexe : セルフ変数の番号 (範囲指定は不可) * setVar : 参照したセルフ変数をsetVarに代入する * - マップID、イベントID、セルフ変数番号を指定して、設定されている値を取得し、setVarで指定した変数に代入します。 * - 範囲指定はできません。 * 例: GetSelfVariable 1 2 3 5 * => マップID 1 番のイベントID 2 番のセルフ変数 3 番の値を変数5に代入する
 
 

20241206 マルチカーソルスキルのとき敵選択ウィンドウがスクロールしない不具合を修正した

 
ウィンドウ内に表示されている最大行数とマルチカーソルの高さを比較して必要であれば一番下の行数を更新する。
 
case 'down': var maxRows = this.maxRows(); // ウィンドウ内に存在する項目の総行数を取得 var currentRow = Math.floor(index / maxCols); // カーソルの行数が最大選択行数を超えないかチェック if (currentRow < maxRows - maxSelectableRows) { // maxSelectableRows:変形カーソルの最大行数 newIndex = Math.min(index + maxCols, maxItems - 1); // 現在の選択中の項目の行数が ウィンドウ内の最大行数 - 変形カーソルの行サイズ(ウィンドウが4行で、変形カーソルが2行だったら、2を返す) より小さかったら(つまり、下に移動できる猶予がある場合) // 新しい項目に移動できる // ここで画面をスクロールさせる処理をする if (currentRow + maxSelectableRows > this.bottomRow()) { this.setBottomRow(currentRow + maxSelectableRows); } } break;
 

20241208 プレイヤーの一部を非表示にできるプラグインを作成した TT_HalfInvisiblePlayer.js

 
===
追記
他イベントやフォロワーも対象にしたくて、別のプラグインを付く直した。
===
 
プレイヤーが筒に埋まっている表現をしたかった。
プレイヤーの下半身を非表示にすることで、埋まっているように見えないか? ということで一部だけ非表示にするプラグインを作成した。
 
筒の中に入ったハロルド
筒の中に入ったハロルド
 
どうだろう?
埋まっているように見える?
 
//============================================================================= // TT_HalfInvisiblePlayer.js // ---------------------------------------------------------------------------- // Copyright (c) 2024 たくろう_りらっくすーぷ // This software is released under the MIT License. // http://opensource.org/licenses/mit-license.php // ---------------------------------------------------------------------------- // Last Updated: 2024/12/08 // // Version // 1.1.1 2024/12/08 プラグインパラメータのタイプを修正 // 1.1.0 2024/12/08 アニメーションと向きの問題を修正 // 1.0.0 2024/12/08 初版 // ---------------------------------------------------------------------------- // [Blog] : https://re-lacksoup-recipenote.bullet.site/ // [X(Twitter)]: https://x.com/relacksoup //============================================================================= /*:ja * @plugindesc プレイヤーキャラクターの一部を非表示にするプラグイン (Version 1.1.1) * @author たくろう_りらっくすーぷ * * @param Switch ID * @text スイッチID * @desc 非表示効果を有効にするスイッチのID * @default 1 * @type switch * * @param Variable ID * @text 変数ID * @desc 非表示割合を指定する変数のID * @default 1 * @type variable * * @help プレイヤーキャラクターの一部を非表示にするプラグイン (Version 1.1.1) * * このプラグインは、指定したスイッチがONのときに * プレイヤーキャラクターの一部を非表示にします。 * * 更新履歴: * 1.1.1 - プラグインパラメータのタイプを修正しました。 * 1.1.0 - アニメーションと向きの問題を修正しました。 * 一部非表示時も足踏みアニメーション、歩行アニメーション、 * および移動時の向きが正常に機能するようになりました。 * 1.0.0 - 初版 * * 使用方法: * 1. このプラグインをプロジェクトに追加します。 * 2. プラグインパラメーターで使用するスイッチIDと変数IDを設定します。 * 3. ゲーム中で指定したスイッチをONにし、変数に値を設定することで * プレイヤーキャラクターの一部を非表示にできます。 * * ◆プラグインパラメーター *  スイッチID *    非表示効果を有効にするスイッチのIDを指定します。 *    デフォルト:1 * *  変数ID *    非表示割合を指定する変数のIDを指定します。 *    デフォルト:1 * * ◆変数の値について *  変数の値が正の場合、上から指定した割合を非表示にします。 *  変数の値が負の場合、下から指定した割合を非表示にします。 *  例: *   75 -> 上から75%を非表示 *   -75 -> 下から75%を非表示 * * ◆注意 *  ・このプラグインはプレイヤーキャラクターにのみ適用されます。 *  ・他のプラグインとの競合は検証できていません。 */ (function() { var parameters = PluginManager.parameters('TT_HalfInvisiblePlayer'); var switchId = Number(parameters['Switch ID'] || 1); var variableId = Number(parameters['Variable ID'] || 1); var _Sprite_Character_updateCharacterFrame = Sprite_Character.prototype.updateCharacterFrame; Sprite_Character.prototype.updateCharacterFrame = function() { _Sprite_Character_updateCharacterFrame.call(this); if (this._character === $gamePlayer && $gameSwitches.value(switchId)) { var invisibleRatio = $gameVariables.value(variableId); var absRatio = Math.abs(invisibleRatio); var visibleHeight = this.patternHeight() * (100 - absRatio) / 100; var y = invisibleRatio > 0 ? this.patternHeight() - visibleHeight : 0; var pw = this.patternWidth(); var ph = this.patternHeight(); var sx = (this.characterBlockX() + this.characterPatternX()) * pw; var sy = (this.characterBlockY() + this.characterPatternY()) * ph; this.setFrame(sx, sy + y, pw, visibleHeight); } }; var _Sprite_Character_updatePosition = Sprite_Character.prototype.updatePosition; Sprite_Character.prototype.updatePosition = function() { _Sprite_Character_updatePosition.call(this); if (this._character === $gamePlayer && $gameSwitches.value(switchId)) { var invisibleRatio = $gameVariables.value(variableId); if (invisibleRatio > 0) { this.y += this.patternHeight() * invisibleRatio / 200; } } }; })();
 

20241208 筒とか導火線っぽい表示とか設定した

 
準備したプラグインとかタイルやイベントを組み合わせて、筒と導火線を配置した。
 
notion image
 
やりたかったことはなんとなく分かるけど、頑張りたかったんだなー感は拭えない。
 

 

今週のまとめ

  • 気になっていたマルチカーソルプラグインの不具合を修正できたのは嬉しかった
  • 筒に入っている表現もできるか不明なまま進んでいたけど、一応これでいいかという状態になったのでよかった
  • 1つのやりたいことのために複数の設定やプラグインを使っており、絶対どこかで根元からヤバい不具合に遭遇しそうで怖い
  • 端末で起動したらめちゃくちゃ重たいとかありそうで怖い
 

今後やりたいこと

  • どこかで実機でテストしてみてもいいかもしれない