フラグ操作には欠かせないビット演算子の動作のまとめ
<論理否定 not>
not 0 → 1
not 1 → 0
但しVRMでは
not n → 0 (nは0以外)
<要点>
@反転させる
<使い道>
0を1に、0以外を0にする。
<論理和 or>
0 or 0 → 0 ・・・@
0 or 1 → 1 ・・・A
1 or 0 → 1
1 or 1 → 1 ・・・A
<要点>
@両者が0になった時を識別できる
A1を書き込める
<使い道>
ビットをセットする場合に使われる(Aのこと)らしいが、あまり具体的な使い道は思いつかない。
<排他的論理和 xor>
0 xor 0 → 0 ・・・@
0 xor 1 → 1 ・・・A
1 xor 0 → 1
1 xor 1 → 0 ・・・@A
<要点>
@両者が同じ値(或いは違う値)になった時を識別できる
A下記記載
<使い道>
フラグの値を反転するときによく使われる。多分VRMでは一番使われる演算子。
参考:Rosso Laboratory「
トグルスイッチテンプレート」
<論理積 and>
0 and 0 → 0 ・・・A
0 and 1 → 0 ・・・B
1 and 0 → 0 ・・・A
1 and 1 → 1 ・・・@B
<要点>
@両者が1になった時を識別できる
A0を書き込める
B下記記載
<使い道>
特定のビットが1か0かを調べるのに使われるらしい。
参考:VRM入道「
and命令って何の役に立つの?」
−−−*−−−*−−−*−−−
<まとめ>
各演算子は@の利用方法としては全て使えるだろう。しかし、それ以外は「xorのA」を除いてあまり使うことはないだろうと思われる。
−−−*−−−*−−−*−−−
fox-hobby-garden「
スクリプト[命令リスト]」では、コマンドを使う上での「
書き方」が掲載されているだけで、具体的にそのコマンドをどういった場面で使うのかという「
使い方」までは記載されていない。
そこで、こういった記事を書いてみたのだが、これが蓄積されていくと所謂「
VRMスクリプト逆引き辞書」なるものをまとめ上げることが出来るだろう。しかし、どうも今求められているのはコレではないようである。まぁ、何処かしらに需要はあるだろうけど。

0