================================================= もっと便利に,もっと楽しく♪ FM TOWNSフリーソフトウェア お気楽極楽大作戦 << 最終回 >> by High-Five ================================================= '93年9月号にOh!FM TOWNS誌上で突然始まったこのコーナーは,著者の海外移住 (笑)のため, '95年5月号で幕を閉じました。大学での実験や論文作成,スーパー ファミコンの甘い誘惑,彼女との苦い不仲(笑),苦戦続きの就職活動,といった幾 多の荒波に揉まれながらも今まで連載を続けることができたのは,一重に読者のみな さんの応援と,編集部のスタッフ諸氏の底知れぬ忍耐力のおかげです。今まで本当に ありがとうございました。 最終回は,要望の多かったEASTRAYを使ってのレイトレーシング入門を取り上げま したが,おかげさまで好評を得ることができました。編集部スタッフから,今後,レ イトレーシングを始めようとする方が5月号を手に入れられるかどうかわからないこ ともあり,こうしてテキストの形で配布しておくのはどうかという提案がありました ので,今回,こうして『天晴CD Vol.2』に収録させていただくことになりました。 本テキストの著作権は私High-Fiveにありますが,EASTRAY入門のためにご覧になり たい方がおられるところ(草の根ネットなど)での再配布は,無許可でしていただい てかまいません。 雑誌に載せた記事をテキストに落とした関係上,(著作権の関係などもあって)写 真が添付されていませんし,一部バージョンなどの話がちぐはぐになるところなどあ るかもしれませんが,それはご了承ください。 ============================================================================ TOWNSでCGを作ろう ============================================================================ コンピュータグラフィック(略してCG)というと,コンピュータによって作られ た,または加工された映像全般を示しますが,描き方,作り方によっていくつかの種 類に分けることができます。 たとえば,1つは,紙やキャンバスに鉛筆や筆で絵を描くのと同じ感覚で,マウス やタブレットなどの入力装置を用い,フリーハンドで線を引いたり図形を塗ったりし ていくもの(ペイント系)。また,同じ線や図形を描くのでも,それらの一つひとつ を部品と見なして,描いた手順込みで記録しておき,各部品について後で個別に編集 や縮小拡大まで自由にできるもの(ドロー系)。また,イメージスキャナやビデオデ ジタイザによって写真やビデオ映像を取り込み,切り貼ったり,ぼかしなどのエフェ クトをかけたりするもの(レタッチ系)。そして,もう1つは,表示したい物体の座 標や形状などを幾何学的なデータとして指定,その後,特定の処理をすることによっ て絵を計算するタイプのもので,ニュース番組のオープニングの「いかにもCG」な 映像や,教育番組などでよく見かけるらせん状の遺伝子構造を表現したものなどは, ほとんどこの手法によって作られたものです。最近は,こういった手法の応用として, 「ターミネーター2」や「ジュラシックパーク」などの映画で,架空の映像にリアリ ティをもたせるためにCGの技術が活用されていることが有名になりましたが,それ 以外にも,身近なところでいえば,たとえばインスタントラーメンのCMのいかにも 美味しそうな湯気などにもCGが利用されることがあるそうです。 このように,物体の形状や位置を3次元的に数値で指定,処理するし,それをもと に計算によって導き出されたグラフィックのことを,とくに3DCG(3次元コンピ ュータグラフィック)と呼びます。今回ご紹介するEASTRAYは,この3DCGを作成 するための「レイトレーシングツール」と呼ばれるツールの1つで,絵筆やマウスで 絵を描くことが不得意な人でも,物体の数値データを入力するだけで,リアリティあ ふれる絵を作り出すことができる(かもしれない?)というものです。 ============================================================================ なぜ計算で絵が描けるのか? ============================================================================ 3DCGは計算で絵を作成する……とはいっても,どうして数字だけで絵が描ける のか,不思議に思われる方も多いと思います。そこで,ここではコンピュータがどう やって物体の数値データから絵を作成するのかを,駆け足で説明しましょう。 まず,そうですね,ごく普通のカメラで写真を撮るときの様子を思い浮かべてくだ さい。カメラで人の姿や風景を撮影することができるのは,光源(太陽や蛍光灯など, 光を発生するもの)から発生した光がさまざまな物体に反射して,その一部がレンズ に入り,カメラ内のフィルムを感光させるからです。この現象をコンピュータでシミ ュレートし,光源から発生した光がいろいろな物体の表面で反射,屈折することによ って色が変化する様子を計算して,その中からカメラ内に入ってくる光の色をドット 単位で並べていけば,理論上は写真と同じCGを作ることができます。この方法はフ ォトントレーシングと呼ばれています。フォトンは「光子」のことですから,光子の 軌跡を追跡する手法,ということになります。しかし,現実には光源はほぼ無数とい える方向に光子を飛ばしており,そのすべての軌跡をコンピュータで計算するのは事 実上不可能といえます。また,計算をカメラ内に入ってくる光だけに限定することが できれば,かなりの時間短縮になるのですが,カメラ内に入るかどうかは,光源から 発した光子の軌跡を一つひとつ最後まで計算してみないことにはわからないので,結 局すべての光子の軌跡を計算する必要があります。 そこで,逆の発想をして,光源からレンズに入ってくる光を計算するのではなく, フィルム上の各点からレンズに向けて,光があるかないか,あるならどんな光が届い ているかを逆にたどっていけば,実際にフィルムに届く光だけを計算することができ て非常に効率的です。今回はカメラを例に取りましたが,このように,視点と,視野 (スクリーン)を想定して,視野に入る光の具合を計算で求める方法をレイトレーシ ングといいます。 今回紹介するEASTRAYでも,このレイトレーシングの技法によりCGを作成してい ます。EASTRAYでは,ディスプレイのこちら側に視点があるとし,想定されたスクリ ーンの左上の点から,1ピクセル(画素)ごとに光の線を逆にたどっていき,そのピ クセルがどんな色になるかを計算していきます。そして,これをすべてのピクセルに 対して繰り返すことによりCGを完成させます。ですから,たとえば320×240の解像 度をもつ画像ファイルを作成するには,計76800回分,光の軌跡計算をしなければな りません。フォトントレーシングに比べれば効率的とはいえ,これは大変な数字です。 そのため,数値演算プロセッサを積んでいない386マシンなどでは,1枚のグラフィ ックデータを作成するのにも大変な時間(数時間から数十時間,場合によってはそれ 以上)がかかってしまいます。 この,時間がかかる,ということが,多くの方がレイトレーシングから尻込みする 大きな要因となってきたと思いますが,最近の白TOWNSではマシンパワーも格段に上 がり,ずいぶん短い時間で魅力的なCGが得られるようになりました。これをお読み の方も,ぜひレイトレーシングにチャレンジしてみていただきたいと思います。 ============================================================================ EASTRAYをインストールしよう! ============================================================================ (注:この項は,本誌に掲載されたまま収録していますが,もちろん,『天晴CD』 では,ここに書かれたような作業は必要ありません。ただ,本テキストがネット 上などで再配布された場合のために,後々でも入手し得るフリコレをベースとし たインストールのしかたを残して置くことにします) さて,それでは実際にEASTRAYをインストールしてみましょう。EASTRAYは今まで本 誌付録の『太っ腹FD』や富士通発行のフリーソフトウェアコレクションに何度か収録 されてきましたが,ここでは,フリコレ8に収録されているVersion 1.97をもとに紹 介します(注:『天晴CD Vol.2』に収録されているEASTRAYはVersion 1.98になって います)。 まず,動作環境ですが,以下のようになっています。 【対応機種】FM TOWNSシリーズ全機種 【対応OS】TownsOS V2.1L10以上 【必要メモリ】4Mバイト以上 【オプション】数値演算プロセッサ推奨 最後の数値演算プロセッサは,「推奨」とはなっていますが,本格的にEASTRAYを 使い込みたいなら「必須」のオプションといっても過言ではありません(なにしろ, 1枚のCGを作るだけで数時間かかるところを,数値演算プロセッサがあれば,場合 によると数分で終わってしまうのですから)。数値演算プロセッサは,386機につい ては「80387数値演算プロセッサ」というオプションカードとして,また486SX系の機 種では,「オーバードライブカード」というこれもやはりオプションカードの形態で 別売されています(U*シリーズは除く)。しかし,あなたのお持ちの機種のCPUが 486DX,486DX2,Pentiumプロセッサと呼ばれるものでしたら,そのCPU内にすでに数 値演算プロセッサ機能が内蔵されていますので,気にする必要はありません。 動作条件の確認が済んだら,次はフリコレ8を起動してヘルパーのアイテムをダブ ルクリックしてください。検索条件に「TownsOS」「ツール」「静止画」を選択する と,「Ray-tracing Renderer EASTRAY Version 1.97」と表示されるので,クリック して説明ファイルを表示させます。次に,メニューバーに表示されている「インスト ール」をクリックします。後は画面の指示に従ってインストールするディレクトリを 入力してください。 なお,EASTRAYには,さらに, +−PROGRAM +−DEMO +−SAMPLE の3つのサブディレクトリがあり,ヘルパーでインストールしている最中に,これら のサブディレクトリについてもインストールするかどうか聞かれます。この中で「DE MO」「SAMPLE」ディレクトリについてはとくにインストールする必要はありません。 しかし,「PROGRAM」ディレクトリにはEASTRAYの本体プログラムが収録されているの で,必ず必要なプログラムをインストールしてください。「PROGRAM」ディレクトリ は,さらに +−PROGRAM +−TOWNS386 +−TOWNS387 +−EXTEND386 +−EXTEND387 というサブディレクトリに分かれています。この内,数値演算プロセッサを装備して いない機種(386,486SX)を使っている方は「TOWNS386」,数値演算プロセッサを装 備している機種(386+387,486SX+ODP,486DX,80486DX2,Pentiumプロセッサなど) は「TOWNS387」というディレクトリをコピーしてください。これ以外の「EXTEND386」 「EXTEND387」といったディレクトリはTOWNS以外の機種でDOS-Extenderを使用してレ イトレーシングを行うためのプログラムを収めたものですので,TOWNSユーザーはイ ンストールする必要はありません。 さて,インストールが無事終わったら,次にアイテム登録をします。先ほどインス トールした「TOWNS386」もしくは「TOWNS387」ディレクトリ内にある「SUPPORT.EXP」 を「アプリケーション,TownsOS,ディレクトリ移動なし」でアイテム登録しておい てください。「パラメータ」は必要ありません。 なお,同じディレクトリにSUPPORT.ICNというファイルが入っているので,アイコ ン編集などを使って登録するとよいでしょう。 ============================================================================ ともかくCGを作ってみる ============================================================================ では,基本的な例として,とりあえずレトレーシングで球体を表示してみましょう。 EASTRAYでCGを作るには,最低限,物体の座標や形状を記述した.wldファイル, 物体の色を指定した.colファイル,カメラの位置と方向などを指定した.bryファイル の3つのファイルが必要です。 以下に,それぞれのファイルの作り方を説明していきます。 <<<< 1 物体の座標・形状,光源を指定する >>>> EASTRAYではテキストエディタが標準で装備されています。まずはメニューバーア イテムの「ファイル」から「新規作成」を選んでテキストウィンドウを開いてくださ い。ここで,物体の座標と形状を入力します。物体を記述するにはobjコマンドを用 います。objコマンドの書式は基本的に, obj[ 物体の種類 色番号(色名) 符号(1 OR -1) x座標 y座標 z座標 パラメータ ; ] のようになっています(ただし,ポリゴンを除く)。 x,y,z座標は,設定する物体の中心座標を右手座標系で指定します。右手座標系 というのは正面をz軸の正の方向とすると,x軸は左方向,y軸は上方向となるような 座標系のことをいいます。 とりあえず,球体の物体の種類は2で,色はCOL0という色を使うことにします (色については,色ファイルで定義します)。また,符号は1を指定します。 物体の座標値は,z軸(奥行き)方向にちょっと離れた感じにして, x=0 ,y=0,z=100 と指定します。パラメータは球の場合半径を指定することになっているので,30とし ます。なお,EASTRAYでは長さの単位はとくに決まっていないので,自分で勝手にcm 単位であるとかm単位であるとか決めていただいてけっこうです。 次に,光源を設定します。すべての物質は,光源からの光を反射して初めて見える ようになるわけですから,光源は必ず設定する必要があります。 光源の位置について,普段,私たちは写真を撮影するとき,太陽を背に置いて取り ますが,これは太陽の光が被写体によく反射してカメラのレンズ内によく入ってくる からです。レイトレでも同じことで,光源は視点の後方にあったほうが物体がよく光 を反射して明るく見えます(もちろん,わざと逆光にして陰影の深い印象にするテク ニックもあると思いますが,それはそれ,ということで)。そこで,今回のサンプル は,右斜め後ろ45度の上方向に無限遠光源を置くことにします。 無限遠光源というのは太陽のように非常に離れた場所に光源があって,光がすべて 平行に届く光源のことをいいます。光源の設定はe_lightコマンドを使います。e_lightコマンドの基本的な書式は, e_light [ x座標 y座標 z座標 R(0〜1) G(0〜1) B(0〜1) 光源の大きさ 光の集まり方 ; ] のとおりです。 x,y,z座標は無限遠光源のあるベクトル,R,G,Bはそれぞれ光源が発する赤,緑, 青の光の強さを0から1の範囲で指定したもの,光源の大きさは無限遠光源から出た 光が反射せずに直接カメラに入ってきた場合,無限遠光源の大きさが視点から見てど れくらいの度数になるかで指定します。光の集まり方は無限遠光源でどのくらい中心 に光が集まっているかを指定します。以上の条件をもとにobjコマンドを実際に記述 するとこのテキストと同じディレクトリに収録されているLIST01.TXTのようになりま す。 物体と光源の設定が終わったら,メニューバーアイテムの「保存」を選んでくださ い。ファイルセレクタが表示され,保存するファイル名を聞いて来るので「SAMP1.WL D」と指定してファイルを保存します。これで.wldファイルの作成は完了です。 <<<< 2 色を指定する >>>> 次に,物体の色を指定する.colファイルを作成します。 .wldファイルを作成したときと同じ要領でプルダウンメニューの「ファイル」から 「新規作成」を選んでください。次に色を指定するcolorコマンドを打ち込みます。 以下にcolorコマンドの基本書式を示します。 color [ 色名 物体色のR(0〜1) G(0〜1) B(0〜1) 反射率のR(0〜1) G(0〜1) B(0〜1) 透過率のR(0〜1) G(0〜1) B(0〜1) 屈折率 透明度 バンプ 鏡面反射光処理のアルゴリズムの種類 パラメータ ; ] 色名は色の名前を定義する部分で,先ほど.wldファイルで指定した「COL0」という 名前を定義することにします。物体色のR G Bは,文字どおり物体色の赤成分,緑成 分,青成分を指定するもので,いずれも0から1の範囲で指定します。今回はモデル を赤色にすることにして物体色は 1.000 0.000 0.000 と指定しましょう。 次に「反射率のR G B」ですが,これは物体に当たった光が反射するときの赤,緑, 青のそれぞれの反射成分を0から1の範囲で表したものです。 「透過率のR G B」は光が屈折するとき,赤,緑,青をどれくらい透過するかを指 定するもので,0から1までの範囲でそれぞれを指定します。 「屈折率」は物体が透明体のとき,その物体の屈折率を指定します。この値が1.0 だと空気と同じとみなされて屈折しません。なお,ガラスは1.5程度の値です。 「透明度」は透明体のとき,物体の中を通る光が半分の強さになる距離を指定しま す。大きいほど透明になります。 「バンプ」は物体の表面にデコボコを付ける表現をするときに指定するパラメータ ですが,今回はツルツルの球体なので0にしておきましょう。 最後に「鏡面反射光処理のアルゴリズム」とそのパラメータを指定します。鏡面反 射光というのは,プラスチックの表面に見られるようなハイライトを表現するための もので,EASTRAYにはハイライトを処理するアルゴリズムが複数用意されています。 今回は,その中で鋭くて白いハイライトが特徴的な「ブリンのシェーディング」とい うアルゴリズムを使うことにします。ブリンのシェーディングのアルゴリズム番号は 0で,その後のパラメータでハイライトの強度と広がりを指定します。ハイライトの 強度は0から1までの範囲で指定し,ハイライトの広がりは大きい値ほど鋭いハイラ イトとなります。今回は強さを1.0,広がりを150とします。 以上をもとにcolorコマンドとパラメータを指定すると,LIST02.TXTのようになり ますのでテキストウィンドウに打ち込んで,「SAMP1.COL」というファイル名で保存 してください。 <<<< 3 視点,その他の設定 >>>> 最後に,視点(カメラの位置)や視線の方向を指定します。メニューバーの「ツー ル」からテンプレートを選ぶとファイルダイアログが開きますので,SAMP1と入力し てください。すると自動的に拡張子.BRYが付いて,視点や注目点などレイシートトレ ーシングに関するさまざまな設定を行うことができるテンプレートウィンドウが開き ます。 ここでとくに重要なのが,「視点」「注視点」「副注視点」の3つです。CGが作 成されるのは視点から注視点の方向を眺めた景色で,副注視点が常に画面の上方に来 るように映像化されます。したがって,画面上の物体を動かさなくても,視点,注視 点,副注視点の値を変えるだけで,全く違った方向から見た映像を作ることができま す。 視点,注視点,副注視点はデフォルトの状態では原点からz軸方向に向かって眺め た場合を設定してあります。とりあえず,今回は球が(x,y,z)=(0,0,100)に あるので,視点は動かさずにそのままCGを作ってみましょう。 今回,テンプレート上で変更が必要なのは,「出力画像ファイル」「色定義」「物 体定義」の3つです。出力画像ファイルというのは作成されたCGを何というファイ ル名で保存するかを表しているので,「SAP1.TIF」と入力しておきます。次に,incl ude(取り込み)欄で,色定義に「SAMP1.COL」,物体定義に「SAMP1.WLD」を指定し て,左側の丸ボタンをクリックして設定を有効にします。 さて,これで準備は整いました。さっそくコンピュータに計算をさせてみましょう。 <<<< 4 CG作成開始 >>>> まず,テンプレートをアクティブにしたまま,メニューバーの「ツール」から「プ レビュア」を選択します。 これはCGの外形線のみをワイヤーフレーム表示するもので,計算時間が非常に短 く,本格的なレイトレーシングの計算を始める前の物体の形や視点のチェック用とし て用いられます。プレビュアを選択するとプレビュアウィンドウが開きますが,とり あえずここで変更することはないので「実行」をクリックしてください。すると「pr eviewerを起動します」というメッセージの後に「SAMP1.BRYは保存されていません。 保存しますか?」と聞いてくるので,「実行」をクリックします。ここで保存のため のファイルダイアログが表示されますが,ファイル名はすでに設定済ですから気にせ ず「実行」をクリックします。 プレビュアがうまく実行されると画面中央に球体のラフが表示されるはずです。も しうまく表示されなかったりエラーが出たりしたなら,リストが正しく打ち込まれて いるかどうか再チェックしてください。 うまくいったらマウスをクリックしてテンプレート画面に戻りましょう。今度は, 本格的にコンピュータに光の軌跡を計算させてCGを作成します。テンプレート画面 をアクティブにしたまま,メニューバーの「ツール」から「レイトレーシング」を選 んでください。するとRay-tracingウィンドウが開き,ファイルのところに「SAMP1.R AY」というファイルが指定されていると思います。このSAMP1.RAYというファイルは 先ほど作った.wld,.colファイルとテンプレートの設定内容を最終的に合体させたフ ァイルで,プレビュアやレイトレーシング作業開始時に作成され,コンピュータの計 算に使われる重要なファイルなので覚えておいてください。 それでは「実行」をクリックしてください。「Ray-tracingを起動します」という 確認のメッセージが表示されるので,さらに「実行」をクリックすると,画面が切り 換わり,上から緑のラインを何度も表示しつつCGを作成していきます。 もし,レイトレーシングが途中で異常終了すると,メッセージウィンドウが開かれ, その原因が表示されますから,指示に従ってリストの修正を行ってください。 計算がすべて終了すると再びテンプレートウィンドウに戻ってきます。ここで結果 の確認をしてみましょう。EASTRAYには作成したTIFFファイルを表示する機能も備わ っています。メニューバーの「ファイル」から「イメージ表示」を選択してファイル ダイアログでSAMP1.TIFを選択します。どうです? ちゃんと表示されましたか? ============================================================================ 基本的なテクニック ============================================================================ 次はいよいよ,球だけでなくほかの物体も表示させてみましょう。 まず,円錐,直方体,平面などを描いてみましょう。 これらの物体を定義したのがLIST03.TXTです。リストを見ればわかるように,複数 の物体を表示させるにはobj命令のカッコ内に複数のオブジェクトを並べて記述すれ ばOKです。 LIST04.TXTは,colorコマンドで色を定義したものです。colorコマンドもobjコマ ンドと同様に複数の色を定義したい場合には,定義したい色を並べて記述します。 また,この例ではテンプレート上で空の色や環境光減衰距離を設定しています。空 の色はレイがどの物体にも反射しなかったときの色を指定するもので,今回の例では 水色に近い色になっています。環境光というのは乱反射により,常に物体の表面をあ らゆる方向から照らしている光のことを指します。また,減衰距離というのは光が空 気中を進むとき,減衰により光の強さが半分になる距離を指定するものです。 次に,同じ球体を複数表示してみましょう。この物体を定義したものがLIST05.TXT, 色を定義したのがLIST06.TXTです。LIST05.TXTはオブジェクト定義と移動コマンドを 使って同じ雛形から複数の物体を作り出しています。移動コマンドの使い方は,移動 コマンドの後にスペースを空け,移動量を指定するだけです。これにより移動コマン ドが指定された直後の物体を3次元空間上で自由に移動させることができます。移動 コマンドには, :mx :my :mz :rx :ry :rz :sx :sy :sz の9種類があります。mx,my,mzはそれぞれ物体をx,y,z方向に平行移動させるた めのもの,rx,ry,rzはそれぞれ物体をx,y,z軸回りに回転させるコマンド,sx, sy,szはそれぞれx,y,z軸方向に拡大・縮小を行うコマンドです。 1つの物体に対していくつでも移動コマンドを指定することができますが,移動コ マンドは後ろから前に向かって順番に1個ずつ実行されることに注意してください。 ============================================================================ 応用編・よりリアリティを求めて ============================================================================ ここまではレイトレーシングの基礎の基礎である,物体の置き方,移動のさせ方, 色の指定,視点と視線の設定について解説しましたが,この後はよりリアリティのあ るCGを作るための手法を紹介していきます。 <<<< 1 物体の表面に絵を貼り付ける >>>> いわゆる「マッピング」というもので,レイトレーシングの表現力をぐっとアップ する機能の1つです。 今までの物体は物質の色を指定するだけだったので単色のモノばかりでしたが,物 体の表面にあらかじめ用意した絵を貼り付けることができると,表現力が格段に向上 します。この表面に絵を貼り付ける動作をテクスチャーマッピングといいます。テク スチャーマッピングを行うには,物体の色に関する指定が書かれているCOLファイル の物体色R G B指定の後に, < マッピング名 倍率 マッピングモード パラメータ > のフォーマットでマッピングデータを指定します。このとき指定するマッピング名は MAP_dataコマンドで指定しておきます。 map_data [ マッピング名 マッピングデータファイル名 ミップマッピングスイッチ ; ] マッピングデータファイルは.tif,.fal,.ipr形式のものを読み込むことができま す。 「ミップマッピングスイッチ」というのは,モアレ現象を防ぐものですが,計算時 間は余計にかかってしまいます。1にするとミップマッピング用の処理を行い,0を 指定すると行いません。 マッピングモードには次のようなものが用意されており,それぞれ用途に応じて使 い分けることができます。 <<平面マッピング>> 平面マッピングはXY平面方向に広がった面に絵を貼り付けるマッピング方法です。 マッピング指定した平面は移動コマンドにより回転させることができるので,見かけ 上,どんな平面にも絵を貼り付けることができます。 平面マッピングのフォーマットは, < マッピング名 倍率 1 u1 v1 u2 v2 u1a v1a u2a v2a > となっています。u1 v1 u2 v2は,マッピングデータを貼り付ける始点と終点をx,y 座標で指定,u1a v1a u2a v2aはそのデータを繰り返す範囲を指定します。 このデータの.wldファイルはLIST07.TXT,.colファイルはLIST08.TXTとなっていま す。 <<球面マッピング>> 球面マッピングというのは,文字どおり球面に絵を貼り付けるためのマッピング方 法で,Z軸を回転軸とした球体にマッピングを行います。球面マッピングのフォーマ ットは, < マッピング名 倍率 2 u1 v1 u2 v2 u1a v1a u2a v2a > となっています。この場合のu方向は経度,vは緯度を表しており,u,vともにx軸方 向が原点となり,−1≦u≦1,−1≦v≦1の値を取ります。uはx軸からy軸に向か う方向が正となり,vはx軸からz軸に向かう方向が正となります。またuは経度なので −180度から180度までが−1から1に対応し,vは緯度なので−90度から90度までが −1から1に対応します。 マッピングデータの画像は,経度u1からu2,緯度v1からv2で囲まれる範囲に貼り付 けられ,その後経度u1aからu2a,緯度v1aからv2aの範囲で繰り返されます。 このデータの.wldファイルはLIST09.TXT,.colファイルはLIST10.TXTとなっていま す。 <<環状マッピング>> 環状マッピングは原点を中心にXY平面にリング上にマッピングを施します。環状マ ッピングのフォーマットは以下のようになっています。 < マッピング名 倍率 3 u1 v1 u2 v2 u1a v1a u2a v2a > uはx軸を0として円周方向の角度を−1≦u≦1の範囲で表します。vは半径を表し, 0≦vの範囲で指定します。uは球面マッピングのときと同様に,y軸方向が正となり ます。 このデータの.wldファイルはLIST11.TXT,.colファイルはLIST12.TXTとなっていま す。 <<円筒マッピング>> 円筒マッピングはz軸を中心にしてXY平面方向を回転方向とする円筒に絵を貼り付 けるためのマッピング方法です。円筒マッピングのフォーマットは以下のようになっ ています。 < マッピング名 倍率 4 u1 v1 u2 v2 u1a v1a u2a v2a > uは環状マッピングのときと同様に,x軸を0として円周方向の角度を−1≦u≦1 の範囲で表したものです。vはz座標を表しています。すなわち,円筒面のu1からu2の 角度の範囲でz座標v1からv2にわたってデータを貼り付け,それをu1aからu2a,v1aか らv2aの範囲で繰り返すことを表しています。 このデータの.wldファイルはLIST13.TXT,.colファイルはLIST14.TXTとなっていま す。 <<全方向マッピング>> x,y,zの各方向からマッピングを行い,その3つの割合を法線の方向で決めると いうものです。複数の方向からのマッピングデータを混ぜるため,上下左右を指定す る必要がない模様を指定するときに適しています。全方向マッピングのフォーマット は,以下のようになっています。 < マッピング名 倍率 4 0 k > kはマッピング時にかける座標値を表しています。 <<<< 2 より複雑な物体を表現する >>>> 今まで画面上で扱ってきた物体は,球体や平面などの非常に単純かつ幾何学的なも のばかりでした。しかし,これらで表現できる物の形は限られています。そこで登場 するのが「ポリゴン」です。ポリゴンとは多角形のことで,この多角形を複数集めて 繋げることにより自由度の高い物体を作ることができます。 しかし,ポリゴンを3次元で表すためには,それぞれの頂点データを指定する必要 があり,複雑な物体を定義したい場合などは,膨大なデータを入力しなくてはなりま せん。これを数字だけで扱うというのは,普通,人の手に負えません。そこで登場す るのが「モデラ」と呼ばれるソフトです。「モデラ」というのはポリゴンを使った物 体データを簡単に作り出すためのソフトのことで,フリーソフトウェア「ごりぽんく ん」(久しく新版が登場していません。バージョンアップが期待されるのですが)も その一種です。また富士通から発売されている3DCGソフト「キュービックスケッ チ」からEASTRAY用のポリゴンデータを作成する「きゅーすけコンバータ」もフリコ レ9に収録されています。これらのモデラと組み合わせることによりEASTRAYはより 強力なレイトレーシングツールとなります。 ============================================================================ 最後に ============================================================================ さて,物体の基本的な並べ方からマッピングのしかたまで紹介してきましたが,い かがでしたでしょうか? 今回紹介した機能はEASTRAYが誇る機能の中でもほんの一 部に過ぎません。もっとリアリティあふれる絵が作りたい,いろいろな効果を使って 映画の特撮のようなシーンを作りたいという方は,さらにEASTRAYのマニュアルを読 んで,どんどん勉強していって,どっぷりレイトレの世界にハマってください。そし て,これは,という作品ができたらぜひとも本誌のカレンダーやフリコレなどに送っ てくださいね。 それでは,このへんで「フリーソフトお気楽極楽大作戦」の幕を閉じたいと思いま す。 みなさん,長い間本当にありがとうございました。また,いつか,どこかでお会い しましょう!