2017年8月20日日曜日

MP3を使ったゲームをRPGアツマールに投稿してみました

数ヶ月前、以下のような記事が目に留まりました。

 mp3(MP3コーデック)の特許が切れたという話です。これによりアプリやゲーム開発者はライセンスの問題を気にすることなくmp3を使うことができるようになります。

 というわけで早速、検証も兼ねてmp3を音声素材として使ったゲームをひとつ作成してRPGアツマールに投稿してみることにしました! ちなみにmp3を再生すること自体が可能かどうかという点については、プラグインが必須ですが可能です。プラグインについてはブログの最後で説明します。

投稿した作品の紹介

 先日RPGアツマールに公開したツクールMV製の掌編アドベンチャー「その名は深く青ざめて」です。プレー時間2分ほどの気軽にプレーできるゲームとなります。

「その名は深く青ざめて」(音が出ます)

https://game.nicovideo.jp/atsumaru/games/gm4093

タイトル画面

スクリーンショット

ゲーム画面

スクリーンショット

 なお、本作はやれやれ氏主催の「2分ゲーコンテスト」に参加しています。

mp3を使用するメリット

ほぼ全ての環境で再生できる

 現在、ツクールMVでゲームを作ってWeb(RPGアツマール等)にアップロードする場合、ogg(主にVorbisコーデック)とm4a(AACコーデック)の二つを用意することになっています。PCブラウザやモバイルブラウザ等、様々な動作環境に対応するためですが、変換やループタグの設定、確認が面倒だったり、何より容量を圧迫するという問題があります。

 これをmp3に切り替えることで一本化できる可能性があります。

 mp3は普及率が高く、ゆえに様々な環境でも安定して再生可能です。下記に対応状況が記載されています。

 上の一覧表だと一部「?」がありますが、「その名は深く青ざめて」については、公開後に運営さまから頂いた動作確認結果でも問題はなく、プレイヤーからも今のところ「再生できない」という声は聞いていません。(もしうまく再生できなければご一報ください)

 mp3はoggやm4aと比べて圧縮効率が悪く、単体ではむしろ容量が大きくなってしまう傾向がありますが、それでも二つ用意するよりは(同一ビットレートであれば)マシだと思います。

デスクトップ実行(Game.exe)でどうするか

 ツクールのGame.exe(NW.js)では、ライセンスの問題がありもともとmp3は再生できませんでした。ですがNW.jsは2017/05/03のリリースでmp3のデコーダをffmpeg.dllに含めるようになりました。もちろん特許の問題が解決されたためですが、なかなか迅速な対応だと思います。当然ですがm4aは依然として再生できません。

 つまり、NW.jsを最新にすればデスクトップアプリとして実行したときもmp3を演奏させることができます。NW.jsを最新に差し替える方法についてはセアロソンク氏の以下のブログが参考になると思います。

 本件とは関係なく、NW.jsを最新にすることでパフォーマンスの大きな改善が見込めるので、ぜひ一度お試しください。もちろんデプロイ後だけでなく制作中のプロジェクトにも適用できます。

対応素材が多い

 mp3は普及率が高いだけあって、フリー素材も同形式で配布されているというケースが多いです。変換ツールを使えばもちろん変換できますが、ダウンロードした素材がそのまま使用できるのは嬉しいです。

mp3を使用するデメリット

音質が悪い

 古いフォーマットなので、oggなどの後発のそれと比べて音質が若干劣る(と言われています)。さすがにもともとogg等で配布されているものをmp3に変換するのは少し抵抗がありますね。

ツクールMVのエディタで選択できない

 これがかなり致命的でした。ツクールMVでBGMやBGSを選択するときは、oggファイルしか選択対象に表示されません。拡張子のみoggに変えると選択対象に表示されますが、今度はRPGアツマールにアップロードするときに不正なファイルとして弾かれてしまいます。

 よって現状ではファイルとして選択するときだけoggファイルを(中身はなんでもいいので)作成して、エディタ上で選択後、当該ファイルを削除するというなんともバカバカしい手順を踏む必要がありました。

