パソコン黎明期・中間色ペイント発見物語

今回のネタは、本当のパソコン黎明期といっていい1981年に、いかにしてクロマキーペイント(タイルペイント/タイル)が登場したか? の物語だ。
ここで先に原理的な解説を。しないと絶対にこの話は分からないので。
遥か遠い昔…およそ30年ほど前、黎明期のパソコンはたいてい数色しか色を表示出来なかった。
例えばパソコン界のキャデラックと言われたAPPLEIIですら40×48の16色グラフィックスか、280×192で4色(のちに6色に改良された)グラフィックス程度のものだった。
これらの数色の組み合わせで標準的になったのが8色カラー。PC-8001で初登場したと思うが、以後、10年以上に渡り色表現のデファクトスタンダードとして君臨した、後にデジタルカラーと呼ばれる8色だ。

カラーコード
■黒 ■青 ■赤 ■紫 ■緑 ■水 ■黄
輝度 ■黒 ■10% ■30% ■40% ■60% ■70% ■90%

ビット表現だと下位からB-R-Gと並んでいる3ビット表現のカラーコードで、今風のRGBの表現で言うと0か255しかない原色バリバリの8色。
ちなみにこの色コードのビットがB-R-Gと並んでいるのにも意味がある。
輝度への寄与は大雑把に青=10%、赤=30%、緑=60%になるので、BRGという順は輝度への寄与の昇順だ。だから白黒のモニタに繋ぐとカラーコードそのままで黒から白に明るくなるメリットがある。そして当時は白黒のモニタが普通にあったので、このような配慮はとても重要だった。
これをRGBで並べると、白黒のグラデーションがガタガタになってしまう。少ないリソースでうまくいろいろやりくりするための先人の知恵だ。

カラーモニタで高性能なものは、当時高価だった本体よりさらに高価な本当の高嶺の花だった。
例に出ているPC-8001など本体はRAM16キロ版は168,000円だったが、専用の安い方の12インチカラーモニタで188,000円、高解像度カラーモニターはなんと298,000円だった。全く馬鹿高くて話にならない代物だったわけだ。これがものすごい勢いで値下がりしていくことになるが、それはまた別の話だ。

この8色は固定の原色でカラーパレットもなく中間色もない。だからごくごく初期のアドベンチャゲームでは人は黄色で塗られていたし、キャラクタも全て原色で書かれていた。これに革命を起こしたのがタイルによる中間色表現だ。

インターネットを探しても、貧乏人のためのCG講座ぐらいにしか資料の残っていない古びた知識だが、一定以上の解像度で隣り合った2つの色が人間の目では混ざって見えて中間色に見える、結果最大デジタル8色でも、組み合わせで8x7=56色の中間色が表現できる! というのがタイルもしくはクロマキーの基本的な考え方だ。
マンガのスクリーントーンのような考え方だ、と書けば、分かる人が少しは増えるかも知れない。

上のパターンが典型的な例。
貼ったタイルパターンがなぜやや暗い緑がかった黄色に見えるのかを説明すると、これは2ドットのタイルで赤・緑で表現されている。赤+緑は黄色だが、2ドットなので(2倍の広さで同じ明るさを表現していることになるから)実際の黄色の半分の輝度に大雑把になる。だからやや暗い黄色に見えるわけだ。なお貼ったパターンは貧乏人のためのCG講座からもらってきている。
実際には、市松模様と縦に真っ直ぐ並べるパターンで表現力はさらに強化できるし、当時はこれをも拡張した2x2タイル3x2タイルも使っていたので、表現力がもう少しあった。

なお、僕の知る限りで最強のドット絵師の一人、山根ともおなどはタイルを「5445」だの数字で表現してしゃべっていて、しかもこれが当時の(少なくともファルコムの)アーティスト間では十分に普通に通じる言葉になっていたらしい。

