「マビノギ」にも使える楽譜入力ツールのテスト版を公開
ネクソンジャパンの「マビノギ」は,生活感を重視したMMORPGということでいろいろ特徴はあるのだが,個人的にほかのMMORPGと比べてとくに評価している部分がある。それは,ゲーム内で音楽演奏ができるというところである。自分で作った音楽データをゲーム内で演奏できるのだ。これはもっと注目されていい機能だと思うのだが,著作権的に(かなり濃い)灰色の曲が流れていたり,曲データの制作が煩雑だったりと,いろいろ問題もないではない。 マビノギの曲データは,MML(Music Macro Language)により,テキスト形式で用意する必要がある。20年以上コンピュータを使ってきていた人なら知っているかもしれないが,昨今ではMMLは忘れ去られた技術であり,サポートツールもほとんど存在しない。
今回公開するのは,X68000用に作成されていたMelodius-SX68KのWindows版である。Melodius-SX68Kは,ソフトバンク発行のパソコン雑誌「Oh!X」1994年5月号で発表されていた楽譜入力ツールである(原作:中野修一氏)。SX-Window上のSX-BASIC(制作:石上達也氏)で書かれていたZ-MUSICシステム用のプログラムを,Visual BasicでWindows用に作り直した。移植とはいっても,コードはまったく別物で,だいたいの操作系や見た感じを倣ったものである。 X68000用の音楽システムであるZ-MUSICシステム(制作:西川善司氏)は,MMLを使ったシステムとしては史上最強の仕様を誇るもので,汎用音楽システムとしても機能的に突出した完成度を誇っていた。もちろんZ-MUSICと比べると,マビノギのMMLは非常に低機能な仕様だが,まあ基本は同じ。同じような感じで基本的なMMLを出力できるツールを作ってみた。マビノギ専用というわけではないが,かなりマビノギMMLの仕様にあわせてある。
さて,このツールは,もともと4G謹製マビノギ時計とほぼ並行して作成していたものなのだが,初期版は,ネクソンジャパンの公開しているWeb作曲ツールで使っているサーバーを内部から利用させてもらって,MML処理および演奏を行っていたものだった。さすがにそれではマズかろうと,自前で演奏するように,スタンダードMIDIファイルを生成してやったのだが,なぜか音が鳴らないという症状で詰まってしまっていた。当時WindowsのMCIの挙動に不信を抱いていたことや,そうこうするうちにオープンβテストが終わってしまったこともあり,そのまま開発は中断。このたび,マビノギが2周年ということもあり,掘り返して開発を再開してみたのが,今回のツールである。 作りかけとはいうものの,いま見ると,いろいろ謎な処理がある。なぜか線間6ピクセルの五線譜をベースに作られており,1音分の幅が一律でないという,なぜちゃんと動いているのか自分でもよく分からない処理が行われていた。単純な処理で済むように線間7ピクセルに変更,音符も大半描き直した。音源処理も修正して音が鳴るようになった。エディット部分などはまだ作りかけなので,最低限の処理のみサポート。ロード/セーブ機能は,今回は割愛した。近いうちにもう少しちゃんとした公開版を発表する予定である。
■使い方
●インストール ダウンロードした圧縮ファイルを展開してsetup.exeを実行する。 なお,すでにVB6の基本的なDLLがインストールされている人なら,実行ファイルだけのものをダウンロードすれば,それ単体で動くはずである。 Setupファイル (2,731,342 バイト) 実行ファイルのみ (40,971 バイト)
●入力 音符の一覧から希望のものをクリックし,五線譜上に貼り付ける。なお現在,休符,タイ,臨時記号,三連符,五連符はサポートされていない。
●エディット 五線譜上の音符のあたりをクリックする。四角い枠が付くと,その音符がエディット対象となる。 この状態で,以下のような操作が可能である。
・下の音符ボタンを押す → 指定音の音長が変わる ・×ボタンまたはDeleteキーを押す → その音符を削除する ・矢印キー(左右)を押す → 矢印エディット対象を前後の音に切り換える(小節内) ・矢印キー(上下)を押す → 音程を変える(不穏な動作が多いので非推奨)
●演奏 現在サポートされているのは,トラック単位の演奏と全トラックの演奏の2種類。ショートカットはF5とF6に設定されている。 全トラックの演奏を行う場合は,事前に各トラック単位で最低1回は,個別に演奏をしておく必要がある。また,演奏するトラックはチェックボックスで明示的に指定しておくこと。同時演奏は最大16トラックである。
●MML最適化 演奏するとオクターブ指定も含んだMMLを順に出力していくのだが,データ長に制限のあるマビノギでは,このままで使えないデータとなっている。そこで,ごく簡単な最適化を組み込んである。「↓optimize」のボタンを押すと,その下に変換後のMMLが表示される。 行っているのはオクターブ記号の最適化と全体でのデフォルト音長指定の最適化である。本来は部分文字列を見て,局所最適化を行うべきなのだが,まあ,明らかに音符の構成が違う部分は,複数の文字列に分割して個別に最適化ボタンを押せばよい(表示されているテキストに対して最適化を行っている)。 横にある「倍速」指定を入れると,変換時に音長を2倍で出力する。ただし,全音符以上の音長は含まないこと(チェックしていない)。また,テンポ指定の文字列は出力しないので手動で調整を。 ■基本仕様
●20トラック 基本トラックとして20トラックまでサポート。まあ,マビノギ専用ではなくZ-MUSIC用としてなら80トラックくらいサポートしてもよいのだが(配列の添字を増やすだけ),Windowsの音源だとそんなに演奏できないと思われるので,MIDIチャンネル数+αに留めておいた。トラックごとに音色を指定できる。 もちろん,マビノギの楽器演奏では,同時発音が3トラックで,使用できる音色は1種類である。合奏用の多トラック譜面をエディットするために20トラックとしておいた。100人合奏をしてみたいというリクエストがあれば対応するのは簡単だが(メモリは食う),実用上この程度で十分ではないかと思っている。
●小節管理 ぱっと見ると,五線譜に小節線が描かれているが,小節線での音長管理はしていない。にもかかわらず,データ管理は小節単位である。最大値はトラックごとに200小節。小節線は,データ入力時の目安で使用してほしい。トラック間のデータも小節単位での同期は取っていないが,スクロールや指定小節からの演奏(未サポート)が用意される予定なので,要所での同期は自前で管理していただきたい。 なお,1小節区間に配置できるアイテム数は最大20個である。32分音符を並べたいとかいう人は複数の小節に分けて入力してほしい。
●調指定 左端にあるシャープとフラットのボタンを押すことで,順に調性を変更する。今後は,最適化時にハ長調へ移調するオプションなどを検討中。
■既知のバグ&未サポート部分 ●エディット用のボタンがうまく動作しない 本来,エディット時にはカーソルに音符が付いてくる入力モードではなくて,矢印カーソルだけのエディットモードを使用する予定ではあるのだが,このモードだとうまく音符の指定ができないことがある。 入力モードのままでも音符の指定はできるので,機能的には問題ない。付いてくる音符がちょっと邪魔だったり,少し場所を間違えると新しい音符を置いてしまったりするかもしれないが,まあ,大勢に影響はないので,ご了承を。
●最適化の不具合 なぜか最初の数音のオクターブ最適化に失敗する。ほかと同じ処理をしているだけなので原因はまったく不明で,以前は動いていたのだが,なにかの拍子におかしくなった。またなにかの拍子に直るかもしれないので放置中。簡単なので手動で調整を。
●エディット時の挙動 ときおり奇怪な挙動を見せることがある。
●ロード・セーブ 基本部分だが,データ仕様がすぐ変わりそうなので未サポート。
●音量指定 未サポート。実装はそんなに難しくないと思われるので,後回し中。
●テンポ指定 未サポート。任意のテンポ指定を画面上でどう見せるかが未解決&ちょっと嫌な処理(MIDIコード出力部)を含むので後回し中。
●タイ,臨時記号,連符 未サポート。マビノギのMMLでは,タイ記号は同音間でしか動作しない(スラー処理はしない)ので,そのチェックを行う必要はあるが,実装は難しくない。臨時記号もさほど問題はないと思われるが,ナチュラルの処理方法を検討中。そもそもナチュラルっていらないような気もしているので,場合によっては実装を取りやめる可能性もある。連符は,対象となる音符すべてに連符記号を付けるようなインタフェースになる予定。当面は三連符と五連符のみサポート。世の中には17連符とかを使用する迷惑な作曲家もいるようだが,まあ,どうしてもという人は自前で頑張ろう。 ●休符 MML処理はされるが,演奏部では未サポート。
●スクロール用スライダー そういえば未サポートだった。
あと,ときおり変なものを発見する人もいるかもしれないが,隠してあるものには理由があるので見なかったことにしてほしい。 なるべく変なことはしないように注意して制作しているが,誤動作などで暴走などを起こす可能性はあるので,ほかのプログラムで作業中の重要なファイルはあらかじめセーブしておくなど,注意して使用するように心がけてほしい。このプログラムの使用は,自己責任において行うこと。プログラムの動作に起因する障害に対して,4Gamerでは責任を取れないのでご了承を。
今回のツールでは,機能の拡張と最適化の部分を中心とする予定だったのだが,入力補助と演奏の基本部分の作り込みでかなり手間取ってしまった(まだできあがっていないが)。次のバージョン(連休後か)では,もう少しマシな状態で公開できると思うので,マビノギで音楽活動をしている人は,ぜひフォーラムなどで意見をお聞かせいただきたい。(aueki)
|
|
マビノギ |
|
|
|
|
|
|
Copyright(C) 2003 Nexon Corporation. All rights reserved. Developed by devCAT. |
|
|
|
|