1 ポイント 投稿者 GN⁺ 2025-08-16 | 1件のコメント | WhatsAppで共有
  • MacBookでフルスクリーンゲームを実行すると、ほとんどのゲームでディスプレイのノッチの問題によりぼやけたレンダリングが発生する
  • システムの解像度選択メカニズムがノッチ領域を考慮しておらず、誤った出力領域の選択を引き起こす
  • 16:10の解像度を選ぶことが当面の回避策だが、根本原因はAppleのAPI設計とガイダンス不足にある
  • 代表的なゲーム(Shadow of the Tomb Raider、No Man’s Sky など)で問題を再現可能。一部の最新ゲーム(Cyberpunk 2077)は正常に処理する
  • AppleはHIGとAPIを更新し、開発者向けガイダンスとサポートを改善する必要がある

問題: Macのフルスクリーンゲームでぼやけたレンダリングが起きる原因

  • この問題は2023年9月からFB13375033としてAppleに報告されている
  • MacBookのディスプレイでゲームをフルスクリーン実行すると、多くのゲームがノッチ領域を適切に考慮できず、レンダリングエラーが発生する
  • 多くのゲームはシステムからサポート解像度の一覧を取得し、その先頭(ディスプレイ全体の解像度)を選ぶが、実際にAppKitで利用できるフルスクリーン領域はノッチの下に制限される
  • ゲームがディスプレイ全体の解像度で出力すると、実際に描画できる領域のほうが小さいため、フレームが縦方向に圧縮され、ぼかしの問題につながる

Macディスプレイの領域構造

  • ノッチ付きMacディスプレイには3つの主要な領域がある
    • ディスプレイ全体の境界(ノッチとメニューを含む)
    • Safe area(ノッチの下)
    • AppKitで利用可能なフルスクリーン領域(メニューバーの下)
  • CGDisplayCopyAllDisplayModes 関数が返す解像度一覧には、ディスプレイ全体の解像度と**メニューバー下の解像度(主に16:10比率)**が混在している
  • ほとんどのゲームは一覧の先頭項目(フルスクリーン領域)を使ってしまい、不正確な出力になる
  • 例: Shadow of the Tomb Raiderはデフォルトでディスプレイ全体の解像度(3456x2234)で起動するが、実際に描画できる領域は3456x2160である(74ピクセルの差により画面が圧縮され、ぼやけてレンダリングされる)

解決策: 正しい解像度の選択と暫定的な回避策

  • ユーザー: ノッチ付きMacディスプレイでフルスクリーンゲームを実行する際は、16:10の解像度を手動で選ぶことが重要(ゲーム側が自動で合わせない)
  • 開発者: NSScreensafeAreaInsets プロパティを使い、解像度一覧をより精密にフィルタリングする必要がある
    • Safe areaの基準に合う解像度だけを抽出するアルゴリズムをコードで提示している(4:3など一部の解像度を過剰に除外してしまう副作用あり)
    • 本質的にはApple側の改善が必要

影響を受けるゲーム: 代表例と対応状況

  • Shadow of the Tomb Raider、Control Ultimate Edition、No Man’s Sky、Riven、Stray などの多くで、誤ったデフォルト解像度により圧縮とぼやけたレンダリングが発生する
    • Control: 独自に解像度を設定するが、実際のMac解像度と一致しない
    • No Man’s Sky: 不適切な比率に加え、safe areaとnon-safe areaの両方の解像度を提示する
    • Riven、Stray: 圧縮された解像度でのレンダリングがデフォルトになっている
  • Cyberpunk 2077は16:10比率で正しい解像度を選択する(内部フィルタリング方式は非公開)
  • World of Warcraft: レガシーAPIによりノッチ部分まで描画できるため、フル解像度の適用が正常に機能する

Appleができること: Appleの対応が必要

  • HIG(Human Interface Guidelines)の文書に、ノッチ付きディスプレイに関する解像度処理とガイダンスの追記が必要
  • AppKit/Cocoaで解像度フィルタリングを簡単に行えるよう、CGDisplayMode の更新が求められる
  • ゲーム最適化専用の新しいAPI設計が必要(解像度リストとボイラープレートの問題を解消)
  • 開発者には、解像度問い合わせの代わりに独自の解像度一覧を算出するか、「レンダースケール」方式の利用を推奨することも考えられる
  • こうした改善を適用するなら、Appleの公式ドキュメントとサンプルコードの更新も併せて行う必要がある