いずれにしてもタイリングによる中間色はパレットのない固定された少ない色数で表現するための技術でしかなかった。だからWindows95が登場して256色が当たり前になった90年代半ばから、急速に廃れていき、2000年過ぎには完全に過去の遺物となった。

ちなみにディザリング、という形で今でもわずかに残っているが、これはアーティストの作る中間色タイルとは違うので、別物として取り扱いたい

まあ固定された原色で中間色を表現するために、タイルを使った中間色表現なんてヘボなものが1990年代半ばまでは普通にあったのだと、まず理解しておいて欲しい。

そして本題は1981年から始まる。

1981年はマイコンマニアにとって衝撃的な年だった。というのもFM-8とPC-8801が登場した年だからだ。
その前年、1980年に日立からBASIC MASTER Level 3(298,000円)が640×200の衝撃的な解像度のグラフィックと拡張性で登場し、和製APPLE IIなどと騒がれたが、蓋を開けてみると売りのひらがな表示は、もちろんクソ高い専用ディスプレイでもチラつくし、640×200の画面は1ドット単位に色がつかず、しかもL3(と呼ばれた)は究極の8ビットCPUと呼ばれた6809を積んでいるわりには期待したほど速度も速くなく、おまけにグラフィック解像度がプログラム可能なメモリ量に影響するなど頭痛のするところも多くて、結構ガッカリマシンだった。

その1年後、登場したのがFM-8。
640×200で1ドット単位で8色の指定が効くホンモノのフルカラーグラフィックス(フルカラーだよw)を搭載し、6809のデュアルCPUで、グラフィックを片方のCPUが専任する構成で、グラフィックメモリがプログラムエリアに影響を与えず、BASICの性能も良く、未来のメディアと喧伝されていたバブルメモリまで搭載可能で、値段がなんと218,000円(驚異的な低価格だった)。当時のマイコンマニアどもはみんな大興奮することになった。
ここで大阪の電気街、日本橋に巣食っていたアマチュアコンピュータクラブ、NEWONが登場する。この名前は気がつく人なら気がつくだろうがL3のグラフィックモードの初期化命令だったりする。
つまりNEWONはL3…というかモトローラの68系CPUが好きなコンピュータマニアどもの集まりだった。この当時のコンピュータマニアどもがどのような生活をしていたのかについては、集え! ナイコン野郎どもでも読んで欲しい。

「モトローラの68系CPUが好き…」と書くからには、当然違うグループがいて「インテル/ザイログ系の80系が好き」というグループもいた。このCPUの好き嫌いは、今でいうハード論争の走りのようなものだ。
当時、マイコンで遊んでいたヤツにとってアセンブラでプログラム組めるのはたしなみだった。そしてマニアどもは大きくはモトローラの68系とインテルの80系に分かれ、お互いどっちのCPUがいいと主張していた。
他にもSC/MPだのなんだのと、マイナーなものも山のようにあり、まさに百家争鳴の代物だった。

さてNEWONのメンバーは僕より少し年上の大学生が中心でメンバーの技術レベルも極めて高く、当時はプロとアマチュアのレベル差が小さかった時代だったのもあり、プロより実力があったと言って間違いではなかった。
実際、アマチュア時代のうちに光栄の『ナイトライフ』・『団地妻の誘惑』のFMシリーズへの移植も手がけていたりする(当時、大阪日本橋の近くにあったNEWONの連中のたまり場で見せてもらっていたので間違いない)し、NEWONの最強のアセンブラプログラマは、今はなきSORD社のM5のBASIC-IとBASIC-Gの両方を書いていたりする。(彼がSORD社の規定で使えないテクニックがあり、本当はもっと小さくて高速だったのにと憤慨していたのを良く覚えている)
そして、NEWONの中心メンバーは数年も経たないうちに、データウエストを創業し、FM-TOWNSで名前を馳せ、PCエンジンなどにソフトを供給していくことになるのが…このあたりは余談だろう。

