フリゲ関連講座 > 画面サイズ変更時の注意事項


画面サイズ変更時の注意事項

2017/03/22に公開されたウディタVer.2.20。
このバージョンでは、タイルサイズとゲーム画面サイズを別々に設定することができるようになりました。
また、それに伴い、ゲーム画面の16:9化にも対応。
これらの新機能に関する注意事項を書いておきます。

2017/03/23 2.20版正式公開に伴い一部修正

Ver.2.20バージョンアップ時の注意事項

  • バージョンアップ前にバックアップを取っておくこと
    一度バージョンアップしたものを旧バージョンに戻すと不具合が発生する可能性があります。
  • 画面サイズを変更した場合、UIの再調整が必須になります。
    ウディタ基本システムの場合はコモンイベントの差分データがあるのでこれを読み込むだけで済みますが、
    システムを改造していたり自作システムを使用する場合は大規模なシステム改変が必要になることがあります。

ゲームの基本設定


Ver.2.10のゲームの基本設定

Ver.2.20(β)のゲームの基本設定

画面サイズとタイルサイズの関係

Ver2.20版で設定可能な画面サイズは以下の通り。
画面サイズ16px時タイル数32px時タイル数40px時タイル数
320x240 20x1510x7.58x6
640x480 40x3020x1516x12
800x600 50x37.525x18.7520x15
848x480 53x3026.5x1521.2x12
854x480 53.375x3026.6875x1521.35x12
960x720 60x4530x22.524x18
960x540 60x33.7530x16.87524x13.5
1024x768 64x4832x2425.6x19.2
1024x576 64x3632x1825.6x14x4
1280x960 80x6040x3232x24
1280x720 80x4540x22.532x18
凡例 桃:新サイズ(4:3) 緑:新サイズ(16:9) 赤字:一画面のマス数が整数にならない設定

この表を見てわかる通り、画面設定とタイルサイズによっては一画面のマス数が整数にならないことがあります。
特に854x480では全ての設定で整数にならない上に、画面中央位置が427と奇数になり、UI作成が難しくなっています。 なので、これから16:9対応作品を作る場合、画面サイズは848x480にした方が無難です。

また、1024x768以上の大型サイズの場合、モニターの画面サイズによっては画面が見切れることがあります。
ウディタ2.20ではウィンドウの拡大・縮小に対応しており、
またF4キーを押すことで疑似フルスクリーンにして画面を「縮小」することもできます。
ただし、それでも本来のサイズでプレイすることは困難なため、DL時や起動時に注意書きをすることをお勧めします。

割り切れないタイルサイズの場合の対処法


一画面のタイル数が割り切れない場合、不自然なスクロールが発生することがあります。
例えば画面サイズ854x480・タイルサイズ32pxの場合、マップ横サイズが26マス未満のとき、画面右端に余白が発生。
一方、マップ横サイズが27マスのときは余白は発生しないものの、画面中央付近で不自然なスクロールが発生します。

この現象はコモンイベント素材にて配布中の「スクロール拡張コモン」でも対処できませんが、以下のような処理を組むことである程度緩和できます。
例:横27マスの場合
■変数操作: Sys104:Xスクロール値 = 5 + 0
■画面スクロール:スクロールロック
赤字の算出方法:([タイルサイズ]×[マップ横マス数]-[画面横サイズ])÷2 = (32×27-854)÷2 - 5
マップのマス数と画面サイズに応じて適宜変更

この方法の注意事項としては、マップのスクロールロックを使用しているため、マップ移動時にロック解除を行う必要があります。

この方法なら不自然なブレが発生しないのですが、その代り縦方向のスクロールに対応できません。
現在制作中のRPGでは、以下のような処理を組んでスクロールに対応しています。
例:横27マス・縦20マスの場合
■変数操作: Sys104:Xスクロール値 = 5 + 0
■画面スクロール:スクロールロック
■ループ開始
|■変数操作+: このEvのセルフ変数0 = 主人公 の 画面Y座標
|■変数操作: このEvのセルフ変数0 += Sys105:Yスクロール値 + 0
|■変数操作: このEvのセルフ変数0 -= 240 + 0
|■変数操作: このEvのセルフ変数0 下限= 0 + 0
|■変数操作: このEvのセルフ変数0 上限= 160 + 0
|■変数操作: Sys105:Yスクロール値 = このEvのセルフ変数0 + 0
|■ウェイト:1 フレーム
|■
◇ループここまで◇◇
緑字:[画面縦サイズ]÷2 = 480÷2 = 240
緑字:[タイルサイズ]×[マップ縦マス数]-[画面縦サイズ] = 32×20-480 = 160

どうにかして、これをコモンイベントにまとめたいんですけどね……。
面倒な処理を組みたくない場合、思い切って2マス程度余白を取るという方法もあります。
実際、製作中のRPGでも、屋外マップでは30マス以上にして対処しています。
もっとも、この場合も余分なマップ組みが必要になるのですが……。

もどる

(c)2014- sinusoidal wave