2016年9月15日木曜日

AION MML ハウジングスクリプト音楽 作成方法まとめ

AION MML ハウジングスクリプト音楽 作成方法まとめ

AION = Tower of AION というオンラインゲームです。
MML = Music Macro Language の略。MIDIなどで使うことができる、音階や長さを文字コードで表現したものです。
ハウジングスクリプト = AIONのゲーム中では、家を持つことができて、部屋の中にスクリプトを置けます。

スクリプトのコードを書くと、プログラムのようになります。
MML/を書いてあると、音楽再生ができます。



再生の方法は、2種類くらいあります。
1.部屋に入ると実行される。
2.執事に話しかけると実行される。

以下では、その音楽とスクリプトの書き方のメモを書いておきます。
4番は別の方のサイトです。
家に入ると自動演奏される方法を作っています。
スクリプトの入れ方の説明が画像つきであります。
  1. AIONハウジングスクリプトでのMMLの書き方
  2. ハウジングスクリプト音楽を執事から実行する方法
  3. MMLの元になるMIDIの作り方(フリーソフトサクラを使用)
  4. AION MML 応用講座 おサルさんでも分かる自動演奏方法 - AION-MML-FACTORY




AIONハウジングスクリプトでのMMLの書き方

AIONのハウススクリプトで、音楽を鳴らすために必要なMMLの書き方を説明します。



基本

4分音符のドを表すには、
l4c
c4
どちらでも使えます。
l4と書くと、そこから後ろの基本の拍の長さが4になります。
l4の後に書かれたc単体は4分音符になり、l4c8と書けば強制的に8部音符になります。



音階

1個書くと1回鳴ります。2個連続で書くと、2回連続で鳴ります。
ファ
c d e f g a b

ド# レ# ファ# ソ# ラ#
c+ d+ f+ g+ a+

ド# レ# ファ ファ# ソ# ラ#
c c+ d d+ e f f+ g g+ a a+ b


オクターブ

o4がデフォルトのオクターブです。
数字が大きいほど高い音になります。
書くと、そこから後ろのオクターブが変わります。
< >
オクターブを1つ上げる オクターブを1つ下げる。

o1 o2 o3 o4 o5 o6 o7
低い 標準 高い


休止符

1個書くと1回休みます。2個連続で書くと、2回連続で休みます。
r l1r r1
全音符長の休止符

rr l2r r2
2分音符長の休止符

rrr l3r e3
3分音符長の休止符

rrrr l4r r4
4分音符長の休止符

r.
符点音符長の休止符


テンポ

t32~t255 t120がデフォルトです。
数字が大きいと速くなります。
書くとそこから後ろのテンポが変わります。
t32 t60 t120 t240 t255
最遅 半分の速さ 標準 2倍の速さ 最速


ボリューム

書くと、そこから後ろの音の大きさが変わります。v1~v10
v1 v2 v3 v4 v5 v6 v7 v8 v9 v10
音量


拍の長さ

書くと、そこから後ろの拍の長さが変わります。
l1c l2c l4c l8c
全音符のド 2分音符のド 4分音符のド 8分音符のド
l16c l32c l64c l4c
16分音符のド 32分音符のド 64分音符のド 符点4分音符のド
符点で長さ1.5倍。符点と半音併用はバグが発生します。
下記の語順変更でバグ回避させます。


符点

l4c c4 c4. l4.c
4分音符ド 4分音符ド 符点4分音符ド 符点4分音符ド
l4 f.=符点無効
f4..=符点一つと同じ扱い


タイ

