SSブログ

T2,FDフォーマット,キーボード入力他(月刊ASCII 1992年3月号5) [月刊アスキー廃棄(スクラップ)]

「TBN」からターミネーター2の記事をスクラップする。
ASCII1992(03)d03ターミネーター2_W520.jpg
ASCII1992(03)d03ターミネーター2写真1_W423.jpg
ASCII1992(03)d03ターミネーター2写真2_W520.jpg
ASCII1992(03)d03ターミネーター2写真3_W384.jpg
ASCII1992(03)d04ターミネーター2写真4_W370.jpg
 '91年最大のヒットとなった「ターミネーター2」(以下「T2」)のビデオソフトが、いよいよ3月6日にリリースされる.この作品のソフト化を待望している人は数多いだろう.「T2」の魅力はなんといってもジェームズ・キャメロンのたたみかけるような演出とシュワルツェネッガーのキャラクター性によるところが大きいけれど,本誌読者ならこの作品の特撮に注目していただきたい。「T2」の特撮による画面は,現在,世界最高水準といっても過言ではなく,特にCGによる実写との合成カットの多さ、そのクオリティは他に類を見ない素晴らしいものであるからだ。
 「T2」でCGを担当したのはアメリカのIndustrial Light&Magic社,通称ILMと呼ばれる特撮映像専門のクリエイト集団創設者は「スターウォーズ」を手がけたジョージ・ルーカスだ.ILMは,もともとミニチュアワークや光学合成などを主体とした特撮スタジオであったが,ルーカスはCGの将来性を考え,ユタ州立大学でCGを研究していたエド・キャトマル博士を招き、'78年にCGセクションを設立したのだ。現在,ILMのCGセクションはIRISFarmと呼ばれている。その言葉どおり、シリコングラフィックス社のスーパーコンピュータ,IRIS-4Dシリーズが30台以上も稼動中であるからだ。4Dシリーズのマシンには,それぞれ「スターウォーズ」の登場人物名がニックネームとして付けられているという.
 「T2」で使用されたのはPOWERVision Graphics SuperComputer IRIS-4D/340 VGXと,Personal Graphics Workstation IRIS-4D/25TG.また,一部の画面ではMacintosh上のPhotoshop,Electric Imageなども使用されている.
 「T2」におけるIRISを使用したCG場面は,主として新型ターミネーターT-1000型の変身シーンに使用されている.
 それらのCGシーン制作の指揮を取ったのはILMのビジュアル・エフェクトスーパーバイザーであるデニス・ミューレン.彼は「スターウォーズ」や「ゴーストバスターズ」,「2010」などの特撮を担当したリチャード・エドランドがILMを去った後,特撮部門の責任者として,数多くの作品で特撮監督をつとめた人物である.
 このミューレン率いるILMのCGセクションが,本格的に映画化にかかわったのは'88年の「ウィロー」であった。ミューレンは同作において,動物が人間に変身するシーンをIRISによるCGを使って産みだした。つまり,「T2」で使用されたイメージソースと手法は,すでにこのとき(実験段階であったが)確立されていたのだ。
 さて,このようなCGを実写場面に合成した,変身シーンを使った作品は「ウィロー」や「T2」のほかにも,CMや,またマイケル・ジャクソンのプロモーションビデオ“BlackorWhite"などがある.それらのCGと実写を合成するテクニックを,向こうでは“morfing"(“morphing”と表記している本もある)と呼んでいる.これはmetamorphosis(変身)からきている造語で、ここ半年あまりの間に使われだしたようだ。
 さて,この“morfing”は,前記したIRISを使って行なわれているのだが,最初からビデオを使い,ビデオとして完成されるMTVなどと違い,「T2」などの映画の場合はフィルムにして使用するため,その製作過程は一段階複雑だ。つまり,第一段階はフィルムとして撮影され,その素材をテレシネしてビデオテープにし、その映像信号をデジタル化する段階で,CGによるデジタル映像データを混入し,さらに完成したテープを,もう一度フィルムにトランスレートするのだ。合成して不自然に見えないようにイメージソースを作成するテクニックが必要であることはいうまでもない.
 ちなみに,ビデオ映像をフィルムにする技術は“ネガテレシネ”と呼ばれ,ビデオの映像信号をレーザープリンタに似たテレシネ装置でフィルムに焼き付けていく.この技術は日本でも東通やImagicaによって開発されているが,「T2」のそれは,走査線が多く,肉眼では分からないほど細かいものとなっているため,ほかのフィルム部分との見分けがつかないのだ。
 ところで,Macintoshを使ったシーンはどんなシーンかというと,カースタントなどのシーンでワイヤーが見えているのを消すのに使用されている.通常ワイヤーは空の部分に写っているので,ほかの素材から同じ色の空の画面を取り込んで」コマずつ交換しているのだ。シュワルツェネッガーが,バイクでジャンプするシーンなどがそうだ.
 また,ジョンを追うトレーラーが,橋から水路へとダイブするシーンがあるが,この場面,トレーラーは右から左へと画面ではダイブしているが,これは実はフィルムを逆版にして使用している.画面の前後のつながりを考えているが,これは実はフィルムを逆版にして使用している。画面の前後のつながりを考えて,キャメロン監督が指示したのだが,通常,フィルムを逆版にして使用するとすぐ分かってしまうため、運転席をCGによって見えなくし(ハンドル位置を隠すため),さらに背景の交通標識の文字を入れ替えているのだ。このシーンが唯一逆版と分かるのは,トラック前面のエンブレムが逆になっているからだ(ビデオを入手された方は、ぜひコマ送りなどでチェックしてみるといいだろう).
 今回は「T2」におけるCGについてのみしか触れられなかったが,いずれ機会があれば,そのほかの部分の特撮について書いてみたい。特に核戦争によって,ロサンゼルスが破壊されていくシーンなど,画期的な技術が多く使われているからだ。
 いずれにしても「T2」は'90年代の特撮のバイブル的存在として,その技術,センスなど,多くの研究余地がある作品といえよう。    (きしかわおさむ)

 ターミネーター2ではスパコンが使われていたとは流石ハリウッド映画だ。

