MVの重さとは? プラグイン編

プラグインで重くなることはあるの?

プラグインを沢山追加したら、その分だけ重くなるのだろうか? 重くなるとしたら、具体的にどの程度か?

実際に開発中のゲームに組み込まれているプラグインを1つずつOFFに切り替えて、そのプラグインがONのときとOFFのときで、ベンチマークテストのスコアに変化があらわれるのかを確認した。

ベンチマークテストにはMVBenchを使用した。アツマール版のMVBenchと異なり、計測回数を50回に増やして精度を向上させた特別版を使用すること、ブラウザは最新版ではなくMVの1.6.1に搭載される Chrome/65.0.3325.146 上で動作させている。スコアは±1%程度の誤差が生じるため、計測結果が誤差1%の範囲内なら「変化なし」と記述している。

また、プラグインの多くは有志により制作・提供されているが、その大半は、当記事の筆者によって任意にカスタマイズされていることをお断りしておく。

【基準値】すべてのプラグインをON

すべてのプラグインをONの状態で計測すると 987 から 990 の間となった。平均値の 989 を採用する。また、984 から 994 までの間は、誤差の範囲内と考えて良いだろう。

▼ 大きな影響があったプラグイン

SA_CoreSpeedImprovement を OFF

SA_CoreSpeedImprovement プラグインをOFFにすると、スコアが 989 から 624 に低下した。その差は 365 ポイントと大きな値だ。

SA_CoreSpeedImprovement は、MVの速度改善のためのプラグインなので、それをOFFにすればスコアは下がるというのは予想されたが、それなりに効果があったことが判明する。RPGアツマールに公開されているMVBenchは、同等の SA_CoreSpeedImprovement が既に組み込まれているため、速度改善後のスコアを表示していることになる。


▼ 若干の負荷があるプラグイン

HIME_CustomPageConditions を OFF

HIME_CustomPageConditions はイベントのページ内に条件を記述して、ページの有効無効をより詳細な条件で制御できるようにするプラグインだ。

スコアは 998 で基準値 989 と 9ポイントの差があり、このプラグインも若干の負荷要因であることが予想される。MVBench では HIME_CustomPageConditions の本来の機能を全く使用していないため、9ポイントというのは、プラグインを組み込んだだけで条件式を何も追加していないときの負荷と考えていただきたい。

イベントに条件式を追加してプラグインの機能を活用した場合、条件式の内容や分量に応じてマップ画面の速度の低下が予想される。ただ、どの程度の速度低下となるかは一概に判定できず、内容次第といったところだろう。

AltWindowFrame を OFF

AltWindowFrame は、ウィンドウビルダー MADO により制作したウィンドウを、MVのゲームに組み込むときに必要となるプラグインだ。

スコアは 998 で基準値 989 と 9ポイントの差があり、MADO によりカスタムされたウィンドウを反映させるだけで、MVBench の画面にはそのウィンドウは表示される場面は無いのだが、わずかに速度が落ちてしまう。とはいえ、この程度なら許容範囲内だろう。

MoreCharacterFramesPlus を OFF

MoreCharacterFramesPlus は、Shaz氏制作のプラグインで、キャラクターの3フレーム以上のアニメーションを可能にしてくれる。実に判りやすいので、カスタマイズして組み込んでいる。

スコアは 996 で基準値 989 と 7ポイントの差があり、このプラグインがマップ画面に若干の負荷をかけていることが予想される。MVBench では同時に表示されるキャラクターの数が多いため影響が出たのだろうか。しかし、この程度ならば無視できる負荷だろう。

▼ (参考)バトル関連プラグイン

バトル関連プラグイン 11個まとめてOFF

バトルシーン用のプラグインを ON / OFF したところで、マップ画面の速度を計測する MVBench には何ら影響しないと思われるが、念のため、これらのプラグインをOFFにして計測した。

スコアは 985 で基準値 989 から 4ポイント低下しており、バトルシーン用のプラグインを追加することで何故かマップ画面の速度がわずかに改善されるという結果になったが、原因は不明である。誤差の範囲内とも考えられる。

▼ (参考)メニュー関連プラグイン

MOG メニュー関連プラグイン 10個まとめてOFF

メニュー画面を開いたときは、マップ画面とは別のシーンである。メニュー画面をカスタマイズするこれらのプラグインは、マップ画面の重さには影響しないだろうと予想されたが、案の定、全く関係が無かった。基準値989 と 987 は、2ポイントの差があるが、どう見ても誤差だろう。