前後の同じ音階の音をつなげます。半音上げと併用するとバグが発生します。
c4&c8 c4.&c8.
4分音符と8部音符の長さ 符点4分音符と符点8分音符の長さ
c4+&c8+ は使えません。(#と&の併用不可)
c4.+&c8.+ は使えない。(#と&の併用不可)
c4&d8 は使えません。(そもそもタイではない)
c+4&c+8 は使えません。(元の語順でも不可)
c4^c8 は使えません。(「^」 → 「&」)
l4&8 は使えません。(lでタイは不可)
l4&l8 は使えません。(lでタイは不可)


語順で解決するもの

半音上げは、数字よりあとにつけます。符点があれば、符点よりあとにつけます。
c+4 c+4.
c4+ c4.+



サクラMMLからAION MMLへの置換リスト

r. → rr8
r8. → r8r16
r16. → r16r32
+1. → 1.+
+2. → 2.+
+4. → 4.+
+8. → 8.+
+16. → 16.+
+32. → 32.+
+64. → 64.+
+1 → 1+
+2 → 2+
+4 → 4+
+8 → 8+
+16 → 16+
+32 → 32+
+64 → 64+


バグ

o4 f のピアノの音は、カチカチというノイズが聞こえます。





ハウジングスクリプト音楽を執事から実行する方法

AIONハウジングスクリプトを執事から起動する方法です。
下記のハウジングスクリプトを書いて設置すると、
執事から曲名を選んで音楽を鳴らせます。
テンプレートを載せます。
スクリプト欄にこれを貼り付けて編集すれば音がなるはずです。


function OnInit()H.RegisterMenu("選択項目", 1);
i=0;
end
function OnMenu(menuNum)H.PlaySound(0, "r2[1],r2[2],r[3]");
if (menuNum == 1) then
H.Say(1, "アーティスト名");
H.Say(2, "タイトル");
H.SetInstrument(1,H.Instrument.abass);
H.SetInstrument(2,H.Instrument.abass);
H.SetInstrument(3,H.Instrument.abass);
H.SetInstrument(4,H.Instrument.ebass);
H.SetInstrument(5,H.Instrument.ebass);
H.SetInstrument(6,H.Instrument.ebass);
H.PlaySound(1,"t73o6g16+a16");
H.PlaySound(2,"t73o6g16+r8g3");
H.PlaySound(4,"t73v5o4l16fc");
H.PlaySound(5,"t73v5o4l8rrrr");
H.PlaySound(6,"t73v5o4l1rrrr");
end end

H.PlaySoundの中にMMLを書くことで、音が鳴ります。
  • 執事をクリックすると、選択項目が現れます。
  • 選択すると、アーティスト名とタイトルを執事がフキダシで発言します。
  • 一応5和音で同時に音が鳴り出します。
とある曲のはじめだけなのでパート5と6は休止符ばっかりですが。

ハウジングスクリプトの容量は制限があります。
あまりにも長い曲は登録することができません。

なんとか入れるための対策としては、
  • 時間を短くする
  • MMLを最適化して文字数を減らす
  • 和音パートの目立たない部分を削除する
これらを併用してください。

時間を短くするには、アニメのオープニングのように、
違和感のないつなぎ方でショートバージョンにする方法が効果的です。
また、イントロは省いてサビだけにする方法などもあります。

MMLの最適化とは、同じ音のままで文字数が少ない書き方に変えることです。
c4d4e4f4と書くより、l4cdefのほうが短くなります。
r16r16r16r16は、r8r8にできます。
r4にもなります。
l4が先に書いてあれば、rだけにもできます。

和音パートは聞いていて不要な和音も感じるので、
その部分を消していった結果削減できる部分があります。




作業の順番

作業の順番としては、
  1. 曲を決める
  2. 曲の楽譜や耳コピから音階がわかるようにする
  3. 作曲フリーソフトのサクラを使用して曲を作る。
  4. MML表示に変えて、MMLをメモ帳にコピーする
  5. サクラMMLからAION MMLへの置換リストで置換する。
    (キーボードショートカットはCtrl+H)
  6. AIONでスクリプトを作り、編集画面にテンプレートを貼り付ける
  7. AION MMLをH.PlaySoundの部分に貼り付ける

0 件のコメント:

コメントを投稿