ベクターとラスターの違い

 コンピューター上で扱われる画像には大きく分けると2種類ある。ベクター画像とラスター画像である。前者はベクトル画像、後者はビットマップ画像などとも言われる。一般に画像として出回っているものは殆どがラスター画像である。ラスター画像の拡張子には例えば、jpg、png、gif、bmp、などがある。対してベクター画像の方は“画像”として扱う機会がある人はそう多くはないかもしれない。CG制作をしない人にとっては、最も身近なベクター形式のものはコンピューター上のフォントだろう。昔はフォントもビットマップだったが、現在は殆どがベクター形式のデーターである。

 ベクターの最大の特徴は、拡大しても画像が劣化しないということである。ラスター画像の場合、画像は点(コンピューター上では主にピクセルという単位が用いられる)ごとに色情報が記されている、という形式であるため、拡大すれば当然劣化してしまう。対してベクター画像は点の座標と、それを結ぶ線の変化の具合、また線で囲まれた面の属性、などを記すという形式である。二次元CGを描くときにはベジエ曲線というのがよく用いられるが、2つの点を結ぶベジエ曲線は、結ばれる2点の座標と、制御点と呼ばれる2点の座標が定義されていれば(線の色や太さなどは別にすると)描ける。詳しい解説はWikipediaで調べれば得られるのでそちらを参照して欲しいが、実際にベジエ曲線をラスター的に描画する際には、上記の4点を元にベジエ曲線が通るポイントを複数定め、それを直線で結ぶことになる。つまり、そのポイントを充分に細かく定めて行けば滑らかな線に見えることになる。ベクター画像はその4点の座標を記録しているので、途中のポイントをより細かく定めていくことで無限に大きなラスター画像を生成できるのである。

 ベクター画像とラスター画像の記録形式の違いについては上記のとおりであるが、実際にCGを制作するにあたっては更なる違いが生じて来る。1つ目は、必要なアプリケーションである。一般に、ベクター画像を扱うドローソフトとラスター画像を扱うペイントソフトorレタッチソフトは別である。Adobe Photoshopなどは独自のファイル形式であるpsdにベクターデータも格納することができるし、他にもパスツールで描くパスはベクター形式のまま保存できるソフトがあるが、AdobeがPhotoshopとIllustratorを分けていることからも分かるように、基本的に別であると考えよい。しかも、ベクター形式のデータに関しては、アプリケーションごとの規格である場合が多いため、特定のソフトを用いて制作した元データは、同一のソフトでないと開けない可能性が高い。対してラスター画像はピクセルごとに色情報を記しただけの単純な形式である(実際には情報量を圧縮するために色々してるが)ため表示に関して完全な互換性を示せる。2つ目は、求められるコンピューターのスペックである。単純に言ってしまうならラスター画像の場合、制作する画像が大きければ大きいほど元ファイル(.psdや.xcfが該当する)の容量が増えるので、メモリ(RAM)の消費が増える。対してベクター画像における元ファイル(.aiや.svgが該当する)の容量は最終的に生産するラスター画像のサイズには依存せず、オブジェクト(線や面などベクターで描画された物体の総称)の数で決まる(簡単に言えば細かさで決まる)ため、一般にRAMの消費は少ないが、表示するためにレンダリングという作業をしなければならないため、CPUやGPUに高い性能が求められる。最後の3つ目は、出来上がる絵の雰囲気である。ラスターはベクターに比べ、細かい効果を付けやすいため、筆で描いた様な絵やフォトリアルな作品に向く。そういった作品をベクターで描こうとすると大変である、というか現在のハードやソフトでは非現実的であると言ってもいいだろう。ベクター画像は単純でベタ塗りな雰囲気のイラストを描くのに向いている。