記事の主旨と全く関係ないことだが、メニュー画面はMoghunter氏制作のメニュー画面改造プラグインを、さらにこちらで大幅にカスタマイズして組み込んでいる。

 ★

▼ (負荷はあるが)計測不可能なプラグイン

HalfMove

Triacontane氏制作の半歩移動プラグインである。実はこのプラグイン、MVのマップ画面の負荷という点では大きな影響を与えるのだが、MVBench の仕組みが半歩移動プラグインを前提に組まれているため、半歩移動プラグインをOFFにしてしまうと計測が出来ない。

半歩移動を実現するとマップ内に表示される部分の座標の総数が増えるため、負荷が増えるのは必然といって良い。HalfMove をONにするのとOFFにするのでは、明らかにOFFのほうが軽いだろう。残念ながら、それがどの程度かは計測ができなかった。

1点補足しておくと、半歩移動プラグインをONにしたことにより遅くなる部分の処理速度を改善するためのプラグインが SA_CoreSpeedImprovement である。

▼ 機能未使用のプラグイン

KhasUltraLighting(KhasCore, KhasGraphics を含む)を OFF

KhasUltraLighting は、Nilo K.氏制作の光源システムである。作者本人が言うように、比較的大きな負荷のかかるプラグインである。

MVBench では光源システムは未使用であり、更に未使用の場合は負荷に影響を与えないようにする改修を独自に加えているため、基準値との差は2であり、誤差の範囲内となった。

ほんとぉ? (光源システム編を参照)


▼ 負荷がみられないプラグイン

以下に挙げるプラグインは、スコアの差が誤差の範囲内に収まったプラグインだ。これらは僅かな負荷はあるかもしれないが、ほとんど無視できる程度だろう。

記事の主旨としては、MVの重さに影響のあるプラグインを見つけることにあるので、MVの重さに影響していなかったこれらのプラグインは、ファイル名の紹介に留め、計測結果の画像も省略させていただく。

ただし、計測を行った MVBench では負荷のかかる使い方をしていないだけで、プラグインの本来持つ機能を積極的に活用すると大きな負荷のかかるプラグインも混じっている可能性はある。何事も使い方次第ということは念のため付記しておく。

  • SA_SetupNewGame
  • SA_SupportMultiBrowser
  • OrangeOverlay_S
  • CharacterGraphicExtend
  • KNH_CharacterShadow
  • EventNoLock
  • GALV_CamControl
  • Galv_ScreenZoom
  • MOG_DestinationPointer
  • MOG_EventText
  • MOG_Weather_EX
  • SA_AnotherWeather
  • TMMapMist
  • MOG_TimeSystem
  • SelfSwitchTemporary
  • MOG_ActorHud
  • MOG_ExpHud
  • MOG_MapNameHud
  • MOG_PartyHud
  • MOG_TimeSystem_Hud
  • MOG_TimeSystem_SubHud
  • MPP_MiniMap
  • PictureCallCommon
  • DevToolsManage
  • SA_MultiBGMPlayer
  • PD_8DirDash
  • SA_AnotherRouteSearch
  • SA_WalkingBehindTheFence
  • YEP_RegionRestrictions
  • ZE_Key_Mapper
  • TMCommonEventKey
  • SA_MapTilesetChanger
  • SA_MapTilesetAutoChanger
  • AtsumaruScoreboardsExperimental
  • SA_AirShipAlwaysAnimate
  • SA_CharacterFade
  • SA_CoreMiddleLayer
  • SA_FPSMeter_Customizer
  • SA_S_NekoMessage
  • SA_SceneLoading
  • SA_TouchHalfMove

MVBench 最小構成

MVBench が動作する範囲において、可能な限り多くのプラグイン(40個)をOFFにした状態で計測したスコアは 1013 となり、基準値 989 と 24ポイントの差がみられる。誤差の範囲を超えるため、プラグインを足したことによる重さは確実にあるが、思ったよりも少ない、というのが正直な感想だ。

MVBench では各プラグインの機能をフル活用して最大の負荷となるように、といったプラグインの使い方はしていない。単に組み込んだだけ、というプラグインも多い。

それらを加味しても、総じてプラグインの多くは軽量なためMVの重さに影響を与えるほどのことはなく、一部の重量級のプラグインの有無や、その使い方に大きく影響されると考えて良いだろう。

NEXT – 5. プラグイン編(おまけ)

  1. MVのゲームの重さの正体は?
  2. 解像度編
  3. 並列処理編
  4. プラグイン編 ★
  5. プラグイン編(おまけ)
  6. 光源システム編
  7. まとめ

ツクールフォーラムアドベントカレンダー Advent Calendar 2018