「整列」の正確なアルゴリズムがよく分からないんですけどこんな感じですかねぇ
ツクールMVの仕様でスクリプト欄の12行制限があるのでギッチギチなんですけど
①イベントコマンド「スクリプト」-整列計算用の画像プリロード
コード: 全て選択
const [id1, id2] = [$gameVariables.value(XX), $gameVariables.value(YY)];
const [enemy1, enemy2] = [$dataEnemies[id1], $dataEnemies[id2]];
const [name1, hue1] = [enemy1.battlerName, enemy1.battlerHue];
const [name2, hue2] = [enemy2.battlerName, enemy2.battlerHue];
ImageManager.loadEnemy(name1, hue1);
ImageManager.loadEnemy(name2, hue2);
this.setWaitMode('image');
XXに1体目のエネミーIDを格納した変数ID、
YYに2体目のエネミーIDを格納した変数IDを指定してください。
②イベントコマンド「スクリプト」-トループセットアップ直後に整列計算、及びエネミー追加
コード: 全て選択
const _temporaryMethod = this.command301;
this.command301 = function () {
_temporaryMethod.apply(this, arguments);
const [i1, i2] = [$gameVariables.value(XX), $gameVariables.value(YY)];
const [e1, e2] = [$dataEnemies[i1], $dataEnemies[i2]];
const [b1, b2] = [ImageManager.loadEnemy(e1.battlerName, e1.battlerHue), ImageManager.loadEnemy(e2.battlerName, e2.battlerHue)];
const x1 = ((Graphics.boxWidth - (b1.width + b2.width)) / 2) + b1.width / 2;
const x2 = x1 + (b1.width + b2.width) / 2;
$gameTroop._enemies.push(new Game_Enemy(i1, x1, 436));
$gameTroop._enemies.push(new Game_Enemy(i2, x2, 436));
this.command301 = _temporaryMethod;
return true; };
①と同じく
XXと
YYの部分を書き換えてください。
③イベントコマンド「戦闘の処理」
これは普通に、エネミーを一体も配置していないトループを指定してください。
この3つを並べれば恐らく再現出来ると思います。
かなりトリッキーな処理をしているので十分なテストをしないと断言出来ませんが。
3体以上だと流石に設計から見直さないといけませんね(スクリプト欄が狭すぎて)