釧路高専情報工学科 体験入学 2006.11.11(土)

POV-Ray で オリジナル F1 マシンの CG を作ろう

参加者の皆さんの作品集(2004)

あらまし

三次元 CG 作成用ソフトウェア“POV-Ray”を利用して F1 マシンの CG を作ります. (所要時間 80 分)

ゼロから始めるのはむずかしそうですが,今回はパーツが用意されていますので, 好きなパーツを選んで組み合わせるだけです. プラモデル感覚で,簡単に F1 マシンが完成します. 最後に,好きなアングルで撮影します.

スタート!
組立
取付位置調整,塗装,配置
撮影
完成♪

作品例を見てみよう.

目次:

POV-Ray の基礎知識

POV-Ray で CG を作成するには,次の 2 つの手順を繰り返すことになります.

  1. シーンファイルの編集: 人間が CG の設計図のようなものをプログラミングします.
  2. レンダリング: POV-Ray がシーンファイルの指示にしたがって CG を描いてくれます.

シーンファイルを自由自在に編集するためには, 三次元座標 <x, y, z> を理解しておく必要があります. POV-Ray では,次の図のような座標系を使います.

これは,左手系という三次元座標です. x 軸,y 軸,z 軸のお互いの位置関係に注意してください. 左手の親指と人さし指と中指を互いに直角にして, 左腕を前に突き出してみると:

に対応します.

部品の位置を調整するときなどに, これら x, y, z の値を指定することになります.

作業手順

とにかく始めてみよう

次の 2 つのファイルを ダウンロード (リンクを右クリック→リンク先を名前を付けて保存) して作業を開始しましょう.

まず,ダウンロードしたシーンファイル myF1.pov をレンダリングしてみよう.

シーンファイルを解読してみよう

エディタを使って, シーンファイル myF1.pov の内容を見てみましょう. いろいろな呪文が書かれていますが,とりあえず今, 注目してほしいのは,次の部分です.

...

// F1 マシン
merge {
  // マシン本体
  merge {
    object { RoundBody }
    object { FrontLeg }
    object { RearLeg }
  }

  // ドライバー
  merge {
    object { Driver }
    object { Helmet2 }
  }
}
...

シーンファイルは,次のような命令文から成り立っています.

部品を追加しよう

シーンファイルに命令を書き加えて,部品を追加してみましょう.

たとえば,次のように書き加えてみよう.

...

// F1 マシン
merge {
  // マシン本体
  merge {
    ...
    object { RoundNose1 }
    object { RoundSide2 }
    object { FrontWing2 }
    object { RearWing1 }
  }

  // ドライバー
  merge {
    ...
  }
}
...

部品の種類は他にもあります. パーツの一覧の中から自由に選びましょう. パーツ組み合わせ例も参考にしてください.

シーンファイルの書き変えが終わったら, ファイルを上書き保存しよう. それから,もう一度,レンダリングしてみよう.

取り付け位置を調整しよう

部品をただ追加しただけでは,ちょっと不格好ですね. 取り付け位置を変えてバランスよくしてみましょう.

たとえば,ホイールベース(前後のタイヤの間隔)がせまいので, 前タイヤ(FrontLeg)を 前に 30 cm , 後タイヤ(RearLeg)を 後に 20 cm , ずらしてみよう. シーンファイルを次のように書き変えればよい.

...

// F1 マシン
merge { 
  // マシン本体 
  merge {
    ...
    object { FrontLeg translate <0, 0, -0.30> }
    object { RearLeg translate <0, 0, 0.20> }
    ...
  }
  ...

ここで,新しい命令が出てきました.

なぜ,z 方向に移動しているのか?わからなければ, さっき 基礎知識 で説明された 三次元座標の図を見直しましょう.

それと,数値の単位については,メートルと思っていてください. 30 センチの場合,0.3 です. (今組立てている F1 マシンの全長は 4.5 m 位,全幅は 2.0 m 位です.)

では,再びレンダリング...

おっと,今度は,前タイヤがフロントウィングとぶつかりそうです. それじゃ,前タイヤを少し後へもどしたり, フロントウィングの位置も変えてみようか... ちょっと,部品の種類が気に入らないな...

...こんな感じで,部品の種類や位置を自由にカスタマイズして行こう.

塗装しよう

各 object には,色を着けることができます. たとえば,ボディーだけを赤にするには...

...
object { RoundBody pigment { color Red } }
...

もちろん,他の部品やドライバーの服・ヘルメットの色も変えられます. センスよくカラーリングしよう.

色の名前については, カラーの一覧の中から自由に選べます. 使い方は...

なお,object 毎ではなく,merge したもの全体について, 一度に着色することもできます. たとえば,マシン本体を全体的に青にするには...

...
  // マシン本体
  merge {
    object { ... }
    object { ... }
    ...
    pigment { color Blue }
  }
  ...

これで,merge { } 内のすべての object の色が変わります. (ただし,個別に着色済みの object については変化しません.)

「部品への着色と全体への着色をうまく使い分ければ, 能率良く作業できるかもしれない.」

背景を追加しよう

作成したオリジナル F1 マシンをサーキットに持ち込もう.

次のように地面と空を追加します.

...

// F1 マシン
merge {
  // マシン本体
  merge {
    ...
  }

  // ドライバー
  merge {
    ...
  }
}

object { Ground }
sky_sphere { Fine }
...

(空については.カメラアングルを変えないと見えません. あとで確認してみてください.)

おっと,車体が地面にメリ込んじゃってます. F1 マシンを上に持ち上げなきゃ... それと,ついでに,座標軸も消しちゃいましょう.

...

// F1 マシン
merge {
  // マシン本体
  ...

  // ドライバー
  ...

  translate <0, 0.30, 0>
}
...

/*
//座標軸
object { ... }  // x軸
object { ... }  // y軸
object { ... }  // z軸
*/
...

ちなみに,ここまでの状態で, F1 マシンは直線コースに沿って配置されています. コースに対して斜めに配置したい場合には, いま追加した translate の直前に, rotate を追加してみましょう.

これを使うと,コーナーリング中の雰囲気に. (実際は直線コースなんですが... あとでカメラアングルを変えて確認してみてください.)

撮影しよう

カメラアングルや照明方向を調整して,“CG 作品”を仕上げましょう. シーンファイルの次の部分を変更することになる.

...

// 照明
light_source {
  <100, 200,  -100>  // 照明の位置
  color White*1.5
  parallel point_at <0, 0, 0>
}

// カメラ
camera{
  location <5.0, 6.0, -8.0>  // カメラの位置
  look_at <0.0, 0.0, 0.0>    // 注目先の位置
  angle 25                   // 視野角
}

この作業については,試行錯誤でやってみよう.

たとえば,camera の location の z 座標を + 8.0 に, それと,angle を 15 に変更してみると...

また,クローズアップで撮影するには,2 つの方法があります.

自由制作

オリジナル F1 マシンを作ろう

では,時間の許すかぎり,自由に作業してください. 最後には,あなただけのオリジナル作品を完成させましょう.

今回の記念品として後日,あなたの作品をハガキに印刷して郵送します. カッコイイ作品を作ってください.

「納得できるまで,いろいろ試してみよう.」 (時間的制約もあるので,妥協も必要ですが...)

たとえば,複数台の F1 マシンを配置すれば,レースの雰囲気に...

参考資料