<   2012年 04月 ( 2 )   > この月の画像一覧


2012年 04月 16日

【MUGEN】四捨五入しよう!【制作技術】

今日は四捨五入のお話。

MUGEN上で何かを計算する際に、小数点以下の値が混ざってしまうこと、よくありますよね。
混ざってはいけない計算で混ざってしまい、エラーメッセージがダダ漏れ、などというのもよくある事。
何かを計算する時は値を丸めるのがMUGEN上での礼儀の一つと言えるでしょう。

小数点以下の数を丸める場合、MUGENには次の2つの手段があります。

ceil(値)・・・小数点以下を切り上げる。 例:ceil(10+0.4)=11、ceil(10+0.6)=11
floor(値)・・・小数点以下を切り捨てる。 例:floor(10+.4)=10、floor(10+.6)=10

非常に残念なことに、四捨五入することは出来ません
ええー!プログラムなのに!?と思われるかもしれませんが、
ごくごく一般的な言語のひとつ、c言語などでも出来るようになったのは最近です。普通のことなんですね。

実はこれ、ちょっと手を加えるだけで簡単に求められてしまうため、
「そんなもんてめーで勝手にやってろよ^^;」という扱いなのです。かどうかは知りませんが。
ではどうやって求めるか?というのが今回のお話です。
あ、ちなみに簡単すぎるので内容はぺらっぺらです。


繰り返しになりますが、小数点以下を丸める命令はceilとfloorしかありません。
無いものは仕方が無いので、どうにかこうにか、この2つを利用して四捨五入しなければいけません。

さて四捨五入は、.1~.4、.5~.9で処理が仕切られています。
ceilを使って丸める際、問題になるのはこの.1~.4を切り上げてしまうことです。
同様にfloorを使う際の問題点は.5~.9を切り捨ててしまうことにありますね。
この問題は下記の手段で解決します。


ceil
該当する値から0.4を引きます。ceilは小数点以下1以上のすべての値を切り上げるため、
小数点以下.0~.3の範囲が前の値に繰り下がった場合は元の値に切り上げ
小数点以下.5~.9の範囲は.1~.5に下がった後切り上げになります。
小数点以下.4の場合は.0に下がり値を維持します。


ceil( 10.0 - 0.4 ) = ceil( 9.6 ) = 10
ceil( 10.4 - 0.4 ) = ceil( 10.0 ) = 10
ceil( 10.5 - 0.4 ) = ceil( 10.1 ) = 11
ceil( 10.9 - 0.4 ) = ceil( 10.5 ) = 11



floor
該当する値に0.5を足します。floorは小数点以下1以上のすべての値を切り捨てるため、
小数点以下.0~.4の範囲は.5~.9の値に上がった後元の値に切り捨て
小数点以下.6~.9の範囲は.次の値に繰り上がった後切り捨てになります。
小数点以下.5の場合は次の値に繰り上がり.0となります。


floor( 10.0 + 0.5 ) = floor( 10.5 ) = 10
floor( 10.4 + 0.5 ) = floor( 10.9 ) = 10
floor( 10.5 + 0.5 ) = floor( 11.0 ) = 11
floor( 10.9 + 0.5 ) = floor( 11.4 ) = 11




ね?簡単だったでしょう?


まとめ
MUGENで小数点以下第一位を四捨五入する計算式は

ceil ( 四捨五入したい値 - 0.4 )
もしくは
floor ( 四捨五入したい値 + 0.5 )



おまけ:この方法では小数点以下第一位しか四捨五入できませんが、
小数点以下第二位以降を四捨五入して精度を高くしたい場合は
一度値を10倍(第三位なら100倍)して同様の処理を行い、また10(100)で割れば求められます。
[PR]

by goukasoshina | 2012-04-16 09:30 | 最速のmugen
2012年 04月 08日

【MUGEN】キャラクター使用制限について

私のキャラクター(一般公開しているのは現状ではバーサーカーのみ)について、

Wiki等の記述によく誤りが見られます。
更新して頂けるのは非常に嬉しく、作者冥利に尽きるというものですが、
原作も含め事実関係の確認、裏付けは慎重にお願い申し上げます。
特に最近散見される使用制限ですが、
私のキャラクターを動画内で使用する事に一切の制限を設けておりません

同じ動画内でhanmaさんのキャラを出演させることを拒否している
(hanmaさんのキャラを起用している動画でのバーサーカー使用禁止)


というのは事実誤認です。


強いてあげれば他人のキャラも含め)批評コメントの削除をお控え頂くようお願いしていますが、
これも配布しているキャラクターのreadmeには記していません。
全ての権限は監督たる動画製作者様にありますので、
現状で私から使用制限を課すようなことは行っておりません。

以上、よろしくお願い申し上げます。
[PR]

by goukasoshina | 2012-04-08 23:42 | 最速のmugen