GameMaker 日本語掲示板

フルスクリーンにするとフォントが汚くなってしまう

13 コメント
views
17 フォロー

フルスクリーンにする機能を付けたのですが、フルスクリーンにした時フォントが汚くなってしまいます。スプライトは不透明度100%のものを使っているのでぼやけたりはしないのですが、使っているフォントは違うので.....何かキレイに描画する方法はありませんか?

xzy
作成: 2024/08/20 (火) 02:24:08
通報 ...
1
生高橋 2024/08/21 (水) 15:24:48

スクリーンショットなどを貼っていただけると原因が特定しやすいので助かります

2

すみません!こんな感じです!表示されてるものを直接スクショしたのでサイズが異なるように見えますがフォントやフォントのサイズ等はどっちも同じです。他のフォントも同様のことが起こります。フルスクリーンにするプログラムはただwindow_set_fullscreen(true)を実行しただけです。 画像1
画像2

3
asa 2024/08/25 (日) 17:25:35 修正

ちょっと情報が少なくて分からないですが
おかしなことは起きていなくて正常に拡大されただけに見えなくもない気がします。

可能なら以下の情報を追加できるでしょうか?

フォント名
フォントエディタのスクショ(フォントの設定を確認できるように)
比較するのは同じ文字で(beforeとafterが違う文字だと比較しにくいというだけです)
望む状態の画面のスクショ(どうなってほしいか)
現在の状態の画面のスクショ(どうなってしまっているのか)
スクショ前の画面サイズ
フルスクリーン時の画面サイズ
描画してるのはDrawかDrawGUIか

これらがあると、誰か答えられる人がいるかもしれませんね。

4

何度もすみません!

フォント名:Arial
画像1

スクショ前の画面サイズ:w 860  h 500

フルスクリーン時の画面サイズ:1920,1080(スクショを取ろうとするとフルスクリーンが外れてしまうのでwindow_set_fullscreen(true)ではなくwindow_set_size(1920,1080)(ほぼディスプレイのサイズと同じ)にしました。(見た目はフルスクリーンの時と同じです))
描画:DrawGUI

5

拡大前画像1

6

拡大後(フルスクリーン)
画像1

7

望んでいる状態(スクショ前の画面サイズでフォントのサイズを変えて再現(サイズ25))画像1

8

スクショはwindows+shift+sで範囲指定スクショしています。
プログラムはAを押したらwindow_set_fullscreen(true)(スクショ用window_set_size(1920,1080))を実行するというシンプルなものです。それ以外のプログラムはないです。
望んでいる状態のサイズの時にフルスクリーンにしても同様のことが起こります。

多分何かしらのフォントエディタの設定が間違っていたり、何かしらのプログラムが足りないとかだと思うのですが.....分かりにくくてすみません!

9

フォントエディタの設定は生成時のまま何もいじっていないです!

10

現状は860×500に12ptフォントを配置した画面を1920×1080に引き伸ばして表示(フォントサイズは12ptのまま)されているので、
GameMakerの動作としては正常かと思われます。

逆にというか
・roomのサイズを1920×1080で作成
・フォントを25ptで作成して配置
・ウインドウサイズを860×500に設定
して実行すると、1920×1080のときも860×500のときもフォントの見た目自体はそれなりに綺麗になります。

要件とは若干ズレますが参考になれば幸いです。

12

なるほど.....確かにroomの方を大きくしてしまえばフルスクリーンした時にも対応できますね.....ありがとうございます!

11
asa 2024/08/26 (月) 15:51:53 修正

フルスクリーンにして画面が拡大された結果、フォント表示も拡大されます。
これは正常な動作に見えます。

考え方:
画面を拡大縮小したらフォントの表示も拡大縮小されますがフォントサイズが変わるわけではありません。
例えば100 * 100の画面に12ptのフォントを表示していた場合、画面サイズを2倍の200 * 200にしたら、
フォントは24ptにはなりません。12ptのままで表示が2倍に引き伸ばされます。
つまりフォントも他のグラフィック要素、オブジェクトのspriteや背景画像と同じです。

ちなみに、フォントに限らないことですが、
860 * 500の画面を1920 * 1080に引き伸ばしたら幅と高さ共に整数倍になりませんので、フォントを含め画像が荒れます。
大きい画像はあまり気にならないかもしれません。フォントのような小さい画像は荒れが目立って気になるでしょう。
画像が荒れないようにするには、画面サイズを1倍、2倍、3倍、4倍など整数倍にします。
1920*1080を前提とするなら、1920*1080に拡大した時に整数倍になるように設計するといいです。

GameMakerにはビットマップフォントを綺麗に拡大縮小する技術、SDFフォントに対応しています。
フォントエディタ画面にあるSDFをオンにして使ってみるのを検討するのもいいと思います。

13

SDF.....ずっとよく分からなかったので放置していたのですがそういう機能だったんですね.......ありがとうございます!