ここには Terragen 2(Technology Preview) の各機能を使いこなす上での
ヒントのようなものを書いていきます。
個人的なメモのようなものです。順不同で、細かい説明もしません。
プラネットサイドのフォーラムその他のソースから拾ってきたヒントなど。
というのも、フォーラムやその他のチュートリアルサイトなどを見ていますと、皆さん、
ずいぶんアクティブにやっていますね。かなり深いところまで理解しているみたいです。
やはり言葉の壁でしょうか。これだけ豊富な機能が使えるようになったのに、
日本ではあまり話題になっていませんね。残念!
――内容――
「フェークストーンシェーダーに変化をつける」
「たくさん並べたオブジェクトをプレビューで見る」
「オブジェクトはどこで拾ってくるか、どう変換するか」
「複数のパワーフラクタルを組み合わせて使う、大きな地形と小さな地形に使う」
「プロシージャルとハイトフィールドの共存」
「Water Node、水のノードの概要」
「ベースカラー、地形の基本色について」
「サーフェス・レイヤー・ノード」
「レンダリングのクオリティの設定」
「フェークストーンシェーダーの使い方」
「TGDファイルを保存できないのはバグなのか?」
「Canyon Impression の分析」
「オーバーハングのテクニック @Canyon Impression」
「フェークストーンのテクニック @Canyon Impression」

ここで使われている旧バージョンにはなかった機能は、オブジェクトのインポート(樹木)、
複数の雲のレイヤー(雲海)、そしてフェークストーンです。
山のフラクタル地形の表現など、特にいじっていないのですが、
ゴツゴツ感など、かなり進歩しているようです。


「プロシージャルとハイトフィールドの共存」について書いておきます。プロシージャルとは、数学的な処理により地形を自動的に生成する手法であり、これだと惑星全体を覆う地形をつくることができ、TG2tpでは「パワーフラクタル」がそれに当たります。一方、ハイトフィールドはラスターマップであり、ドットから構成され、有限です。典型的な例はDEMから変換されたTERファイルです。DEMの地形は、地球上の実際にある地形ですから、よりリアリズムがありますが、有限ですので、カメラ位置によっては、ある箇所から急に断崖になってしまったり、その先はまっ平らな平地になってしまったり、ということが起こりますが、TG2tpでは、プロシージャルのなかにハイトフィールドを置くことができますので、これを回避できます。また複数のハイトフィールドを並べることもできます。解像度は違っていてもかまいません。
それだけでなく、じつはハイトフィールドをインポートしたとき、すでにそこにはフラクタルによって細部がつけ加えられています。 下のインポートしたハイトフィールドの設定を見てください。"Fractal
Detail"というタブを開いているところです。DEMそのままですと、地面まで近づいたとき、ポリゴンの角や線が見えてしまったりすることもありえますが、TG2tpでは自動的に、細部にフラクタルによる微細な地形がつけ加えられています。いちばん上のスライダー、"Fractal
amount"は 0.5 になっていますが、これがデフォルトです。下の画像の左がそれです。これを 2 にしてレンダリングしたのが右の画像です。かなりの違いが見られます。その他のスライダーは試していませんが、次のような機能があると思われます。自分で試してみてください。"Fractal
scale adjust"これはつくられる細部の地形の大きさで、単位はメートルでしょう。"Fractal variation"これはやはりフラクタル地形の大きさのばらつきをコントロールするものでしょう。単位の詳細はわかりませんが。"Fractal
roughness"フラクタル地形のエッジの粗さのことでしょう。"Fractal flow factor"試してみましたが、これを増やすと水が流れたような線やしわがたくさんできます。"Border
blending"他の地形との境目のなじみ方ではないかと思いますが、これはあくまで推測です。その下の二つで他の地形を加えたり、別のシェーダーの効果(例えばオーバーハング)を加えることもできるようです。
「Water node、水のノードの概要」
「水」のノードについてちょっと書いておきます。ただし、元ネタのマニュアルやチュートリアル自体がまだ未完成のものが多いので、「だからなんなの」という情報でしかありませんが、TG2の仕組みを理解する助けにはなると思います。まだTG2tpの「水」は不十分なものです。例えば透明度がコントロールできません。しかし、旧バージョンにはなかった機能も盛り込まれています。最大の違いは、複数の水面をつくり、それぞれに設定を変えられることでしょう。水面にマスクをかけて複雑な形の湖や川もつくれるとのこと。(ただし、この「川」は、急流ではは白く泡立つような「川」ではないでしょう。)現時点では、二つの方法で「水」がつくれます。第一に、水のノードで湖のオブジェクトをつくる方法。もうひとつは地形にウォーター・シェーダーを適用する方法で、ブレンダー・シェーダーやその他のマスキングの手法を使うことができます。
最初に湖のオブジェクトを見ていきます。設定画面で"Handle In Preview"というのがありますが、これは湖のオブジェクトをプレビューに表示させるかどうかの設定です。プレビューの湖のオブジェクトの四角い枠にカーソルを持っていき、黄色くなったときにクリックすると、xyz軸の赤青緑の矢印が現れます。これをドラッグすればオブジェクトが移動できます。設定画面でxyzを指定しても移動できます。"Water
level"はもちろん水位のことですね。 "Max radius"ですが、最大半径の意味で、これを小さくすると、プレビュー画面に収まるくらい小さくすることもできます。やってみるとわかりますが、湖のオブジェクトの枠組みは四角で表されますが、実際に描かれる水面は円盤状の形です。"Planet"のタブで指定できるのは、この水面が適用される惑星です。つまり、一般的に起動時の地形は"Planet
01"つまり地球に属しています。この"Planet"で、例えば"Planet 02"を指定すれば(もちろん、すでに別の惑星をつくっている場合)その惑星に水面が適用されます。"Surface
shader"のタブではデフォルトでウォーター・シェーダーが指定されています。つまり、本質的には、湖のオブジェクトで水の設定を行うのはウォーター・シェーダーなのです。水の設定を変えるとどのような効果があるかということを確認するには、カメラ位置を水面から200メートルぐらいまで下げてやる必要があります。すでにご存じのように、プレビュー画面にカーソルを持っていき、Alt
+ マウスの右ボタンを押し、カーソルを下にドラッグすると、地面に対する高度が下がります。
では、サーフェス・シェーダーのタブから、ウォーター・シェーダーの設定を開きます。今は二つのタブしかありませんが、将来的には水の透明度や、岸辺の表現やそこにできる泡などもコントロールできるようになるとのことです。さて、波、ウェーブス(Waves)のタブで、上の三つのスライダーはすぐにわかるでしょう。
"Roughness"は水面の波の粗さです。"Wave scale"は平均的な波の大きさ、"Smallest
scale"は最小の波の大きさです。これを上げると、波の大きさのバラツキが少なくなり、単調になりますが、遠距離から水面を見るときには、上げてもかまいません。というのも、細かな波を表現するのにはコンピューターのリソースを多く消費するからです。つまり時間がかかるのです。
その下には三つの風の波紋(Wind patch)をコントロールするスライダーがあります。この効果は旧バージョンからあるものです。海面などの大きな水面では、場所によって風の吹き方や当たり方が違いますので、風が当たっている部分だけが大きく波立っていたりしますが、その効果を表現するものです。"Wind
patch effect"がその効果の強さをコントロールします。"Wind patch size"はその平均的な大きさ、または範囲を指定します。単位はメートル。
"Wind patch sharpeness"は、この風が当たる水面と、その隣の同じように風が当たる水面との境目が、どれだけくっきりするか、またはどれだけ滑らかにつながるかを設定するものです。
では反射、"Reflection"のタブに移りましょう。"Master reflectivity"は全体的な水面の反射の強さを設定します。
"Index of Refraction "は屈折率のことで、水の屈折率は 1.33 です。これが高いほど反射しやすくなります。水平線の変化"Horizon
Shift "は、遠距離の水面の反射が全体としてまとまり、大きく見た目が変化するのをシミュレートするものだそうです。"Highlight
Intensity "は光が反射するもっとも明るい部分(ハイライト)の光の強さをコントロールします。"Min Highlight
Spread "はこのハイライトが広がる最小の範囲を決めます。
ところで、このウォーター・シェーダーのインプットに他のシェーダーを接続し(TG2tpの右下のノード・ネットワークの画面で)、いろいろな効果を加えることができます。
例えば、パワー・フラクタルを接続し、ディスプレースメント(Displacement )機能を使うと、波の形をコントロールできます。同じようにハイトフィールド・シェーダーやイメージマップを使うと、波の形を大きく変えられます。あるいは、ウォーター・シェーダーのインプットにデフォルト・シェーダーを接続し、水の色を変えることもできます。
余談ですが、すべてのノードの設定画面の右上に"Stay open"というボタンがありますが、これを押しておくと、この画面を開いたままにできます。押してないと、他の設定画面を開いたとき、前のものは閉じてしまいます。当たり前ですが、知っていると便利ですね。

