2017年10月26日木曜日

千年戦争アイギスの音声ボリュームを上げるユーザースクリプト

DMM社提供のWEBブラウザゲーム「千年戦争アイギス」はなぜか効果音を含めた音声出力が低く, いちいちPC本体の音声ボリュームを操作するのも面倒なため, これを改善するスクリプトを書いてみた.

10/29追記
本スクリプトを導入することで多少なりともブラウザへの負荷が高まるようです(Chrome系)
元々クラッシュしやすい環境では導入しないで下さい

[使い方]


通常のユーザースクリプトの導入と一緒.
  • Web Extensionsをサポートする環境(FireFox, Chrome, Opera等)
    Tampermonkeyアドオンを導入して下記コードを新規ユーザースクリプトとして登録
  • レガシーFireFox(※動くかどうか確認していないが多分動くと思う)
    GreaseMonkeyアドオンを導入して下記コードをユーザースクリプトとして登録

導入すると音声周りのAPIの中身を書き換えて, ゲーム本体に手を入れることなく音声ボリュームが大きくなります.


// ==UserScript==
// @name        aigis_amp
// @namespace   defghi1977
// @description 千年戦争アイギスの音声ボリュームを上げます
// @include     http://assets.millennium-war.net/*
// @version     0.1
// @grant       none
// ==/UserScript==

'use strict';
{
    //増幅倍率
    const amp = 4;
    const ctx = new AudioContext();
    const gainNode = ctx.createGain();
    gainNode.gain.value = amp;
    gainNode.connect(ctx.destination);
    const proto = HTMLAudioElement.prototype;
    const play = proto.play;
    proto.play = function(){
        if(!this.amplefied){
            //NOTE:HTMLAudionElementは内部で使いまわされているのでメモリリークの恐れなし
            ctx.createMediaElementSource(this).connect(gainNode);
            this.amplefied = true;
        }
        return play.call(this, arguments);
    };
    console.log("Aigis' audio has been amplefied.");
}


なに?殿王子はコピペは嫌か?
しからばこのリンクをクリックするのだ!
インストーラが立ち上がるから導入が楽ぞ!
スクリプトの導入は自己責任だが、中身は大したことないから安心するが良いぞ!

0 件のコメント:

コメントを投稿