なぜベクター画像で描くか

 この文章のタイトルは「ベクターとラスターの違い」などという、いかにも検索されそうなものにしているが、本来ここで描きたいことは、「女の子はベクターで描くべきだ!」という私の主張である。イラストサイト等をまわって描き方講座などを読んでみると、線画はベクターで塗りはラスターという人は結構いるが、ベクターのみで描いている人は意外と少ない。無論、ブラシを多用した様な感じの絵を好む絵描きさんはラスターがメインで当然だが、アニメ調の絵を描く方でも、万能と称されるPhotoshopユーザーが圧倒的なためか、ラスターで描いている人が多いようである。確かに、今でもゲームの世界で標準である800×600px程度の、サイズの決まった絵を描こうとした場合、ベクターで描くよりラスターで描く方が圧倒的に速い。800×600px程度では大してメモリも食わないため、最近のマシンであればスペックの制限も無いに等しいと言えるだろう。

 ではなぜ、私がベクターメインで描いているかというと、一つには制作目的が異なるということがある。私は制作した画像を横1.5m程の看板に貼付けて展示するということをしたいと考えている。画像はこのサイトにも掲載しているがせいぜいページ内部で用いるのは720×405px程度までである。しかし、看板の場合は16000×9000pxである。これをラスターで描こうとしたら大変である。私の場合はベクターで描いた物に少し細かいエフェクトを付けたい時、Inkscapeからpngで出力してGIMPで開くのだが、16000×9000pxでレイヤーを5枚(ベクターの段階では100枚程度でであるが)に分けたらあっという間に3.2GB(←CG制作に使っているマシンで認識されるメモリ容量)を超えてスワップしてしまう。もちろんどんな画像かによって大きく変わるので大体の感覚ではあるが、ラスターで巨大な画像を描くには現在ノートでも標準になりつつある4GBメモリを超えて、8GBとか12GBと言ったメモリ空間が求められるのである。

 加えて、一つ目の理由とも被るが、サイズが固定された状態で描くのは気持ち悪いという理由が挙げられる。作品を制作し始めたときに必要だと思っていたサイズより大きなサイズが必要になるということは考えられないだろか。描いている途中で、絵の一部を拡大したいと思うことは無いだろうか。縮小する分には問題ないだろうが、拡大するのには良いアルゴリズムを用いても劣化が伴う。こういったことを考えると、ベクターで描くという選択肢は強力なものになってくる。

 更に、私には「人間を含めた生物の形状データはラスター状ではなくベクター状である」という信念がある。これは生物学の話になるので詳しくは描かないが、考えてみれば生物の形状を記録するデータが点の集合でできてはいないだろう、というのは容易に想像できることである。「女の子は…」という前置きは、背景ではない生物はということである。

 ぐだぐだと理由を並べてみたが、結局の所、私の場合はラスター画像よりベクター画像を扱う方が気持ちがいいのである。すっきりするのである。ちなみに私がイラストを描き始めたのも、ベクター画像に出会ったことがきっかけである。滑らかな線をいとも簡単に描けるベジエ曲線、そしてそれを拡大しても劣化しないベクター形式で扱えるソフトに出会ったのは衝撃的だった。この感覚はドローソフトを実際に触ってみないと分からないだろう。

ではベクターは完璧か

 ここまでベクター押しのことを色々と描いてきたが、ではベクターで全て足りるかというと、今のところそうはいかない。まず、ベクターだと複雑な描画をするのは大変だし、編集するアプリケーションで表示するのに大きな負荷がかかることになる。さらにWEBをはじめとする場であらゆる環境から閲覧できるようにするのも、ベクターのままでは今のところ難しい。結局ラスターに出力して“レタッチ”してから、ラスターで保存して利用することになる。編集段階のところは今後のハード的なスペックアップで解決されるかもしれないが、表示に関する部分はいろいろ面倒なことが絡むので難しいだろうと私は考えている。

 それに、よく考えてみると、描いている人間自身もベクター画像をベクター形式として完全に認識することなどできやしない。モニターに出力されている時点ですでに点の集まりになっているのだし、人間の目も視細胞という点の集まりである。加えて、ベクター画像では各頂点の座標を記録すると上にも描いたが、座標のデーターは小数点以下の桁数に制限のある数値である。つまりコンピューターは実数を正確に表せない、というやつである。ラスターで編集しているときより、ベクターで描いている時の方がはるかに精度の高い作業、もしくは閾値の低い作業を行えるのだが、それにも限界があるということである。勿論、今のところ問題となる程度の話ではないが。

 今回はここまでにしておくが、ラスターかベクターかというのは今後のグラフィック界において大きなテーマだと私は考える。将来的にはフルベクターの動画というのが出来てもおかしくはないと思っている。もちろん、作る側も再生する側も相応のスペックが要求され、著作権なんかの問題も深く関わってくることになるだろうが。ペイントソフトで満足してしまっている人には、ぜひともドローソフトの価値を知ってもらいたいと思う。画風や作業スタイルにもよるだろうが、ベクターデータが有利な場面は充分にあるはずだ。