余談ついでに語ると、FMシリーズに『ナイトライフ』を移植したFさんに「こんなソフト、どこに売れてるんだろ?」と聞いたところ「ラブホテルに結構納品されているらしい」と教えてもらった。
また、あくまで自分の記憶だが当時の深夜番組でテレビで取り上げらたのを見たことがある。実は、当時は結構話題になったソフトだったのだ。

寄り道はさておき。
FM-8は日本のPC史上多分初めてpaint命令が実装されたBASICを持つパソコンで、閉領域をペイントすることが出来るようになった。そしてNEWONの連中は、大変なアニメマニアで(特にミンキーモモと太陽の王子ホルスとラナとクラリス)アニメキャラをパソコンに表示するのが夢の一つだったが、ついにFM-8でアニメキャラを描き、それに色塗り出来るようになった
が…ここに一つ問題があった。それは8色しかないカラー。つまり肌色がない
しょうがなく肌が黄色で塗られたミンキーモモだったが、あまりに残念なできばえといわざるを得なかった。

線画のレベルなら、L3で、既にホルスのヒルダを書くところまでは実現していた。ただしL3にはペイントがないうえに、最高解像度の640×200にするとメインメモリが十数キロしかない設計だったため、線画を描くところまでしか出来なかった。

ここにO君というNEWONのメンバーの1人が登場する。
彼はパーツショップの店員をやりながらNEWONのメンバーの1人として、アマチュアプログラミングにいそしんでいた。FM-8は発売された当時、その驚くべき低価格と高性能から、爆発的な人気を呼び、生産が全く間に合わなくて、みんな高嶺の花状態になってしまっていたのだが、O君はパーツショップの店員なのを利用して、手に入れていた。
そして、もちろん、彼も中間色が塗れないのはなんとも残念だと考えていた。

ゼッタイに勘違いされるのに気がついたので書いておく。
「パーツショップ」は、今のDOS/Vパラダイスとかのショップと同じではない。そういうものは当時は「完成品レベル」
もっとプリミティブな、例えは汎用TTL74系だの、RAMそのもの(ボードについていないむき出しのRAM)だのコンデンサだのを売っていたところがパーツショップと呼ばれていた。
もちろんマニアご用達の店だった。

さて、FM-8のBASICには、paintと並び重要で強力な命令としてget@/put@命令が用意されていた。
簡単に説明すると、表示されている絵を配列に取り込むのがget@、配列の絵を画面に書き込むのがput@。つまり画面にある種の絵を表示した後、get@で取り込んで、put@で違う場所に表示する、アニメーションなどのために作られた命令だった(スプライトよりは遙かにダメダメ)。

O君は最初は取り込んだ絵をあちこちにput@するプログラムを組んで、遊んでいたわけだが、そのうち「配列に何が取り込まれているのか?」が気になり始め、調べると配列の中身には取り込んだデータの幅と高さ、そして取り込まれたグラフィックデータが入っていることが分かった
O君は、配列の中身をput@が扱える一定のフォーマットで組み立てれば、get@で画像を取り込まなくても、自由にデータが書き込めるのではないかと気がつき、試したところ、ズバリその通りだった。
O君はとても面白がり、配列パターンのビットパターンを”10101010″なんて、様々なパターンで埋め、それをput@して遊んでいるうちに隣り合った色の組み合わせで中間色に見えるのに気がついた。
つまりO君は「タイルで中間色が表現できる」のを発見したのだ。
そして、ここで、O君の頭の中に本当に凄いことが閃いた。

  1. <何かの色>でアニメキャラの肌に当たるところペイントする。
  2. get@で画像を取り込み、配列内の<何かの色>をタイルパターンに置き換える。
  3. put@で同じ位置に置き換えた配列を書き込む
  4. すると<何かの色>がタイルパターンに置き換えられ、中間色になる!

これで、原色でなく肌色でペイントすることが出来る!

O君は、即時BASICでプログラムを書き、動作を確認した。
ミンキーモモの肌の色は、今では黄色ではなく、まあまあ肌色だった。

