home *** CD-ROM | disk | FTP | other *** search
/ Phoenix Heaven Sunny 2 / APPARE2.BIN / oh_towns / calendar / midori12 / src / greet01.doc < prev    next >
Text File  |  1995-06-20  |  11KB  |  339 lines

  1.  
  2. *        収録ファイルの内容
  3.  
  4.         greet01.tif                TIF画像ファイル
  5.  
  6.     @    greet01.ray                EASTRAY用ソースファイル
  7.         greet01.doc                このファイル
  8.  
  9.     @    unyo02.tif        マッピング用画像ファイル
  10.     @    shadow_1.tif            同上
  11.     @    lunabump.tif            同上
  12.  
  13.         akaishi.tif        マッピング用画像ファイルの素
  14.         t4_shdw.tif                同上
  15.         t4_shdw.ray        t4_shdw.tif のソースファイル
  16.  
  17.         @印 greet01.rayのレンダリングに直接必要なファイル。
  18.             3万2千色 640*480の画像ファイルを出力します。
  19.  
  20. *        最初に
  21.  
  22.       樹(みどり)カレンダーの12月に選んで頂いた画像ファイルです。
  23.     かなり勝手な書き方でかつ長い物ですが、RAYファイルの方も同じく
  24.     収録して頂きました。それまでは、作りたい物体を画像の真ん中に置
  25.     くと言う、写真の初心者がよくやる「日の丸写真」状態だったのから、
  26.     絵としての作りを意識した初めての画像でした。以下では少し制作時
  27.     の事を書いてみようと思います。
  28.  
  29. *        マッピングデータ
  30.  
  31.       最初はT4と雪だるまの影を月に落とそうとライティングをあれこれ
  32.     いじっていたのですが、上手くいかないので予め二人の影の画像を別
  33.     に計算しておき、マッピングデータとして月に張り付ける事にしました。
  34.     t4_shdw.tif が白い壁に映写した二人のかげです(t4_shdw.rayはソース)。
  35.       実は昨年学校用に作ったデータでは雪だるまは手ぶらだったのですが、
  36.     影のマッピングデータの修正をせずに、カレンダー応募用に花を後から
  37.     持たせたので、実体と影との整合が取れていません。t4_shdw.tifの白地
  38.     をARTEMISで黄色に塗りぎざぎざを取った上で、akaishi.tifの上に描画
  39.     濃度を下げて重ね合わせました。これが、shadow_1.tifです。
  40.       あと、効果は定かには分かりませんが、akaishi.tifをモノクロにして、
  41.     月のバンプマッピング用データとしています(lunabump.tif)。unyo02.tif
  42.     は地面に繰り返し張り付けてあります。
  43.       これらのマッピングデータは私が用意した物なので、入手なさった方
  44.     は自由に使って頂いて構いません。
  45.  
  46. *        RAYファイルについて
  47.  
  48.       殆どの物体は先ず、原点に作っています。そのため、実際の物体定義の
  49.     所では、座標が 0 0 0 に成っていると思います。これは全ての物体の配置
  50.     を移動コマンドで記述している方が私の場合、見易く修正も簡単だからで
  51.     す。他にも、動画を作る際にフリコレ収録のツール「ちびやだ」の様なコ
  52.     マンドを埋め込ませる場合でも見通しが良くなると思います。最初に打ち
  53.     始める時は objの呼出しを多用して実際の物体定義は、最後に書けば比較
  54.     的タイプミスを防げると思います。例えば、下からテープデッキ、アンプ、
  55.     チューナー、レコードプレーヤー、と積み重ね、両側にスピーカーを配し
  56.     たオーディオセットを二つ作りたいなら、
  57.  
  58.                    _________   __________  _________
  59.                   /          /|  /           /| /          /|
  60.                  /    SP     / | /          /    |/    SP     / |  三軸の正の方向
  61.             -    +-------+  |+--------+    +-------+  |
  62.      :mz30 -+    |  +--+    |  || record |    | +--+    |  |    z軸 上方
  63.             |    |  |H|    |  |+--------+    | |H|    |  |    _
  64.      :mz20 -+    |  +--+    |  || tuner  |    | +--+     |  |    |
  65.             |    | +---+    |  |+--------+    | +---+    |  |    |
  66.      :mz10 -+    | |      |    |  ||  amp   |    | |      |    |  |    +---> x軸 右手方向
  67.             |    | |L |    | / +--------+ /| | L|    | /       /
  68.          0 -+    | +---+    |/  |  tape  |/    | +---+    |/      /
  69.             -    +-------+   +--------+    +-------+     ~ y軸 手前方向
  70.  
  71.                <----|-----------|-----------|---->
  72.                   :mx-30        0         :mx30
  73.  
  74.  
  75.     obj    [            /* mainのobjでは場の登場物をおおまかに書く */
  76.             room ;
  77.  
  78.             audioSets ;
  79.         ]
  80.     obj    audioSets    /* 二つ要る場合の複写や登場物の配置をここでする。*/
  81.         [
  82.                             audioSet ;        /* 一つ目 */
  83.  
  84.             :my-100 :rz180    audioSet ;        /* 二つ目 向かい合わせに置く */
  85.          ]
  86.     obj    audioSet    /* セットの構成物の配置。z軸(上)方向への積み重ね */
  87.         [
  88.             [
  89.                 :mx30    speakers ;    /* 左右に配置している。obj speakers
  90.                                        の中で、高音部(H)、低音部(L)、等の
  91.                                        部品の組合せを記述する。 */
  92.                 :mx-30    speakers ;
  93.             ]
  94.             [
  95.                         tapes ;
  96.     
  97.                 :mz10    amps ;
  98.  
  99.                 :mz10    tuners ;
  100.  
  101.                 :mz10    players ;
  102.             ]
  103.         ]
  104.  
  105.     obj    tapes    /* sは必ずしも複数形ではなく、構成の記述に用いている */
  106.         [
  107.             tBodys ;    /* 箱 (tはテープデッキである事の識別用) */
  108.  
  109.             decks ;        /* デッキ部*/
  110.         ]
  111.     obj    tBodys    /* 箱と支えの足との位置関係の記述 */
  112.         [
  113.                     tBody ;
  114.  
  115.             :mz-4    tLegs ;
  116.         ]
  117.     obj    tBody
  118.         [
  119.             /*    ここで実際に座標等を記述する */
  120.         ]
  121.     obj    tLegs
  122.         [
  123.             /*    ここで実際に座標等を記述する */
  124.         ]
  125.  
  126.     obj    amps
  127.         [
  128.                     aBody ;    /* 箱 (aはアンプである事の識別用) */
  129.                     :
  130.                     :
  131.                 以下アンプの記述が始まる。
  132.                     :
  133.  
  134.     適当に今書いた物なのですがなんとなくは感じは分かって貰えたでしょう
  135.     か。
  136.       次に私が心掛けたのは、色名を物体(部品の集まり)なり部品なりの名
  137.     前と同一にし、座標の記述部分を見てこれが何か分かるようにする事でし
  138.     た。GREET01.RAY    の中で、雪だるまの目の色は、色の定義で blackC となっ
  139.     ている物を使っていますが、実際の記述はこの様にしています。
  140.  
  141.     obj    snowEye            /* 目の定義 */
  142.         [    :my-24
  143.             2 snowEyeC 1  0 0 0  4 ;
  144.         ]
  145.  
  146.     そして、ファイル冒頭部で、
  147.  
  148.     #define        snowEyeC        blackC
  149.  
  150.     こう書いて置いて、レンダラーには意図した色で計算させます。ここでは、
  151.     obj名と同じなので大したメリットはありませんが、同じ色の部品を組み
  152.     合わせる場合や論理演算をする時は、それぞれ色名の所に部品名を与えて
  153.     読み易くすれば良いと思います。
  154.  
  155.     #define        snowArmC        blackC
  156.     #define        snowHandC        blackC
  157.                     :
  158.                     :
  159.                     :
  160.     obj    snowArm
  161.         [    :my-16
  162.             15 :rx90 snowArmC 1  0 0 0  0 0 1  2.8 16 ;
  163.             2 :my-16 snowHandC 1  0 0 0  2.8 n ;
  164.         ]
  165.  
  166.       この場合、雪だるまの腕(snowArm)は、高さ16、半径2.8の円柱(15)から
  167.     なる腕全体と、半径2.8の球からなる掌(腕の先)の組合せになっています。
  168.     色名の末尾が C となっているのは、色名である事をはっきりさせるのと、
  169.     #define の置換の効果が objの部品名に及ばない様にする為です。ここで
  170.     は掌の方に影の計算をしないオプション n をつけています。"greetings"
  171.     では影の計算自体を冒頭部で shadow 0 として停止していますが、明らか
  172.     に影を落とす必要が無い物や論理演算でくり抜く側の物(色名の次が -1)
  173.     には結構まめに付けています。計算が速くなっているのかどうかは分かり
  174.     ません。
  175.       此処の腕(円柱)は、中心 0 0 0 、方向ベクトル 0 0 1 として、上向
  176.     きの柱状の物を :rx90 として、15 と snowArmC との間で水平に倒してい
  177.     ます。方向ベクトルを 0 1 0 とすれば :rx90 は必要ないのですが、私の
  178.     場合、円柱を用いる時は、 
  179.  
  180.         15 色名 1  0 0 0  0 0 1  半径 高さ ;
  181.  
  182.     の色名、半径、高さ、以外は固定しています。縦でない円柱が要る場合は、
  183.     先程の様に移動コマンドで傾けます。これもパターン化してタイプミスを
  184.     防げたらいいなとの思いからです。こうはしなくても、方向ベクトル部で
  185.     0 や 1 以外の数値を使う必要のある傾きはなるべく移動コマンドの回転
  186.     (:rx,:ry,:rz)で指定する方が、修正時や後から見た時に分かり易いと思
  187.     います。   
  188.       #define文は普通ファイル冒頭に書きますが、GREET01.RAYでは一箇所、
  189.     途中で用いています。
  190.       部品名を付けると、それぞれが何なのか一見して分かるので、コメント
  191.     を用いる必要が減ってきます。画像制作過程で一部の物体だけを計算させ
  192.     たい場合もコメントアウトがすぐできます。コメントの中にコメントは入
  193.     れられない(/* /* */ */の様な状態)ので沢山あるとコメントアウトの
  194.     時に面倒です。先程の例の場合で roomを未だ記述してないので、レンダ
  195.     リングでエラーが出ない様にコメントアウトする場合この様にします。
  196.     
  197.  
  198.         obj    [
  199.     /*            room ;
  200.     */
  201.                 audioSets ;
  202.             ]
  203.  
  204.       次の様な場合、二重コメントになってしまいレンダラーがエラーを出し
  205.     ます。
  206.  
  207.         obj    [
  208.     /*            room ;            /* 部屋 */
  209.     */
  210.                 audioSets ;        /* オーディオセット */
  211.             ]
  212.  
  213.       字下げはタブを使っているので、/* , */ を入れてもずれません。また、
  214.     複数のobj群をコメントアウトする事も可能です。GREET01.RAY  では色々
  215.     コメントをいれてますが、これは読んで貰う為の物で私自身は普段コメン
  216.     トは殆ど入れていません。
  217.  
  218. /*    obj    foo
  219.         [
  220.         ]
  221.             :
  222.         複数のobj群
  223.             :
  224.     obj    hoge
  225.         [
  226.         ]
  227. */
  228.  
  229.       偉そうに色々と書きましたが、RAYファイルは余り他人に見せる物では
  230.     ないので、本人が分かり易い様に心掛ければ充分だと思います。ただ、
  231.     パソコンの触りたてで、WINKとEASTRAYとの往復がやっと一
  232.     人で出来る様になってもレンダラーのエラーが中々克服出来なかった事
  233.     を思い返して書いてみました。僕は大学で教えて貰える先輩(NIT)に出
  234.     会えましたが、最初から一人で EASTRAY を使いこなすのは、中々初心
  235.     者には、大変だと思います。あの頃の僕だったらこの文章は分かり辛い
  236.     様な気もしますが、もし誰かの参考に少しでもなれば幸いです。間違い
  237.     もあるかと思いますが、そこは笑ってやって下さい。
  238.  
  239. *        過去のエラー
  240.  
  241.       過去に出したエラー等でつまずいた物、
  242.  
  243.     >      円錐面の記述で r/t とある所でrをtで割った値を書くべき所
  244.         を 20/100 の様に書いていた。正しくはこの場合、0.2 と書く。
  245.  
  246.     >      出力画像ファイル名とセミコロンをくっつけて書いてエラーを出
  247.         した。
  248.                 GREET02.TIF;  不可  /  GREET02.TIF ;  可
  249.  
  250.       山程あるはずなのに、今思い出そうとしてもなかなか出てきません。      
  251.  
  252. *        DOSエクステンダ
  253.  
  254.       EASTRAYには、DOS汎用のコマンドライン版のレンダラーが付属しおり、
  255.     ドキュメントにも記述されています。しかし他機種で計算させるには、
  256.     実際どうすれば良いのか分からない人もいると思います。私もかなり迷
  257.     いました。TOWNSの場合コマンドライン版は、プロンプトから
  258.  
  259.         D>D:\RUN386.EXE  RENDER.EXP  SAMPLE.RAY
  260.  
  261.     と打ち込めば計算が開始されます。この RUN386.EXEの部分が機種に依存
  262.     するので、他機種用のを入手する必要がある訳です。入手の方法は、
  263.     京都マイクロコンピュータ(株)が非営利目的の使用に限ってパソコン
  264.     通信での無償配付をしているようです。私の場合通信はしていなので、
  265.     直接郵送して貰いましたが、手数料として 3,000円必要でした。この FD
  266.     に FMR,Panacom,PC-9801,AT,AX,J-3100用(CPUは386以上が必要)の DOS
  267.     エクステンダー EXE386 が収録されています。この中から必要な物を解凍
  268.     して、
  269.  
  270.         D>D:\EXE386.EXE  RENDER.EXP  SAMPLE.RAY
  271.  
  272.     のようにすれば起動します。パスの設定やファイルの位置は各自注意して、
  273.     予め準備しておいて下さい。PC-9801BX メモリ 1.6MB でも計算できまた。
  274.     マッピングデータが大きくなればその分メモリは必要です。また、EXPを
  275.     TOWNS上で実行型圧縮ファイルにしていても、他機種ではメモリを確保出来
  276.     ないといってエラーを出すのでその場合、元の非圧縮の物を用意して下さい。
  277.  
  278. *        天晴CD Vol.2
  279.  
  280.       これと同じ様な事をフリコレに応募したファイルにも書いたので
  281.     すが、締切当日に取り敢えず配線して過去のデータ集めて送ったの
  282.     で文章がまとまっていないと思います。画像は別の物も入っていま
  283.     すが、充分作り込めたとは言えません。。1995年の阪神淡路大震災
  284.     では TOWNS 20F も外付けハードディスクも机から落下に耐えました
  285.     が、HDのターミネータまで外れてたのには驚きました。
  286.  
  287. *        ん
  288.  
  289.       段々とRAYファイルが長く成るので、COLOR定義もOBJの様に呼出しが効く
  290.     様になれば、ソースを分割しても良いと思います。
  291.  
  292.         color
  293.             [
  294.                 snowMans_col ;
  295.  
  296.                 T4_col ;
  297.  
  298.                 another_col ;
  299.             ]
  300.         col    snowMans_col
  301.             [
  302.                 :
  303.                 :
  304.             ]
  305.         col    T4_col
  306.             [
  307.                 :
  308.                 :
  309.             ]
  310.         col    another_col
  311.             [
  312.                 :
  313.             ]
  314.  
  315.       でもこれ位のツールをさっと作れるようになりたいです。
  316.  
  317.       ボクセル分割は、最初パーツ毎に計算させていたので使って居
  318.     ません。最終出力の時に何故使わなかったかは、今思い出せませ
  319.     ん。境界体積法による高速化も境界に移動コマンドが効けば原点
  320.     でモデリングする時点でくるんでしまえば、かなり有効だと思い
  321.     ます。境界と境界とが重なる時や、モデルを完全にくるむ最小の
  322.     境界の指定は、手作業には余る作業なので、高速にしようと思う
  323.     ならやはり速い機種を買うべきでしょうね。いまならAT機も購入
  324.     し易くなっていますから。
  325.  
  326.       レンダリング時に画像部分の背景になっている灰色は、どの様
  327.     な明るさなのでしょうか、ニュートラルグレーでしょうか。モニ
  328.     タが暗いのか、画像を明るくすべきなのか迷う事があります。
  329.  
  330.       部品名を付ける際、英単語で付けようと思うのですが、知識が
  331.     ないので、辞書を引くことになります。だから今「 Word's Word
  332.     同朋舎出版 」が手許に欲しいと思っているところです。
  333.  
  334.       勝手な事も書きましたが、数々の優れたフリーソフトウェアを
  335.     作っている方々に感謝したいと思います。
  336.  
  337.  
  338.  
  339.