「TBN」の「なんでも相談室」をスクラップする。
同じDOSフォーマットなのにどうして?
 IBMPC互換機を使っている友人からデータを3.5インチ2HDのフロッピーディスクでコピーしてもらいました.ところが,ぼくが使っているDynaBookでは、受け取ったフロッピーディスクの内容が読み出せません。DynaBookもIBMPC互換機なのに,IBMPCのフロッピーディスクが読めないのはどういうわけでしょうか.
 IBMPCとの互換性がセールスポイントすが,ントのひとつであるDynaBookでPC互換不思議なことに一般のIBM機とは必ずしもフロッピーディスクの互換性がありません。
 結論からいうと,IBMPCで読み書きできる3.5インチ2HDと,旧型のJ-3100シリーズで読み書きできる3.5インチ2HDでは,フロッピーディスクのフォーマットに互換性がないからです.
 また,DynaBookに限らず,PC-9801をはじめとする国産のパソコンは,IBM PCとは異なるフロッピーディスクフォーマットを採用しています。そのため,国産のMS-DOSパソコンどうしならフロッピーディスクの交換は比較的スムーズですが,IBM PCとのフロッピーディスクの交換で問題が発生することが少なくないようです。
 表1は,国産MS-DOSパソコンで標準的に採用されているフロッピーディスクのフォーマットと,IBM PCや互換機の一般的なフォーマットを比較したものです.
 日本のパソコンとIBM PCで,この表のようなズレが発生した理由は,フロッピーディスクの小型化と大容量化の方向性の違いによるものです。
 ここで,IBM PCと国産パソコンのフロッピーディスクの歴史を簡単に振り返ってみましょう.
 初代IBM PCで利用されていたPC-DOS(MS-DOS)では,5インチ,2D/IDで,320K/160Kフォーマットでした。これは,アンフォーマット時に500K/250Kbytesの容量を持つディスクを40トラック,8セクタ,セクタ当たり512Kbytesとするフォーマットです.
 その後,PC-DOS 2.0で5インチ,360Kフォーマットの2Dディスクをサポートするようになりましたが,これはトラック数とセクタ当たりの容量をそのままにして,トラック当たりのセクタ数を9セクタとしたフォーマットです.この360Kフォーマットは,現在に至るまでIBM PCの5インチフロッピーディスクにおける最も互換性の高いフォーマットとされています.
 そしてアンフォーマット時1.6Mbytesの5インチ2HDのフロッピーディスクが登場したときに,IBM PCは80トラック,15セクタで,セクタ当たり512Kbytesの1.2Mフォーマットを採用しました.このフォーマットは,俗に“2HC”と呼ばれることがあります.
 ところが日本では,初期の5インチ,2D,320Kフォーマットというところまでは同じだったのですが,その後,独自の大容量化に走ります。具体的には,アンフォーマット時1Mbytesの5インチ2DDの登場で、2Dのトラック数を倍にして80トラックとし,記憶容量を2倍にした640Kbytesのフォーマットが誕生しました。
 ただし,360Kフォーマットを倍トラックとした80トラック,9セクタの720Kフォーマットも読み書きできるようにした機種もありますPC-9801をはじめとするほとんどの国産パソコンが,特にマニュアルには記載されていませんが,このフォーマットを読み書きできます.
 さらに,アンフォーマット時1.6Mbytesの5インチ2HDでは,当時の電電公社の提唱により,古い8インチ,2Dのフロッピーディスクドライブが採用していたフォーマット,つまり77トラック,8セクタ,セクタ当たり1024Kbytesという、もうひとつの1.2Mフォーマットが採用されました.やはり正式にマニュアルには記載されていませんが,PC-9801などではIBMの“2HC”フォーマットを読み書きできるようになっています.おそらく,IBMPCも国産パソコンも,搭載しているディスクドライブは物理的には同じで,フロッピーディスクのデバイスドライバのパラメータを変更するだけで対応できるため,メーカーがオマケで付けてくれた機能なのでしょう.
 さて,問題の3.5インチの世界でも,5インチと同じような問題が発生しています。IBM PCは,PS/2でアンフォーマット時1Mbytesの3.5インチ,2DDを標準装備して登場しました.これは,80トラック,9セクタの720Kフォーマットで,国産パソコンが非公式でサポートする5/3.5インチ,2DDのフォーマットと同じです.また,ドライブ自体も,5インチ2DDとの互換性が考慮され,同じインターフェイスに接続できます.
 次に,4倍(2HD)の3.5インチフロッピーディスクドライブがサポートされるようになったときに,PS/2はアンフォーマット時2Mbytesのドライブを選択しました.このドライブは3.5インチ2DDのセク夕数を倍の18セクタとしたもので,フォーマット後の容量が1.44Mbytesになります.ところが,日本では,基本的に3.5インチディスクは同容量の5インチディスクのフォーマットに合わせるという方針が主流になりました。つまり,2DDは640Kbytesを標準とし,2HDもアンフォーマット時に1.6Mbytesで,5インチと同じ77トラックのフォーマットを採用するパソコンがほとんどです.
 DynaBookも,日本の1.2Mbytesフォーマットが採用されています。たぶん,メーカーがIBMPCとの互換性よりも,日本国内でのデータ交換の便宜を考慮したためでしょう.
 残念なことに3.5インチ2HDの場合,1.2Mbytesと1.4Mbytesのドライブでは回転数など,物理的な規格が異なります.したがって,5インチ2HDのときのように,デバイスドライバのパラメータを変更するだけでは1.2M対応のドライブで1.44Mフォーマットのディスクを読み書きすることはできません.ですから,どうしてもデータが必要であれば,IBM,国産に共通の2DD/720Kフォーマットを介してコピーしなおしてもらうのが確実でしょう.
 もっとも,最近のJ-3100やAX,そしてPS/55などのIBMPC系のパソコンでも,国内向けに販売されている製品に,IBMフォーマットに加えて国内フォーマットの3.5インチフロッピーも読み書きできるドライブを搭載している製品を見かけるようになりました.このドライブを搭載したパソコンでは,720K,1.2M,1.44Mの3種類のフォーマットの読み書きが可能ということになります.また,今のところ,PC-9801で1.44Mフォーマットをサポートする動きはないようですが,サードパーティから1.44Mフォーマットの読み書きができる増設ドライブが発売されています.
 ちなみに,最近,IBMが自社製品にアンフォーマット時4Mbytesの容量を持つ3.5インチフロッピーディスクを採用しました。これは,セクタ数をさらに倍にして36セクタとし,フォーマット後の容量が2.88Mbytesというフォーマットです。3.5インチに1.2Mフォーマットを採用している国産パソコンメーカーがどう対応するのか分かりませんが,興味のあるところですね.    (安田幸弘)


