トップページ > 記事閲覧
フルスクリーンモード時の解像度モード設定について
名前:ひろかず 日時: 2020/02/08 17:45

フルスクリーンモード時の解像度モード設定について質問があります。 私は、フルスクリーン時にモニターの解像度を変更する方が好きなので、設定をそのように変更したのですが、 プログラムを実行してみると解像度の比率がおかしくなってしまいます。 SetGraphMode(1280, 720, 32); // 解像度を設定 SetFullScreenResolutionMode(DX_FSRESOLUTIONMODE_NATIVE); // フルスクリーンモード時の解像度モードを設定 if (DxLib_Init() == -1) // DXライブラリ初期化処理 { return -1; // エラーが起きたら直ちに終了 } このような手順ですが、私の環境で実行すると1280x720の画像が1280x960に引き延ばされてフルスクリーン表示されます。 何か設定が足りないのでしょうか? たしかにモニターの解像度情報を見ると1280x960になっています。 しかし、市販のゲームソフトなどでは、その解像度の状態で1280x720のフルスクリーン表示が正常におこなわれます。 どのような設定をすれば正しく表示されるのでしょうか? よろしくお願い申し上げます。 使用モニター MITSUBISHI VISEO MDT242WG (解像度1920x1200) グラフィックボード GEFORCE GTX 1050Ti
メンテ

Page: 1 |

Re: フルスクリーンモード時の解像度モード設定について ( No.1 )
名前:管理人 日時:2020/02/09 07:22

うーん、市販のゲームソフトでは 1280x960 の画面に 1280x720 が正常に表示されていますか… 原因が分かるかもしれませんので、よろしければ実行時に作成される Log.txt の内容を 掲示板に貼り付けていただけないでしょうか? m(_ _)m
メンテ
Re: フルスクリーンモード時の解像度モード設定について ( No.2 )
名前:ひろかず 日時:2020/02/09 08:33

