デレステのウィンドウをリサイズして疑似フルスクリーンにしたりするやつを作った【StarlightResize】

DMM版デレステは標準だと 1920x1080 までしかウィンドウを大きくできませんが、Win32 API を使ってウィンドウの大きさを変えてやることでそれよりさらに高い解像度で描画させることができます。ただし Win32 API で他アプリのウィンドウのリサイズをするみたいなヘンテコなツールはない…こともなくて、DMM版ウマ娘(だいたい同じ仕様)のためにウマドというツールがあります。

booth.pm

しかし、ウマドはメイン画面が縦画面のウマ娘を想定して作られたツールなので、選曲画面もMV画面も横なデレステでは常に疑似フルスクリーンになってちょっと不便です。そこでデレステに特化したツールを作ることにしました。

StarlightResizeです。

github.com

DISCLAIMER: このツールは MIT License でライセンスされています。ソフトウェアは「現状のまま」で、明示であるか暗黙であるかを問わず、何らの保証もなく提供されます。ここでいう保証とは、商品性、特定の目的への適合性、および権利非侵害についての保証も含みますが、それに限定されるものではありません。 作者または著作権者は、契約行為、不法行為、またはそれ以外であろうと、ソフトウェアに起因または関連し、あるいはソフトウェアの使用またはその他の扱いによって生じる一切の請求、損害、その他の義務について何らの責任も負わないものとします。

要するに、このツールを使ってパソコンが燃えたりアカウントがBANされたとしても利用者(あなた)の自己責任ですよってことです。

ダウンロードは GitHub の Releases から行えます。あと .NET 5.0 の Desktop Runtime (Desktopが付いてるほうじゃないとだめ) が必要なので、入っていなかったら https://dotnet.microsoft.com/download/dotnet/5.0 から落としておいてください (入っていないとエラーが出るはずなので、エラーが出てからでもいいです)。

ダウンロードしたzipを開いて StarlightResize.exe を実行すると、UACの許可を求められた後にこういうウィンドウが出ます。

f:id:rinsuki:20210905223109p:plain

この画面でディスプレイと解像度と位置を指定して「実行!」を押すと、その通りにデレステのウィンドウがリサイズされるはずです。

FAQ

Q. なぜ管理者権限(UAC)を要求するの?

DMM GAME PLAYER がデレステを管理者権限付きで起動するので、StarlightResize も管理者権限を持っていないとデレステのウィンドウに関与できないため、StarlightResizeは管理者権限を要求しています。

Q. そうは言っても署名もされてないバイナリに管理者権限を渡すのは不安なんだけど…

StarlightResize は GitHub でソースを公開しているので、.NET 5.0 SDKVisual Studio 2019 があれば手元でビルドできます。ソースが信頼できるかは自分の目で読んで検証してください。1000行もないし大半は Windows Forms のデザイナーが生成したコードなので普通に全部読める量だと思います。

Q. The framework 'Microsoft.WindowsDesktop.App', version '5.0.0' was not found. って言われるんだけど

.NET 5 には Desktop Runtime (デスクトップアプリを動かすためのランタイム)とただの Runtime (CLIツールを動かすためのランタイム)があり、StarlightResize はデスクトップアプリなので .NET 5 Desktop Runtime を要求します。https://dotnet.microsoft.com/download/dotnet/5.0 .NET Desktop Runtime 5.x.x のほうのリンクをクリックしてください。

おまけ: 実解像度越えレンダリング

どうやら Android / iOS 版と違ってDMM版には長辺2732pxまでの制限がないようなので、デレステのウィンドウを 3840x2160 等の解像度にしてやると、その通りに描画されます (ただしUI回りは1280x720固定っぽい)。

また、3DMVの場合、ロードの最後の方で現在の解像度をベースに描画解像度が固定され、その後はウィンドウサイズがいくら変わろうとそのままの解像度で描画されます。そのため、実解像度より高いサイズにしてライブを開始した後に実解像度に落とすと事実上のスーパーサンプリングになり、この技を使うと FullHD OR WQHD モニタの環境で輪郭がギザギザしている問題を改善できます。

f:id:rinsuki:20210905232635p:plain
表示・描画ともに1920x1080のものを切りぬいて4倍に拡大したもの。輪郭がギザギザしている
f:id:rinsuki:20210905232735p:plain
描画を3840x2160、表示は1920x1080にしたもの(2倍のスーパーサンプリング)を切りぬいて4倍に拡大したもの。輪郭がいい感じにアンチエイリアスっぽくなっている

このようにウィンドウサイズを実解像度以上にすると、左上・中央に合わせて配置している場合このように一部のボタンが押せなくなってしまうのですが、 f:id:rinsuki:20210905233149p:plain

StarlightResize を使うと右下や右上、左下に合わせて配置できるので、左上・中央合わせだとはみ出てしまうボタンもウィンドウサイズを小さくせずにそのまま押せます。 f:id:rinsuki:20210905233424p:plain

というわけで、StarlightResize、おすすめです。

要望・バグ報告は GitHub Issues (要GitHubアカウント) か適当にSNSでお願いします。