「ベースカラー、地形の基本色について」
サーフェス・マッピングについてわかったことを少し書きます。TG2tpで、この目的に使われるのは基本的にサーフェス・レイヤーとフラクタル・ブレークアップ・ノードです。シェーダー・レイアウトを開いたとき、追加されるノードには親子関係が発生しますが、このへんのことは「TG2tpの基本的な使い方」
に書かれているとおりです。
ここで余談ですが、これはすべてのノードについて言えることですが、すべてのノードはデリートキー(Del)で削除することができます。
デフォルトでは、シェーダーノードにはベースカラーというノードしかありません。ノード・リストのベースカラーノードをクリックすると、下に設定が開きます。右上に"Random
seed"というボタンがありますが、 これは他の多くのノードにも見られます。このボタンはフラクタル・ノイズをランダムに発生させるもので、地形、サーフェス・マップ、雲などのディテールをつくるのに使われます。ボタンを押して、このシード値を変えることで、ディテールが微妙に変化します。例えば雲だったら、雲の形や分布が変わるのですぐにわかります。
この「ベースカラー」ノードの設定のずっと下のほうに「ブレンド・シェーダー」の機能を使う設定があります。ブレンド・シェーダーには各種ありますが、基本的に、マスキングの手法と同じように使われます。"Blend
By Shader"のボックスをチェックし、右の小窓に有効な既存のブレンドシェーダーの名前を書き込むか、その右の四角をクリックし、 有効なものを指定します。これが指定されると、現在のノードはそのブレンドシェーダーによってコントロールされます。"Invert
blendshader"のチェックボックスは、ブレンドシェーダーが生成するパターンを反転(invert)させるもののようです。“Fit Blend
Shader To This” はブレンドシェーダーのこのノードへのコントロールを最適化(fit)させるもののようです。
ベースカラーのスケール(Scale)タブの説明をします。 "Feature scale"ですが、これは地表に描かれる色の濃淡の模様の平均的な大きさを指定します。"Lead-in
Scale "は最大の模様、"Smallest Scale "は最小の模様です。この両方のスライダーを動かして、ばらつきの幅(オクターブ)を広くしてやれば、それだけ複雑な模様が描かれるわけですが、レンダリングの時間は長くなります。特に多くのシェーダー(とりわけディスプレースメント)を使うときにはそれがはっきり現れます。この幅を変えてやると、下の"Noise
octaves"の数値が増えるのがわかると思います。
次の「カラー」のタブを見ます。ここにはハイカラーとローカラーの二つが指定されていますが、このハイとローは地形の高低ではなく、地表のベーシックな色の明るい部分と暗い部分です。
"Apply low color"のチェックを外しても、右上のカラースウォッチ(色見本)には暗い部分が見えますが、これは内蔵されているフラクタルノイズによるものです。もっとも大きな影響があるのがハイカラーのスライダーです。実際の色を選ぶには右の四角をクリックし、カラーピッカーを開きます。ハイとローに異なる色を選び、スライダーを動かしてみると、上の小窓やプレビューが変化しますので、最適な基本色を設定することができます。"Color
Contrast"は選んだ二つの色のあいだのコントラストを調整します。二つの色の一方を使わない場合には、ひとつの色と黒とのコントラストになります。"Color
Offset"(色の偏向、片寄り、補正)は二つの色の配分のバランスを調整します。左にスライドするとローカラーが多くなり、右にスライドするとハイカラーが多くなります。"Color
Roughness"は二色を混合するときの粗さのレベルです。高くすると二色の違いが際立ち、低くすると滑らかに混ざります。この要素はコントラストやスケールの設定からも大きな影響を受けます。その下の"Clamp
high color"と"Clamp low color"のチェックボックスですが、これは色の数値が「0」以下か「1」以上のときに影響するものですが、通常は「0−1」の範囲なので、このままにしておいてかまいません。上級テクニックで使われます。
次にディスプレースメント(移動、位置ずらし、押しのけ Displacement)のタブを見てみましょう。TG2の新しい機能、ディスプレースメントは、地形に本物の三次元の高低・凹凸をつけ加えます。以前からあるバンプマッピングは色の陰影のデータを凹凸のように見せかける機能ですが、
ディスプレースメントは同じ色のデータを使って実際に凹凸、突起、その他のディテールをつくります。大きな地形から小さな地形まで、実のところ、TG2では、地形そのもの、水、その他の要素もつくっています。
タブのいちばん上にはディスプレースメントを適用するかどうかのチェックボックスがあります。(Apply displacement)適用するとレンダー時間が伸びます。
その右のドロップダウンメニューでは、ディスプレースメントを地形に適用する方法を選びます。デフォルトは「法線方向 Along normal」ですが、これは法線(曲線上の一点で、曲線の接線に直交する直線)と同じ向きにということです。
ですから山があれば、山の曲線に垂直の方向に効果が働きます。 地面に対して垂直にではありません。垂直な崖があれば、それは地面に平行に外側に押し出されるわけです。
もうひとつの基本的な選択肢は「垂直方向 Along Vertical」であり、これは地面に対して垂直に効果が働きます。残りの三つはすべて「計算された法線
Computed normal」を必要とし、「垂直のみ Vertical only」、「横向きのみ Lateral only」、「法線の横向き? Lateral
normalized」があります。 この法線はデフォルトでは「コンピュート・テレイン Compute terrain」ノードが提供しますが、ディスプレースメントを強くかけたいので法線を再計算したい場合には、「コンピュート・ノーマル
Compute normal」ノードも使えます。 詳しいことは上級テクニック編で。(以上は、筆者もよくわかりません、いくらか間違いがあるかもしれません)
「ディスプレースメント適用 Apply Displacement」をチェックし、「大きさ Displacement amplitude」を"100"ぐらいにしてみましょう。
他の設定がそのままなら、平らな地表が凸凹になりますが、これは実際に三次元のものです。どの程度が適正値かということですが、一般的には、スケールタブで指定した「地形の大きさ
Feature scale」より(ずっと)少ないほうがいいでしょう。
"Displacement Offset "は直訳すれば「ディスプレースメントのオフセット」ということになりますが、ちょっとこの解釈は筆者には難しかったです。すでに説明した"Color
offset"の場合の「オフセット」の意味は、明暗の二色の配分の割合のどちらを多くするかという、その境目をどこに置くかという意味でした。暗い方に置くと暗い色が多くなるし、明るい方に置くと明るい色の配分が多くなる。このディスプレースメントのオフセットに関しては、「どこからディスプレースメントが始まるか」というその境目を決めるもののようです。デフォルトでは"0"になっていますが、プラスのオフセット値を書き込むと、その数値からディスプレースメントが始まり、地形全体が少し上に浮き上がったようになります。マイナスのオフセット値にすると、現在の地表よりも少し潜ったところからディスプレースメントが始まるようです。すでに述べられたように、このベースカラーノードのディスプレースメントでは、二色の色の配分でつくられた地表の色の濃淡を基準データにしてディスプレースメント(位置の移動)が行われます。明るい色の地点ほど地形が出っ張るのです。この「ディスプレースメントのオフセット」は理解しにくいですが、これを使って峡谷の断崖をオーバーハングにしたりとかできるようなので、重要なテクニックのひとつでしょう。平たく言うと、ディスプレースメントによる地形の変形の始まる位置を移動できる、ということのようです。
"Displacement Roughness"はディスプレースメントの粗さです。この値が多いほどとげとげした地形になります。その他のディスプレースメントの設定は現時点では重要ではありません。
次は"Tweak Noise"(ノイズの調整)タブです。 色の混合や置き換えをコントロールするノイズを調節します。"Noise
Flavour"(ノイズの特色)では、次のノイズのタイプが選べます。Perlin――雲などにも使われるもっとも基本的なもの。Perlin
Billows――その変形で、むくむくと盛り上がる(billow)形。積雲など。Perlin Ridges ――よく使われるノイズで、山脈(ridge)や水系など。
"Perlin Mix 1 と2"これは基本的なパーリンと他の変形のミックスです。"Noise Variation "はノイズ機能の強さと効果のバリエーションをコントロールします。この値を高くすると、広い範囲がコントラストが強くなります。低くすると均等な変化になります。"Variation
Methods "いちばんいいのは試してみること。(この元ネタの解説の執筆者、欧米の人だろうけど、英語がおかしいです。というか、どうも自分でもまだよく理解してないみたいです。技術的に高いレベルの人が、言語による説明も上手とは限らないということですかね。しかし、フォーラムのサンプルのレンダリングなどを見ると、画期的な手法が使われていたりするので、欧米人でも口下手だけど技術力ある人はいるのだなあということで、欠点には目をつぶって、なんとか技術を使えるようになりたいものですね。)
"Buoyancy From Variation "(バリエーションからの浮動)。上のノイズ・バリエーションの数値と相対的に働くようです。コントラストをつけるらしい。
"Clumping of Variation "バリエーションの凝集、寄り集まりということらしい。(元ネタには「この名前の通りの機能です」なんてあるから、執筆者も十分にわかっていないに違いない。)
"Noise Stretch xyz"「ノイズの伸長」。xかyの数値を大きくすると、ノイズがその方向に長い線のような形になります。
最後は"Warping"(変形・歪曲)のタブです。地形の法線に関連したノイズ機能に一定の変形を加えるものです。ノイズ機能の全域に影響します。逆に言えばまっ平らな地形だと影響しません。
基本的には地形とテクスチャー(表面の二色の混合からなる模様)に相関関係を持たせるもので、粗い地形は粗いテクスチャーに、滑らかな地形は滑らかなテクスチャーになります。"Lead-in
Warp Effect "は地表の模様の最大スケール(スケール・タブの項目)と同じスケールのノイズ機能に対して変形を加えます。現時点では選択肢は二つしかなく、"1
Octave Perlin Warp "とは、基本的なノイズ機能に対して別の1オクターブのノイズ機能を追加します。ノイズ機能に大きな渦巻き状のパターンを加えます。その下のチェックボックスですが、"Less
Warp At Feature Scale "ですが、スケールタブの"Feature scale"、つまり平均的な大きさの地表の模様に対してはあまり変形を加えないわけで、全体としては大きな変形が加わっても、小さなスケールの地表の模様に関してはあまり変形を加えません。"Allow
Vertical Warp "は垂直軸に対する変形です。
「サーフェス・レイヤー」ノード
旧バージョンのサーフェス・レイヤーはTG2ではいくつかのコンポーネントに分かれています。このノードはサーフェスレイヤーだけを扱うもので、 色、発光、環境に基づく配置、その他の基本機能があります。その一部は外部のシェーダーによってもコントロールされます。フラクタル・ブーレクアップは重要な機能ですが、サーフェスレイヤーそのものには含まれません。この目的には「ブレークアップ・シェーダー・インプット」に別のシェーダーを接続します。(サーフェスレイヤーをつくったら、右下のノードネットワークの画面で、シェーダーを拡大してみてください。サーフェスレイヤーの上にずらっとインプットの三角が並んでいますが、いちばん右にマウスカーソルを持っていくと、
Breakup Shader と表示されます。デフォルトではここにフラクタル・ブレークアップ・ノードが接続しています。左上のノードリストでサーフェスレイヤーを選ぶと、下に設定画面が出ますが、"Fractal
breakup"の項目にすでにこのデフォルトが指定されています。)各種のブレークアップ・シェーダーは自分が生成するパターンに基づいてサーフェスレイヤーが提供する基本色やその他の機能に変更を加えます。デフォルトのフラクタル・ブーレクアップはサーフェスレイヤーの色の配分にリアルなノイズと一様でない形状を与えます。もちろん、ここに他のノードを接続することもできます。
シェーダーレイアウトのノードリストで"Add layer"ボタンを押して新しいサーフェスレイヤーをつくります。プレビューが真っ白になりますが、これはデフォルトでは白が全域を覆っているためです。サーフェスレイヤーのノードには二組のタブがあり、上のグループは色、発光、ディスプレースメントの基本機能を受け持ちます。この三つの機能は外部のシェーダーでコントロールができます。下のタブのグループは地形に対するサーフェスレイヤーの効果の加わり方を標高、傾斜、フラクタル・ブーレクアップなどによってコントロールします。
上のグループのカラータブを見てみましょう。"Apply Colour"(色を適用)チェックボックスで、その色を見せたり消したりできます。サーフェスレイヤーは必ずしも散乱色(光が当たって見える色、つまり普通の色)に使われるだけでなく、発光やディスプレースメントにも使われるので、この点けたり消したりできるチェックボックスは有用です。その下には色の明るさを変えられるスライダーがあり、色は右の四角をクリックして、カラーピッカーで選べます。その下に外部のカラーシェーダーを指定できる場所があり、サーフェスレイヤーの出力を強力にコントロールします。しかし、一般には内蔵の色設定で十分です。
次は発光(Luminosity)のタブです。地表が光を発したり、内部から光を放ったりするようにできます。現時点では、本当の意味で光を出せないので、グローバル・イルミネーション(広域照明)やその他の光の計算はできませんが、見た目は外部の光に照らされた色ではなく、自分から光っている色のように見えます。
あまり使われない機能なのでデフォルトではオフになっています。 その右、いちばん上のスライダーは発光量をコントロールします。その下のスライダーはカラータブと同じですが、名前が"Luminosity
Tint"、発光色になっています。色は明度しか変えられませんが、発光では発光量と発光色の明度を変えられます。
ディスプレースメントタブのコントロールの多くはベースカラーのものと同じですが、いくつか重要な違いがあります。最大の違いはサーフェスレイヤーには内蔵のノイズ機能がないことで、ディスプレースメントが働くためには、(外部の)ディスプレースメント機能(Displacement
Function)が必要になります。有効なディスプレースメントファンクションが指定されないと、ここの設定は効果がありません。ディスプレースメントの方向(Displacement
Direction)の設定はベースカラーのものと同じです。"Displacement Multiplier"(ディスプレースメント乗数)はディスプレースメントファンクションの入力値を乗算するもので、ディスプレースメントの大きさ(Amplitude)と同じような働きをします。"Displacement
Function"はすでに述べましたが、色(あるいは自動的に色に変換されるアウトプット)を提供するノードならなんでもつなげます。"Displacement
Offset"の働きもベースカラーのときと同じです。最後に、平滑化(Smoothing)のタブがあります。設定は二つしかなく、平滑化効果を適用するかどうかのチェックボックスとその強さを調節するスライダーです。スムージングはサーフェスレイヤーの色とディスプレースメントの出力に働きます。後述する"Intersect
Underlying"(裏との交差?)といっしょに使うと効果的です。
「レンダリングのクオリティの設定」
ポイントだけメモしておきます。
クオリティに関連したすべてのスライダーを、いっぱいまで上げれば、きれいな絵がレンダリングされるかというと、必ずしもそうではない。特にGI(Grobal
Illumination 広域照明)の場合はそれが言える。せいぜい4か6、基本的なシーンでは2−3で十分。(Renderers のノードの設定の下の方にある)とりあえずテストレンダーをしてみて、どこのディテールを上げれば、全体の絵の質が高まるかを見つける。
変えるべき箇所は複数ある。旧バージョンより多くのクオリティの設定があり、それぞれが絵の異なった局面に影響を与える。必要ないもののクオリティを上げれば、レンダリングの時間が伸びるだけ。雲にノイズが見られたら、雲のクオリティの設定のサンプル数を上げる。大気や、雲の上下や、光線にノイズが見られたら、大気(Atmosphere)のクオリティを上げる。大気のサンプル数は64ぐらいが上限で、光が多い場合には128ぐらいに上げてもいい。雲のサンプル数は256などという場合もないわけではないが、普通は128が上限と考えていい。普通はもっと少なくてもいい。特に雲の設定をいじっていない、デフォルトのままの場合。雲を高くするほど(depth
を大きくするほど)多くのサンプル数が必要になる。雲と大気のクオリティはサンプル数で表され、ノイズのレベルとなって現れる。雲や大気にノイズは見られないがクオリティを上げたいときには、サンプル数を上げるのではなく、レンダーの設定のディテール(Detail)を上げる。0.5
のディテールで雲や大気にノイズが見られなくなったら、その他の設定を調整する。照明にもっとディテールや正確さが必要なときは、GIのディテールを上げてもよい。2から3、3から4と上げても変化が見られない場合には、問題は別のところにある。"GI
Surface Details "は地面に近いときや、オブジェクトがあって、その近くや地面に落ちた影のディテールが足りない場合にだけ使う。普通は必要ない。ジャギーが出る場合、アンチエイリアス(Antialiasing)を上げるが、フリー版では3までしか使えない。プレパーチェイス版だといくらでも上げられるが、高くても8ぐらいでいい。あちこちのディテールを十分に調節したが、それでも全体の絵としてのディテールが足りないと感じるときのみ、メインのディテールの設定を上げる。しかし、ほかのディテールの調節を先にしたほうがいい。つまりノイズのない雲、十分な地表のディテール、照明のクオリティなど。
この元ネタはここにあります。
「フェークストーンシェーダーの使い方」
フォーラムにフェークストーンシェーダーの使い方で面白い工夫があるので内容を見てみます。
http://forums.planetside.co.uk/index.php?topic=231.0
フェークストーンのレイヤーを七つもつくり、サイズ(Stone scale)が小さいのは分布(Density)を多くし、フェークストーンのサイズがだんだん大きくなるにつれて、分布を少なくしていくようにして、全部で七つのフェークストーンのレイヤーがあります。その他の大気等の設定はまったく普通です。これを考えた人によると、「ひび割れた粘板岩の岩」みたいなものを表現したかったようです。
最初の投稿の下にその画像がありますが、もっと下の方にはTGDファイルが公開されています。このファイルではフェークストーンのサーフェスシェーダーにイメージマップシェーダーが指定されていますが、私は代わりにパワーフラクタルシェーダーを指定してレンダリングしてみると下のようなものができました。
ここから学べるものはいろいろあるのではないでしょうか。このTGDファイルを開くと、フェークストーンシェーダーの設定で、サーフェスシェーダーにすべて同じイメージマップシェーダーが指定されていて、それを開くと、この投稿者のハードディスクのなかのテクスチャー画像が指定されていますので、自分でなにか見つけてくるか、または私のようにパワーフラクタルシェーダーで色とディスプレースメントを指定するといいでしょう。
余談ですが、この投稿の左下を見ると、Pages: [1] 2 3 とありますね。この投稿へのコメントは3ページ目まであるということです。その先にも面白い画像があります。また右下の
<<Previous Next>> のリンクは、前のトピックと次のトピックのリンクですので、これを押したのでは、このトピックの2ページ目と3ページ目を見ることはできません。

「TGDファイルを保存できないのはバグなのか?」
TG2tpを起動して、その時点で「save」すると保存できるのに、いろいろと凝った設定をしてから保存すると、保存はできるが、それを再び読み込むときにエラーになってしまう。これはTG2tpのバグなのだろうと思っていたのですが、じつはそうではありませんでした。よく考えてみると、すぐに気がつくことだったのですがね。新たにサーフェスレイヤーや雲のレイヤーをつくったとき、わかりやすいように名前をつけると便利ですが、ただし日本語は使えません。要するにまだ2バイト文字に対応していないのです。このことはすでにわかっていたので、このTGDファイルのことも、ほんとうは原因は明白だったのです。
つまりこういうことです。新しいシーンを作成中に、DEMやイメージマップを読み込んだとします。そのファイルのアドレスに漢字、カタカナ、ひらがなが含まれていた場合、例えば
C:\......\デスクトップ\xyz.ter などが含まれていると、それを保存したTGDファイルを再び読み込んだときにエラーになってしまいます。これ回避するには、読み込むファイルは2バイト文字が含まれないアドレスに置いておくこと、または、すでに作成したTGDファイルは、ノートパッド等で開いて、該当する記述を別の場所に変え、例えば
C:\temp\xyz.ter などとして、同時にそのファイルもそこに移動しておけば、問題なくTGDファイルを開くことができます。
「Canyon Impression の分析」
フォーラムのユーザーが作成したチュートリアルのなかに"Canyon Impression"(峡谷の印象)というのがあります。ここで使われている主なテクニックは、上の「フェークストーンシェーダーの使い方」でも紹介した、複数のフェークストーンのレイヤーを使う方法(峡谷の川床とその周辺の平坦な部分に転がっている岩石の表現)と、峡谷の断崖のオーバーハングの表現の二つに分けることができます。ここではその二つの要素に分けて、この作品の手法を分析していきます。
まずはそのフォーラムのページ――
http://forums.planetside.co.uk/index.php?topic=583
最初に解説のPDFがあるのでそれを見てください。ごく簡単なものなので、どのようなテクニックが使われているかは、自分で分析するしかありません。そのPDFの内容ですが、だいたい次のようなことです。まずTGDファイルと、サーフェス用の画像3枚が同梱された圧縮ファイルへのリンクがあります。
RARという拡張子ですが、ダウンロードしたときに、場合によったらTXTという余計な拡張子がつくかもしれません。その場合には末尾を".rar"にして解凍します。もうひとつ、グランドキャニオンの40個のDEMを結合したTERファイルがあります(これは貴重ですよ、かなり手間がかかります)。そして同梱されているテクスチャーの入手先も紹介されています。
PDFのこの先の内容は自分で読んでみてください。ただ、詳しいテクニックは解説されていませんので、TGDファイルを読み込んで、"Enable"のチェックを外したり入れたり、数値を変えたり、デフォルトとどう違っているかを比べたりして(TG2tpは複数起動できる)、自分で調べていくしか方法がありません。
すでに述べたように、シェーダーレイアウト以外はほとんど手が加えられていません。そのシェーダーのノードリストは以下のようになっています。左が未展開のもの。真ん中が展開したフェークストーン(峡谷床面)のノード、右が展開したオーバーハング(断崖)のノードです。

「オーバーハングのテクニック @Canyon Impression」
では、まず上の図の右端、峡谷の断崖を定義するノードについて見ていきますが、 ここで思い出していただきたいのは、シェーダーレイアウトのノードリストには、テラジェン起動時には、"Base
colours"のノードしかないということです。そしてそこに"Surface Layer"を追加すると、ノードリストは以下のようになります(展開したもの)。

つまり、サーフェスレイヤーを追加すると、フラクタルブレークアップがセットになっていて、子のレイヤーに追加されるということです。
ですから、上の3番目の画像、つまり断崖のオーバーハングを表現するノードの集合も、このことを踏まえればもっとすっきりとした構成に見えてきます。

上の図のように、この"Steep Slopes"(急斜面)と名付けられたノードの集合は大きく4つのグループに分けられることがわかります。黄色の線で示したノードの上の二つは画像を貼り付けるイメージマップであり、いちばん下のは名前が変わっていますが、実体は"Power
fractal shader V3"です。このように、ノードの名前は変更できるので、作業を進めるのには便利ですが、このような他人が制作したTGDファイルを分析するときなどは、それが元々のデフォルトの状態ではどのシェーダーなのか把握しておく必要があります。そして、前にも述べましたが、テラジェンは複数起動できるので、そのノードがデフォルトのものと比べてどのような設定の変更が加えられているか、詳しく見ていくことができます。また、これも前に述べましたが、上の図だと@だけを"Enable"にして、他のすべてはそのチェックを外してテストレンダリングしてみれば、それぞれのグループがどのような働きをしているのかが見えてきます。では、この"Canyon
Impression"のTGDファイルから、フェークストーンのノードはすべて削除したもの、つまり上の図だけのノードで、テストレンダリングしたものを以下に示します。
まず上のすべてを"Enable"にしたものと、@だけを"Enable"にしてレンダリングしたものとの比較です。カメラ位置はオリジナルのものより少しずらしてあります。

このとおり、ずいぶん違いますね。右の絵はオリジナルのDEMの地形とほとんど変わらないでしょう。地表にわずかに色付けがなされているぐらいです。それと比べると、左の画像ははっきりとオーバーハングがつくられています。右の画像の断崖に色付けの効果を与えているのは、@のグループ、つまり"Steep
Slope"と"Fractal breakup 01"です。この"Steep Slope"というノードを開いてみるとわかりますが、これはじつは普通のサーフェスレイヤーなのです。いっしょにフラクタルブレークアップが生成されることはすでに述べた通りです。では、この二つのノードは、デフォルトの状態とはどう違っているのか、違っていないのか、実際に見てみましょう。
まず"Steep Slope"(Surface layer)ですが、色が変えられています。デフォルトでは白ですが、それが地面の茶色になっています。そのほかに唯一違うのは、下の設定グループの傾斜による制限(Slope
constraints)タブで、最低傾斜による制限(Limit minimum slope)がされていることです。 具体的な数値は斜度が30度、ファジー域が10度です。数値そのものはデフォルトと同じですが、チェックが入って有効になっています。試しにこの茶色を白に変えてみると、以下の画像のようになります。つまりこの数値で制限される区域がこの白い断崖の部分ということです。

上のノードリストの図を見ればわかるように、この"Steep Slope"以外のすべてのノードは、"Steep Slope"の「子のノード」になっています。つまり、子のノードが加える変更は、この白い色で示されている部分にのみ有効になるということです。(この親と子のレイヤーまたはノードの相互関係は旧バージョンと同じです)では次に、ノードリストのAのグループを有効にするとどのような変化が現れるか見てみましょう。つまり"Colouring
SteepSlopes"と"TileMud-Image"と"Fractal breakup 05"ですが、このイメージマップシェーダーを抜いたものと、イメージマップシェーダーも含めたものとを比較してみます。

まず左の絵から見ていきます。ひとつ上の画像と比べるとややグレーになっています。これは"Colouring SteepSlopes"という、実体はサーフェスレイヤーですが、そのノードの色の指定がデフォルトのグレーのままだからです。そのほかに変更されているのは、覆う範囲(Coverage)が"1"から"0.75"になっています。また"Fractal
breakup"のスライダーが"0.5"から"0.125"に減っています。ほかに変更はありません。傾斜制限のタブにもチェックが入っていません。ということは、親の"Steep
Slope"の傾斜制限範囲、つまり上の断崖が真っ白な画像がありますが、それと同じ適用範囲であって、ただし、その範囲内の"0.75"つまり75パーセントに、このノードの効果が適用されるということです。
では、その75パーセントと残りの25パーセントの割り振りはどのように行われるのかということですが、それがフラクタルブレークアップのノードによって行われるのです。いま述べた"Fractal
breakup"のスライダーが"0.5"から"0.125"に減らされているということは、そのフラクタルブレークアップの効果が、よりきつくない程度に働いている、ということではないかと思われます(つまりあまりコントラストがつかない)。このグールプの"Fractal
breakup 05"の設定を見てみますと、デフォルトのものとまったく同じです。このフラクタルブレークアップの効き方を変えると、どのような変化がシーンに見られるのか、少し横道にそれますが、見てみることにします。上の左の画像と同じ設定で、ただしフラクタルブレークアップのスライダーを"0.125"から"2000"というとんでもない値にしてレンダリングしたものが以下の画像です。
違いは微妙なのですが、よく見ると、白の分布のなかに小さな茶色の点々がたくさん現れています。つまりこれから明らかなのは、フラクタルブレークアップというノードの機能のひとつは、フラクタルノイズによって色の分布に変化(自然なむら)をつけているということであり、その効果を強めるほどコントラストがはっきりし、低くするほど滑らかな変化になるということです。(強さのコントロールはサーフェスレイヤーのスライダーによって行う)以上は私の推測なので、間違っていたらご容赦ねがいます。また、フラクタルブレークアップにはほかの機能もあるのかもしれません。フラクタルブレークアップというノードがサーフェスレイヤー(基本機能は表面に色をつけること)に付属する理由も、その色むらの変化をコントロールする機能があるためなのでしょう。
では、話を元に戻して、 三つ目の"TileMud-Image"というノードの役割について見ていくことにします。これは実質的にはイメージマップシェーダーなのですが、ノードリストの展開図を見るとわかるように、"Colouring
SteepSlopes"と"Fractal breakup 05"のあいだにはさまっています。では、このイメージマップシェーダーをどのように生成すると、この位置に入るのでしょうか? サーフェスシェーダーをつくると同時にフラクタルブレークアップもつくられることは前にも述べました。しかし、この二つのノードの設定のどこを見ても、イメージマップシェーダーを指定する場所はありません。じつは、サーフェスシェーダーを選択した状態で、ノードリストの上の"Add
Child Layer"ボタンを押して、そこからイメージマップシェーダーを新たに指定すればいいのです。この動作をすると、ただちに画像ファイルの場所を聞いてきますので、それを指定します。(しかし、前にも言ったように、その画像ファイルの場所のアドレスに2バイト文字が含まれていると、保存したTGDファイルがエラーを起こします。)
これでサーフェスレイヤーに画像を貼り付けるためにイメージマップシェーダーを追加する方法はわかりました。(これ以外にも、たぶん右下のノードネットワークの画面で線をつなぐ方法もあると思います。)
さて、 この"TileMud-Image"を、生成したばかりのデフォルトのイメージマップシェーダーと比べて、どのような操作・変更・設定が行われているのかを見てみましょう。"Image
filename"には画像ファイルが指定されています。これは後から別の画像に変更することもできます。その下の「投影・位置 Projection,
Location」タブですが、デフォルトの投影方法(Projection type)が"Through camera"であるのに対して、ここでは"Plan
Y(edges = XZ)"に変更されています。
これはY軸(垂直軸)方向に、つまり平面に上から覆いかぶさるように貼り付けられた平面図(Plan)ということのようです。
その下のチェックボックスは、"Position lower left"から"Position center"にチェックが変更されています。たぶんどの位置から貼りはじめるか、ということなのだとは思います。その下のサイズ(Size)はデフォルトの"1"と"1"から"50"と"50"になっています。
これは大きさを変えて試してみましたが、一辺が50メートルの四角としてに貼るということのようです。これは画像の解像度やその絵のパターンの形状や貼る対象の地形によって変わってくるでしょう。
次に「反転・反復 Flip, Repeat」のタブに行きます。反復は同じファイルをタイルのように貼るのだからわかりますが("Repeat
x"と"Repeat y"にチェック)、反転は私の知識ではわかりません。垂直の貼るのだから、と解釈はしているのですが("Flip
y"にチェック)。これは後述しますが、フェークストーンのようなオブジェクトに貼る場合にはまったく違った貼り方になるので、そのへんと比較しながらだんだんと憶えていくしかないのでしょう。次の"Colour"のタブでは、ガンマ値が"2.2"から"2.65"に上がっていますが、見えやすくするためなのでしょうか? その他はまったく同じで変更はありません。
いずれにせよ、このAのグループは、断崖の全体にそれらしく見えるイメージを貼るだけで、それ以外の目的はないように見えます。
では次にBとCのグループに進みましょう。このグループの親に当たるものは"Even Steeper"(もっと急勾配)という実質はサーフェスシェーダーのノードといちばん下の"Fractal
breakup 02"のノードですので、まずこれを"Enable"(有効)にして、どんな絵になるかレンダリングしてみましょう。
下の左に置いたのは、上の方ですでに貼った絵、右のがこの二つのノードを有効にしたときの絵です。
見てのとおり、ほとんど変わりません。少なくとも地形の形状は大きく変わっていません。次にこれにさらに"Colouring the Overhangs"というサーフェスシェーダー、"TiledMudCracks"というイメージマップシェーダー、"Fractal
breakup 04"の三つのノードからなるCのグループを有効にしたものを比べてみます。下の右がその画像です。

形状的にはほとんど変わらず、"Colouring the Overhangs"(オーバーハングの色付け)の名のとおり、急傾斜の部分にイメージマップが張られただけです。
そして最後に残った"Overhang Dist"を有効にしたのが以下の絵です。(ずっと上のほうに貼ったものと同じ、つまりすべてのノードが有効になっている)

つまり、"Overhang Dist"が地形の形状の変化に大きく影響していることがわかります。
では、ここまでの各ノードの設定を見ていきます。結論から言ってしまうと、グループCの "Colouring the Overhangs"と"TiledMudCracks"と"Fractal
breakup 04"は、前に説明した、イメージマップシェーダーを含むグループAとやっていることはほとんど同じです。違いは"TiledMudCracks"で"Flip
y"にチェックが入っていないことや、イメージのサイズが10になっていることぐらいです。ですから、オーバーハングという特殊な地形の形状をつくっているのは、"Even
Steeper"というサーフェスシェーダーと、そして"Overhang Dist"という実質的にはフラクタルブレークアップシェーダーの二つなのです。では、"Even
Steeper"の"Displacement"と"Slope constraint"のタブの設定を見ます。

ここで重要なのは"Displcement multiplier"の数値がマイナスの"-190"になっていることです。その上では"Along
normal"、つまり法線に沿ってディスプレースメントを効かせるという設定になっています。これはどういうことかというと、もしこれをプラスの数値、例えば"190"にしてレンダリングすると、法線の正の方向にディスプレースメント(押し出し)が効くために、左右の谷の断崖が内側にせりだしてきて、谷が埋まってしまうのです。これをマイナスにすることで、谷が埋まらず、しかも極端なディスプレースメントの効果(つまりオーバーハングになってえぐれること)が得られるというわけです。そしてこの数値の下に"Displacement
function"として、例の"Overhung-Dist"が指定されています。前にも述べたように、これは実質的にはフラクタルブレークアップシェーダーです。さて、下のほうの「勾配による制限
Slope constraints」のタブですが、最低傾斜が57以上になっています。つまり、急傾斜な部分にだけ、このディスプレースメントが有効であるということです。
すでに貼った画像を見ればわかりますが、この"Overhung-Dist"(Dist はディスプレースメントのことだろう)だけを無効にしたレンダリングでは、オーバーハングはまったくできていません。では、"-190"の数値はなんの意味を持っているのでしょうか? それは以下の"Overhung-Dist"の設定を見ればわかるかもしれません。
地形の形状の平均の大きさ(Feature Scale)が779という巨大な数字になっています。これは通常は「1」です。その下の"Lead-in
scale"(最大の大きさ)が"760"になっていますが、デフォルトでは"1000"ですので、おそらく"Feature
scale"に合わせてあるのでしょう。また最小の大きさ(Smallest scale)が"440"にもなっています。(デフォルトでは"0.1")つまり、"Displcement
multiplier"の数値がマイナスの"-190"になっていても、地形のスケールが小さくては効果が目に見える形で現れず、スケールを大きくしたために、オーバーハングが目に見えるものになった、と私は素人っぽく推測しています。(以上の理論的な説明は間違っているか、きわめてあやふやですが、いま述べた二つのポイントを押さえておけば、傾斜のきつい地形をオーバーハングにすることは可能だと思われます。それ以外の要素は、イメージマップを貼ったり、色をつけたり、といったことだけです。)
また、この"Overhung-Dist"では"Colour"や"Tweak noise"でも、デフォルトとは多少違う設定があります。
以上、きわめてあいまいな説明に終始し、特に最後の方はぐちゃぐちゃになってしまいましたが、なんとなく全体像は見えたと思います。後は自分で実際になにかの地形を利用してオーバーハングをつくり、それに色をつけたり、イメージマップを貼ったりといった作業をするなかで、経験的に憶えていくしかないでしょう。もっとよいマニュアルがあればなおいいのですが。
というわけで、次は峡谷の床のフェークストーンの部分の分析をします。
「フェークストーンのテクニック @CanyonImpression」
では、順序が逆になってしまいましたが、この作品でグランドキャニオンの峡谷の床の部分を構成している、テクスチャーマップや大小のフェークストーンのテクニックを見ていきましょう。オーバーハングのときと同じように、ノードリストの展開図をもう一度示します。
図のように、このパートは基本的に4つのグループに分けることができます。画像では切れていますが、いちばん上の"Flats"のさらに上にはデフォルトの"Base
colour"があります。さて、これを見ると、オーバーハングのときを思い出せば、ここに使われている基本的なシェーダーの種類がなんなのかがわかるでしょう。@はサーフェスシェーダーとフラクタルブレークアップのあいだにイメージマップシェーダーがはさまった構成です。@のグループの子の階層になるとはいえ、Aも同じ構成になっています。BとCは基本的に同じ構造だということは見ればわかると思いますが、これはフェークストーンシェーダーに、画像を貼り付けるイメージマップシェーダーと、オブジェクトの分布を決めるディストリビューションシェーダー
を指定したものであることがわかります。
では、それぞれのグループの機能を見るために、A、B、Cのグループはすべて"Enable"(有効)のチェックを外して、@のグループだけでレンダリングしてみましょう。ここでの焦点は峡谷の床面とそこに散らばる大小の石であるために、カメラ位置も床面にクローズアップしたものにします。

当然ですが、ずいぶん違うといえば違います。右が@のグループだけのレンダリングです。では、この@の設定になにか特別なものがあるか見てみましょう。まず"Flats"(平地)ですが、実質的にはサーフェスシェーダーであり、設定の上のタブグループには変更はないようです。下のタブグループでは、適用される範囲(Coverage)が"1"から"0.5"に、フラクタルブレークアップのスライダーが"0.5"から"0.25"になっています。また、その下の"Only
breakup colour"のチェックが外れていますが、この意図はよくわかりません。(フラクタルブレークアップ06の内容には特に変更は見られない。)"Pebble-Image"はイメージマップシェーダーであり、
投影方法(Projection type)は"Plan Y ( edges = XZ)"で、これはやはりYの垂直軸に直角に平面図を貼るということでしょう。あとは"repeat
x"と"Repeat y"にチェック。カラータブでデフォルトと違うのは、"Convert to linear"から"Data
is linear"にチェックが変わっていることです。右がその画像ですが、ほぼ全面に細かな砂のイメージが貼り付けられています。標高や傾斜による制限もかかっていませんので、地表のほぼ全面にこの画像が貼られているわけです。(ただし、急傾斜の部分にはオーバーハングの地形が後から追加されるが、上の右の絵ではその設定も無効にしている。また範囲が"0.5"であるということは、約5割にこの砂の絵が貼られていて、その分布はフラクタルブレークアップ06によっていると思われます。)次はAの三つのノードも有効にした状態でレンダーしてみます。
このように、ほとんど大きな違いは見られません。フラクタルブレークアップ07に特別な変更点はないようです。実質的にはサーフェスシェーダーである"Pebbles+Mud"(丸石と泥)もほぼデフォルトのままであり、
傾斜等による制限もないので、おそらく砂の画像に泥の画像を重ねるだけの働きなのでしょう。その泥の画像の"TiledMud-Image"ですが、これも投影方法は"Plan
Y"の常識的なものです。以上が"Flats"(平地)という親のノードに含まれるすべてのノードの働きであり、平地によりリアルなイメージを貼り付けるというだけの効果であるように見えます。次はBのグループ、つまり小石(Little
Stones)を追加したものを見てみます。ここで注意すべきは、"Little Stones"のノードは実質的にフェークストーンシェーダーであるということ、それにイメージマップシェーダーである"Image
of Sand"と、分布を制限するディストリビューションシェーダーの"Distribution"が接続しているということです。以下の左がグループBを追加したものです。次の2枚は、イメージマップを貼ったものと貼らないもの。やはり貼ったほうがリアル感が増します。
では、"Little Stones"というフェークストーンシェーダーの設定ですが、石の大きさ(Stone scale)は次の「中ぐらいの石 Medium
Stones」と比べるともちろん小さく、また分布密度(Stone density)は小さいほうが多くなっています。色の違いは微々たるものです。ちなみに小も中も"Blend
as stone density"のチェックが外れ、"Blend by shader"にチェックが入り、そしてディストリビューションシェーダーが指定されています。ちなみに、この小石と中くらいの石のイメージマップシェーダーとディストリビューションシェーダーはまったく同じものです。同じものが指定されています。ですからディストリビューションシェーダーの分布範囲の指定も同じであり、峡谷の床面の平らな部分にのみ分布するように設定されています。では、最後に、床面と小石だけのもの、床面と中くらいの石だけのもの、そしてすべてを含むものを見てみましょう。

以上で"Canyon Impression"のテクニックの分析は終わりです。見落としている点、間違っている解釈などあるかもしれませんが、今後の課題とします。
長くなってきましたので、「テラジェン2tpティップス」はここまでとし、別のページでパート2を続けたいと思います。