ご返信いただき、誠に有り難うございます。 実行後のLog.txtは以下の通りです。 0:DXライブラリの初期化処理開始 2: 設定されている画面設定 1280x720 32bit color 2: ディスプレイ情報のセットアップ開始 3: モニターの数:1 ディスプレイデバイスの数:4 3: No.0 モニター名:\\.\DISPLAY1 1920x1200 32bit 59Hz 7: ディスプレイ情報のセットアップ完了 7: システムの情報を出力します 8: DXライブラリ Ver3.21d 8: 論理プロセッサの数 : 6 8: OS Windows10 ( Build 18362 ) 188: 現時点のCPU動作速度:大体6.62GHz 210: MMX命令を使用します 210: SSE命令が使用可能です 210: SSE2命令が使用可能です 210: CPUベンダ:GenuineIntel 213: CPU名:Intel(R) Core(TM) i5-9600K CPU @ 3.70GHz 213: COMの初期化... 成功 216: 非同期読み込み処理の初期化...成功 216: ファイルアクセス処理の初期化...成功 216: メモリ総量:16306.20MB 空きメモリ領域:8577.50MB 217: タイマーの精度を検査します 217: 精度結果 更新回数 マルチメディアタイマー:0 パフォーマンスカウンター:60 217: パフォーマンスカウンターを使用します タイマー精度 : 10000.000000 KHz 217: ソフトの二重起動検査... 二重起動はされていませんでした 218: ウインドウクラスを登録します... 登録に成功しました 218: フルスクリーンモード用のウインドウを作成します 221: ウインドウの作成に成功しました 221: ウインドウを表示します 294: カーソルを不可視にしました 295: IMEを無効にしました 320: DirectInput関係初期化処理 320: XInput DLL の読み込み中... 成功 323: DirectInput7 の取得中... DirectInput8 の取得を試みます...成功 336: 引き続き初期化処理... 初期化成功 339: ジョイパッドの初期化... 341: ジョイパッドナンバー 0 は Xbox360 Controller です 359: 入力装置を見つけました 359: Device Instance Name : REAL ARCADE PRO.3 359: Device Product Name : REAL ARCADE PRO.3 359: 周期的エフェクトの作成に失敗しました。 360: 周期的エフェクトの作成に失敗しました。 362: ジョイパッドの追加は正常に終了しました 365: ジョイパッドの初期化は正常に終了しました 365: マウスデバイスの初期化... 初期化成功 366: キーボードデバイスの初期化... 初期化成功 366: DirectInput 関連の初期化は正常に終了しました 370: WASAPI の初期化を行います 376: デフォルト遅延時間 : 10.000 ms 377: 最小遅延時間 : 3.000 ms 377: 遅延時間 : 10.000 ms 379: チャンネル数   : 2 ch 379: 量子化ビット深度 : 32 bit 379: 有効ビット深度  : 32 bit 379: サンプリングレート : 48000 Hz 379: データ形式 : 浮動小数点型 497: 動作モード : 共有モード 497: WASAPI の初期化は正常に終了しました 497: d3d11.dll の読み込み.... 成功 501: dxgi.dll の読み込み.... 成功 501: API CreateDXGIFactory1 のアドレスを取得します.... 成功 501: IDXGIFactory1 を作成します.... 成功 503: API D3D11CreateDevice のアドレスを取得します.... 成功 503: IDXGIAdapter を取得します.... 成功 504: Direct3D 11 FeatureLevel 11_0 以上を対象とします 504: ID3D11Device オブジェクトを取得します.... 成功 551: IDXGIDevice1 を取得します.... 成功 551: IDXGIDevice1->SetMaximunFrameLatency( 1 ); を実行しました 551: [フルスクリーンモード 1280x720] 551: IDXGISwapChain を作成します.... 成功 809: IDXGIFactory->CreateSwapChain の戻り値:0x00000000 809: IDXGIOutput を取得します.... 成功 810: Graphics Device:NVIDIA GeForce GTX 1050 Ti 810: 画面のフォーマットは DXGI_FORMAT_R8G8B8A8_UNORM です 810: 16bit Zバッファフォーマットは DXGI_FORMAT_D16_UNORM です 810: 24bit Zバッファフォーマットは DXGI_FORMAT_D24_UNORM_S8_UINT です 811: 32bit Zバッファフォーマットは DXGI_FORMAT_D32_FLOAT です 811: 16bit カラーフォーマットは DXGI_FORMAT_B5G6R5_UNORM です 811: 32bit カラーフォーマットは DXGI_FORMAT_B8G8R8X8_UNORM です 811: アルファ付き 16bit カラーフォーマットは DXGI_FORMAT_B4G4R4A4_UNORM です 812: アルファ付き 32bit カラーフォーマットは DXGI_FORMAT_R8G8B8A8_UNORM です 812: アルファテスト用 16bit カラーフォーマットは DXGI_FORMAT_B5G5R5A1_UNORM です 813: アルファテスト用 32bit カラーフォーマットは DXGI_FORMAT_R8G8B8A8_UNORM です 813: DXT1テクスチャフォーマットは DXGI_FORMAT_BC1_UNORM です 813: DXT2テクスチャフォーマットは使えません 814: DXT3テクスチャフォーマットは DXGI_FORMAT_BC2_UNORM です 816: DXT4テクスチャフォーマットは使えません 816: DXT5テクスチャフォーマットは DXGI_FORMAT_BC3_UNORM です 817: BC7_UNORM テクスチャフォーマットは DXGI_FORMAT_BC7_UNORM です 817: BC7_UNORM_SRGB テクスチャフォーマットは DXGI_FORMAT_BC7_UNORM_SRGB です 817: ABGR 整数 16 ビット型カラーフォーマットは DXGI_FORMAT_R16G16B16A16_UNORM です 817: ABGR 浮動小数点 16 ビット型カラーフォーマットは DXGI_FORMAT_R16G16B16A16_FLOAT です 818: ABGR 浮動小数点 32 ビット型カラーフォーマットは DXGI_FORMAT_R32G32B32A32_FLOAT です 818: 1チャンネル整数 8 ビット型カラーフォーマットは DXGI_FORMAT_R8_UNORM です 818: 1チャンネル整数 16 ビット型カラーフォーマットは DXGI_FORMAT_R16_UNORM です 819: 1チャンネル浮動小数点 16 ビット型カラーフォーマットは DXGI_FORMAT_R16_FLOAT です 819: 1チャンネル浮動小数点 32 ビット型カラーフォーマットは DXGI_FORMAT_R32_FLOAT です 819: 2チャンネル整数 8 ビット型カラーフォーマットは DXGI_FORMAT_R8G8_UNORM です 820: 2チャンネル整数 16 ビット型カラーフォーマットは DXGI_FORMAT_R16G16_UNORM です 820: 2チャンネル浮動小数点 16 ビット型カラーフォーマットは DXGI_FORMAT_R16G16_FLOAT です 820: 2チャンネル浮動小数点 32 ビット型カラーフォーマットは DXGI_FORMAT_R32G32_FLOAT です 820: 描画用 16bit カラーフォーマットは DXGI_FORMAT_B5G6R5_UNORM です 820: 描画用 32bit カラーフォーマットは DXGI_FORMAT_B8G8R8X8_UNORM です 820: 描画用アルファ付き 32bit カラーフォーマットは DXGI_FORMAT_R8G8B8A8_UNORM です 821: 描画用 ABGR 整数 16 ビット型カラーフォーマットは DXGI_FORMAT_R16G16B16A16_UNORM です 821: 描画用 ABGR 浮動小数点 16 ビット型カラーフォーマットは DXGI_FORMAT_R16G16B16A16_FLOAT です 821: 描画用 ABGR 浮動小数点 32 ビット型カラーフォーマットは DXGI_FORMAT_R32G32B32A32_FLOAT です 821: 描画用1チャンネル整数 8 ビット型カラーフォーマットは DXGI_FORMAT_R8_UNORM です 821: 描画用1チャンネル整数 16 ビット型カラーフォーマットは DXGI_FORMAT_R16_UNORM です 822: 描画用1チャンネル浮動小数点 16 ビット型カラーフォーマットは DXGI_FORMAT_R16_FLOAT です 822: 描画用1チャンネル浮動小数点 32 ビット型カラーフォーマットは DXGI_FORMAT_R32_FLOAT です 822: 描画用2チャンネル整数 8 ビット型カラーフォーマットは DXGI_FORMAT_R8G8_UNORM です 822: 描画用2チャンネル整数 16 ビット型カラーフォーマットは DXGI_FORMAT_R16G16_UNORM です 822: 描画用2チャンネル浮動小数点 16 ビット型カラーフォーマットは DXGI_FORMAT_R16G16_FLOAT です 823: 描画用2チャンネル浮動小数点 32 ビット型カラーフォーマットは DXGI_FORMAT_R32G32_FLOAT です 823: 使用する機能レベル:D3D_FEATURE_LEVEL_11_1 823: 同時にレンダリングできるバッファの数:8 823: 最大テクスチャサイズ 幅:16384 高さ:16384 823: 標準描画用の頂点バッファの作成.... 成功 831: シェーダーコード関係の初期化.... 成功 842: 各種シェーダー用定数バッファの作成.... 成功 846: 各種 ID3D11InputLayout の作成.... 成功 872: 画像の単純転送処理の初期化... 成功 874: 深度バッファを作成します.... 成功 876: フォントの初期化を行います 878: フォントの初期化は正常に終了しました 879: 文字コードバッファの初期化を行います... 完了しました 886:DXライブラリの初期化処理終了 5602:フォントの初期化を行います 5603:フォントの初期化は正常に終了しました 5821:d3d11.dll の解放 1 5824:dxgi.dll の解放 1 5825:Direct3D11 のオブジェクト数を出力 5825:Direct3D11 のオブジェクト合計数 : 0 5826:DirectInput 関連の終了処理... 完了 5845:ウインドウを閉じようとしています 5850:ウインドウが破棄されようとしています 5851:ソフトを終了する準備が整いました 5940:COMを終了... 完了 5940: 5941:Alloc memory dump 5941: Total size:0(0.000kb) Alloc num:0 5941: 以上です。何卒よろしくお願い申し上げます。
メンテ
Re: フルスクリーンモード時の解像度モード設定について ( No.3 )
名前:管理人 日時:2020/02/11 00:07

