チュートリアル

ハイトフィールドデータから簡単なフライスルー映像を作成します。

ハイトフィールド読み込み



AまたはBのボタンを使ってサンプルのハイトフィールド(png画像 TUTRIAL/HeightFieldSample.png)を読み込みます。



画面にハイトフィールドが表示されます。下部に余分な文字情報が画像データとしてくっついているので、モディファイアタブ上で右クリックメニューを使いトリミングを追加します。
下部34ピクセル分の情報を除去します。



下34ピクセルを除去したところ、データの縦横比は1:1ではなくなりました。「自動スケーリング」を押して縦横比を自動で調整します。

マテリアル設定

このデータには高さ情報のみが存在し、色情報は持っていないので、高さに応じた着色にしてみましょう。マッピングをマテリアルに設定します。



マテリアル設定の色設定で、グラフボタンを押して、カラーカーブを設定します。



高さに応じた色が設定されました。


アニメーション設定

デフォルトではシーンの長さが100になっています。秒間30枚で10秒間の映像にしたければ、シーンは300フレーム必要になるので、シーン設定を用いてシーンの長さを300にします。



2秒かけて、平面の状態から高さを持ったデータへアニメーションするシーンを作成します。
タイムラインから、Height Field 00 の Scale を開き、ストップウォッチのボタンを押して時間依存するパラメータにします。



タイムライン上でダブルクリックで数値入力、もしくはメインパネル上の「S」の数値を変更して Scale の z の値を 0 にします。



時間を60フレーム目まで移動し、「S」の数値を変更するか、タイムライン上の操作によってキーフレームを作成し、zの値が0から0.1まで変化するように設定します。



これで2秒かけてハイトフィールドが成長するアニメーションの設定ができました。



同様に、Height Field 00 の Rotation の z 成分も 60フレームから 220 フレームまでかけて 0 から 360 まで変化させて、ぐるりとまわして全体像をみるアニメーションを設定します。

カメラパス設定

カメラ位置からの表示を確認したいので、左上のビューの設定を Cam0 にあわせます。



AnchorPathを選択して、アンカーパスをの位置を編集します。220フレーム目から300フレームにかけて、原点から見たい箇所に移動するようにします。
メインの設定が「アンカー方向を向く」がONになっているので、カメラがアンカーの位置を自動的に追従します。



CameraPath 00 の Translate と Rotation も、時間依存するパラメーターに設定します。



良くある操作間違いとして、Translate のみを時間依存させて、Rotationを固定値に設定したままにしておくことがあります。その場合は、カメラの向きのパラメーターが固定化されてしまうために、カメラの位置を複雑に設定しても、思わぬ方向を向いてしまうことがあります。

220フレーム目にキーフレームを打った後、300フレーム目まで時間を移動させて、ズームします。必要なだけズームしたら、左下のキー配置ボタンから、POS+ROT(位置と回転成分)を押してキーを配置します。


PovRayによるレンダリング

でPov-Rayでのレンダリング用の設定の画面を呼び出します。

パスの設定と、フォーマットの設定を行います。準備ができたら、RenderAnimを実行して、アニメーション用の連番ファイルを作成します。
もしくは、ExportAnimを実行して、シーンファイル povanim****.pov, povanim****.ini を作成して、PovRayからレンダリングを実行します。



連番画像からの動画ファイル作成


作成した連番画像から動画ファイルを作成するには、さまざまな方法があります。有償の動画ツール(Adobe After Effects等)を用いることで、さまざまな編集や映像上のエフェクトを加えた動画を作成することもできます。

手軽に連番画像から動画を作成するには、著名なフリーウェアを用いるのがもっとも簡単でしょう。著名なフリーウェアとして、Virtual Dub や、avidemux(Linux版有) などがあげられます。

Virtul Dub
avidemux

プレビュー画像による動画作成


プレビュー画面から連番画像ファイルを作成します。
PovRayを用いた場合のように影などの効果は入りませんが、高速にアニメーションなどを作成することができます



プレビュー画面をそのまま出力するために、必要のない表示をOFFにしておきます。



出力ファイルや、画像のサイズを設定して、「RenderAnim」を実行します。

ベイクを利用した高速アニメーション作成

PovRayを用いたレンダリングの際、点光源または純粋な平行光線を用いるとくっきりとした影が落ちるために、「少し昔のCG」らしい画像になりがちです。



これを防ぐためによく用いられる方法として、大きさを持った光源「エリアライト」を用いて、周囲から複数の光源で照らす方法があります。
ただし、レンダリング時間も大幅に伸びてしまうために、アニメーション作成にはあまり向きません。

光源の向きなどの要素が変化せずに、カメラだけが移動するフライスルーを作成する場合、ベイク機能を利用するとアニメーション作成の時間を大幅に部減らすことができます。
ベイクとは「焼きこみ」を意味していて、計算結果を焼きこんだテクスチャをあらかじめ用意して利用するCGのテクニックをあらわす用語です。



ベイクをおこうなうと、影の計算を行った結果の画像が作成されます。
この画像をテクスチャとして利用することにより、擬似的に影を計算した状態そのままの画像を、プレビュー画像上で表示することができます。



プレビューを用いたアニメーション作成を実行します。
ベイクという手法の理屈から明らかなように、光源などが動くアニメーションなどは作成できないことに注意をしてください。

地形データの取得

Umekitaは、地形データに限らず画像データとして凹凸を表現するデータすべての可視化に用いることができますが、
もっとも容易に得ることができる凹凸データに、パブリックに公開されている地形データがあります。
例として、いくつかのリンクを提示します。

ASTER全球3次元地形データ

MEGDGR (Mars Global Surveyer による火星地形図)