スパコンクラウド®「CGムービーサービス」は、UC-win/Roadを用いてレイトレーシング法によるムービーを作成するサービスです。レイトレーシングのエンジンには、POV-Rayを使用しています。
レイトレーシングの最大の特長は、光と材料の見え方を正確に計算できることですが、1枚の画像を生成するのに数時間から数日掛かる場合もあります。高品質の静止画を生成するために、UC-win/RoadのVR空間情報をPOV-Rayのデータファイルに出力する機能は以前よりありますが、レンダリング時間が長くなってしまうためCGムービーの作成に使用できませんでした。
本サービスでは、「フォーラムエイト・スパコンクラウド神戸研究室」で利用しているスーパーコンピュータにより、レンダリング時間を大幅に短縮することができます。
ムービーの作成には、UC-win/Roadを用いてコンテンツを作成し、レンダリングに必要なPOV-Rayデータファイルを動画のフレーム毎に出力します。これにより、UC-win/Roadで行うリアルタイムシミュレーション用のVR空間をレンダリングすることができます。
また、UC-win/Roadに搭載されている空間の作成機能を生かすことで、リアルタイム用のデータよりも高精細な3D空間とそのCGムービーの作成も可能となります。
|
フォーラムエイトでは、データ作成の一環としてレイトレーシングによる動画作成サービスの提供を開始しました(図1)。
- UC-win/Roadのシーンを作成
- UC-win/Roadから試験的に静止画を出力し、POV-Rayの設定および特殊効果を確認
- 動画内容の調整を行い、必要に応じてスクリプト等の作り込み
- 動画のフレームをPOV-Rayへ出力し、同時に出力されるAVI、AVIフレーム画像により、完成後のAVIを大まかに確認。
場合によって3)、4)を繰り返す
- 神戸研究所へPOV-Ray出力データを転送し、スパコンでレンダリング
- レンダリング後にAVIファイルを再構成し、必要に応じて編集
- DVDディスク等で最終納品
■図1 CGムービーサービスにおける動画作成の流れ
|
POV-Ray(Persistence of Vision Raytracer)は、リアルな静止画を生成可能な、フリーの3Dグラフィックソフトウェアです。
Windows、Unix、MacOSなど各種プラットフォーム用のエンジンが存在しています。1枚の画像を作成するために、複数の情報を所定のスクリプト形式のテキストファイルで作成し、POV-Rayを用いてレンダリングします。
POV-Rayのスクリプトの形式については、POV-Rayの公式HPから情報やサンプルが入手できます。主な要素としては以下のようになります。
1.物体形状 2.表面特性 3.大気効果 4.光源 5.カメラ位置
物体形状
POV-Rayはオブジェクトの表面材質(テクスチャ)を定義するマテリアルの情報がスクリプトとして豊富に存在します。たとえば、木材、岩石、金属など(図2)。それらデフォルトの情報をそのまま使用することでリアル感を出すことも可能ですが、スクリプトを書くことで自由に材質を定義することが可能です。材質には透明感を与えることやビットマップファイルで与えることも可能です。
大理石 |
金属 |
|
|
■図2 表面材質の例
大気効果
POV-Rayは大気効果(霧の効果)を追加することが可能です。シーン全体、街灯の明かり周辺のみのハロなど設定することが可能です。
光源
POV-Rayは点光源、面光源、スポットライトをサポートしています(図3)。光源が一つも存在しない場合は真っ暗になります。
大理石 |
金属 |
|
|
■図3 光源設定の例
影の追跡
レイトレーシング法:カメラ位置から光の反射や屈折を計算し、画像のピクセルごとの最終的な色を決定する手法のことを指します。シーンをレンダリングする上で最も重要なのは光の追跡ですが、POV-Rayでは一般的な光の追跡方法としてこのレイトレーシング法をサポートしています(図4左)。
ラジオシティ法:レイトレーシング法だけでもかなりのリアル感が出ますが、光源のみを考慮して照射された面の光を計算し、光源で内面に反射される光が他の物体を照射することは考慮されません。結果として、ソリッドなイメージになります。
このイメージを和らげるためにラジオシティ法が利用されます。光が当たった面があたかも光源として放射する間接光からの柔らかい光であるような表現が可能です。POV-Rayではこのラジオシティ法もサポートしています(図4右)。
■図4 影設定の例
水の反射、波紋
湖沼など水面の反射や風などによる波紋を設定することが可能です。
|
UC-win/Roadでは、すでにプラグインによりAVIファイル出力、POV-Ray出力に対応していますが、今回のCGムービーサービスを開始するにあたって改訂を行いました。
AVIオプション、POV-Rayオプションをムービーオプションに統合
フレーム単位でシーンのPOV-Rayスクリプトを出力するために、AVIオプションとPOV-Rayオプションをムービーオプションとして統合しました。
AVI-Optionのオプション画面で設定したサイズ、FPSのフレーム数に応じてAVIへのフレーム出力しているタイミングでフレーム単位にシーンをPOV-Rayスクリプトへ出力します。このタイミングではAVIへのフレーム追加、POV-Ray出力のほか、AVIフレームの画像出力も行っています。そのAVIやAVIのフレーム画像を利用することでムービーのコンテンツがどのようなものになるかを確認できます。また、従来通りそのシーンでのPOV-Ray出力もサポートされます。
出力対象のオブジェクト
現在UC-win/RoadからPOV-ray出力するオブジェクトは次の通りです。
- 地形、空、太陽、道路、3Dモデル
- 2D樹木、3D樹木、道路標識、
- MD3キャラクタ、湖沼、背景、旗
処理内容
フレーム単位のPOV-Rayスクリプト出力の前にあらかじめ静的オブジェクトのPOV-Rayスクリプトを出力します。フレーム単位での出力の際はこの静的オブジェクトの位置、角度情報を各フレーム情報として設定します。スクリプト、交通流、環境を有効にしながらカメラを移動させつつ、カメラの範囲に存在するオブジェクトのインスタンス情報を出力していきます。時々刻々変化するオブジェクト位置、角度情報を設定することでその時点でのシーンが描けるわけです(図5)。
また、MD3キャラクタについては、あらかじめ使用している各モデルのアニメーションのフレームの座標情報ををスキンごとに出力しておき、実際のシーン出力時にフレーム番号をセットすることで対応しています。この結果、フレームごとの出力時間が軽減されます。さらに、景観モデルの表示、描画オプションの描画設定に対応しているので、動画時の設定による切り替えもPOV-Rayスクリプトへ反映されます。
また、フレーム出力時にはAVIファイルで使用するフレーム画像の同時出力も可能です。
■図5 POV-Rayプロジェクトファイルの例
操作手順
データを読み込んだ後、以下の手順でフレームごとのPOV-Rayスクリプトを出力します。
■図6 操作手順POV-Rayプロジェクトファイルの例
操作の内容
AVIオプション
画像のサイズ、一秒あたりのフレーム数(FPS)を設定します。
POV-Rayオプション
ラジオシティ法の利用、最大トレースレベル、オブジェクト出力範囲、ミストへの対応など、POV-Ray全体の設定を行います。
Movieオプション
AVI、AVIフレーム画像、POV-Rayスクリプトデータの出力先フォルダを設定します。未設定の場合は<ユーザデータフォルダ>\Movieになります。また、この画面では上記3つのデータのうち何を出力するかを設定可能で、出力対象にチェックを入れます。
■図7 Movieオプション画面
静的オブジェクトの出力
「Tools」−「Export Static Models to POV-ray」により、静止モデルの情報、動的モデルのモデル部分の情報を出力します。この時フレーム番号がリセットされます。
動画出力開始
「Tools」−「Start AVI recording」を選択すると各フレーム情報の出力が開始され、フォルダにフレームごとに追加されます。
動画出力終了
「Tools」−「Stop AVI recording」で出力を終了します。ここでいったんAVIファイルが確定します。AVIにはフレーム番号の開始、終了が分かるように名前が付けられます。この状態で再度「Start
AVI recording」を選択すると、その時点でのフレーム番号から作成が始まります。
従来のPOV-Ray出力について
メニュー「Tools」−「Export To POV-Ray」を選択すると、静止オブジェクトの出力->Frame1の出力を連続して行い、結果としてそのタイミングでのPOV-Ray出力を行います。レンダリング後の画像は、従来の画像と同じものとになります。
内部フォルダ構造
Movie Option画面で出力先を設定すると以下のフォルダが構成されます。各フォルダに所定のファイルが出力されます。
|
|
AVI:
AVIファイルが出力されます。
フレームの開始、終了がAVIファイル名となります。
AVIBmp:
AVIファイルで使用されている各フレーム画像がフレーム番号.bmpとして出力されます。
この画像と上の映像とを利用して、POVRayの結果AVIの概要把握が可能です。
Base:
POV-Rayデータのうち静的オブジェクト情報がスクリプトとして出力されます。
FrameNNNNNN(Nは6ケタの整数):
各フレーム番号でのPOV-rayプロジェクト情報を含む動的データを
スクリプトとして出力します。 |
■図8 フォルダ構造 |
|
|
現在Ver5.02.00のPOV-Ray出力に対応しています。今後未対応のオブジェクト(FBXオブジェクト、3DTextオブジェクト...)に対応予定です。また、UC-win/Road側の設定がそのままPOV-Rayに反映できるように改善していく予定です。 |
|
>> 製品総合カタログ
>> プレミアム会員サービス
>> ファイナンシャルサポート
|