Log.txtの貼り付けありがとうございます ログを拝見する限りでは普通に 1280x720 の解像度にして表示しているようです 一般的には 1280x720 の解像度にした場合、縦に引き伸ばされるかどうかはモニターの仕様や設定に 依存していますので、モニターの設定で『アスペクト比を固定して拡大』の類の設定にしていると、 1280x720 の解像度にしても縦に引き伸ばされてしまうことはなくなると思います モニターでそのような設定をしていなくても市販のゲームソフトで 1280x720 のフルスクリーン表示でも 縦に引き伸ばされないのは、恐らくソフトウェアの内部で 『設定が「フルスクリーン1280x720」でも、モニタが16:9解像度ではない場合は一番近い解像度に変更した上で、上下に黒帯を入れる』 といった処理を行っているのだと思います とはいえ、DirectX の方で上記のような処理を自動で行ってくれるような機能があるかもと思い調べてみましたが、 そのような機能は見つかりませんでした…( 調べ方が足りないだけかもしれませんが… )
メンテ
Re: フルスクリーンモード時の解像度モード設定について ( No.4 )
名前:ひろかず 日時:2020/02/11 10:54

ご返信頂き、誠に有り難うございます。 また、色々と調査して頂き、誠に有り難うございます。感謝申し上げます。 原因は不明ですか。非常に残念です。 >『設定が「フルスクリーン1280x720」でも、モニタが16:9解像度ではない場合は一番近い解像度に変更した上で、上下に黒帯を入れる』 >といった処理を行っているのだと思います ただ、このような処理はしていないと思います。 根拠としては、 1.PrintScreenでキャプチャすると1280x720で画像が取り込まれる。 ・市販ゲーム1280x720フルスクリーンでのキャプチャ画像 ttp://get.secret.jp/pt/file/1581385641.jpg ・市販ゲーム1280x960フルスクリーンでのキャプチャ画像 ttp://get.secret.jp/pt/file/1581385666.jpg 注)頭にhを付けて下さい。 上記はバトルファンタジアというゲームのキャプチャ画像です。 フルスクリーンの解像度が複数選べるので、解像度1280x720、1280x960それぞれの画像をキャプチャしました。 もし、ソフト側で上下に黒帯を入れているのであれば、同一の画面になるはずです。 2.今まで縦横比がおかしくなった市販ソフトを見たことがない。 ゲーマーではないので多数のゲームを所持している訳ではありませんが、 私が所持しているソフトで1280x720のフルスクリーンで縦横比がおかしくなって表示される事は今までありませんでした。 以下の無料のベンチマークソフトでも、1280x720のフルスクリーンは正常に表示されます。 ・「ストリートファイターIV」(PC)ベンチマーク ・『ファンタシースターオンライン2』キャラクタークリエイト体験版 以上となります。 参考になりましたら幸いです。 何卒よろしくお願い申し上げます。
メンテ
Re: フルスクリーンモード時の解像度モード設定について ( No.5 )
名前:ひろかず 日時:2020/02/11 13:26

