ゲーム内には、多数のキャラクターの中から一人がパーティに追加される(一度に一人のみ)可能性がある部分があり、開発が進むにつれてキャラクターはさらに増えていきます。一度に一人しかパーティに参加できないため、パーティメンバーを削除するすべてのケースを手動で考慮するのは非常に手間がかかります。
要するに、すべてのメンバーを個別に指定せずに、パーティメンバーを「なし(None)」に設定する方法はありますか? つまり、非表示にするのではなく、パーティから削除したいのです。
ゲーム内には、多数のキャラクターの中から一人がパーティに追加される(一度に一人のみ)可能性がある部分があり、開発が進むにつれてキャラクターはさらに増えていきます。一度に一人しかパーティに参加できないため、パーティメンバーを削除するすべてのケースを手動で考慮するのは非常に手間がかかります。
要するに、すべてのメンバーを個別に指定せずに、パーティメンバーを「なし(None)」に設定する方法はありますか? つまり、非表示にするのではなく、パーティから削除したいのです。
スクリプト イベントコマンドで以下を試してみてください。すべてのメンバーをパーティーから除外できるはずです:
$gameParty.allMembers().forEach(actor => $gameParty.removeActor(actor.actorId()));
メインキャラクターをパーティーに残す場合は、そのアクター ID をスキップすればよいです。アクター 1 を残して他全員を除外するには:
$gameParty.allMembers().forEach(actor => {
if (actor.actorId() !== 1) $gameParty.removeActor(actor.actorId());
});
はい、それでうまくいきます!質問ですが、プレイヤーのチームにいるパーティーメンバーの不透明度やブレンドモードを、具体的なメンバーに関係なく、すべての組み合わせを手動で処理せずに変更する方法はありますか?
フォロワーは毎フレーム、プレイヤーの不透明度とブレンドモードを複製します。パーティ全体を同時に変更したい場合は、プレイヤーに対して「移動経路の設定」で変更すれば、パーティ内の全員が一度に変更されます。
プレイヤーは通常のままにし、パーティメンバーだけを変更したい場合は、まずその複製処理を停止させる小さなプラグインが必要です。これを .js ファイルとして js/plugins に保存し、プラグインマネージャーで有効にしてください。
/*:
* @target MZ
* @plugindesc スイッチがONの間、フォロワーは各自の不透明度とブレンドモードを使用します。
*/
(() => {
const FOLLOWER_SWITCH = 0; // 使用するスイッチID
const OPACITY_VAR = 0; // 使用する変数ID、0から255
const BLEND_VAR = 0; // 使用する変数ID、0:通常、1:加算、2:乗算、3:スクリーン
const _update = Game_Follower.prototype.update;
Game_Follower.prototype.update = function() {
_update.call(this);
if ($gameSwitches.value(FOLLOWER_SWITCH)) {
this.setOpacity($gameVariables.value(OPACITY_VAR));
this.setBlendMode($gameVariables.value(BLEND_VAR));
}
};
})();
3つの「0」の部分を、実際に使用するスイッチIDと変数IDに置き換えてください。スイッチがONの間、マップ上のすべてのパーティメンバーはこの2つの変数の値を使用します。スイッチをOFFにすると、再びプレイヤーの設定と一致するようになります。
まさに私の望んでいた通りです、ありがとうございます!