AviSynthのぺーじ/演算子

これは、かつて「にーやんのAviSynthのぺーじ」として公開されていたものを転載したものです。内容は古く、間違いも含まれている可能性があります。より正確で新しい情報を知りたい場合は、AviSynth 付属のヘルプや AviSynth 公式サイトを参考にすることをおすすめします。AviSynth WikiAviSynth入門なども活用してください。

前置き

 前回の予告通り、今回は演算子*1を使った記述法を紹介します。

 予告通り・・・なんていい響きの言葉なんでしょう(笑)

 ところで、単にビデオクリップにフィルタをかけてエンコードするだけなら、実際には(一部を除いて)演算子を使うことはあまりないかもしれません。

 ていうか、演算子がわからなくても、何とかなります、たぶん。

 ただ自分で関数を作る際には必要になってきますので、がんばって見ていきましょう。

 演算子を使ってスクリプトを書けるようになると、何となくかしこくなったような錯覚に陥ることができますよ(笑)

 とはいえ、今回は教科書然とした内容なので、少しわかりにくいです。少なくとも読んでもおもしろくはありません。

 次回、実例をあげて演算子の使い方を解説しますので、そちらから先に読んでもらったほうがいいかもしれません。

オペランドとオペレータ

 さて、ひととおり言い訳が済んだところで、演算子の説明、行ってみましょう。

 そもそも演算子とは何なのか?

 たとえば次のような式があるとします。

2 + 8

 このときの + が演算子(オペレータ)です。

 つまり演算子とは、数を足したり引きしたり、ビデオクリップを結合したりといった処理(演算)を行うための記号のことです。

 小学校の算数で習った+や-や×や÷も演算子です。ただし、コンピュータの世界では、×は*、÷は/になります。

 一方、上の式における2や8のように演算子によって処理されるものをオペランド(被演算数)*2といいます。

 上の例におけるオペランド(2と8のことです)はint型です。int型などのデータ型については、すでに解説済みですね。

 オペランドがどのデータ型であるかによって、使用できる演算子が異なります。

演算子一覧

 演算子を、使用できるデータ型別にまとめておきます。といっても、ほとんどマニュアルからのコピーです。

 全部を覚えるのではなく、必要があればマニュアルを確認するといった感じでいいでしょう。

 また、スクリプト入門でも、折に触れて、それぞれの演算子の使い方について説明していきたいと考えています。

すべてのオペランドで使用可能

名前役割(意味)種類
==等しい等価
<>等しくない(!=でも可※)等価
||または(or)等価
&&かつ(and)等価

※AviSynth2.0.7以降

数値型(int, float)向け

名前役割(意味)種類
+加算算術
-減算算術
*乗算(×)算術
/除算(÷)算術
%剰余算(余りを求める)算術
>=以上関係
<=以下関係
より大きい関係
<より小さい(未満)関係

string型向け

名前役割(意味)種類
+結合文字列
>=以上(※)-
<=以下(※)-
より大きい(※)-
<より小さい(※)-

※AviSynth2.0.7以降

clip型向け

名前役割(意味)種類
+UnalignedSpliceに同じ-
++AlignedSpliceに同じ-

bool型向け

名前役割(意味)種類
?:条件付きで実行三項

補足

 この表における演算子の種類はC言語における演算子の分類を参考にしたもので、AviSynthにおいてこのような分類がなされているというわけではありません。

 また演算子は、取ることのできるオペランドの数によって単項演算子、二項演算子、三項演算子に分けることができます。

 bool型向けの演算子「? :」の三項と書いてあるのは三項演算子であるという意味で、オペランド(2とか8のことですよ)を3つ取ります。三項演算子については、次回以降に実例をあげて紹介します。

 ちなみに、「等しい」は「=」ではなく「==」(=2個)です。「=」は代入になります。ですから・・・

x = 2 + 8

 こちらは「xに2+8(10)を代入する」という意味ですが、

x == 2 + 8

 こちらは「xは2+8(10)に等しい」という意味になります。

おわりに

 さて、ほとんど例もなく画像もまったくなしで説明してきましたが、やっぱり面白くなかったでしょう?(笑)

 演算子がどういうものなのかはわかったかもしれませんが、具体的にどのように使えばいいのかはわからないかと思います。

 そこで次回は演算子を使った記述法について解説したいと思います。

 あれ?それって今回やるって言ってたんじゃ・・・

 で、デジャブです(笑)

最終更新日 2003年12月3日


最終更新日時: 2014-03-12 (水) 23:37:08 (3691d)