1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

RPGツクールMVのゲーム画面の大きさ・スケール(拡大)を変えるあれこれ

Posted at

やりたいこと

16px/32pxのタイルセットやキャラクターセットを使いつつ48pxと同じ画面サイズ感にする。

まず

RPGツクールMVのリサイズ・スケール周りは何かとややこしい

  • F4 でフルスクリーンモード
  • F3 Streach Mode(ウィンドウサイズに応じてゲーム画面がリサイズされる)
  • スマホ・プレイヤー(nwui)の場合はデフォルトON、PCの場合はOFF
  • 参考: _updateRealScale() (rpg_core.js:1644)

初期ウィンドウサイズ(スケール)を変えたい

Graphics.scale を書き換えてウィンドウサイズを変えればよい

    var Graphics_initialize = Graphics.initialize;
    Graphics.initialize = function (width, height, type) {
        Graphics_initialize.call(Graphics, width, height, type);

        // streach mode = offの場合、scaleをもとに計算される
        Graphics.scale = 2;

        // streach mode = onの場合は、ウィンドウサイズ=スケールなのでウィンドウを変えてしまう
        window.resizeTo(SceneManager._screenWidth * Graphics.scale, SceneManager._screenHeight * Graphics.scale);
    }


整数倍でスケールさせる

http://www.yanfly.moe/wiki/Core_Engine_(YEP)
Update Real Scale をtrueにする
デフォルトでは 0.5, 1, 1.5, 2, 3倍。 1.5が邪魔なら消してしまう。
このプラグインを導入すると上記のスケールが動かなくなる
(後述のゲーム解像度変更のためウィンドウサイズを初期化時にかえるため)

YEP_CoreEngine.js:1040
Graphics._updateRealScale = function() {
  if (this._stretchEnabled) {
    var h = window.innerWidth / this._width;
    var v = window.innerHeight / this._height;
    this._realScale = Math.min(h, v);
    if (this._realScale >= 3) this._realScale = 3;
    else if (this._realScale >= 2) this._realScale = 2;
    else if (this._realScale >= 1.5) this._realScale = 1.5;
    else if (this._realScale >= 1) this._realScale = 1;
    else this._realScale = 0.5;
  } else {
    this._realScale = this._scale;
  }
};

ゲーム画面のピクセル数(デフォルト:816x624)を変える

上記プラグインのScreen WidthScreen Heightを変えるだけ。
いわゆるビューポート自体が変わるので画面に映る範囲は狭くなる

本題

RPGツクール2000みたいな化石の資産を使おうとしてもMVではタイルセットが48px固定になっている。
(逆にキャラクターセットは比率が合っていればどのサイズでもOK。なぜ? https://tkool.jp/mv/course/04.html)

そのためプラグインでタイルセットの基準サイズを変えるプラグインを入れる
https://forums.rpgmakerweb.com/index.php?threads/change-tile-size.46748/

  • これ単体で16pxタイルセットを使うと広い画面に対して小さなタイルセットが並んでしまうので
  • 上記解像度を1/3(272x208)にするとぴったり納まる
  • ウィンドウが小さいのでスケールで2~3倍にする
  • たぶんいい感じになる

問題点

  • いろいろ描画が壊れる。テキストボックスとか。

結論

下手にプログラムをいじらずに素材を48pxにスケールしてそのまま使ったほうが楽。

1
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?