ASCII1992(03)d05FDフォーマット表1_W520.jpg
 FDのフォーマットの種類の多さには辟易していた。主に5インチフロッピーを使っていたので98からIBM PCへのデータ移行はあきらめていた。


ダイヤモンドカーソルを使いたい!
IBM PC/AT互換機を使っていますが,このマシンのキーボード(101キー)はTabキーの下にCapsキーがあり,またCtrlキーが左下の隅に位置しているため,ダイヤモンドカーソル移動が使いにくくて困っています。たとえばCtrlキーとCapsキーを入れ替えるようなことはできないでしょうか?
 一般にIBMPC系のパソコンのキーボードは,84型キーボード,101型キーボードというように,キートップの数に応じて名前が付けられています(図1).IBMPC,PC/XT,PC/ATなどで使われている83/84型キーボードでは,CtrlキーはTabキーの下にあるので,かつてのワープロソフト“WordStar”に採用されてその後の多くのアプリケーションに影響を与えたダイヤモンドカーソル(Ctrl+S/E/D/Xによるカーソル移動)が楽に使えました.一方,PC/AT,PS/2で使われている101/102型キーボードでは,Ctrlキーはキーボードの隅に追いやられてしまい,代わりにCapsキーがTabキーの下に配置されています.また最近普及しているDOS/Vマシンの標準日本語キーボード,106型キーボードも,JIS配列であるという違いはあるものの,CtrlとCapsキーが同じような場所に配置されています.そのため,これまでPC-9801しか使ったことがなく,初めてDOS/Vマシンを使い始めた熟練ユーザ一の多くが,キーボードのCtrlキーの位置で不便を感じているのではないかと思います.ここで,幸いなことにIBM PC系のマシンでは,BIOSレベルでキー配置を変更するための機構が用意されています.そのため,キー配列の変更は,小さなプログラムを作ることによって簡単に実現できます.が,その方法を説明する前に,まずIBMPC系マシンのキーボード入力の仕組みを見てみることにしましょう.


