ムービーの音量調節

KAGにはムービーの音量を調節する仕組みが少なくともリファレンス上にはありません。これは嘘です今はありますコメント欄参照。楓さんありがとうございます。また、昔のVideoOverlayクラスにも音量を調節するプロパティがありませんでした。最近のヴァージョンではaudioVolumeというプロパティで追加され、これでムービーの音量調節ができる!と思ったものの、残念なことにこのプロパティを設定しても、どういうわけかすぐに最大値の100000に戻ってしまいます。

色々調べた結果、play関数が呼ばれる度にこの音量リセットが行われてしまうようです。ならばplay関数を呼んだ後ならどうか、と試したところうまくいきました。KAGのMovieクラスの名前をMovieBaseに変え、それを継承した新たなMovieクラスを次のように作れば簡単でしょう。

class Movie extends MovieBase{
  function play(storage){
    super.play(...);
    
    try{
      setOptions(%[volume:60000/*調整したい音量*/]);
    }catch{}
  }
}

ちなみに、(動画形式についてはあまり明るくないのですが)音声のない動画の再生中にaudioVolumeを書き換えようとすると例外を吐きます。だから例外を捕捉しています(何もしてないけど)。