Deprecated: The each() function is deprecated. This message will be suppressed on further calls in /home/zhenxiangba/zhenxiangba.com/public_html/phproxy-improved-master/index.php on line 456
[go: Go Back, main page]

10/29 祝・清3ZのDirect3D本発売!


 ついにというかなんというか、半年かけて書いたDirect3Dの本が完成した。

 そんでもって、嬉しさのあまり、ITLのいつものメンバーを招集し、一大祝賀会を開催したおれであった。

 思えばここまでくるのに紆余曲折、いろんなことがあったものだ。

 まず、そもそもなんでこの本を書くことになったのか。

 そう、思い起こせば七ヶ月と少し前。今年の寒い寒いバレンタインがすぎた二月の末頃だった。
 おれは相変わらずこのページで目茶苦茶やっていた。いや、内容は今もヒドいがいまよりずっと酷かったような気もする。

 そんなとき、なぜかそのダメ人間ぶりに感銘を受けた(のかどうかは知らないが)人からやってきた一通の電子メールが、すべてのはじまりだった。


    こんにちわ。清3Zさんのページみてます。
    私はS社で編集をやっている者です。


    [中略]


    お暇なら、今度いっしょに本つくりましょう。
    清3Zさんが自画自賛できるような奴を(笑)


 このようにものすごく、ざっくばらんなメールだったのだが、本=大金という方程式をその行間に見出したおれは、即座にリプライした。

 もともと、ライターという謎の稼業に身を投じてはみたものの、原稿料が安いうえに仕事が少なく、日々の生活に困窮するほどド貧乏だったこのおれに、久久にやってきた千載一隅のチャンスだったのだ。

 思えばその月はラッキーだった。だって、某DirectXの翻訳の仕事は来るし(史上最安値での取り引きだったが)、某専門学校からも話が来るし、たとえalty大先生に「騙されてんじゃない?」と言われようとも結果的にはラッキーな月だった。といえるだろう(なにしろそれ以来、本の話はおろか、雑誌の原稿依頼すら来ていないのだから/(笑えん))
 そんなこんなではりきって企画書を書いてみた。この本は当初Direct3D ゲームプログラミング実戦講座という名前だったのだが、その後、いろいろ自問自答するなどしてその名称はやめた。
 ついでに言うと、国後なんかは、実はもともとその本のための企画だったのだが、大風呂敷を広げすぎて玉砕するに至っている。

 そんなこんなで結局、四月からの新生活の影響などで、本当は7月に発売する予定だったのが、延び延びに延び、最終的になんとか10月中に発売できることになって本当によかった。


 戦略的に言うと、まことにやはり運がよかったといわざるを得ない。なぜなら、今年の7月には、あの、Meltdown97が開催された月であり、この月にDirectX3の内容の本を出すっつーことは、アレだ。出した瞬間から時代遅れになる可能性大だったわけだ(無論それを計算していたわけではない)。

 もうひとつ、10月末というのは戦略的な意味がある。なぜか。それはあの、花田秀次大先生と恋塚昭彦大先生による、Inside Windowsの連載が休止になっていたからだ。それまで毎月末日にInsideWindowsがでていたが、今月はそのかわりに本書が刊行されるわけだ。しかもInside Windowsの連載では予告はされたものの掲載はされなかったDrawPrimitive機能のサンプルコードとその解説が、本書に載っているからだ。とすると、あの人気連載の読者をそのままこっちにひっぱることもできるかもしれない。こりゃラッキーである(当然、これも予定していたわけではない)。

 しかし、いまだから言えるけど、執筆当時のおれは書きかけの原稿を編集部に送るたびにビクビクしていた。なんでかっていうと、いままでのおれの仕事というのは、基本的にシカメッ面で物事を語るたぐいのものばかりで、要するにクソつまらん、誰も見向きもしないようなクッダラネェ駄文の執筆ばかりを要請されていたので、俺の身体もキーボードも完全シカメッ面駄文生成仕様に完全にカスタマイズされていたので、それ以外の文章、つまりはこのPrejudiceようなくっだらネェことを連発連射連続生成しつづけるようなハイパーな脳細胞は持ち合わせていなかったのだ。

 いわば、Prejudiceとは、おれなりの口語であり、普段着であり、だからあまり連続連発連射するようなものではなかったのだが、果たしてクライアントはこのPrejudice文法をおれの文体だと信じて依頼してきたわけで、その期待を裏切るわけには行かないとは思いつつ、しかしどうしたもんかなー困ったなぁとも思ったのである。

 だいたい、口語で難しいコトを説明するのは、実は文語で難しいことを説明するよりずっと難しいことなのだ。これはやってみて初めてわかった。さらに、本一冊分(そのときは最低300ページは必要と言われていた)を書き下ろすとなれば、かなりの情報量となり、なおかつそのひとつひとつの内容に矛盾や誤りはできるだけ少なくならなくてはいけないのであり、普段のPrejudiceのように、難しいことは「わからん」とか言えないのであり、そうしたら、おれはじゃあどうすればいいんだということになる。

 そうして、仕方なく、イヤイヤ俺が書き下ろした最初の部分は、本では入門編の第一章(chapter 1)となっている部分である。

 ここでの内容は、「DirectXへの長い道」と題して、Windows95とDirectXが登場するまでの日本のホビイスト達の歴史を描いたものだ。

 ハッキリいって、こんな説明がなくても、本を読む人はまったく困らない。こっちが想定した本を読む人は当然のことながらここで書かれているようなホビイストそのものであり、自分達の歴史をくどくど述べられても仕方のないことなのだ。
 しかし、おれとしてはどうしてもこの章ははずせなかった。なぜなら、この章は、おれのトライアルとでもいうべき挑戦だったからだ。おれは過去、商業誌でこんなフザけた文体で勝負したことが一度もなかった。だから、果たして俺なんかの文章が通用するのかどうか、今一度クライアントに問う必要があったのだ。

 結果は「ノー・プロブレム」だった。おれとしては「ホントに?」と思う部分もあったが、クライアントが求めている文体はこれで間違いないことがわかり、おれは史上空前の極めてナメた文体で最新のプログラム技術を丸一冊書き下ろすという人生のうちで他に例を見ない一大作業にとりかかることになった。

 そして、これはやはり簡単には行かなかった。書いている途中でかなり力が抜けていき、気がつくと自動的にダラダラとクソつまらネェ、やる気のない文章に舞い戻っている原稿を発見するのだ。
 そして同じところを何度も書き直すハメになった。特に入門編は三回以上まるまる原稿を書き直した。ダメ人間揃いのITLの中でも、比較的マシな方であるRAKIというダメ人間に、俺の原稿をイヤんなるほど読ませまくり、なにがわからなくてどこがつまんないのか徹底的に指摘してもらい、プログラムなんかN88BASICとCOBOLくらいしかわからんRAKIに、3Dの基礎が理解できた気になるまで、モルモットとして徹底的に読んでもらった。

 その内容たるや、もうとてもDirect3Dの解説文には見えないものばかりである。


 たとえば、「COMと電波と女子高生」(実際には校正されて「マイティ・マイに見るCOMオブジェクトのインターフェース」に改名されてしまった)に始まるナメた解説例。この項目ではCOM(コンポーネント・オブジェクト・モデル)を説明するのに、変身する女子高生を登場させている。他に、「地球征服のためのフレーム入門」や、「ポリゴンとエロゲーとバーチャファイター」など、およそ関係のない話題までもが本文中に登場する。
 これは息抜き用なのだが、誰のための息抜きかというと、著者であるこのおれのための息抜きなのだった。よってあまり読者のことは考えていない。

 しかしこのイケイケ路線も、やはり佳境に入ると失速する。なぜか、ムズいからだ。Direct3Dが。しかも締め切りはガンガン迫ってくる。本は10月までに出さないと、ローンが払えない。第一、おれはまだImmediate-Modeを鼻歌まじりに説明できるほどDirect3Dを使っていないので、他の部分のように説明はできない。ということで、後半の章はわりとあっさりしている。それでも、他書にはない話題や情報を十分に提供したつもりである(手前味噌ですいません)。

 それでもやはり執筆中も何度か葛藤があった。
 なぜなら、俺の計算では、この本が発売されるまでに既に他社から同様のものが発売されている予定であり、この本はそういう本であぶれた人たちを対象にして、砕けた文体で説明しているつもりだったからだ。だから、タイトルを変更したのは、「どうやら他の本は出ないようだ」と思い始めたからであり、そうなると、この本は多くの人にとってのDirect3D(DirectX5)の最初の一冊となるハズであり(実際にそうなったが)、そのとき、へんなタイトルやへんな文体よりも、オーソドックスなタイトルでオーソドックスな文体のほうが、ある意味で安心感があるのではないかと思ったのである。おれだったら、いくら登場が早くても、へんな本なんか買いたくない。
 しかしこの文体でようやく論を展開できるようになってきたところであり、そんでもってRAKIに読ませてもあまり眠気を誘わなくなる程度には完成されてきたので、それをいきなり捨ててしまうのはもったいない。そこでタイトルだけオーソドックスにすることにした(S社はあまり乗り気ではなかったがゴリ押しした)。真面目な本だと思って立ち読みすると、くっだらねぇ文体になっており、驚いて思わず購入してしまうという寸法だ。名づけて羊の皮を被った狼作戦である。

 それが吉とでるか凶と出るかはいまのところわからないが、こうすると、書名だけでは内容の低俗さがわからず、他人に紹介するとき本性を悟られないというオマケまである。

 いやぁしかし好き放題やったもんだ。ハッキリいって、これほど好き放題ができたのは、おれとしては珍しい。いつもは好き放題やっているつもりでも、どこかに自制が入ってしまうのだが、今回ばかりは100%、自制ナシで好き勝手やらせてもらって、ありがたい限りである。

 しかも、今回は表紙のCGまでおれに書かせてくれるなんてバンバンザイというか、もう感謝の言葉もないです。なんでかっていうと、おれはいつも自分の原稿が載る本の表紙が壊滅的にダッサーイことに悩まされていたので、自分でそれをデザインできるなんてウッヒョーて感じだったのだ。
 しかも、今回は大好きなBQ97まで出演許可を頂いて、表紙にババンと登場させていただいている。これほどの好き放題はもう二度とできないだろう(笑)。
 まぁしかし表紙に不満がないわけではない。最大のものは、文字のグラデーションと「CD-ROM1枚入り」の文字を囲む水色の楕円だ。
 おれの、もともとの案だとグラデはなくて、白一色、CD-ROM一枚付きの部分は英語だった。
 まぁ英語で書くのはいろいろと問題が多いかもしれない(おれ自身、海外の書籍デザインを参考にしたのであまり言えない)のだが、楕円で囲むと雰囲気が台無しだ。
 まぁしかし、この部分は帯で隠れてしまうのでまぁいいとしよう。それに、もともとのおれのデザインより、こっちのほうが落ち着いていい感じである。細かいところはもっと違うのだが、まぁあまり文句を言うのはよくないかもしれない。

 BQ97(神無月リナ)は今回多用させてもらったが、彼女は実にいいキャラクターだ。
 まず、生活感がない(あたりまえだ)。しかし、CGで造られたキャラクターにも関わらず、とてつもない存在感があり、彼女のベースとなったという広末涼子を超える爽やかさと魅力を持っている。そこにこの絵があっても嫌みにならない。心が和む、音楽でいえばシンセサイザーで造られたリラクゼーション音楽のような、そんなキャラクターである。

 その神無月を、どうしても表紙に配置したかったのはワケがある。
 以前、おれがどうしても買えなかった本があるのだ。
 それはVisualBasicでゲームを造る、なんていう内容だったと思うのだが、いろいろなジャンルについて説明してあり、これは使えそうだ、という印象を受けた。しかしその本は表紙が強烈なアニメ絵だった。これはいくらなんでも買えない。エロ本を公然と買い、写真集を公然と買うおれでも、これは恥ずかしくて買えなかった。無論、その手の絵には、強烈な吸引力があるのだが、しかし俺は買えなかった。そして結局そのフラストレーションだけが残ってしまったのである。

 そういう意味で、神無月リナはおれにとっての福音だった。これは一種の復讐なのだ。
 神無月リナには、人に所有欲、購買意欲を起こさせる強烈な吸引力を持ったキャラクターであることは間違いない。しかし、彼女はそれだけではなくて、強烈に背景に「溶ける」のである。透き通るような肌色はサイバーなデザインと親和性があり、そこに彼女がいることが実に自然になる。そして見ていてとても美しい。こんなキャラが欲しかったのである。

 そうしておれの欲しかった、そしてやりたかったことをすべてブチこんだ本ができあがった。
 この、へっぼい売文業者であるこのおれなんかを助けてくださった恋塚大先生や、alty大先生には、もう頭が上がりません。他にもいろんな人にお礼を言いたいけど、それはまた別の機会に・・・・。

 というわけで手前味噌なPrejudiceでした。

 この「Direct3D Programming Guidebook」は(株)翔泳社より今週中には発売の予定です。定価は3,200円です。お金が余ったら買ってね!
 翔泳社の案内はここです。