結論

 ツクールMVの音声ファイルにmp3を使用することはわりと面倒ではありますが、特に容量的な意味で一定の効果が見込めました。そこで一部の素材(例えば素材サイトでmp3形式で配信されている素材)のみmp3を使用し、基本はogg/m4aを使うのがいいのかな、と考えプラグインを作成しました。よろしければお試しください。

 RPGツクールMVで使用可能な自作プラグイン「MP3オーディオ管理プラグイン」の紹介です。

プラグインの説明

 ツクールMVでmp3ファイルを使用可能にします。特定のファイル(末尾にmp3と付いたファイル)のみmp3で再生することも可能です。デスクトップ環境(Game.exe)でmp3ファイルを再生させるにはNW.jsを最新にする 必要があります。

 さらに、プラグイン側で独自にループタグを設定することが可能です。ループタグは曲ごとに設定できます。この設定はファイルにあらかじめ設定されていたループタグより優先されます。

スクリーンショット

ダウンロード

プラグインファイルはGithubで公開しています。
https://raw.githubusercontent.com/triacontane/RPGMakerMV/master/Mp3AudioManager.js

ダウンロード方法(Windowsの場合)

  1. リンク先に飛ぶ
  2. 右クリック
  3. 名前を付けて保存
  4. ファイル名を変えずに、プロジェクトの「js/plugins」配下に配置

利用規約

当プラグインはMITライセンスのもとで公開されています。作者に無断で改変、再配布が可能で、利用形態(商用、18禁利用等)についても制限はありません。このプラグインはもうあなたのものです。
http://opensource.org/licenses/mit-license.php

2017年8月6日日曜日

動画のピクチャ表示プラグイン

RPGツクールMVで使用可能な自作プラグイン「動画のピクチャ表示プラグイン」の紹介です。

プラグインの説明

 ピクチャの表示枠を使って動画を再生します。ピクチャの移動や回転による処理の対象になるほか、複数の動画の並行再生が 可能になります。また、動画がウィンドウの下に表示されるようになります。ただし「ピクチャの色調変更」には対応していません。

プラグインコマンド「MP_SET_MOVIE」で動画ファイルを準備してからイベントコマンド「ピクチャの表示」をファイル指定を空で実行してください。

スクリーンショット1

ピクチャを扱うのと同じ感覚で動画をゲーム中に表示できます。 スクリーンショット

スクリーンショット2

回転や合成方法の変更も可能です。また、動画がメッセージなどのウィンドウの下に表示されます。 スクリーンショット

プラグインコマンド

MP_SET_MOVIE file  # 動画ファイル[file]を準備します。
MP_動画設定 file   # 同上
MP_SET_LOOP 1 on   # ピクチャ番号[1]の動画がループ再生されます。
MP_ループ設定 1 on # 同上(offでループ再生を解除します)
MP_SET_PAUSE 1 on  # ピクチャ番号[1]の動画が一時停止します。
MP_ポーズ設定 1 on # 同上(offで再生を再開します)
MP_SET_WAIT 1      # ピクチャ番号[1]の動画が再生するまでイベントを待機します。
MP_ウェイト設定 1  # 同上
MP_SET_VOLUME 1 50 # ピクチャ番号[1]の動画の音量を50%に設定します。
MP_音量設定 1 50   # 同上

ダウンロード

プラグインファイルはGithubで公開しています。
https://raw.githubusercontent.com/triacontane/RPGMakerMV/master/MoviePicture.js

ダウンロード方法(Windowsの場合)

  1. リンク先に飛ぶ
  2. 右クリック
  3. 名前を付けて保存
  4. ファイル名を変えずに、プロジェクトの「js/plugins」配下に配置

利用規約

当プラグインはMITライセンスのもとで公開されています。作者に無断で改変、再配布が可能で、利用形態(商用、18禁利用等)についても制限はありません。このプラグインはもうあなたのものです。
http://opensource.org/licenses/mit-license.php