確か初期の肌色はRYだったはず。
絵の具で肌色を作るとき、赤と黄色を混ぜるから、それで出来るだろうという、加算色と減算色の違いが分かっていない恐ろしい理屈づけだが、結果は正しかった。

そして、このとき、前述した置き換えられる<何かの色>は青になっていた
なぜ青なのか?
理由は簡単だ。NEWONの連中は特撮好きでもあったために、合成をするといえばブルーバック、だから青だ!
…という、極めて単純な理由で決まっていた。

この最初期のクロマキーペイントを、Fさんが京都の寺町にあった二宮無線の4Fのパソコンコーナーで、このget@/put@の逸話を話しながら、仲間のコンピュータクラブの連中に見せてくれたときは恐ろしく遅かった。
それも当たり前でALL BASICで書かれていたのだから遅いに決まっている。しかも肌色を塗ることしか考えていなかったのでパターンは固定だったし、プログラム的にも最初の一回、肌色が置き換えられるだけのまさにテスト版って代物だった(だから初期のクロマキーデータは肌色以外は全て原色であったため表現力がなかった)。
でも、中間色が出るのは衝撃的なテクニックだった。僕らは夢中になった。
このとき、FさんはFM-8のサブシステム(グラフィックのためのシステム)の解析を進めていて、1ヶ月ほどでアセンブラに置き換えられるよ! と嬉しそうに断言していた。実際にその通りになって、クロマキーは十分に高速化され、また使いやすくなった。
幸いなことにFM-8にはgcursorというお絵かきのためにあるような命令もあり、簡単にお絵かきツールを作ることができたので、このクロマキーペイントはNEWON製のお絵かきツールとセットになっていた。
これでアニメのキャラを描くのは途方もなく面白かった、クラブの僕とMの二人は、アニメキャラを描くのにハマりにハマり、ツールそのものを改造しまくって性能を上げると同時に、ラップスキャンなどのスキャンのテクニック、ツールの改良、クロマキーテクニックを市松に拡張し、飽きたらず、さらに複雑な3x2の6色でのパターンまで作れるようにした。

「ラップスキャン」なんて意味が分からないだろうといわれたので。
ラップスキャンとは「ラップに線画をマジックでトレスし、そのラップを画面に貼ってなぞっていく手法」。ラップにいたるまでに結構試行錯誤があったのだが、それはめんどくさいので無視w

さらにこのアニメキャラを連続でプレイ出来る様にし、数十枚のアニメキャラが次々と表示されるデモなんか一生懸命作った。
ここまででクロマキーのシステムとしては完成したといっていい。

クロマキーとはクロマ・キー、つまり色彩キーで、ある特定のキーとなる色を透明色と扱うことで合成に使う技法のこと。ついでに書くと、どうしてブルーなのかというと、肌色と補色関係にあるのが青とか緑だからだ。

これが、僕が知っているタイルパターンによる中間色が発見された物語だ。

これは間違いなく本当の話だが「一番最初なのか?」と言われると僕には分からない。
当たり前だが、これは2011年から見て、30年前の1981年の話で、当時、誰が最初に中間色を発見したのかなんてわかるわけもない。もしかしたら、どっかのコンピュータクラブのヤツが並行して発見してた可能性はまるで否定出来ない。
ただ、フルカラーグラフィックスを持ち、get@/put@を持った…言い換えると、タイリングによる中間色を作る時に必要だった要素を持っていたパソコンはFM-8が最初で、これより前にはなかったので、タイリングによる中間色が発見された物語としては、本当の最初の一つなのは間違いない。
そして、僕は顔が青から肌色になっていたラナちゃん(未来少年コナンのヒロイン)と、ミンキーモモを見たときのインパクトは多分一生忘れないと思うのだ。

LinkedIn にシェア
Pocket