1件のコメント

 
GN⁺ 2025-08-16
Hacker Newsのコメント
  • 角が丸くてノッチのある画面をものすごく変に感じるのは自分だけなのか気になる。何十年もCRTモニターの曖昧な幾何学に悩まされて、やっと完璧な長方形ディスプレイが一般的になったのに、それをまた台無しにするのが見た目をクールにしたいという理由なのは残念
    • ノッチは画面領域を奪うばかなものではなく、ベゼルを減らしつつ全体の画面サイズを大きくする要素と考えればよい。そしてノッチの近くまで画面の角が来るなら、ノートPCの外形が丸い以上、画面も一緒に丸いほうが自然。丸いノートPCの隅に四角い画面があるほうが不自然に見える。ただし状況次第で、Macでは動画再生時には画面が長方形に切り替わり、ノッチの下で再生される。実使用では、普段はより大きな画面、仕事中は丸い角、メニューバーにノッチがあっても気にならず、動画やゲームでは長方形画面に切り替わるという形で、結局はさまざまな利点と柔軟性があるので、一概に悪いと見る必要はない
    • 現在の技術で取り得る選択肢は3つある。1) 前面カメラなしでベゼルレスにして画面を最大化、2) 前面カメラありでベゼルレスだが画面が5mm低くなり、上部5mmの領域は何の役にも立たない、3) 前面カメラとベゼル/ノッチの組み合わせで、中央に「デッドスペース」は生まれるが左右の空間は使える。そしてほとんどの時間、上端にはメニューやインジケーターが表示され中央は空いているので、ノッチ領域は実際にはアプリ空間を広げる効果がある。ゲームでも #2 と #3 はどちらもデッドスペースなので実際の差はない。結局ノッチは実際の画面中央を奪うのではなく、左右に空間を足しているとも言える。ただし解像度の報告方法には問題があると思う(アプリに渡す値が実際と違うと混乱を招く)
    • ノッチ付きのMacBookモデルを使っているが、本当に存在をあまり意識しない。MacBookユーザーの大半はノッチをほとんど気にしておらず、不満を持つ人も一部にはいるがごく少数
    • 画面がOLEDなのか気になる。スマートフォンはみなOLEDだ。自分としてはノッチは実際のところ不要だと思うが、いずれにせよ前面カメラの位置のために必要なのだろう。OLEDなら必要なときにピクセルを消せばただのベゼルのように見えるので、従来のベゼル案と結局あまり変わらない
    • 自分はLCDではアンチエイリアスなしのフォントのほうが見栄えがよいと感じて好んでいた。ピクセルの角張ったエッジがすっきり見えるからだ。それでも多くの人は滑らかなアンチエイリアス効果を好む。あれはCRTっぽさのせいなのかもしれない
  • World of Warcraftにはノッチを考慮して、UIがノッチを避けて表示されるオプションがある。内部ではC_UIからsafe regionを取得し、それに合わせてUIParentを調整していて、ゲーム画面は全体を使う一方、UIはノッチの下に収まるようにしている
    • WoWは昔からmacOSを一級プラットフォームとして丁寧に扱ってきた。Blizzardが最近の新作でmacOS対応を打ち切ったのは本当に残念
  • この状況は、AppleがMacのゲーミングを重視していないことを示している。自分もMBPやMac Studioなどにかなり投資したが、限界を生んでいるのはハードウェアではなく、ゲームソフトウェア運用のひどさだ。その背景には、AppleがMacゲームではiOSのように30%の手数料を取れないからだという面もあるのだろう。結局、「表向きは金銭以外の理由でも、すべては金の話だ」という昔の先生の言葉を思い出す
    • 本当にもっと大きな問題は、Appleのドキュメントの水準がひどすぎることだ。関数シグネチャの一覧はあるが、実際の使い方は何年も前のWWDCセッションを探しに行かないと分からず、しかもそこに出ている内容が今でも正しいのか怪しい
    • Appleが本当にゲームを重視していないのは事実だが、ノッチのような問題自体は、技術的に「魔法のような抽象化」を提供すると言いながら生じた一種の矛盾の結果でもある。ソフトウェア側で自動的に処理されると言うが、実際には画面を細かく扱うアプリやゲームはどれも個別のハックやパッチが必要になる。こうした技術的限界と抽象化のジレンマは毎回繰り返される
    • Macのゲーム市場を重視しないのは、ゲーミングが本質的に利幅の小さいビジネスだと見なしているからだろう。一般にゲーマーはハードウェアに敏感で、部品原価やマージンに厳しい(特にSSDやRAMの価格など)。Appleが高い利益を確保しているクリエイティブ/エンタープライズ市場とはまったく異なる
    • M3 Ultra Mac Studioを使っている。4,000ドルのマシンなのに、StreamLabsで何かを配信しようとすると(ゲームを起動していなくても)録画が途切れてカクつく。なぜこんなことが起きるのか本当に理解できない
    • AppleがMacでは30%を取れないからこうなっているという主張には説得力がない。というのも、記事に出てくるMacゲームの大半はApp Storeにあり、Appleは十分に手数料を取っている。Control Ultimate EditionShadow of the Tomb RaiderRivenCyberpunk 2077 UltimateStray もすべてある。これはAppleの悪意ある妨害というより、無能と無関心に近い
  • WoWのような古いゲームはCoreGraphicsのレガシーなフルスクリーンAPIを使っているので、ノッチ領域の中まで自由に描画できる。Macには詳しくないが、ゲームがノッチまで含めてフルスクリーン描画を行って没入感を高めつつ、UIとゲームプレイはsafe areaだけを使うのが正しいのではないかと思う。あまり気にせず解像度だけ適当に設定しているControlのようなゲームは、単に面倒だったのだろうか
    • ゲームごとに実装は異なるが、ノッチ上の領域は単に黒くされるか、そもそもアクセス不能にされる(カーソルも移動できない)。その部分が画面自体から欠けているかのように動作し、ノッチのないM1 Airのときとまったく同じだと考えればよい
  • Apple固有の問題ではない。Xbox 360でも2008年にTVのオーバースキャン問題があった。解像度より小さく描画してsafe areaに合わせる必要があり、開発時には常に別途対応が必要だった。XNAがsafe area rectを提供してくれたおかげで多少ましになり、今ではバックバッファサイズも自由に指定できる。DLSSなどを使う場合でもsafe areaを1:1にするのが最善だ。結局、ディスプレイ解像度とレンダリング解像度は異なり得ることを開発者が明確に理解しなければならず、wgpu、vulkan、AppKit、SDL、glfwなどさまざまなツールを使う場合も同じ
    • 要するにあなたが言っているのは、計算資源を節約するために意図的に画面を小さく描画しても、最終的にHDMI出力ではそのまま1080pに再アップスケールされ、TVのオーバースキャンまで重なることで、かえって問題が悪化し得るということだ。実際、TVオーバースキャンの問題はカスタムFoVとGUIサイズ調整オプションさえあれば解決できるので、わざわざ画面自体を小さくする必要はないと思う
  • 今回の記事がぼやけたレンダリング部分だけに集中しているのは驚きだ。実際にはマウスポインターの位置にまで影響する。ゲームごとに毎回OSメニューに入って、フルスクリーンをノッチの下へ移動するよう強制設定しなければならない。こういうものはシステム全体のアクセシビリティオプションであるべきなのに、そうなっていないのが不思議だ
  • この状況はMacのゲーム市場の規模をよく示す事例だ。非常に小さく、残念
    • 実際、MacのシェアはSteamハードウェア調査ベースでわずか1.88%しかなく、Linuxよりも少ない。そのため大半の開発者は最初から気にしていない
  • M3 MacBook Proをあえて買った理由は、ゲームができないからだ。サイバーセキュリティの修士課程のために信頼できるノートPCが必要で、もしWindowsベースの高性能ノートPCを買っていたらゲームにのめり込んでいたと思うので、この選択をした。今の機種は全体として素晴らしいが、ゲームをすると過度に発熱するのが心配で、結局ゲームは諦めた
  • このサイトのフォントは、一部の文字の一部分が細すぎる
    • 個人的には、すべての文字の上部が細すぎると感じる。インクが切れかけたプリンターで印刷したものを読んでいる気分だ(Hacker Newsの伝統にならってフィードバックを残す)
  • 既存ソフトウェアを壊さずにこれを直す方法が気になる。リストの並べ替え?
    • Windowsがやったように、実行中のアプリがレガシーゲームなら、OS側のコードが「偽の」システム情報を渡して画面が正しく表示されるようにできる。こうしたアプローチは、Windowsがゲーム向けプラットフォームとして成功した大きな理由の1つだった。今では完全には残っていないが、昔はこういうやり方がずっと一般的だった