FC2ブログ
上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。
色々あったんです、こんばんは、あきです。
去る4月17日は、実姉の誕生日…とかはどうでも良くて、マビノギの大型アップデートがありました。
そのアップデートで、ちょっとした問題が起きてしまったのですよ。



●音楽演奏スキルを使用した際の三連符の処理を改善しました。
というアップデート内容がソレなんですけどね。
実はこの変更のお陰で、これまでこのブログで公開してきたMMLがすべて使い物にならなくなってしまいました。

簡単に説明すると、今までのマビノギは全音符の長さ=128となるように最小単位が組まれていたんです。
音楽的な知識が多少ある人ならわかると思いますが、音符の長さは「全音符の何分の一か」で表現されます。
二分音符なら全音符の1/2の長さ、四分音符なら全音符の1/4の長さ等です。
マビノギの世界でも同様です。
音符の長さを指定するコマンド「L」の値としてnを入力したとき、その音符の長さは内部処理的に(128/n)と計算されていました。
ところで、128は2の乗数なのでそれ以外の数字では割り切れません。
その場合の音符の長さはどうなるかと言うと、単に先の計算で小数点以下が切り捨てられます。

そこへ今回のアップデートです。
このアップデートで最小単位が変更されてしまったのです。
仮にアップデート後の全音符の長さ=xとします。
コマンド「L」の値としてnを入力したときの音符の長さは(x/n)と計算されます。
もちろん小数点以下は切り捨てです。

どんなnの値に対しても、アップデート前の計算値とアップデート後の計算値の比が一定に保たれていれば実は何も問題は起きないのです。
ところが、一見すると(128/n):(x/n)=128:xで一定に保たれているようにも見えるこの比ですが、実際には「小数点以下切捨て」という行為が微妙にこの比を崩してしまいます。

つまり、アップデート後に以前の楽譜を使うと、小数点以下を切り捨てねばならないようなnの値が出てくるたびに、演奏にズレを生じてしまう可能性が出来てしまったわけです。

とりあえず、アップデート以降の行動について説明させてもらうと

1.今まで作ったMMLが正しく演奏されるかどうかを確認していた
2.アップデート後の全音符の長さ(x)の値がいくつなのかを検証していた
3.今まで作った曲をアップデート後のMMLに簡単に対応させることができるか否かを確認していた

と言ったところでしょうか。
1.についてはすべての曲がダメでした。
ただし楽器別に見れば生きている楽譜があるかもしれません。
2.についてはx=384ではないかという検証結果を得ました。
検証内容については長くなるのでここでは割愛させていただきます。
3.については試しに1曲直してみようと試みましたが、途中で挫折しました。
正直、1曲直すのにもかなりの労力と時間が必要となりそうだと思われます。

そんな感じで、検証やら対策やらに一区切り付いたのがつい2・3日前だったのですよ。
ただ単にブログをサボっていたわけじゃないんですよ、というのが今日最も声を大にして言いたいことなのです(笑)

とりあえず、今までのMMLを修正するのか、放置にするのかの方針だけは決めておかないといけませんね。
考えただけでちょっと鬱ですが。
スポンサーサイト
Secret

上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。