【ツクールMV小ネタ】YEP – Battle Engine CoreのSVアクターを中央寄せに調整する

このエントリーをはてなブックマークに追加
このエントリーを Google ブックマーク に追加
Pocket

最近、ツクールMVのゲーム作成にかなり時間を取られているため、こっちのブログの更新が殆どできていなかったんですが、作成中に面白い小技を見つけたので、ちょこっと書いてみます。

さて、
僕は、SV(サイドビュー)のバトル画面にて、戦闘キャラクターを中央寄せにする方法を模索していました。

中央寄せというのは、
例えば、バトル参加者が一人の時や、大勢のときのスプライトキャラクター(Sprite)の立ち位置を常に戦闘画面の中央に寄せる方法です。

通常はキャラクターの立ち位置は固定されていて、多人数パーティのときには一番目のアクターの位置は戦闘人数関係なく、決められた端っこの位置に置かれてしまいます。

これを人数によって常に中央に調整するようにするために、キャラクターの立ち位置を調整するようなプラグインはたくさんあります。

僕が現在使っている”YEP – Battle Engine Core”では自由に戦闘キャラクターの立ち位置を決めることができますが、そのままでは中央寄せの項目などはなく、5人、6人などの大人数パーティでは一人のときの立ち位置がすごい端っこに固定されてしまいます。

最初は追加して中央寄せのプラグイン等を導入する予定でしたが、”YEP – Battle Engine Core”のパラメータにスプリクトがそのまま使えるということに気がついたので、試しにバトル人数をそのまま入れることができる”$gameParty.battleMembers().lengt”というコードを使って、計算式をカスタムしてみます。

要は”YEP – Battle Engine Core”だけで中央寄せを実現させるということですね。

スクリプトを活用して中央寄せしてみる

今回はYanfly様の”YEP – Battle Engine Core”と、最初からあるMVのjavaScriptコード”$gameParty.battleMembers().lengt”を使って、自動的にSVメンバーが中央寄せになるようにしてみます。

コードに関しては公式サイトなんかを参考にしてください。

ゲーム中に出てくるあらゆる数字をこの$〇〇というコードで拾い上げて、ゲーム内の計算式に活用することができます。

いじる部分は、プラグインパラメータの”—Sideview—“の数値。

とりあえず、予め最大パーティのときの立ち位置を調整して数値で入れておきます。

最大人数の立ち位置が決まったら、その計算式を全部カッコで囲い、後ろに“+ ( ([最大参加人数] – $gameParty.battleMembers().length) * [調整値])”と追加します。

[最大参加人数]はバトル参加人数の最大人数。
[調整値]は中央値の位置によって変わります。

例えば、6人パーティーのときには以下のように入れるとうまく作動します。

ところで、調整値が一見難しそうですね。

ここの調整方法は、
①まずX、Y両方とも、”+ ( ([最大参加人数] – $gameParty.battleMembers().length) * [調整値])”の部分を”+(適当な数値)”にしてとにかく一番目のアクターを中央に持っていきます。

②中央値が決まったらカッコ()に入れた数値を控えて、もとの計算式に戻し、最大人数のときにその数値に近くなるように[調整値]をいじるだけです。

ちなみに上記の僕が使った式では、最大人数6人を想定して、0~60までの間隔で一番目のアクターが移動することになります。

試しに数式に当てはめてみるとわかりますが、
参加人数が6人のときには、”((6-6)*12)”となって移動量はゼロになるし、
参加人数が1人のときには、”((6-1)*12)”となって移動量は60になります。

さっきの①②の作業で、最大移動量が60とわかっていれば、(6-1)*X=60ってな感じで[調整値]を求めることができますね。

シェアする

フォローする