ゲームお楽しみ記録

伊藤兎のゲームをお楽しみの記録 PC, PS4, Switch and etc.

PC/Windows とマルチディスプレイ環境でのゲームプレイのストレスを減らすアプリ: ウィンドウの位置合わせ

Windows かつマルチディスプレイ環境でゲームを楽しもうとすると、しばしばゲームのウィンドウに「そこじゃない」問題が生じる事がある。ゲームウィンドウが出てほしいディスプレイに出てくれなかったり、枠が目障りになったり。

例えば、今朝までプレイしていた Dragon's Dogma: Dark Arisenフルスクリーン モードにするとマルチディスプレイ環境における原点 (0, 0) のドットのあるディスプレイにゲームウィンドウが固定で出現しコンフィグレーションではどうにもならないし、ウィンドウモードにするとタイトルバーを画面上へ押し出しても一定値以上は画面内へ収まるように帰ってきてしまいプレイ中に目障りになる。

ゲームの話題をこのブログへ分離する少し前に書いたメインブログの記事「Game: Dragon's Dogma: Dark Arisen とマルチモニターやバックグラウンド動作のパッチ( mod )」のような対策があれば使えばよいけれど、実はこの mod を使っていると別にアレコレとついている機能が悪さをするのか1時間くらい遊んでいると突然ゲームが落ちてしまう症状が発生して困ったりした。

それに、 DDDA の次の積みげー崩しに選んだ The Legend of Heroes: Trails in the Sky the 3rd (=「英雄伝説 空の軌跡 3rd」)もまた、疑似フルスクリーン モードでは DDDA の フルスクリーン モードと同様の問題があった。やれやれ😂

そこで、次のアプリを Windows で使う事にした:

f:id:USAGI-WRP:20181124095410p:plain

なんとも90年台のWindows向けのフリーソフトを思い出すアプリ名とウィンドウの作りに若干期待動作するか不安を覚えたものの、 Windows 10 と D3D ゲームのウィンドウに対しても期待動作してくれた。 DDDA は ウィンドウ モードにしつつ、左上端を原点として3つ並べた FHD のディスプレイ郡の真ん中へタイトルバーを上手く隠して動作するように設定し快適に遊びやすくなったし、空の軌跡 3rd の 疑似フルスクリーン モードのゲームウィンドウも問題無く綺麗に移動してくれた😃

ちなみに、原理的には WindowsAPI を用いて Windows においてウィンドウハンドルというウィンドウっぽいものを管理している ID 的なものを列挙して、アプリに固有の ID として識別に使えるデータなりプロセスの実行ファイルパスなりを設定値と比較し、対象となるウィンドウに対して WindowsSendMessage / PostMessage API でウィンドウの位置や最大化状態などの要求を投げてあげれば通常たいてい概ねのアプリではこういう事をアプリの外からできる。たいていはこの程度の事は対象プロセスの実行バイナリーを書き換えたり先の DDDA の mod のような DLL Proxy を使わなくてもわりとどうにかなったりする。

昔々、90年台に Windows のゲームを作ったり、あるいはもっと古く MS-DOS 時代であれ Windows のアプリを作った経験があると、 Windows アプリを作りはじめる=メッセージループから書く、だったものです👽 しばらくその辺りに触れていませんで、やんわり懐かしいのでした。

今回使うことにした「ウィンドウの位置合わせ」アプリ、ゲームの他にも便利が良い事もしばしばあるので何かと常用させて頂こうと思います😃