7件のコメント

  • AGENT: Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 6.0; Trident/4.0; GTB5; SLCC1; .NET CLR 2.0.50727; Media Center PC 5.0; .NET CLR 1.1.4322; .NET CLR 3.5.30729; .NET CLR 3.0.30729; OfficeLiveConnector.1.5; OfficeLivePatch.1.3)
    カラーの並び順が BRG になっているのが不思議だったのですが、そのような理由からですか。知りませんでした。
    「ラップスキャン」なんて、今の人には分かりませんよ(笑)
    解説が必要でしょう。

  • AGENT: Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 6.0; Trident/4.0; GTB6.6; SLCC1; .NET CLR 2.0.50727; Media Center PC 5.0; .NET CLR 3.5.30729; .NET CLR 3.0.30729; OfficeLiveConnector.1.5; OfficeLivePatch.1.3; .NET4.0C)
    当時小学生だった私にはわからない話のオンパレードなのですが、マイコンマニアたちの当時の熱狂ぶりというか夢中になっていた様は十分に伝わります。
    中間色ができる事がわかった時の喜びは並大抵ではなかったでしょうね。読んでいてこちらまで夢中になりました。技術にも歴史あり、ですね。

  • AGENT: KDDI-SA3D UP.Browser/6.2_7.2.7.1.K.1.5.1.120 (GUI) MMP/2.0
    8色時代のRGBの説明文がわかりやすいので感心しきりです。
    あの当時のカラーコードの説明は兎に角
    「そういう並びだから暗記で覚えろ」
    と言う物でしたから…
    その辺りは今も変わっていないですかね?(笑)
    グリーンディスプレイでブラックオニキスの扉を開く順番(カラーコード順)なんて何度泣きそうになった事やら(笑)

  • AGENT: Mozilla/5.0 (Windows; U; Windows NT 6.1; en-US) AppleWebKit/534.10 (KHTML, like Gecko) Chrome/8.0.552.224 Safari/534.10
    2日ほど風邪でほとんどなんも出来ませんでしたが、一応復活w
    >> 沖野かもめ 様
    グリーンディスプレイでオニキスは厳しいですねw
    >> 家褒め名人 様
    当時は本当に夢中になったものでしたよ。
    ちなみに11月にPC8801が発売されるのですが、そのときタイリングという名前で中間色が搭載されており、我々はパクられた! と騒いだものでしたw

  • AGENT: Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 5.1; Trident/4.0; .NET CLR 2.0.50727; .NET CLR 3.0.4506.2152; .NET CLR 3.5.30729)
    タイルは確かに並行的に発見されていた可能性があるけれど、AppleIIやPC-6001の色にじみで多色化する方法を発見した人は本当にすごいと思う。

  • AGENT: Mozilla/5.0 (Windows; U; Windows NT 6.1; en-US) AppleWebKit/534.10 (KHTML, like Gecko) Chrome/8.0.552.224 Safari/534.10
    APPLEIIは誰が発見したかは明白でウォズニアクです。色のにじみ…とは少し違いますが、意図的に信号を利用してカラーコントロールをしています。
    PC-6001のにじみカラーについては初期から知られていました。というか、当時非常にあたりまえにあった系列のラインのデモを作ると「必ずにじみでカラーが出る」ので、それを見れば誰でもわかったんです。
    おっそろしくデバイス依存な上に専用モニタに繋ぐとダメって問題のある技法でしたがw

  • AGENT: KDDI-SA3D UP.Browser/6.2_7.2.7.1.K.1.5.1.120 (GUI) MMP/2.0
    再度失礼します。
    グリーンディスプレイとカセットのロード時間そしてシンタックスエラーは3大オチだと思います(笑)
    実家の奥よりポプコムやら雑誌の切り抜きが多数…見事にこの記事の辺りで思わず苦笑しました。
    読者投稿のCGプログラムは「うる星やつら」ばかりで…本当に8色の限界を超えていますね(苦笑)

コメントは現在停止中です。