追記です。 その後、色々とベンチマークを試してみたら、画面比率が正しくないソフトを見つけました。 正常であったソフトと正しくないソフトを明記します。 ・「ドラゴンクエストX」ベンチマーク 画面比率は正常 ・ファイナルファンタジーXIV: 漆黒のヴィランズ ベンチマーク 画面比率が正しくない ・FINAL FANTASY XV WINDOWS EDITION ベンチマーク 画面比率が正しくない どうも、比較的新しいゲームは一律画面比率がおかしくなるようです。 古めのゲームは問題無いようです。
メンテ
Re: フルスクリーンモード時の解像度モード設定について ( No.6 )
名前:管理人 日時:2020/02/12 00:15

ご情報ありがとうございます うーん、確かに純粋な 1280x720 でも画面が縦に引き延ばされていないようですね… > どうも、比較的新しいゲームは一律画面比率がおかしくなるようです。 > 古めのゲームは問題無いようです。 挙げていただいた画面比率が正しいソフトはすべて DirectX 9 を使用しているようです 画面比率が正しくないファイナルファンタジーXIVだけ DirectX 11 を使用しています DXライブラリもデフォルトでは DirectX 11 を使用しているので、もしかしたら DxLib_Init の呼び出し前の箇所に SetUseDirect3DVersion( DX_DIRECT3D_9 ) ; と記述して、強制的に DirectX 9 を使用するようにすればDXライブラリでのフルスクリーンモードでも 画面比率が正しくなるかもしれません
メンテ
Re: フルスクリーンモード時の解像度モード設定について ( No.7 )
名前:ひろかず(解決) 日時:2020/02/13 23:01