Contents
    Part1 入門編
      Chapter1 DirectXへの長い道
        Windowsのゲーム事情
        DirectXの特徴
        DirectXを使うための準備
        DirectXを動かしてみる
      Chapter2 DirectXの基礎
        DirectX概論
        Direct3DのためのDirectDraw入門
        DirectDrawの使い方
      Chapter3 3Dプログラミングの考え方
        3Dとはなんだろう?
        3Dグラフィックスに関する進化論的考察
        Direct3D RM入門
      Chapter4 イチからはじめるDirect3Dプログラミング
        Direct3Dプログラミングの実際
        Direct3Dで地球を表示させるには?
      Chapter5 地球征服のためのフレーム入門
        フレームの基本と応用
        地球征服計画第一段階 -地球を回す
        地球征服計画第二段階 -地軸ジャンプ作戦
        地球征服計画第三段階 -地球大移動作戦
        地球征服計画第四段階 -地球をぶっとばす
        地球征服計画最終段階 -キーボードで思うがままに地球を操る
        地球征服計画ネクストジェネレーション -月の光は愛の輝き
      ChapterX モデリングの常識
        Direct3Dとモデラー
        モデリングの常識
        ファイル形式の常識
        コンバータの常識
    Part 2 テクニック編
      Technoque1 メッシュビルダーを使いこなす
        メッシュビルダー爆破司令
        ランドスケープ、それは地表
        プログレッシブ・メッシュ
      Technoque2 テクスチャの貼りかた使い方
        ラップの基本テクニック
        テクスチャ・アニメーション・テクニック
        テクスチャの透明色
        テクスチャの半透明色
      Technoque3 光源を使いこなす
        環境光源 Ambient Light
        有向光源 Directional Light
        スポット光源 Spot Light
        点光源 Point Light
        平行点光源 Parallel Point Light
      Technoque4 影をつくる
        シェーディング・テクニック
      Technoque5 アニメーションの基本テクニック
        データ作成、コンバート、アニメーション
      Technoque6 二次元描画との組み合わせ
        2D&3D描画テクニック
      TechnoqueX 知ってトクするDirect3D RMのTips
        メッシュのひみつ
        フレームの嬉しい機能
        Direct3D RMのちょっといい話
    Part3 Immediate Mode編
      Immediate Mode とはなにか
      Immediate Mode プログラムの流れ
      IMでテクスチャを貼ろう!
      半透明ポリゴン自由自在
      Retained Modeとの融合
    Appendix
      Appendix 1 DirectXとDirect3Dに関する補足
        DirectXコントロールパネル
        DirectXの情報源
      Appendix 2 Direct3Zコード解説
        Direct3Zとはなにか
        Direct3Dの初期化
        Direct3Zを使う場合の初期化方法
        ウィンドウ・モードでの初期化について
        Direct3D RMを初期化する
        画面モード変更とウィンドウ・リサイズ変更に関する問題と手法
        Direct3Zライブラリ・リファレンス
        謝辞
        Direct3Z全ソースリスト
Direct3D
 いわずもがなのMicrosoft Windows95上で動く高速レンダリングエンジンだ。