ASCII1992(03)d06キーボード入力図1_W520.jpg
キーボード入力の流れ
 IBM PCのキーボードは,ユーザーがキーを押したり離したりすると,そのキーに対応するスキャンコードというデータをコンピュータ本体に送信します。スキャンコードは基本的に1byteのデータとなっており,キ一が押されたときはそのスキャンコードが,キーが離されたときはそのキーのスキャンコードに80hを加えた値(上位1ビットがセットされると考えてもよい)が送信されます。
 キーボードからの送信データスキャンコード)は,マシンのマザーボード上にあるキーボード・コントローラと呼ばれる回路が受け取ります。キーボード・コントローラがデータを受け取ると,ハードウェア割り込みInt09hを発生させます。するとCPUはそれまでのプログラムの実行を中断して,キーボードのハードウェア割り込みハンドラへ処理を移します.このInt 09hの割り込みハンドラは,アドレスF000:0000以降のROMBIOS内に用意されています.
 さて,Int 09hハンドラはキーボード・コントローラからスキャンコードを入力し,それがシフトキー(Caps,Ctrl,Shift,Alt)であれば,その状態を記憶させるデータエリア(0040:0017から2bytes)を更新します。もし,スキャンコードがシフトキーのものでなければ,それをシフトキーの状態に応じてASCIIコードに変換します.そして,スキャンコードとASCIIコードを2つ1組のデータとしてキーボードバッファ(0040:001Ehからの32bytes)に記録します。
 最後に,ハードウェア割り込みを終了させて,CPUは元の処理に戻ります.
 さてキーボードバッファに蓄えられたキーの入力データは,キーボードBIOS(Int16h)を呼び出すことによって,取り出すことができます.この場合も、入力データは,スキャンコードとASCIIコードのペアで取り出されます。キーボードBIOSはMS-DOSが呼び出すこともあれば,アプリケーションが直接呼び出すこともあります(図2).