ご返信いただき、誠に有り難うございます。 >DXライブラリもデフォルトでは DirectX 11 を使用しているので、もしかしたら >DxLib_Init の呼び出し前の箇所に > > SetUseDirect3DVersion( DX_DIRECT3D_9 ) ; > >と記述して、強制的に DirectX 9 を使用するようにすればDXライブラリでのフルスクリーンモードでも >画面比率が正しくなるかもしれません ご指摘頂きました通り、強制的に DirectX 9 を使用する事によって、1280x720のフルスクリーンを 正常な画面比率で出力する事が出来ました。 質問しなければ解決方法が分かりませんでした。感謝申し上げます。 誠に有り難うございました。
メンテ
Re: フルスクリーンモード時の解像度モード設定について ( No.8 )
名前:ひろかず(解決) 日時:2020/02/15 16:49

解決済みとしましたが追記します。 その後、 DirectX 11 を使用しても縦横比が正常なフルスクリーンにする事が出来ました。 原因はwindowsシステム側の設定不足でした。 NVIDIAコントロールパネル ↓ ディスプレイ ↓ デスクトップのサイズと位置の調整 この画面で、「スケーリングモードを選択してください:」の所で「縦横比」を選択するのは当然ですが、 同画面中段ぐらいにある、「ゲームとプログラムによって設定されているスケーリングモードを上書きする」の チェックボックスにチェックを入れる事によって DirectX 11 を使用しても縦横比が正常に表示されるようになりました。 お騒がせしました。 私の調査不足でした。申し訳ございません。
メンテ
Re: フルスクリーンモード時の解像度モード設定について ( No.9 )
名前:管理人(解決) 日時:2020/02/16 02:05

ご情報ありがとうございます 無事解決されたようで何よりです > この画面で、「スケーリングモードを選択してください:」の所で「縦横比」を選択するのは当然ですが、 > 同画面中段ぐらいにある、「ゲームとプログラムによって設定されているスケーリングモードを上書きする」の > チェックボックスにチェックを入れる事によって DirectX 11 を使用しても縦横比が正常に表示されるようになりました。 なるほど、Direct3D 9 は Windows10 ではエミュレーションによって実行されているので OS の支配が Direct3D 11 より強いために ディスプレイ設定の『スケーリングモード』が有効に働いているのかもしれませんね ( Direct3D 11 はエミュレーションではない実行なので OS の支配が弱く『ゲームとプログラムによって設定されている  スケーリングモードを上書きする』にチェックを入れないと、この項目の設定が有効にならない…と推測 )
メンテ

Page: 1 |

題名
名前
コメント
パスワード (記事メンテ時に使用)

   クッキー保存