ASCII1992(03)d07キーボード入力図2_W520.jpg
ROM BIOSのフッキング
 さて,以上が大まかなキー入力の処理の流れですが,ひとつだけ大切なことを述べていませんでした.それはこれから述べるROM BIOSのフック・サービスです。キーボードのハードウェア割り込みが発生すると割り込みハンドラ(Int 09h)に処理が移りますが,割り込みハンドラはスキャンコードをASCIIコードに変換する前に,AHレジスタに4Fhを,ALレジスタにスキャンコードを入れてInt 15hを発行します。通常の場合,このInt 15hハンドラはキャリーフラグをセットして戻るだけです.もしキャリーフラグがリセットされているとInt 09hハンドラはキー入力の処理をそこで中止します.さて,
 この機構を利用して,Int 15hをユザープログラムがフックし,AH=4Fhの場合は,ALのスキャンコードを適当に変換させれば,キーボードのキー配列をソフトウェア的に自由に変更することが可能になります.たとえば,CtrlキーとCapsキーを入れ替えたい場合は,Int 15hハンドラを作成して,Int 15hをトラップすればいいわけです.ところで,101型キーボードなどでは,CtrlキーやAltキーなどのキーが左右に2つ付いています。こうした2つのキートップを持つキー入力については,片方については,E0hに続いてそのキーのスキャンコードが送られる,つまり2回スキャンコードが送られるようになっているので,それぞれのキー入力が区別できるようになっています。したがって,前回に送られたスキャンコードがE0hのときはスキャンコードを入れ替えずにそのまま素通りさせれば右側のCtrlキーを判別できるわけです。こうした処理を含めて,以上のInt 15hのフックを行なう常駐プログラムのソースリスト“CTRLCAPS.ASM"(リスト1)をリストページに掲載しましたので,MASMなどのアセンブラを持っている人はお試しください。
 なお,最後に注意してほしいのは,Int 15hをトラップしてキー配列を入れ替えても,MS-Windowsを起動すると元のキー配列に戻ってしまうことです(ただし,MS-WindowsからMS-DOSアプリケーションを起動した場合は有効)。これはMS-Windowsが独自のInt 09hハンドラを持っているためです.MS-Windows上でキ一配列を変更するには,専用の開発キットを使って独自のキーボードドライバを作成しなければなりませんが,これは一般ユーザーにはほとんど無理なことです.どうしてもキー配列を変えたければ,キーボードを分解して配線を変えるしかないでしょう.多くのキーボードはスイッチが基板に直に付いているため、基板のパターンをカットしてジャンパ線でつなぐなどの作業が必要となりますが,決して難しいことではありませんので,ハードに自信のある方は挑戦してみるのも面白いでしょう。    (笹川)

* ただし,スキャンコードがファンクションキーやHome,Endなどの非ASCII文字である場合は,ASCIIコードの代わりに0が,スキャンコードの代わりにシフトキーの状態に応じた特別な値がセットされます.詳しくは参考文献を参照してください.
参考文献:Peter Norton, Richard Wilton著,『THEIBMPC&PS/2プログラマーズガイド』,翔泳社
IBM PCではやったことはないが、PC-9801のMS-DOSでのプログラミングではMS-DOSを如何にバイパスするかが腕の見せ所だった。特にキー入力については「MS-DOSよお前は引っ込んでろ」という感じでプログラミングしていた。

「なないろのディスプレイ」という漫画をスクラップする。
ASCII1992(03)d08なないろ_W520.jpg

nice!(0)  コメント(0) 
共通テーマ:パソコン・インターネット